วิศวกรรมฟีเจอร์ขนาดใหญ่พร้อมการปกป้องข้อมูลที่ละเอียดอ่อนโดยใช้เซสชันเชิงโต้ตอบของ AWS Glue และ Amazon SageMaker Studio PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

วิศวกรรมฟีเจอร์ขนาดใหญ่พร้อมการปกป้องข้อมูลที่ละเอียดอ่อนโดยใช้เซสชันแบบโต้ตอบของ AWS Glue และ Amazon SageMaker Studio

องค์กรต่างๆ กำลังใช้บริการแมชชีนเลิร์นนิง (ML) และ AI เพื่อปรับปรุงประสบการณ์ของลูกค้า ลดค่าใช้จ่ายในการดำเนินการ และปลดล็อกความเป็นไปได้ใหม่ๆ เพื่อปรับปรุงผลลัพธ์ทางธุรกิจ ข้อมูลสนับสนุนกรณีการใช้งาน ML และ AI และเป็นสินทรัพย์เชิงกลยุทธ์สำหรับองค์กร เนื่องจากข้อมูลเพิ่มขึ้นในอัตราทวีคูณ องค์กรต่างๆ จึงต้องการสร้างแพลตฟอร์มข้อมูลที่ผสานรวม คุ้มราคา และทรงประสิทธิภาพ เพื่อประมวลผลข้อมูลล่วงหน้า ดำเนินการทางวิศวกรรมคุณลักษณะ และสร้าง ฝึกอบรม และใช้งานโมเดล ML ตามสเกล เพื่อให้บรรลุเป้าหมายนั้น AWS ขอเสนอแพลตฟอร์มข้อมูลสมัยใหม่แบบครบวงจรที่ขับเคลื่อนโดย บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) เป็น Data Lake ที่มีเครื่องมือที่สร้างขึ้นตามวัตถุประสงค์และเครื่องมือประมวลผลเพื่อรองรับการวิเคราะห์และปริมาณงาน ML สำหรับประสบการณ์ ML แบบรวม คุณสามารถใช้ สตูดิโอ Amazon SageMakerซึ่งเสนอ การผสานรวมกับเซสชันแบบโต้ตอบของ AWS Glue เพื่อทำวิศวกรรมฟีเจอร์ตามขนาดด้วยการปกป้องข้อมูลที่ละเอียดอ่อน ในโพสต์นี้ เราสาธิตวิธีการใช้โซลูชันนี้

อเมซอน SageMaker เป็นบริการ ML ที่มีการจัดการเต็มรูปแบบที่ช่วยให้คุณสร้าง ฝึก และปรับใช้โมเดลตามขนาดสำหรับกรณีการใช้งานที่หลากหลาย สำหรับการฝึกโมเดล คุณสามารถใช้ตัวเลือกใดก็ได้ อัลกอริทึมในตัว ภายใน SageMaker เพื่อเริ่มต้นการฝึกอบรมและปรับใช้โมเดล ML ได้อย่างรวดเร็ว

องค์ประกอบสำคัญของกระบวนการสร้างและพัฒนาแบบจำลองคือวิศวกรรมคุณลักษณะ AWS กาว เป็นหนึ่งในตัวเลือกที่แนะนำเพื่อให้ได้วิศวกรรมคุณลักษณะตามขนาด AWS Glue ช่วยให้คุณสามารถเรียกใช้การรวมข้อมูลและการแปลงในรูปแบบการกระจายบนโครงสร้างพื้นฐาน Apache Spark แบบไร้เซิร์ฟเวอร์ และทำให้ง่ายต่อการใช้ไลบรารี Spark ML ยอดนิยมสำหรับวิศวกรรมคุณลักษณะและการพัฒนาโมเดล นอกจากนี้ คุณสามารถใช้ AWS Glue สำหรับการประมวลผลข้อมูลส่วนเพิ่มผ่าน ที่คั่นหน้างานนำเข้าข้อมูลจากกว่า 100 แหล่งโดยใช้ การเชื่อมต่อและเรียกใช้เวิร์กโหลดที่ไม่แน่นอนหรือคาดเดาไม่ได้โดยใช้ ปรับขนาดอัตโนมัติ.

ข้อกำหนดที่สำคัญอีกประการสำหรับแอปพลิเคชันที่ใช้ ML คือความปลอดภัยของข้อมูลและการควบคุมการเข้าถึง ความต้องการโดยทั่วไปคือต้องมีการควบคุมที่เข้มงวดมากขึ้นว่าใครสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนที่สุด ซึ่งเป็นส่วนหนึ่งของวิศวกรรมคุณลักษณะและกระบวนการสร้างแบบจำลอง โดยปฏิบัติตามหลักการของการเข้าถึงที่มีสิทธิพิเศษน้อยที่สุด เพื่อให้บรรลุเป้าหมายนี้ คุณสามารถใช้การผสานรวม AWS Glue กับ การก่อตัวของทะเลสาบ AWS เพื่อการกำกับดูแลที่เพิ่มขึ้นและการจัดการสินทรัพย์ของ Data Lake ด้วย Lake Formation คุณสามารถกำหนดค่าการควบคุมการเข้าถึงข้อมูลแบบละเอียดและนโยบายความปลอดภัยที่ด้านบนของ Data Lake ของ Amazon S3 นโยบายถูกกำหนดไว้ในตำแหน่งที่ตั้งส่วนกลาง ทำให้สามารถวิเคราะห์และบริการ ML ได้หลายอย่าง เช่น AWS Glue อเมซอน อาเธน่าและ SageMaker เพื่อโต้ตอบกับข้อมูลที่จัดเก็บไว้ใน Amazon S3

AWS Glue ประกอบด้วย การตรวจจับข้อมูลส่วนบุคคล (PII) แปลงร่างที่ให้ความสามารถในการตรวจจับ ปกปิด หรือลบเอนทิตีได้ตามต้องการ เพื่อการปฏิบัติตามและการกำกับดูแลที่เพิ่มขึ้น ด้วยการแปลง PII คุณสามารถตรวจจับข้อมูล PII ในชุดข้อมูลและใช้การควบคุมการเข้าถึงแบบละเอียดโดยอัตโนมัติโดยใช้ Lake Formation เพื่อจำกัดข้อมูลที่ละเอียดอ่อนสำหรับกลุ่มผู้ใช้ต่างๆ

ใช้กรณี

เรามุ่งเน้นไปที่กรณีการใช้งานโมเดลแนวโน้มที่มีชุดข้อมูลการตลาดของลูกค้าและเกี่ยวข้องกับผู้ใช้สองคน: วิศวกรข้อมูลและนักวิทยาศาสตร์ข้อมูล ชุดข้อมูลประกอบด้วยข้อมูลของลูกค้าแต่ละราย รวมถึงแหล่งที่มาของลีด บันทึกผู้ติดต่อ บทบาทงาน แฟล็กบางส่วน การดูหน้าเว็บต่อการเข้าชม และอื่นๆ ชุดข้อมูลยังมีข้อมูลที่ละเอียดอ่อน เช่น หมายเลขโทรศัพท์ส่วนตัว

วิศวกรข้อมูลมีหน้าที่สร้างไปป์ไลน์การประมวลผลข้อมูลแบบ end-to-end รวมถึงการเตรียมข้อมูล การประมวลผลล่วงหน้า และการควบคุมการเข้าถึง นักวิทยาศาสตร์ข้อมูลมีหน้าที่รับผิดชอบด้านวิศวกรรมฟีเจอร์ ฝึกอบรมและปรับใช้โมเดล ML โปรดทราบว่านักวิทยาศาสตร์ข้อมูลไม่ได้รับอนุญาตให้เข้าถึงข้อมูลที่ละเอียดอ่อนของ PII สำหรับวิศวกรรมคุณลักษณะหรือการฝึกอบรมโมเดล ML

ส่วนหนึ่งของกรณีการใช้งานนี้ วิศวกรข้อมูลสร้างไปป์ไลน์ข้อมูลเพื่อประมวลผลชุดข้อมูลล่วงหน้า สแกนชุดข้อมูลเพื่อหาข้อมูล PII ใดๆ และจำกัดการเข้าถึงคอลัมน์ PII สำหรับผู้ใช้นักวิทยาศาสตร์ข้อมูล ด้วยเหตุนี้ เมื่อนักวิทยาศาสตร์ข้อมูลใช้ชุดข้อมูลเพื่อดำเนินการวิศวกรรมฟีเจอร์และสร้างโมเดล ML พวกเขาจะไม่สามารถเข้าถึงคอลัมน์ที่ละเอียดอ่อนของ PII (ในกรณีนี้คือหมายเลขโทรศัพท์) กระบวนการทางวิศวกรรมคุณลักษณะเกี่ยวข้องกับการแปลงคอลัมน์ของสตริงประเภทเป็นรูปแบบที่เหมาะสมที่สุดสำหรับโมเดล ML ในฐานะกรณีการใช้งานขั้นสูง คุณสามารถขยายรูปแบบการเข้าถึงนี้เพื่อใช้การรักษาความปลอดภัยระดับแถวและระดับเซลล์โดยใช้ Lake Formation

ภาพรวมโซลูชัน

โซลูชันประกอบด้วยขั้นตอนระดับสูงต่อไปนี้:

  1. ตั้งค่าทรัพยากรด้วย การก่อตัวของ AWS Cloud.
  2. ประมวลผลชุดข้อมูลล่วงหน้า ซึ่งรวมถึงการตรวจจับ PII และการควบคุมการเข้าถึงอย่างละเอียดบนเซสชันแบบโต้ตอบของ AWS Glue
  3. ดำเนินการวิศวกรรมคุณลักษณะในเซสชันแบบโต้ตอบของ AWS Glue
  4. ฝึกฝนและปรับใช้โมเดล ML โดยใช้อัลกอริทึม XGBoost ในตัวของ SageMaker
  5. ประเมินโมเดล ML

ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชัน

เบื้องต้น

คุณต้องมีข้อกำหนดเบื้องต้นดังต่อไปนี้:

ตั้งค่าทรัพยากรด้วย AWS CloudFormation

โพสต์นี้มีเทมเพลต CloudFormation สำหรับการตั้งค่าอย่างรวดเร็ว คุณสามารถตรวจสอบและปรับแต่งให้เหมาะกับความต้องการของคุณ หากคุณต้องการตั้งค่าทรัพยากรบน คอนโซลการจัดการ AWS และ AWS CLI แทน AWS CloudFormation โปรดดูคำแนะนำในภาคผนวกที่ส่วนท้ายของโพสต์นี้

เทมเพลต CloudFormation สร้างทรัพยากรต่อไปนี้:

  • บัคเก็ต S3 พร้อมชุดข้อมูลตัวอย่าง
  • An AWS แลมบ์ดา ฟังก์ชันโหลดชุดข้อมูล
  • AWS Identity และการจัดการการเข้าถึง (IAM) กลุ่ม ผู้ใช้ บทบาท และนโยบาย
  • การตั้งค่าทะเลสาบข้อมูล Lake Formation และการอนุญาต
  • โปรไฟล์ผู้ใช้ SageMaker

ในการสร้างทรัพยากรของคุณ ให้ทำตามขั้นตอนต่อไปนี้:

  1. ลงชื่อเข้าใช้คอนโซล
  2. Choose เรียกใช้ Stack:
    ปุ่มเปิดใช้
  3. Choose ถัดไป.
  4. สำหรับ DataEngineerPwd และ นักวิทยาศาสตร์ข้อมูลPwdให้ป้อนรหัสผ่านของคุณเองสำหรับวิศวกรข้อมูลและผู้ใช้นักวิทยาศาสตร์ข้อมูล
  5. สำหรับ ชื่อฐานข้อมูลกาวป้อน demo.
  6. สำหรับ ชื่อตารางกาวป้อน web_marketing.
  7. สำหรับ S3BucketNameForInputป้อน blog-studio-pii-dataset-.
  8. สำหรับ S3BucketNameForOutputป้อน blog-studio-output-.
  9. สำหรับ รหัสโดเมน SageMakerป้อน ID โดเมน SageMaker ของคุณที่คุณเตรียมไว้ในขั้นตอนที่จำเป็น
  10. Choose ถัดไป.
  11. ในหน้าถัดไป เลือก ถัดไป.
  12. ตรวจสอบรายละเอียดในหน้าสุดท้ายและเลือก ฉันรับทราบว่า AWS CloudFormation อาจสร้างทรัพยากร IAM.
  13. Choose สร้างบัญชีตัวแทน.

การสร้างสแต็กอาจใช้เวลาถึง 10 นาที สแต็คสร้างบทบาท IAM และโปรไฟล์ผู้ใช้ SageMaker สำหรับบุคคลสองคน: วิศวกรข้อมูลและนักวิทยาศาสตร์ข้อมูล นอกจากนี้ยังสร้างการสาธิตฐานข้อมูลและตาราง web_marketing ด้วยชุดข้อมูลตัวอย่าง

ในขณะที่สร้างสแต็ก บุคคลของวิศวกรข้อมูลสามารถเข้าถึงตารางได้อย่างสมบูรณ์ แต่บุคคลที่เป็นนักวิทยาศาสตร์ข้อมูลยังไม่สามารถเข้าถึงตารางได้

ประมวลผลชุดข้อมูลล่วงหน้า

มาเริ่มประมวลผลข้อมูลล่วงหน้าในเซสชันแบบโต้ตอบของ AWS Glue บุคคลที่เป็นวิศวกรข้อมูลต้องการตรวจสอบข้อมูลเพื่อดูว่ามีข้อมูลที่ละเอียดอ่อนหรือไม่ และให้สิทธิ์การเข้าถึงขั้นต่ำแก่บุคคลที่เป็นนักวิทยาศาสตร์ข้อมูล คุณสามารถดาวน์โหลดสมุดบันทึกได้จาก สถานที่นี้.

  1. ลงชื่อเข้าใช้คอนโซลโดยใช้ผู้ใช้ data-engineer
  2. บนคอนโซล SageMaker ให้เลือก ผู้ใช้.
  3. เลือกผู้ใช้ data-engineer แล้วเลือก เปิด Studio.
  4. สร้างสมุดบันทึกใหม่แล้วเลือก สปาร์กวิเคราะห์ 1.0 for ภาพ และ กาว PySpark for เมล็ด.
  5. เริ่มเซสชันแบบโต้ตอบด้วยเวทมนตร์ต่อไปนี้เพื่อติดตั้ง Boto3 เวอร์ชันใหม่กว่า (จำเป็นสำหรับการใช้ไฟล์ create_data_cells_filter กระบวนการ):
    %additional_python_modules boto3==1.24.82

  6. เริ่มต้นเซสชัน:
    import boto3
    import sys
    from awsglue.transforms import *
    from awsglue.utils import getResolvedOptions
    from pyspark.context import SparkContext
    from awsglue.context import GlueContext
    from awsglue.job import Job
    
    sc = SparkContext.getOrCreate()
    glueContext = GlueContext(sc)
    spark = glueContext.spark_session
    job = Job(glueContext)

  7. สร้าง AWS Glue DynamicFrame จากตารางที่สร้างขึ้นใหม่ และ แก้ไขประเภทตัวเลือก ตามสคีมาของแค็ตตาล็อก เนื่องจากเราต้องการใช้สคีมาที่กำหนดไว้ในแคตตาล็อกแทนสคีมาที่อนุมานโดยอัตโนมัติตามข้อมูล:
    dyf_marketing = glueContext.create_dynamic_frame.from_catalog(
    database="demo",
    table_name="web_marketing"
    )
    
    dyf_marketing_resolved = dyf_marketing.resolveChoice(
    choice="match_catalog",
    database="demo",
    table_name="web_marketing"
    )
    
    dyf_marketing_resolved.printSchema()

  8. ตรวจสอบในตารางว่ามีข้อมูล PII ใดๆ ที่ใช้การตรวจจับ AWS Glue PII หรือไม่:
    from awsglueml.transforms import EntityDetector
    
    entities_filter = [
    "EMAIL",
    "CREDIT_CARD",
    "IP_ADDRESS",
    "MAC_ADDRESS",
    "PHONE_NUMBER"
    ]
    entity_detector = EntityDetector()
    classified_map = entity_detector.classify_columns(dyf_marketing_resolved, entities_filter, 1.0, 0.1)
    print(classified_map)

  9. ตรวจสอบว่าคอลัมน์ที่จัดประเภทเป็น PII มีข้อมูลละเอียดอ่อนหรือไม่ (หากไม่มี ให้อัปเดต modified_map เพื่อลบคอลัมน์ที่ไม่ละเอียดอ่อนออก):
    from pyspark.sql.functions import col
    dyf_marketing_resolved.toDF().select(*[col(c) for c in classified_map.keys()]).show()

  10. ตั้งค่าสิทธิ์การสร้างทะเลสาบโดยใช้ตัวกรองเซลล์ข้อมูลสำหรับคอลัมน์ที่ตรวจพบโดยอัตโนมัติ และจำกัดคอลัมน์เฉพาะบุคคลที่เป็นนักวิทยาศาสตร์ข้อมูล:
    lakeformation = boto3.client('lakeformation')
    sts = boto3.client('sts')
    
    account_id = sts.get_caller_identity().get('Account')
    
    # Create a data cell filter for excluding phone_number column
    lakeformation.create_data_cells_filter(
    TableData={
    'TableCatalogId': account_id,
    'DatabaseName': 'demo',
    'TableName': 'web_marketing',
    'Name': 'pii',
    'RowFilter': {
    'AllRowsWildcard': {}
    
    },
    'ColumnWildcard': {
    'ExcludedColumnNames': list(classified_map.keys())
    }
    }
    )
    
    # Grant permission on the data cell filter
    lakeformation.grant_permissions(
    Principal={
    'DataLakePrincipalIdentifier': f'arn:aws:iam::{account_id}:role/SageMakerStudioExecutionRole_data-scientist'
    },
    Resource={
    'DataCellsFilter': {
    'TableCatalogId': account_id,
    'DatabaseName': 'demo',
    'TableName': 'web_marketing',
    'Name': 'pii'
    }
    },
    Permissions=[
    'SELECT'
    ]
    )

  11. เข้าสู่ระบบ Studio ในฐานะนักวิทยาศาสตร์ข้อมูลเพื่อดูว่าคอลัมน์ PII ไม่สามารถมองเห็นได้ คุณสามารถดาวน์โหลดสมุดบันทึกได้จาก สถานที่นี้.
  12. สร้างสมุดบันทึกใหม่แล้วเลือก สปาร์กวิเคราะห์ 1.0 for ภาพ และ กาว PySpark for เมล็ด:
    import boto3
    import sys
    from awsglue.transforms import *
    from awsglue.utils import getResolvedOptions
    from pyspark.context import SparkContext
    from awsglue.context import GlueContext
    from awsglue.job import Job
    
    sc = SparkContext.getOrCreate()
    glueContext = GlueContext(sc)
    spark = glueContext.spark_session
    job = Job(glueContext)
    
    dyf_marketing = glueContext.create_dynamic_frame.from_catalog(
    database="demo",
    table_name="web_marketing"
    )
    
    dyf_marketing.printSchema()

ดำเนินการวิศวกรรมคุณลักษณะ

เราใช้ไลบรารี Apache Spark ML เพื่อทำวิศวกรรมฟีเจอร์ในฐานะผู้ใช้นักวิทยาศาสตร์ข้อมูล จากนั้นจึงเขียนผลลัพธ์กลับไปยัง Amazon S3

  1. ในเซลล์ต่อไปนี้ เราใช้คุณสมบัติจาก ไลบรารี Apache Spark ML:
    • StringIndexer แมปคอลัมน์สตริงของป้ายกำกับกับคอลัมน์ของดัชนีป้ายกำกับ
    • OneHotEncoder แม็พคุณลักษณะเชิงหมวดหมู่ที่แสดงเป็นดัชนีป้ายกำกับกับเวกเตอร์ไบนารีที่มีค่ามากที่สุดค่าเดียวซึ่งบ่งชี้การมีอยู่ของคุณลักษณะเชิงหมวดหมู่เฉพาะ การแปลงนี้ใช้สำหรับอัลกอริทึม ML ที่คาดหวังคุณสมบัติที่ต่อเนื่อง
    • VectorAssembler เป็นหม้อแปลงที่รวมรายการของคอลัมน์ที่กำหนดให้เป็นคอลัมน์เวกเตอร์เดียว ซึ่งจากนั้นจะใช้ในการฝึกโมเดล ML สำหรับอัลกอริทึม เช่น การถดถอยโลจิสติก และแผนผังการตัดสินใจ
    #feature engineering by using string indexer and one hot encoding from spark ML library
    from pyspark.ml.feature import StringIndexer, VectorIndexer, OneHotEncoder, VectorAssembler
    from pyspark.ml import Pipeline
    
    cols = ['lastcampaignactivity','region','viewedadvertisement','usedpromo','jobrole']
    
    int_cols = ['pageviewspervisit','totaltimeonwebsite','totalwebvisits',]
    
    indexers = [
    StringIndexer(inputCol=c, outputCol="{0}_indexed".format(c))
    for c in cols
    ]
    
    encoders = [
    OneHotEncoder(
    inputCol=indexer.getOutputCol(),
    outputCol="{0}_encoded".format(indexer.getOutputCol()))
    for indexer in indexers
    ]
    
    assembler = VectorAssembler(
    inputCols=[encoder.getOutputCol() for encoder in encoders]+int_cols,
    outputCol="features"
    )

  2. สามารถสร้าง DataFrame ที่แปลงขั้นสุดท้ายได้โดยใช้ไลบรารี่ไปป์ไลน์ ไปป์ไลน์ถูกระบุเป็นลำดับของขั้นตอน ขั้นตอนเหล่านี้ทำงานตามลำดับและ DataFrame อินพุตจะถูกแปลงเมื่อผ่านแต่ละขั้นตอน
    df_marketing = dyf_marketing.toDF()
    pipeline = Pipeline(stages=indexers + encoders + [assembler])
    df_tfm=pipeline.fit(df_marketing).transform(df_marketing)
    

  3. ต่อไป เราจะแบ่งชุดข้อมูลออกเป็นการฝึก ตรวจสอบความถูกต้อง และทดสอบ DataFrame และบันทึกไว้ในบัคเก็ต S3 เพื่อฝึกโมเดล ML (ระบุ ID บัญชี AWS ของคุณในโค้ดต่อไปนี้):
    from pyspark.ml.functions import vector_to_array
    
    #set s3 output location for feature engineering output
    bucket='blog-studio-output-'
    
    #convert sparse to dense vector
    df_tfm=df_tfm.select('converted',vector_to_array("features").alias("features_array"))
    
    #split features array into individual columns
    df_tfm=df_tfm.select([df_tfm.converted] + [df_tfm.features_array[i] for i in range(17)])
    
    #split the overall dataset into 70-20-10 training , validation and test
    (train_df, validation_df, test_df) = df_tfm.randomSplit([0.7,0.2,0.1])
    
    #write back train, validation and test datasets to S3
    train_df.write
    .option("header","false")
    .csv('s3://{}/web-marketing/processed/training/'.format(bucket))
    
    validation_df.write
    .option("header","false")
    .csv('s3://{}/web-marketing/processed/validation/'.format(bucket))
    
    test_df.write
    .option("header","false")
    .csv('s3://{}/web-marketing/processed/test/'.format(bucket))

ฝึกฝนและปรับใช้โมเดล ML

ในส่วนก่อนหน้านี้ เราเสร็จสิ้นวิศวกรรมคุณลักษณะ ซึ่งรวมถึงการแปลงคอลัมน์สตริง เช่น region, jobroleและ usedpromo เป็นรูปแบบที่เหมาะสมที่สุดสำหรับโมเดล ML เรายังรวมคอลัมน์เช่น pageviewspervisit และ totalwebvisitsซึ่งจะช่วยให้เราคาดการณ์แนวโน้มที่ลูกค้าจะซื้อผลิตภัณฑ์

ตอนนี้เราฝึกโมเดล ML โดยการอ่านชุดข้อมูลการฝึกและการตรวจสอบความถูกต้องโดยใช้อัลกอริทึม XGBoost ในตัวของ SageMaker จากนั้นเราปรับใช้โมเดลและดำเนินการตรวจสอบความถูกต้อง คุณสามารถดาวน์โหลดสมุดบันทึกได้จาก สถานที่นี้.

ในเซลล์ต่อไปนี้ เรากำลังอ่านข้อมูลจากบัคเก็ต S3 ที่สอง ซึ่งรวมถึงเอาต์พุตจากการดำเนินงานด้านวิศวกรรมคุณลักษณะของเรา จากนั้นเราใช้อัลกอริทึมในตัว XGBoost เพื่อฝึกโมเดล

  1. เปิดสมุดบันทึกใหม่ เลือก ข้อมูลวิทยาศาสตร์ for ภาพ และ งูหลาม 3 for เมล็ด (ระบุรหัสบัญชี AWS ของคุณในรหัสต่อไปนี้):
    #set s3 bucket location for training data
    import sagemaker
    import boto3
    from sagemaker import get_execution_role
    
    container = sagemaker.image_uris.retrieve(region=boto3.Session().region_name,
    framework='xgboost', version='latest')
    bucket='blog-studio-output-'
    prefix='web-marketing/processed'
    
    #read train and validation input datasets
    s3_input_train = sagemaker.inputs.TrainingInput(s3_data='s3://{}/{}/training/'
    .format(bucket, prefix), content_type='csv')
    s3_input_validation = sagemaker.inputs.TrainingInput(s3_data='s3://{}/{}/validation/'
    .format(bucket, prefix), content_type='csv')
    
    #train xgb model
    sess = sagemaker.Session()
    from sagemaker import get_execution_role
    
    xgb = sagemaker.estimator.Estimator(
    container,
    role=get_execution_role(),
    instance_count=1,
    instance_type='ml.m4.xlarge',
    output_path='s3://{}/{}/output'
    .format(bucket, prefix),
    sagemaker_session=sess
    )
    
    xgb.set_hyperparameters(
    max_depth=5,
    eta=0.2,
    gamma=4,
    min_child_weight=6,
    subsample=0.8,
    silent=0,
    objective='binary:logistic',
    num_round=100
    )
    
    xgb.fit({'train': s3_input_train, 'validation': s3_input_validation})

  2. เมื่อการฝึกอบรมเสร็จสิ้น เราสามารถปรับใช้โมเดลโดยใช้บริการโฮสติ้งของ SageMaker:
    #deploy ml model
    xgb_predictor = xgb.deploy(initial_instance_count=1,
    instance_type='ml.m4.xlarge')

ประเมินโมเดล ML

เราใช้ชุดข้อมูลทดสอบเพื่อประเมินโมเดลและลบจุดสิ้นสุดการอนุมานเมื่อดำเนินการเสร็จเพื่อหลีกเลี่ยงการเรียกเก็บเงินที่ต่อเนื่อง

  1. ประเมินโมเดลด้วยรหัสต่อไปนี้:
    #create csv serialiser to run accuracy on test dataset
    xgb_predictor.serializer = sagemaker.serializers.CSVSerializer()
    
    #read test dataset
    import io
    import pandas as pd
    
    s3 = boto3.resource('s3')
    bucket_obj = s3.Bucket(bucket)
    
    test_line = []
    test_objs = bucket_obj.objects.filter(Prefix="web-marketing/processed/test")
    for obj in test_objs:
    try:
    key = obj.key
    body = obj.get()['Body'].read()
    temp = pd.read_csv(io.BytesIO(body),header=None, encoding='utf8',sep=',')
    test_line.append(temp)
    except:
    continue
    
    test_df = pd.concat(test_line)
    
    #predict results using deployed model
    import numpy as np
    def predict(data, predictor, rows=500 ):
    split_array = np.array_split(data, int(data.shape[0] / float(rows) + 1))
    predictions = ''
    for array in split_array:
    predictions = ','.join([predictions, predictor.predict(array).decode('utf-8')])
    return np.fromstring(predictions[1:], sep=',')
    
    #drop the target variable in test_df and make prediction
    predictions = predict(test_df.drop(test_df.columns[0], axis=1).to_numpy(), xgb_predictor)
    
    #calculate accuracy using sklearn library
    from sklearn.metrics import accuracy_score, confusion_matrix
    y_pred=np.round(predictions)
    y_true=test_df.iloc[:,0].values.tolist()
    print('Accuracy score: ',accuracy_score(y_true, y_pred))
    print('Confusion matrix: n',confusion_matrix(y_true, y_pred))

    ผลลัพธ์ความแม่นยำสำหรับการทดสอบตัวอย่างคือ 84.6 % การดำเนินการนี้อาจแตกต่างออกไปเล็กน้อยสำหรับการวิ่งของคุณ เนื่องจากการแยกชุดข้อมูลแบบสุ่ม

  2. เราสามารถลบจุดสิ้นสุดการอนุมานด้วยรหัสต่อไปนี้:
    xgb_predictor.delete_endpoint(delete_endpoint_config=True)

ทำความสะอาด

มาถึงขั้นตอนสุดท้ายแล้ว การทำความสะอาดทรัพยากร

  1. ล้างบัคเก็ตทั้งสองที่สร้างผ่าน CloudFormation stack
  2. ลบแอพที่เกี่ยวข้องกับผู้ใช้ profiles data-scientist และ data-engineer ภายในสตูดิโอ
  3. ลบกอง CloudFormation

สรุป

ในโพสต์นี้ เราได้สาธิตโซลูชันที่ช่วยให้บุคคลต่างๆ เช่น วิศวกรข้อมูลและนักวิทยาศาสตร์ข้อมูลสามารถดำเนินการวิศวกรรมคุณลักษณะในระดับต่างๆ ได้ ด้วยเซสชันแบบโต้ตอบของ AWS Glue คุณสามารถบรรลุวิศวกรรมคุณลักษณะตามขนาดได้อย่างง่ายดายด้วยการตรวจจับ PII อัตโนมัติและการควบคุมการเข้าถึงแบบละเอียดโดยไม่จำเป็นต้องจัดการโครงสร้างพื้นฐานใดๆ เมื่อใช้ Studio เป็นจุดเริ่มต้นเดียว คุณจะได้รับประสบการณ์ที่เรียบง่ายและผสานรวมเพื่อสร้างเวิร์กโฟลว์ ML แบบครบวงจร ตั้งแต่การเตรียมและรักษาความปลอดภัยของข้อมูลไปจนถึงการสร้าง การฝึกอบรม การปรับแต่ง และนำโมเดล ML ไปใช้งาน หากต้องการเรียนรู้เพิ่มเติม โปรดไปที่ เริ่มต้นใช้งานเซสชันโต้ตอบของ AWS Glue และ สตูดิโอ Amazon SageMaker.

เรารู้สึกตื่นเต้นมากกับความสามารถใหม่นี้ และกระตือรือร้นที่จะได้เห็นสิ่งที่คุณกำลังจะสร้างด้วยความสามารถนี้!


ภาคผนวก: ตั้งค่าทรัพยากรผ่านคอนโซลและ AWS CLI

ทำตามคำแนะนำในส่วนนี้เพื่อตั้งค่าทรัพยากรโดยใช้ Console และ AWS CLI แทนเทมเพลต CloudFormation

เบื้องต้น

คุณต้องมีสิทธิ์เข้าถึง AWS CLI (ดู เริ่มต้นใช้งาน AWS CLI) หรือใช้การเข้าถึงบรรทัดคำสั่งจาก AWS CloudShell.

กำหนดค่ากลุ่ม IAM ผู้ใช้ บทบาท และนโยบาย

ในส่วนนี้ เราสร้างผู้ใช้ IAM สองคน ได้แก่ data-engineer และ data-scientist ซึ่งอยู่ในกลุ่ม data-platform group ของ IAM จากนั้นจึงเพิ่มนโยบาย IAM เดียวลงในกลุ่ม IAM

  1. บนคอนโซล IAM สร้างนโยบายบนแท็บ JSON เพื่อสร้างนโยบายที่จัดการโดย IAM ใหม่ชื่อ DataPlatformGroupPolicy. นโยบายอนุญาตให้ผู้ใช้ในกลุ่มเข้าถึง Studio ได้ แต่ใช้เฉพาะโปรไฟล์ผู้ใช้ SageMaker ที่มีแท็กที่ตรงกับชื่อผู้ใช้ IAM ใช้เอกสารนโยบาย JSON ต่อไปนี้เพื่อให้สิทธิ์:
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Action":[
                "sagemaker:DescribeDomain",
                "sagemaker:ListDomains",
                "sagemaker:ListUserProfiles",
                "sagemaker:ListApps"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerStudioReadOnly"
          },
          {
             "Action":"sagemaker:AddTags",
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerAddTags"
          },
          {
             "Condition":{
                "StringEquals":{
                   "sagemaker:ResourceTag/studiouserid":"${aws:username}"
                }
             },
             "Action":[
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeUserProfile"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerAllowedUserProfile"
          },
          {
             "Condition":{
                "StringNotEquals":{
                   "sagemaker:ResourceTag/studiouserid":"${aws:username}"
                }
             },
             "Action":[
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeUserProfile"
             ],
             "Resource":"*",
             "Effect":"Deny",
             "Sid":"AmazonSageMakerDeniedUserProfiles"
          }
       ]
    }

  2. สร้างกลุ่ม IAM ที่เรียกว่า data-platform-group.
  3. ค้นหาและแนบนโยบายที่มีการจัดการของ AWS ชื่อ DataPlatformGroupPolicy เข้ากับกลุ่ม
  4. สร้างผู้ใช้ IAM เรียกว่า data-engineer และ data-scientist ภายใต้กลุ่ม data-platform-group ของ IAM
  5. สร้างนโยบายที่มีการจัดการใหม่ ชื่อ SageMakerExecutionPolicy (ระบุภูมิภาคและ ID บัญชีของคุณในรหัสต่อไปนี้):
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Action":[
                "sagemaker:DescribeDomain",
                "sagemaker:ListDomains",
                "sagemaker:ListUserProfiles",
                "sagemaker:ListApps"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerStudioReadOnly"
          },
          {
             "Action":"sagemaker:AddTags",
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerAddTags"
          },
          {
             "Action":[
                "sagemaker:CreateTrainingJob",
                "sagemaker:DescribeTrainingJob",
                "logs:DescribeLogStreams",
                "sagemaker:CreateModel",
                "sagemaker:CreateEndpointConfig",
                "sagemaker:CreateEndpoint",
                "sagemaker:DescribeEndpoint",
                "sagemaker:InvokeEndpoint",
                "sagemaker:DeleteEndpointConfig",
                "sagemaker:DeleteEndpoint"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerTrainingAndDeploy"
          },
          {
             "Action":"sagemaker:*App",
             "Resource":"arn:aws:sagemaker:::app/*/${aws:PrincipalTag/userprofilename}/*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerAllowedApp"
          },
          {
             "Action":"sagemaker:*App",
             "Effect":"Deny",
             "NotResource":"arn:aws:sagemaker:::app/*/${aws:PrincipalTag/userprofilename}/*",
             "Sid":"AmazonSageMakerDeniedApps"
          },
          {
             "Action":[
                "glue:GetTable",
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetDatabase",
                "glue:GetDatabases",
                "glue:GetPartition",
                "glue:GetPartitions"
             ],
             "Resource":[
                "arn:aws:glue:::table/demo/*",
                "arn:aws:glue:::database/demo",
                "arn:aws:glue:::catalog"
             ],
             "Effect":"Allow",
             "Sid":"GlueCatalogPermissions"
          },
          {
             "Action":[
                "lakeformation:GetDataAccess",
                "lakeformation:StartQueryPlanning",
                "lakeformation:GetQueryState",
                "lakeformation:GetWorkUnits",
                "lakeformation:GetWorkUnitResults"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"LakeFormationPermissions"
          },
          {
             "Effect":"Allow",
             "Action":[
                "s3:CreateBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:DeleteObject"
             ],
             "Resource":[
                "arn:aws:s3:::blog-studio-output-",
                "arn:aws:s3:::blog-studio-output-/*"
             ]
          },
          {
             "Action":[
                "iam:PassRole",
                "iam:GetRole",
                "sts:GetCallerIdentity"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"AmazonSageMakerStudioIAMPassRole"
          },
          {
             "Action":"sts:AssumeRole",
             "Resource":"*",
             "Effect":"Deny",
             "Sid":"DenyAssummingOtherIAMRoles"
          }
       ]
    }

  6. สร้างนโยบายที่มีการจัดการใหม่ ชื่อ SageMakerAdminPolicy:
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Action":[
                "lakeformation:GrantPermissions",
                "lakeformation:RevokePermissions",
                "lakeformation:ListPermissions",
                "lakeformation:BatchGrantPermissions",
                "lakeformation:BatchRevokePermissions",
                "lakeformation:CreateDataCellsFilter",
                "lakeformation:DeleteDataCellsFilter",
                "lakeformation:ListDataCellsFilter",
                "glue:GetUserDefinedFunctions",
                "glue:BatchGetCustomEntityTypes"
             ],
             "Resource":"*",
             "Effect":"Allow",
             "Sid":"GlueLakeFormationPermissions"
          }
       ]
    }

  7. สร้างบทบาท IAM สำหรับ SageMaker สำหรับวิศวกรข้อมูล (วิศวกรข้อมูล) ซึ่งใช้เป็นบทบาทการดำเนินการของโปรไฟล์ผู้ใช้ที่เกี่ยวข้อง บน แนบนโยบายการอนุญาต AmazonSageMakerFullAccess (นโยบายที่จัดการโดย AWS) แนบมาโดยค่าเริ่มต้น คุณนำนโยบายนี้ออกในภายหลังเพื่อรักษาสิทธิ์ขั้นต่ำ
    1. สำหรับ ชื่อบทบาทให้ใช้หลักการตั้งชื่อที่แนะนำในตอนต้นของส่วนนี้เพื่อตั้งชื่อบทบาท SageMakerStudioExecutionRole_data-engineer
    2. สำหรับ แท็กเพิ่ม userprofilename คีย์และ data-engineer ค่า
    3. Choose สร้างบทบาท.
    4. หากต้องการเพิ่มนโยบายที่เหลือ ใน บทบาท หน้า เลือกชื่อบทบาทที่คุณเพิ่งสร้างขึ้น
    5. ภายใต้ สิทธิ์ให้ลบนโยบาย AmazonSageMakerFullAccess
    6. เกี่ยวกับ แนบนโยบายการอนุญาต เลือกนโยบายที่จัดการโดย AWS AwsGlueSessionUserRestrictedServiceRole และนโยบายที่จัดการโดยลูกค้า SageMakerExecutionPolicy และ SageMakerAdminPolicy ที่คุณสร้างขึ้น
    7. Choose แนบนโยบาย.
    8. แก้ไข ความสัมพันธ์ที่ไว้วางใจในบทบาทของคุณ:
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Effect":"Allow",
             "Principal":{
                "Service":[
                   "glue.amazonaws.com",
                   "sagemaker.amazonaws.com"
                ]
             },
             "Action":"sts:AssumeRole"
          }
       ]
    }

  8. สร้างบทบาท IAM สำหรับ SageMaker สำหรับนักวิทยาศาสตร์ข้อมูล (นักวิทยาศาสตร์ข้อมูล) ซึ่งใช้เป็นบทบาทการดำเนินการของโปรไฟล์ผู้ใช้ที่สอดคล้องกัน
    1. สำหรับ ชื่อบทบาทตั้งชื่อบทบาท SageMakerStudioExecutionRole_data-scientist
    2. สำหรับ แท็กให้เพิ่ม userprofilename คีย์และค่า data-scientist
    3. Choose สร้างบทบาท.
    4. หากต้องการเพิ่มนโยบายที่เหลือ ใน บทบาท หน้า เลือกชื่อบทบาทที่คุณเพิ่งสร้างขึ้น
    5. ภายใต้ สิทธิ์ให้ลบนโยบาย AmazonSageMakerFullAccess
    6. เกี่ยวกับ แนบนโยบายการอนุญาต เลือกนโยบายที่จัดการโดย AWS AwsGlueSessionUserRestrictedServiceRole และนโยบายที่จัดการโดยลูกค้า SageMakerExecutionPolicy ที่คุณสร้างขึ้น
    7. Choose แนบนโยบาย.
    8. แก้ไข ความสัมพันธ์ที่ไว้วางใจในบทบาทของคุณ:
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Effect":"Allow",
             "Principal":{
                "Service":[
                   "glue.amazonaws.com",
                   "sagemaker.amazonaws.com"
                ]
             },
             "Action":"sts:AssumeRole"
          }
       ]
    }

กำหนดค่าโปรไฟล์ผู้ใช้ SageMaker

เพื่อสร้างโปรไฟล์ผู้ใช้ SageMaker ของคุณด้วย studiouserid แท็ก ทำตามขั้นตอนต่อไปนี้:

  1. ใช้ AWS CLI หรือ CloudShell เพื่อสร้างโปรไฟล์ผู้ใช้ Studio สำหรับวิศวกรข้อมูล (ระบุ ID บัญชีและ ID โดเมน Studio ของคุณในรหัสต่อไปนี้):
    aws sagemaker create-user-profile --domain-id  --user-profile-name data-engineer --tags Key=studiouserid,Value=data-engineer --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_data-engineer

  2. ทำขั้นตอนซ้ำเพื่อสร้างโปรไฟล์ผู้ใช้สำหรับนักวิทยาศาสตร์ข้อมูล โดยแทนที่รหัสบัญชีและรหัสโดเมน Studio:
    aws sagemaker create-user-profile --domain-id  --user-profile-name data-scientist --tags Key=studiouserid,Value=data-scientist --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_data-scientist

สร้างบัคเก็ต S3 และอัปโหลดชุดข้อมูลตัวอย่าง

ในส่วนนี้ คุณจะสร้างบัคเก็ต S3 สองอัน ที่เก็บข้อมูลแรกมีชุดข้อมูลตัวอย่างที่เกี่ยวข้องกับการตลาดบนเว็บ นักวิทยาศาสตร์ข้อมูลใช้บัคเก็ตที่สองเพื่อจัดเก็บเอาต์พุตจากงานด้านวิศวกรรมฟีเจอร์ และชุดข้อมูลเอาต์พุตนี้ใช้เพื่อฝึกโมเดล ML

ขั้นแรก สร้างบัคเก็ต S3 สำหรับข้อมูลอินพุต:

  1. ดาวน์โหลด ชุดข้อมูล.
  2. บนคอนโซล Amazon S3 ให้เลือก บุ้งกี๋ ในบานหน้าต่างนำทาง
  3. Choose สร้างที่เก็บข้อมูล.
  4. สำหรับ ภูมิภาคให้เลือกภูมิภาคที่มีโดเมน SageMaker ซึ่งมีโปรไฟล์ผู้ใช้ที่คุณสร้างขึ้น
  5. สำหรับ ชื่อถังป้อน blog-studio-pii-dataset-.
  6. Choose สร้างที่เก็บข้อมูล.
  7. เลือกบัคเก็ตที่คุณสร้างและเลือก อัพโหลด.
  8. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร เลือกไฟล์ ส่วนเลือก เพิ่มไฟล์ และอัปโหลดชุดข้อมูลที่คุณดาวน์โหลด
    ตอนนี้คุณสร้างบัคเก็ตสำหรับข้อมูลเอาต์พุต:
  9. เกี่ยวกับ บุ้งกี๋ หน้าให้เลือก สร้างที่เก็บข้อมูล.
  10. สำหรับ ภูมิภาคให้เลือกภูมิภาคที่มีโดเมน SageMaker ซึ่งมีโปรไฟล์ผู้ใช้ที่คุณสร้างขึ้น
  11. สำหรับ ชื่อถังป้อน blog-studio-output-.
  12. Choose สร้างที่เก็บข้อมูล.

สร้างฐานข้อมูลและตาราง AWS Glue

ในส่วนนี้ คุณจะสร้างฐานข้อมูล AWS Glue และตารางสำหรับชุดข้อมูล

  1. บนคอนโซล Lake Formation ภายใต้ แคตตาล็อกข้อมูล ในบานหน้าต่างนำทาง ให้เลือก ฐานข้อมูล.
  2. Choose เพิ่มฐานข้อมูล.
  3. สำหรับ Nameป้อนการสาธิต
  4. Choose สร้างฐานข้อมูล.
  5. ภายใต้ แคตตาล็อกข้อมูลเลือก ตาราง.
  6. สำหรับ Nameป้อน web_marketing.
  7. สำหรับ ฐานข้อมูลให้เลือก demo.
  8. สำหรับ รวมเส้นทางป้อนเส้นทางของบัคเก็ต S3 ของคุณเพื่อป้อนข้อมูล
  9. สำหรับ การจัดหมวดหมู่เลือก CSV.
  10. ภายใต้ schemaเลือก อัปโหลดสคีมา.
  11. ป้อนอาร์เรย์ JSON ต่อไปนี้ลงในกล่องข้อความ:
    [
       {
          "Name":"lastcampaignactivity",
          "Type":"string"
       },
       {
          "Name":"pageviewspervisit",
          "Type":"double"
       },
       {
          "Name":"totaltimeonwebsite",
          "Type":"bigint"
       },
       {
          "Name":"totalwebvisits",
          "Type":"bigint"
       },
       {
          "Name":"attendedmarketingevent",
          "Type":"string"
       },
       {
          "Name":"organicsearch",
          "Type":"string"
       },
       {
          "Name":"viewedadvertisement",
          "Type":"string"
       },
       {
          "Name":"leadsource",
          "Type":"string"
       },
       {
          "Name":"jobrole",
          "Type":"string"
       },
       {
          "Name":"contactnotes",
          "Type":"string"
       },
       {
          "Name":"leadprofile",
          "Type":"string"
       },
       {
          "Name":"usedpromo",
          "Type":"string"
       },
       {
          "Name":"donotreachout",
          "Type":"boolean"
       },
       {
          "Name":"city",
          "Type":"string"
       },
       {
          "Name":"converted",
          "Type":"bigint"
       },
       {
          "Name":"region",
          "Type":"string"
       },
       {
          "Name":"phone_number",
          "Type":"string"
       }
    ]

  12. Choose อัพโหลด.
  13. Choose ส่ง.
  14. ภายใต้ รายละเอียดตารางเลือก แก้ไขตาราง.
  15. ภายใต้ คุณสมบัติของตารางเลือก เพิ่ม.
  16. สำหรับ คีย์ป้อน skip.header.line.countและสำหรับ ความคุ้มค่า, ป้อน 1
  17. Choose ลด.

กำหนดค่าสิทธิ์การก่อตัวของทะเลสาบ

ในส่วนนี้ คุณได้ตั้งค่าสิทธิ์การสร้างทะเลสาบเพื่ออนุญาตบทบาท IAM SageMakerStudioExecutionRole_data-engineer เพื่อสร้างฐานข้อมูลและลงทะเบียนตำแหน่ง S3 ภายใน Lake Formation

ขั้นแรก ลงทะเบียนตำแหน่ง data lake เพื่อจัดการตารางภายใต้ตำแหน่งที่ตั้งในสิทธิ์การสร้าง Lake:

  1. Choose ที่ตั้งของ Data Lake.
  2. Choose ลงทะเบียนสถานที่.
  3. สำหรับ เส้นทาง Amazon S3ป้อน s3://blog-studio-pii-dataset-/ (ที่เก็บข้อมูลที่มีชุดข้อมูล)
  4. Choose ลงทะเบียนสถานที่.
    ตอนนี้คุณให้สิทธิ์ฐานข้อมูล Lake Formation และตารางกับบทบาท IAM SageMakerStudioExecutionRole_data-engineer และ SageMakerStudioExecutionRole_data-scientistขั้นแรก ให้อนุญาตฐานข้อมูลสำหรับ SageMakerStudioExecutionRole_data-engineer:
  5. ภายใต้ สิทธิ์เลือก สิทธิ์ในทะเลสาบข้อมูล.
  6. ภายใต้ การอนุญาตข้อมูลเลือก ให้.
  7. สำหรับ ครูใหญ่เลือก ผู้ใช้และบทบาท IAMและเลือกบทบาท SageMakerStudioExecutionRole_data-engineer.
  8. สำหรับ แท็กนโยบายหรือทรัพยากรแคตตาล็อกเลือก แหล่งข้อมูลแคตตาล็อกข้อมูลที่มีชื่อ.
  9. สำหรับ ฐานข้อมูลเลือกการสาธิต
  10. สำหรับ สิทธิ์ฐานข้อมูล เลือก ยิ่งใหญ่.
  11. Choose ให้.
    ถัดไป ให้สิทธิ์ตารางสำหรับ SageMakerStudioExecutionRole_data-engineer:
  12. ภายใต้ การอนุญาตข้อมูลเลือก ให้.
  13. สำหรับ ครูใหญ่เลือก ผู้ใช้และบทบาท IAMและเลือกบทบาท SageMakerStudioExecutionRole_data-engineer.
  14. สำหรับ แท็กนโยบายหรือทรัพยากรแคตตาล็อกเลือก แหล่งข้อมูลแคตตาล็อกข้อมูลที่มีชื่อ.
  15. สำหรับ ฐานข้อมูลเลือก demo.
  16. สำหรับ ตารางเลือก web_marketing.
  17. สำหรับ ตาราง สิทธิ์ เลือก ยิ่งใหญ่.
  18. สำหรับ รับได้ สิทธิ์ เลือก ยิ่งใหญ่.
  19. Choose ให้.
    สุดท้าย ให้สิทธิ์ฐานข้อมูลสำหรับ SageMakerStudioExecutionRole_data-scientist:
  20. ภายใต้ การอนุญาตข้อมูลเลือก ให้.
  21. สำหรับ ครูใหญ่เลือก ผู้ใช้และบทบาท IAMและเลือกบทบาท SageMakerStudioExecutionRole_data-scientist.
  22. สำหรับ แท็กนโยบายหรือทรัพยากรแคตตาล็อกเลือก แหล่งข้อมูลแคตตาล็อกข้อมูลที่มีชื่อ.
  23. สำหรับ ฐานข้อมูลเลือก demo.
  24. สำหรับ สิทธิ์ฐานข้อมูล เลือก บรรยาย.
  25. Choose ให้.

เกี่ยวกับผู้เขียน

วิศวกรรมฟีเจอร์ขนาดใหญ่พร้อมการปกป้องข้อมูลที่ละเอียดอ่อนโดยใช้เซสชันเชิงโต้ตอบของ AWS Glue และ Amazon SageMaker Studio PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ประวีณกุมาร เป็นสถาปนิกโซลูชันการวิเคราะห์ของ AWS ที่มีความเชี่ยวชาญในการออกแบบ สร้าง และนำแพลตฟอร์มข้อมูลและการวิเคราะห์สมัยใหม่ไปใช้งานโดยใช้บริการบนระบบคลาวด์ ความสนใจของเขาคือเทคโนโลยีไร้เซิร์ฟเวอร์ คลังข้อมูลบนคลาวด์สมัยใหม่ การสตรีม และแอปพลิเคชัน ML

วิศวกรรมฟีเจอร์ขนาดใหญ่พร้อมการปกป้องข้อมูลที่ละเอียดอ่อนโดยใช้เซสชันเชิงโต้ตอบของ AWS Glue และ Amazon SageMaker Studio PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

โนริทากะ เซกิยามะ เป็น Principal Big Data Architect ในทีม AWS Glue เขาสนุกกับการทำงานร่วมกับทีมต่างๆ เพื่อให้ได้ผลลัพธ์เช่นโพสต์นี้ ในเวลาว่าง เขาชอบเล่นวิดีโอเกมกับครอบครัว

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS