การสร้างแพลตฟอร์มการดำเนินการเรียนรู้ของเครื่อง (MLOps) ในสภาพแวดล้อมที่พัฒนาอย่างรวดเร็วของปัญญาประดิษฐ์ (AI) และการเรียนรู้ของเครื่อง (ML) สำหรับองค์กรเป็นสิ่งจำเป็นสำหรับการเชื่อมช่องว่างระหว่างการทดลองทางวิทยาศาสตร์ข้อมูลและการปรับใช้อย่างราบรื่น ในขณะเดียวกันก็ตอบสนองความต้องการเกี่ยวกับประสิทธิภาพของโมเดล ความปลอดภัยและการปฏิบัติตามข้อกำหนด
เพื่อให้เป็นไปตามข้อกำหนดด้านกฎระเบียบและการปฏิบัติตามข้อกำหนด ข้อกำหนดหลักเมื่อออกแบบแพลตฟอร์มดังกล่าวคือ:
- ที่อยู่ข้อมูลดริฟท์
- ตรวจสอบประสิทธิภาพของโมเดล
- อำนวยความสะดวกในการฝึกโมเดลใหม่โดยอัตโนมัติ
- จัดให้มีกระบวนการสำหรับการอนุมัติแบบจำลอง
- เก็บโมเดลไว้ในสภาพแวดล้อมที่ปลอดภัย
ในโพสต์นี้ เราจะแสดงวิธีสร้างเฟรมเวิร์ก MLOps เพื่อตอบสนองความต้องการเหล่านี้ในขณะที่ใช้บริการของ AWS และชุดเครื่องมือของบริษัทอื่นร่วมกัน โซลูชันนี้ประกอบด้วยการตั้งค่าหลายสภาพแวดล้อมพร้อมการฝึกอบรมโมเดลอัตโนมัติ การอนุมานแบบกลุ่ม และการตรวจสอบด้วย การตรวจสอบโมเดล Amazon SageMaker, การกำหนดเวอร์ชันโมเดลด้วย การลงทะเบียนโมเดล SageMakerและไปป์ไลน์ CI/CD เพื่ออำนวยความสะดวกในการโปรโมตโค้ด ML และไปป์ไลน์ข้ามสภาพแวดล้อมโดยใช้ อเมซอน SageMaker, อเมซอน EventBridge, บริการแจ้งเตือนแบบง่ายของ Amazon (อเมซอน เอส3) ฮาชิคอร์ป เทอร์ราฟอร์ม, GitHubและ เจนกิ้นส์ ซีไอ/ซีดี เราสร้างแบบจำลองเพื่อทำนายความรุนแรง (ไม่ร้ายแรงหรือร้ายแรง) ของรอยโรคแมมโมแกรมที่ได้รับการฝึกร่วมกับ อัลกอริทึม XGBoost โดยใช้ของสาธารณะ การตรวจแมมโมแกรม UCI ชุดข้อมูลและปรับใช้โดยใช้กรอบงาน MLOps คำแนะนำแบบเต็มพร้อมรหัสมีอยู่ใน พื้นที่เก็บข้อมูล GitHub.
ภาพรวมโซลูชัน
แผนภาพสถาปัตยกรรมต่อไปนี้แสดงภาพรวมของเฟรมเวิร์ก MLOps พร้อมด้วยองค์ประกอบหลักดังต่อไปนี้:
- กลยุทธ์หลายบัญชี – สภาพแวดล้อมที่แตกต่างกันสองแบบ (dev และ prod) ได้รับการตั้งค่าในบัญชี AWS สองบัญชีที่แตกต่างกันตามแนวทางปฏิบัติที่ดีที่สุดของ AWS Well-Architected และบัญชีที่สามได้รับการตั้งค่าในการลงทะเบียนโมเดลส่วนกลาง:
- สภาพแวดล้อมการพัฒนา – ที่ไหน โดเมน Amazon SageMaker Studio ได้รับการตั้งค่าเพื่อให้สามารถพัฒนาโมเดล การฝึกโมเดล และการทดสอบไปป์ไลน์ ML (ฝึกฝนและการอนุมาน) ก่อนที่โมเดลจะพร้อมที่จะได้รับการเลื่อนระดับสู่สภาพแวดล้อมที่สูงขึ้น
- สภาพแวดล้อมของผลิตภัณฑ์ – โดยที่ไปป์ไลน์ ML จาก dev ได้รับการเลื่อนขั้นเป็นขั้นตอนแรก และกำหนดเวลาและตรวจสอบเมื่อเวลาผ่านไป
- การลงทะเบียนโมเดลกลาง - รีจิสทรีโมเดล Amazon SageMaker ได้รับการตั้งค่าในบัญชี AWS แยกต่างหากเพื่อติดตามเวอร์ชันของโมเดลที่สร้างขึ้นในสภาพแวดล้อม dev และ prod
- CI/CD และการควบคุมแหล่งที่มา – การปรับใช้ไปป์ไลน์ ML ในสภาพแวดล้อมได้รับการจัดการผ่าน CI/CD ที่ตั้งค่าด้วย Jenkins พร้อมด้วยการควบคุมเวอร์ชันที่จัดการผ่าน GitHub การเปลี่ยนแปลงโค้ดที่ผสานเข้ากับสภาพแวดล้อมที่สอดคล้องกัน สาขา git จะทริกเกอร์เวิร์กโฟลว์ CI/CD เพื่อทำการเปลี่ยนแปลงที่เหมาะสมกับสภาพแวดล้อมเป้าหมายที่กำหนด
- การคาดการณ์แบทช์ ด้วยการตรวจสอบโมเดล – ไปป์ไลน์อนุมานที่สร้างขึ้นด้วย ท่อส่ง Amazon SageMaker ทำงานตามกำหนดเวลาเพื่อสร้างการคาดการณ์พร้อมกับการตรวจสอบโมเดลโดยใช้ SageMaker Model Monitor เพื่อตรวจจับการเบี่ยงเบนของข้อมูล
- กลไกการฝึกอบรมขึ้นใหม่อัตโนมัติ – ไปป์ไลน์การฝึกอบรมที่สร้างด้วย SageMaker Pipelines จะถูกทริกเกอร์ทุกครั้งที่ตรวจพบการเบี่ยงเบนของข้อมูลในไปป์ไลน์การอนุมาน หลังจากผ่านการฝึกอบรมแล้ว แบบจำลองจะถูกลงทะเบียนในทะเบียนแบบจำลองกลางเพื่อขออนุมัติโดยผู้อนุมัติแบบจำลอง เมื่อได้รับการอนุมัติ เวอร์ชันแบบจำลองที่อัปเดตจะถูกนำมาใช้เพื่อสร้างการคาดการณ์ผ่านไปป์ไลน์การอนุมาน
- โครงสร้างพื้นฐานเป็นรหัส – โครงสร้างพื้นฐานเป็นรหัส (IaC) สร้างขึ้นโดยใช้ ฮาชิคอร์ป เทอร์ราฟอร์มรองรับการกำหนดเวลาของไปป์ไลน์การอนุมานด้วย EventBridge ซึ่งจะทริกเกอร์ไปป์ไลน์ของรถไฟตาม กฎของ EventBridge และส่งการแจ้งเตือนโดยใช้ บริการแจ้งเตือนแบบง่ายของ Amazon (อเมซอน SNS) หัวข้อ.
ขั้นตอนการทำงาน MLOps ประกอบด้วยขั้นตอนต่อไปนี้:
- เข้าถึงโดเมน SageMaker Studio ในบัญชีการพัฒนา โคลนพื้นที่เก็บข้อมูล GitHub ดำเนินกระบวนการพัฒนาโมเดลโดยใช้โมเดลตัวอย่างที่ให้มา และสร้างเทรนและไปป์ไลน์การอนุมาน
- เรียกใช้ไปป์ไลน์ Train ในบัญชีการพัฒนา ซึ่งจะสร้างสิ่งประดิษฐ์ของโมเดลสำหรับเวอร์ชันของโมเดลที่ได้รับการฝึกอบรม และลงทะเบียนโมเดลลงใน SageMaker Model Registry ในบัญชีการลงทะเบียนโมเดลส่วนกลาง
- อนุมัติโมเดลใน SageMaker Model Registry ในบัญชีรีจิสทรีโมเดลส่วนกลาง
- พุชโค้ด (ไปป์ไลน์การฝึกและการอนุมาน และโค้ด Terraform IaC เพื่อสร้างกำหนดการ EventBridge, กฎ EventBridge และหัวข้อ SNS) ลงในสาขาฟีเจอร์ของที่เก็บ GitHub สร้างคำขอดึงเพื่อรวมโค้ดเข้ากับสาขาหลักของที่เก็บ GitHub
- ทริกเกอร์ไปป์ไลน์ Jenkins CI/CD ซึ่งตั้งค่าด้วยพื้นที่เก็บข้อมูล GitHub ไปป์ไลน์ CI/CD ปรับใช้โค้ดในบัญชี prod เพื่อสร้างไปป์ไลน์การฝึกและอนุมานพร้อมกับโค้ด Terraform เพื่อจัดเตรียมกำหนดการ EventBridge, กฎ EventBridge และหัวข้อ SNS
- ไปป์ไลน์การอนุมานถูกกำหนดให้ทำงานทุกวัน ในขณะที่ไปป์ไลน์ของรถไฟได้รับการตั้งค่าให้ทำงานเมื่อใดก็ตามที่ตรวจพบข้อมูลเบี่ยงเบนไปจากไปป์ไลน์อนุมาน
- การแจ้งเตือนจะถูกส่งผ่านหัวข้อ SNS เมื่อใดก็ตามที่เกิดความล้มเหลวกับเส้นทางรถไฟหรือเส้นทางการอนุมาน
เบื้องต้น
สำหรับวิธีแก้ปัญหานี้ คุณควรมีข้อกำหนดเบื้องต้นต่อไปนี้:
- บัญชี AWS สามบัญชี (บัญชี dev, prod และบัญชีการลงทะเบียนโมเดลกลาง)
- โดเมน SageMaker Studio ที่ตั้งค่าในแต่ละบัญชี AWS ทั้งสามบัญชี (ดู ออนบอร์ดไปที่ Amazon SageMaker Studio หรือดูวิดีโอ ออนบอร์ดอย่างรวดเร็วไปยัง Amazon SageMaker Studio สำหรับคำแนะนำในการตั้งค่า)
- Jenkins (เราใช้ Jenkins 2.401.1) พร้อมสิทธิ์ผู้ดูแลระบบที่ติดตั้งบน AWS
- ติดตั้ง Terraform เวอร์ชัน 1.5.5 หรือใหม่กว่าบนเซิร์ฟเวอร์ Jenkins
สำหรับโพสต์นี้เราทำงานใน us-east-1
ภูมิภาคที่จะปรับใช้โซลูชัน
จัดเตรียมคีย์ KMS ในบัญชี dev และ prod
ขั้นตอนแรกของเราคือการสร้าง บริการจัดการคีย์ AWS คีย์ (AWS KMS) ในบัญชี dev และ prod
สร้างคีย์ KMS ในบัญชี dev และให้สิทธิ์การเข้าถึงบัญชี prod
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างคีย์ KMS ในบัญชี dev:
- บนคอนโซล AWS KMS ให้เลือก คีย์ที่จัดการโดยลูกค้า ในบานหน้าต่างนำทาง
- Choose สร้างคีย์.
- สำหรับ ประเภทของกุญแจให้เลือก สมมาตร.
- สำหรับ การใช้คีย์ให้เลือก เข้ารหัสและถอดรหัส.
- Choose ถัดไป.
- ป้อนหมายเลขบัญชีการผลิตเพื่อให้บัญชีการผลิตสามารถเข้าถึงคีย์ KMS ที่จัดเตรียมไว้ในบัญชี dev นี่เป็นขั้นตอนที่จำเป็น เนื่องจากในครั้งแรกที่โมเดลได้รับการฝึกฝนในบัญชี dev อาร์ติแฟกต์ของโมเดลจะถูกเข้ารหัสด้วยคีย์ KMS ก่อนที่จะเขียนลงในบัคเก็ต S3 ในบัญชีรีจิสตรีโมเดลส่วนกลาง บัญชีที่ใช้งานจริงจำเป็นต้องเข้าถึงคีย์ KMS เพื่อถอดรหัสอาร์ติแฟกต์ของโมเดลและเรียกใช้ไปป์ไลน์การอนุมาน
- Choose ถัดไป และสร้างคีย์ของคุณให้เสร็จสิ้น
หลังจากจัดเตรียมคีย์แล้ว ควรมองเห็นคีย์ได้บนคอนโซล AWS KMS
สร้างคีย์ KMS ในบัญชีผลิตภัณฑ์
ทำตามขั้นตอนเดียวกันในส่วนก่อนหน้าเพื่อสร้างคีย์ KMS ที่ลูกค้าจัดการในบัญชีผลิตภัณฑ์ คุณสามารถข้ามขั้นตอนเพื่อแชร์คีย์ KMS ไปยังบัญชีอื่นได้
ตั้งค่าบัคเก็ตโมเดลอาร์ติแฟกต์ S3 ในบัญชีรีจิสทรีโมเดลส่วนกลาง
สร้างบัคเก็ต S3 ที่คุณเลือกด้วยสตริง sagemaker
ในหลักการตั้งชื่อซึ่งเป็นส่วนหนึ่งของชื่อของบัคเก็ตในบัญชีการลงทะเบียนโมเดลส่วนกลาง และอัปเดตนโยบายบัคเก็ตบนบัคเก็ต S3 เพื่อให้สิทธิ์จากทั้งบัญชี dev และบัญชี prod เพื่ออ่านและเขียนสิ่งประดิษฐ์ของโมเดลลงในบัคเก็ต S3
รหัสต่อไปนี้คือนโยบายบัคเก็ตที่จะอัปเดตบนบัคเก็ต S3:
ตั้งค่าบทบาท IAM ในบัญชี AWS ของคุณ
ขั้นตอนต่อไปคือการตั้งค่า AWS Identity และการจัดการการเข้าถึง บทบาท (IAM) ในบัญชี AWS ของคุณพร้อมสิทธิ์ AWS แลมบ์ดา, SageMaker และเจนกินส์
บทบาทการดำเนินการแลมบ์ดา
จัดตั้งขึ้น บทบาทการดำเนินการแลมบ์ดา ในบัญชี dev และ prod ซึ่งจะถูกใช้โดยฟังก์ชัน Lambda ที่ทำงานเป็นส่วนหนึ่งของ ขั้นตอนแลมบ์ดาไปป์ไลน์ของ SageMaker. ขั้นตอนนี้จะเรียกใช้จากไปป์ไลน์การอนุมานเพื่อดึงโมเดลที่ได้รับอนุมัติล่าสุด โดยใช้การอนุมานที่ถูกสร้างขึ้น สร้างบทบาท IAM ในบัญชี dev และ prod ด้วยรูปแบบการตั้งชื่อ arn:aws:iam::<account-id>:role/lambda-sagemaker-role
และแนบนโยบาย IAM ต่อไปนี้:
- นโยบาย 1 – สร้างนโยบายอินไลน์ชื่อ
cross-account-model-registry-access
ซึ่งให้สิทธิ์เข้าถึงแพ็คเกจโมเดลที่ตั้งค่าในการลงทะเบียนโมเดลในบัญชีกลาง: - นโยบาย 2 - แนบ AmazonSageMakerFullAccessซึ่งเป็น นโยบายที่มีการจัดการของ AWS ที่ให้สิทธิ์การเข้าถึง SageMaker อย่างเต็มรูปแบบ นอกจากนี้ยังให้ทางเลือกในการเข้าถึงบริการที่เกี่ยวข้อง เช่น การปรับขนาดอัตโนมัติของแอปพลิเคชัน AWS, อเมซอน S3, การลงทะเบียน Amazon Elastic Container (Amazon ECR) และ บันทึก Amazon CloudWatch.
- นโยบาย 3 - แนบ AWSแลมบ์ดา_FullAccessซึ่งเป็นนโยบายที่ได้รับการจัดการของ AWS ที่ให้สิทธิ์การเข้าถึง Lambda, คุณสมบัติคอนโซล Lambda และบริการของ AWS อื่นๆ ที่เกี่ยวข้องโดยสมบูรณ์
- นโยบาย 4 – ใช้นโยบายความน่าเชื่อถือ IAM ต่อไปนี้สำหรับบทบาท IAM:
บทบาทการดำเนินการของ SageMaker
โดเมน SageMaker Studio ที่ตั้งค่าในบัญชี dev และ prod ควรมีบทบาทในการดำเนินการที่เกี่ยวข้องกัน ซึ่งสามารถพบได้ใน การตั้งค่าโดเมน ในหน้ารายละเอียดโดเมน ดังที่แสดงในภาพหน้าจอต่อไปนี้ บทบาทนี้ใช้เพื่อรันงานการฝึกอบรม ประมวลผลงาน และอื่นๆ ภายในโดเมน SageMaker Studio
เพิ่มนโยบายต่อไปนี้ให้กับบทบาทการดำเนินการ SageMaker ในทั้งสองบัญชี:
- นโยบาย 1 – สร้างนโยบายอินไลน์ชื่อ
cross-account-model-artifacts-s3-bucket-access
ซึ่งให้สิทธิ์เข้าถึงบัคเก็ต S3 ในบัญชีการลงทะเบียนโมเดลส่วนกลาง ซึ่งจัดเก็บอาร์ติแฟกต์ของโมเดล: - นโยบาย 2 – สร้างนโยบายอินไลน์ชื่อ
cross-account-model-registry-access
ซึ่งให้การเข้าถึงแพ็คเกจโมเดลในการลงทะเบียนโมเดลในบัญชีการลงทะเบียนโมเดลส่วนกลาง: - นโยบาย 3 – สร้างนโยบายอินไลน์ชื่อ
kms-key-access-policy
ซึ่งให้สิทธิ์เข้าถึงคีย์ KMS ที่สร้างขึ้นในขั้นตอนก่อนหน้า ระบุรหัสบัญชีที่ใช้สร้างนโยบายและรหัสคีย์ KMS ที่สร้างขึ้นในบัญชีนั้น - นโยบาย 4 - แนบ AmazonSageMakerFullAccessซึ่งเป็น นโยบายที่มีการจัดการของ AWS ที่ให้สิทธิ์การเข้าถึง SageMaker เต็มรูปแบบและเลือกการเข้าถึงบริการที่เกี่ยวข้อง
- นโยบาย 5 - แนบ AWSแลมบ์ดา_FullAccessซึ่งเป็นนโยบายที่ได้รับการจัดการของ AWS ที่ให้สิทธิ์การเข้าถึง Lambda, คุณสมบัติคอนโซล Lambda และบริการของ AWS อื่นๆ ที่เกี่ยวข้องโดยสมบูรณ์
- นโยบาย 6 - แนบ CloudWatchEventsFullAccessซึ่งเป็นนโยบายที่ได้รับการจัดการของ AWS ที่ให้สิทธิ์การเข้าถึง CloudWatch Events อย่างเต็มรูปแบบ
- นโยบาย 7 – เพิ่มนโยบายความน่าเชื่อถือ IAM ต่อไปนี้สำหรับบทบาท IAM การดำเนินการของ SageMaker:
- นโยบาย 8 (เฉพาะสำหรับบทบาทการดำเนินการ SageMaker ในบัญชีผลิตภัณฑ์) – สร้างนโยบายอินไลน์ชื่อ
cross-account-kms-key-access-policy
ซึ่งให้สิทธิ์เข้าถึงคีย์ KMS ที่สร้างขึ้นในบัญชี dev สิ่งนี้จำเป็นสำหรับไปป์ไลน์การอนุมานเพื่ออ่านอาร์ติแฟกต์ของโมเดลที่จัดเก็บไว้ในบัญชีการลงทะเบียนโมเดลส่วนกลาง โดยที่อาร์ติแฟกต์ของโมเดลจะถูกเข้ารหัสโดยใช้คีย์ KMS จากบัญชี dev เมื่อมีการสร้างเวอร์ชันแรกของโมเดลจากบัญชี dev
บทบาทเจนกินส์ข้ามบัญชี
ตั้งค่าบทบาท IAM ที่เรียกว่า cross-account-jenkins-role
ในบัญชีผลิตภัณฑ์ ซึ่ง Jenkins จะถือว่าปรับใช้ไปป์ไลน์ ML และโครงสร้างพื้นฐานที่เกี่ยวข้องในบัญชีผลิตภัณฑ์
เพิ่มนโยบาย IAM ที่มีการจัดการต่อไปนี้ให้กับบทบาท:
CloudWatchFullAccess
AmazonS3FullAccess
AmazonSNSFullAccess
AmazonSageMakerFullAccess
AmazonEventBridgeFullAccess
AWSLambda_FullAccess
อัปเดตความสัมพันธ์ที่เชื่อถือได้ในบทบาทเพื่อให้สิทธิ์แก่บัญชี AWS ที่โฮสต์เซิร์ฟเวอร์ Jenkins:
อัปเดตสิทธิ์ในบทบาท IAM ที่เชื่อมโยงกับเซิร์ฟเวอร์ Jenkins
สมมติว่า Jenkins ได้รับการตั้งค่าบน AWS ให้อัปเดตบทบาท IAM ที่เกี่ยวข้องกับ Jenkins เพื่อเพิ่มนโยบายต่อไปนี้ ซึ่งจะทำให้ Jenkins มีสิทธิ์เข้าถึงเพื่อปรับใช้ทรัพยากรในบัญชีผลิตภัณฑ์:
- นโยบาย 1 – สร้างนโยบายอินไลน์ต่อไปนี้ชื่อ
assume-production-role-policy
: - นโยบาย 2 – แนบ
CloudWatchFullAccess
นโยบาย IAM ที่ได้รับการจัดการ
ตั้งค่ากลุ่มบรรจุภัณฑ์แบบจำลองในบัญชีรีจิสทรีแบบจำลองส่วนกลาง
จากโดเมน SageMaker Studio ในบัญชีการลงทะเบียนโมเดลส่วนกลาง ให้สร้างกลุ่มแพ็คเกจโมเดลที่เรียกว่า mammo-severity-model-package
ใช้ข้อมูลโค้ดต่อไปนี้ (ซึ่งคุณสามารถเรียกใช้โดยใช้สมุดบันทึก Jupyter):
ตั้งค่าการเข้าถึงแพ็คเกจโมเดลสำหรับบทบาท IAM ในบัญชี dev และ prod
จัดเตรียมการเข้าถึงบทบาทการดำเนินการของ SageMaker ที่สร้างขึ้นในบัญชี dev และ prod เพื่อให้คุณสามารถลงทะเบียนเวอร์ชันของโมเดลภายในแพ็คเกจโมเดลได้ mammo-severity-model-package
ในการลงทะเบียนโมเดลกลางจากทั้งสองบัญชี จากโดเมน SageMaker Studio ในบัญชีรีจิสทรีโมเดลส่วนกลาง ให้เรียกใช้โค้ดต่อไปนี้ในสมุดบันทึก Jupyter:
ตั้งค่าเจนกินส์
ในส่วนนี้ เรากำหนดค่า Jenkins เพื่อสร้างไปป์ไลน์ ML และโครงสร้างพื้นฐาน Terraform ที่เกี่ยวข้องในบัญชีผลิตภัณฑ์ผ่านไปป์ไลน์ Jenkins CI/CD
- บนคอนโซล CloudWatch ให้สร้างกลุ่มบันทึกชื่อ
jenkins-log
ภายในบัญชี prod ที่ Jenkins จะพุชบันทึกจากไปป์ไลน์ CI/CD ควรสร้างกลุ่มบันทึกในภูมิภาคเดียวกันกับที่ตั้งเซิร์ฟเวอร์ Jenkins - ติดตั้งปลั๊กอินต่อไปนี้ บนเซิร์ฟเวอร์เจนกินส์ของคุณ:
- ตั้งค่าข้อมูลรับรอง AWS ใน Jenkins โดยใช้บทบาท IAM ข้ามบัญชี (
cross-account-jenkins-role
) ที่กำหนดไว้ในบัญชีผลิตภัณฑ์ - สำหรับ การกำหนดค่าระบบเลือก AWS.
- ระบุข้อมูลรับรองและกลุ่มบันทึก CloudWatch ที่คุณสร้างไว้ก่อนหน้านี้
- ตั้งค่าข้อมูลรับรอง GitHub ภายใน Jenkins
- สร้างโครงการใหม่ในเจนกินส์
- ป้อนชื่อโครงการและเลือก ท่อ.
- เกี่ยวกับ General เลือก โครงการ GitHub และเข้าทางแยก พื้นที่เก็บข้อมูล GitHub URL
- เลือก โปรเจ็กต์นี้มีการกำหนดพารามิเตอร์.
- เกี่ยวกับ เพิ่มพารามิเตอร์ เมนูให้เลือก พารามิเตอร์สตริง.
- สำหรับ Nameป้อน
prodAccount
. - สำหรับ ค่าเริ่มต้นให้ป้อนรหัสบัญชีผลิตภัณฑ์
- ภายใต้ ตัวเลือกโครงการขั้นสูงสำหรับ คำนิยามให้เลือก สคริปต์ไปป์ไลน์จาก SCM.
- สำหรับ SCMเลือก ไป.
- สำหรับ URL ที่เก็บ,เข้าทางแยก พื้นที่เก็บข้อมูล GitHub URL
- สำหรับ หนังสือรับรองป้อนข้อมูลรับรอง GitHub ที่บันทึกไว้ใน Jenkins
- เข้าสู่
main
ใน สาขาที่จะสร้าง ขึ้นอยู่กับว่าไปป์ไลน์ CI/CD ใดที่จะถูกทริกเกอร์ - สำหรับ เส้นทางสคริปต์ป้อน
Jenkinsfile
. - Choose ลด.
ควรสร้างไปป์ไลน์ Jenkins และมองเห็นได้บนแดชบอร์ดของคุณ
จัดเตรียมบัคเก็ต S3 รวบรวมและจัดเตรียมข้อมูล
ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าบัคเก็ตและข้อมูล S3 ของคุณ:
- สร้างบัคเก็ต S3 ที่คุณเลือกด้วยสตริง
sagemaker
ในรูปแบบการตั้งชื่อซึ่งเป็นส่วนหนึ่งของชื่อบัคเก็ตในบัญชี dev และ prod เพื่อจัดเก็บชุดข้อมูลและอาร์ติแฟกต์ของโมเดล - ตั้งค่าบัคเก็ต S3 เพื่อรักษาสถานะ Terraform ในบัญชีผลิตภัณฑ์
- ดาวน์โหลดและบันทึกข้อมูลสาธารณะ การตรวจแมมโมแกรม UCI ชุดข้อมูลไปยังบัคเก็ต S3 ที่คุณสร้างไว้ก่อนหน้านี้ในบัญชี dev
- แยกและโคลนไฟล์ พื้นที่เก็บข้อมูล GitHub ภายในโดเมน SageMaker Studio ในบัญชี dev repo มีโครงสร้างโฟลเดอร์ดังต่อไปนี้:
- /environments – สคริปต์การกำหนดค่าสำหรับสภาพแวดล้อมผลิตภัณฑ์
- /mlops-infra – รหัสสำหรับการปรับใช้บริการ AWS โดยใช้รหัส Terraform
- /ท่อส่ง – รหัสสำหรับส่วนประกอบไปป์ไลน์ SageMaker
- เจนกินส์ไฟล์ – สคริปต์เพื่อปรับใช้ผ่านไปป์ไลน์ Jenkins CI/CD
- setup.py – จำเป็นต้องติดตั้งโมดูล Python ที่จำเป็นและสร้างคำสั่ง run-pipeline
- การตรวจเต้านม-ความรุนแรง-modeling.ipynb – ให้คุณสร้างและเรียกใช้เวิร์กโฟลว์ ML
- สร้างโฟลเดอร์ชื่อ data ภายในโฟลเดอร์ที่เก็บ GitHub ที่โคลนไว้ และบันทึกสำเนาของข้อมูลที่เปิดเผยต่อสาธารณะ การตรวจแมมโมแกรม UCI ชุดข้อมูล
- ติดตามสมุดบันทึก Jupyter
mammography-severity-modeling.ipynb
. - เรียกใช้โค้ดต่อไปนี้ในสมุดบันทึกเพื่อประมวลผลชุดข้อมูลล่วงหน้าและอัปโหลดไปยังบัคเก็ต S3 ในบัญชี dev:
รหัสจะสร้างชุดข้อมูลต่อไปนี้:
-
- ข้อมูล / mammo-train-dataset-part1.csv – จะใช้ฝึกโมเดลรุ่นแรก
- ข้อมูล / mammo-train-dataset-part2.csv – จะถูกใช้เพื่อฝึกโมเดลเวอร์ชันที่สองพร้อมกับชุดข้อมูล mammo-train-dataset-part1.csv
- ข้อมูล/mammo-batch-dataset.csv – จะถูกนำมาใช้เพื่อสร้างการอนุมาน
- ข้อมูล/mammo-batch-dataset-outliers.csv – จะแนะนำค่าผิดปกติในชุดข้อมูลเพื่อทำให้ไปป์ไลน์การอนุมานล้มเหลว สิ่งนี้จะช่วยให้เราสามารถทดสอบรูปแบบเพื่อทริกเกอร์การฝึกโมเดลใหม่แบบอัตโนมัติได้
- อัปโหลดชุดข้อมูล
mammo-train-dataset-part1.csv
ภายใต้คำนำหน้าmammography-severity-model/train-dataset
และอัปโหลดชุดข้อมูลmammo-batch-dataset.csv
และmammo-batch-dataset-outliers.csv
ไปที่คำนำหน้าmammography-severity-model/batch-dataset
ของบัคเก็ต S3 ที่สร้างขึ้นในบัญชี dev: - อัปโหลดชุดข้อมูล
mammo-train-dataset-part1.csv
และmammo-train-dataset-part2.csv
ภายใต้คำนำหน้าmammography-severity-model/train-dataset
ลงในบัคเก็ต S3 ที่สร้างขึ้นในบัญชีผลิตภัณฑ์ผ่านคอนโซล Amazon S3 - อัปโหลดชุดข้อมูล
mammo-batch-dataset.csv
และmammo-batch-dataset-outliers.csv
ไปที่คำนำหน้าmammography-severity-model/batch-dataset
ของบัคเก็ต S3 ในบัญชีผลิตภัณฑ์
เดินท่อส่งรถไฟฟ้า
ภายใต้ <project-name>/pipelines/train
คุณสามารถดูสคริปต์ Python ต่อไปนี้:
- สคริปต์/raw_preprocess.py – ผสานรวมกับ SageMaker Processing สำหรับวิศวกรรมคุณสมบัติ
- สคริปต์/evaluate_model.py – อนุญาตให้คำนวณโมเดลเมทริกได้ ในกรณีนี้
auc_score
- train_pipeline.py – มีโค้ดสำหรับไปป์ไลน์การฝึกโมเดล
ทำตามขั้นตอนต่อไปนี้:
- อัปโหลดสคริปต์ไปยัง Amazon S3:
- รับตัวอย่างท่อส่งรถไฟ:
- ส่งท่อส่งรถไฟและดำเนินการ:
รูปภาพต่อไปนี้แสดงการดำเนินการไปป์ไลน์การฝึกอบรมที่ประสบความสำเร็จ ขั้นตอนสุดท้ายในไปป์ไลน์จะลงทะเบียนแบบจำลองในบัญชีการลงทะเบียนแบบจำลองส่วนกลาง
อนุมัติโมเดลในการลงทะเบียนโมเดลส่วนกลาง
เข้าสู่ระบบบัญชีการลงทะเบียนโมเดลส่วนกลาง และเข้าถึงการลงทะเบียนโมเดล SageMaker ภายในโดเมน SageMaker Studio เปลี่ยนสถานะเวอร์ชันแบบจำลองเป็นอนุมัติ
เมื่อได้รับการอนุมัติแล้ว ควรเปลี่ยนสถานะในเวอร์ชันโมเดล
เรียกใช้ไปป์ไลน์การอนุมาน (ไม่บังคับ)
ไม่จำเป็นต้องทำขั้นตอนนี้ แต่คุณยังสามารถเรียกใช้ไปป์ไลน์การอนุมานเพื่อสร้างการคาดการณ์ในบัญชีผู้พัฒนาได้
ภายใต้ <project-name>/pipelines/inference
คุณสามารถดูสคริปต์ Python ต่อไปนี้:
- สคริปต์/lambda_helper.py – ดึงเวอร์ชันโมเดลที่ได้รับอนุมัติล่าสุดจากบัญชีการลงทะเบียนโมเดลส่วนกลางโดยใช้ขั้นตอน SageMaker Pipelines Lambda
- inference_pipeline.py – มีโค้ดสำหรับไปป์ไลน์การอนุมานโมเดล
ทำตามขั้นตอนต่อไปนี้:
- อัปโหลดสคริปต์ไปยังบัคเก็ต S3:
- รับอินสแตนซ์ไปป์ไลน์การอนุมานโดยใช้ชุดข้อมูลแบตช์ปกติ:
- ส่งไปป์ไลน์การอนุมานและรัน:
รูปต่อไปนี้แสดงการรันไปป์ไลน์การอนุมานที่ประสบความสำเร็จ ขั้นตอนสุดท้ายในไปป์ไลน์จะสร้างการคาดการณ์และจัดเก็บไว้ในบัคเก็ต S3 เราใช้ MonitorBatchTransformขั้นตอน เพื่อตรวจสอบอินพุตในงานการแปลงแบบแบตช์ หากมีค่าผิดปกติไปป์ไลน์การอนุมานจะเข้าสู่สถานะล้มเหลว
เรียกใช้ไปป์ไลน์ Jenkins
พื้นที่ environment/
โฟลเดอร์ภายในที่เก็บ GitHub มีสคริปต์การกำหนดค่าสำหรับบัญชีผลิตภัณฑ์ ทำตามขั้นตอนต่อไปนี้เพื่อทริกเกอร์ไปป์ไลน์ Jenkins:
- อัปเดตสคริปต์การกำหนดค่า
prod.tfvars.json
ขึ้นอยู่กับทรัพยากรที่สร้างขึ้นในขั้นตอนก่อนหน้า: - เมื่ออัปเดตแล้ว ให้พุชโค้ดลงในที่เก็บ GitHub ที่แยกออกมา และรวมโค้ดเข้ากับสาขาหลัก
- ไปที่ Jenkins UI เลือก สร้างด้วยพารามิเตอร์และทริกเกอร์ไปป์ไลน์ CI/CD ที่สร้างขึ้นในขั้นตอนก่อนหน้า
เมื่อการสร้างเสร็จสมบูรณ์และสำเร็จ คุณสามารถเข้าสู่ระบบบัญชี prod และดูกระบวนการฝึกอบรมและไปป์ไลน์การอนุมานภายในโดเมน SageMaker Studio
นอกจากนี้ คุณจะเห็นกฎ EventBridge สามกฎบนคอนโซล EventBridge ในบัญชีผลิตภัณฑ์:
- กำหนดเวลาไปป์ไลน์การอนุมาน
- ส่งการแจ้งเตือนความล้มเหลวบนท่อส่งรถไฟ
- เมื่อไปป์ไลน์การอนุมานไม่สามารถทริกเกอร์ไปป์ไลน์ของรถไฟได้ ให้ส่งการแจ้งเตือน
สุดท้ายนี้ คุณจะเห็นหัวข้อการแจ้งเตือน SNS บนคอนโซล Amazon SNS ที่ส่งการแจ้งเตือนทางอีเมล คุณจะได้รับอีเมลขอให้คุณยืนยันการยอมรับอีเมลแจ้งเตือนเหล่านี้
ทดสอบไปป์ไลน์การอนุมานโดยใช้ชุดข้อมูลแบบแบตช์โดยไม่มีค่าผิดปกติ
เพื่อทดสอบว่าไปป์ไลน์การอนุมานทำงานตามที่คาดไว้ในบัญชี prod หรือไม่ เราสามารถเข้าสู่ระบบบัญชี prod และทริกเกอร์ไปป์ไลน์การอนุมานโดยใช้ชุดข้อมูลแบบแบตช์โดยไม่มีค่าผิดปกติ
เรียกใช้ไปป์ไลน์ผ่านคอนโซล SageMaker Pipelines ในโดเมน SageMaker Studio ของบัญชี prod โดยที่ transform_input
จะเป็น S3 URI ของชุดข้อมูลที่ไม่มีค่าผิดปกติ (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset.csv
).
ไปป์ไลน์การอนุมานสำเร็จและเขียนการคาดคะเนกลับไปยังบัคเก็ต S3
ทดสอบไปป์ไลน์การอนุมานโดยใช้ชุดข้อมูลแบบแบตช์ที่มีค่าผิดปกติ
คุณสามารถรันไปป์ไลน์การอนุมานได้โดยใช้ชุดข้อมูลแบบแบตช์ที่มีค่าผิดปกติเพื่อตรวจสอบว่ากลไกการฝึกอบรมใหม่แบบอัตโนมัติทำงานตามที่คาดไว้หรือไม่
เรียกใช้ไปป์ไลน์ผ่านคอนโซล SageMaker Pipelines ในโดเมน SageMaker Studio ของบัญชี prod โดยที่ transform_input
จะเป็น S3 URI ของชุดข้อมูลที่มีค่าผิดปกติ (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset-outliers.csv
).
ไปป์ไลน์การอนุมานล้มเหลวตามที่คาดไว้ ซึ่งจะทริกเกอร์กฎ EventBridge ซึ่งจะทริกเกอร์ไปป์ไลน์ของรถไฟตามลำดับ
หลังจากนั้นสักครู่ คุณจะเห็นการดำเนินการใหม่ของไปป์ไลน์ Train บนคอนโซล SageMaker Pipelines ซึ่งจะเลือกชุดข้อมูล Train ที่แตกต่างกัน XNUMX ชุด (mammo-train-dataset-part1.csv
และ mammo-train-dataset-part2.csv
) อัปโหลดไปยังบัคเก็ต S3 เพื่อฝึกโมเดลอีกครั้ง
คุณจะเห็นการแจ้งเตือนที่ส่งไปยังอีเมลที่สมัครรับหัวข้อ SNS
หากต้องการใช้เวอร์ชันโมเดลที่อัปเดต ให้เข้าสู่ระบบบัญชีการลงทะเบียนโมเดลส่วนกลาง และอนุมัติเวอร์ชันโมเดล ซึ่งจะถูกเลือกในระหว่างการเรียกใช้ไปป์ไลน์การอนุมานครั้งถัดไปที่ทริกเกอร์ผ่านกฎ EventBridge ที่กำหนดเวลาไว้
แม้ว่าไปป์ไลน์การฝึกและการอนุมานจะใช้ URL ชุดข้อมูลแบบคงที่ คุณสามารถให้ URL ของชุดข้อมูลส่งไปยังไปป์ไลน์การฝึกและการอนุมานเป็นตัวแปรไดนามิก เพื่อใช้ชุดข้อมูลที่อัปเดตเพื่อฝึกโมเดลใหม่และสร้างการคาดการณ์ในสถานการณ์จริง
ทำความสะอาด
เพื่อหลีกเลี่ยงค่าใช้จ่ายในอนาคต ให้ทำตามขั้นตอนต่อไปนี้:
- ลบโดเมน SageMaker Studio ในบัญชี AWS ทั้งหมด
- ลบทรัพยากรทั้งหมดที่สร้างขึ้นภายนอก SageMaker รวมถึงบัคเก็ต S3, บทบาท IAM, กฎ EventBridge และหัวข้อ SNS ที่ตั้งค่าผ่าน Terraform ในบัญชี Prod
- ลบไปป์ไลน์ SageMaker ที่สร้างขึ้นข้ามบัญชีโดยใช้ อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS (AWS CLI)
สรุป
องค์กรมักจำเป็นต้องปรับให้สอดคล้องกับชุดเครื่องมือทั่วทั้งองค์กรเพื่อให้สามารถทำงานร่วมกันข้ามสายงานและทีมที่แตกต่างกันได้ การทำงานร่วมกันนี้ช่วยให้แน่ใจว่าแพลตฟอร์ม MLOps ของคุณสามารถปรับให้เข้ากับความต้องการทางธุรกิจที่เปลี่ยนแปลงไป และเร่งการนำ ML ไปใช้ทั่วทั้งทีม โพสต์นี้อธิบายวิธีสร้างเฟรมเวิร์ก MLOps ในการตั้งค่าหลายสภาพแวดล้อมเพื่อเปิดใช้งานการฝึกโมเดลอัตโนมัติ การอนุมานแบบแบตช์ และการตรวจสอบด้วย Amazon SageMaker Model Monitor การกำหนดเวอร์ชันโมเดลด้วย SageMaker Model Registry และการส่งเสริมโค้ด ML และไปป์ไลน์ข้ามสภาพแวดล้อมด้วย ไปป์ไลน์ CI/CD เราจัดแสดงโซลูชันนี้โดยใช้การผสมผสานระหว่างบริการของ AWS และชุดเครื่องมือของบริษัทอื่น สำหรับคำแนะนำในการใช้โซลูชันนี้ โปรดดูที่ พื้นที่เก็บข้อมูล GitHub. คุณยังสามารถขยายโซลูชันนี้ได้โดยการนำแหล่งข้อมูลและเฟรมเวิร์กการสร้างแบบจำลองของคุณเองเข้ามา
เกี่ยวกับผู้เขียน
คยาตรี กานาโกตา เป็น Sr. Machine Learning Engineer พร้อม AWS Professional Services เธอหลงใหลในการพัฒนา ปรับใช้ และอธิบายโซลูชัน AI/ ML ในโดเมนต่างๆ ก่อนหน้าบทบาทนี้ เธอเป็นผู้นำความคิดริเริ่มหลายอย่างในฐานะนักวิทยาศาสตร์ข้อมูลและวิศวกร ML กับบริษัทชั้นนำระดับโลกในด้านการเงินและการค้าปลีก เธอสำเร็จการศึกษาระดับปริญญาโทด้านวิทยาการคอมพิวเตอร์ที่เชี่ยวชาญด้าน Data Science จากมหาวิทยาลัยโคโลราโด โบลเดอร์
สุนิตา คอปปาร์ เป็นสถาปนิกอาวุโส Data Lake ที่มี AWS Professional Services เธอหลงใหลในการแก้ปัญหาที่ยุ่งยากของลูกค้าในการประมวลผลข้อมูลขนาดใหญ่ และนำเสนอโซลูชันที่สามารถปรับขนาดได้ในระยะยาว ก่อนเข้ารับตำแหน่งนี้ เธอได้พัฒนาผลิตภัณฑ์ในโดเมนอินเทอร์เน็ต โทรคมนาคม และยานยนต์ และเป็นลูกค้าของ AWS เธอสำเร็จการศึกษาระดับปริญญาโทสาขาวิทยาศาสตร์ข้อมูลจากมหาวิทยาลัยแคลิฟอร์เนีย ริเวอร์ไซด์
ศาสวาตา แดช เป็นที่ปรึกษา DevOps ที่มี AWS Professional Services เธอทำงานร่วมกับลูกค้าในด้านการดูแลสุขภาพและวิทยาศาสตร์เพื่อชีวิต การบิน และการผลิต เธอมีความหลงใหลเกี่ยวกับระบบอัตโนมัติทุกอย่าง และมีประสบการณ์ที่ครอบคลุมในการออกแบบและสร้างโซลูชันลูกค้าระดับองค์กรใน AWS นอกเหนือจากการทำงาน เธอไล่ตามความหลงใหลในการถ่ายภาพและชมพระอาทิตย์ขึ้น
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://aws.amazon.com/blogs/machine-learning/promote-pipelines-in-a-multi-environment-setup-using-amazon-sagemaker-model-registry-hashicorp-terraform-github-and-jenkins-ci-cd/
- :มี
- :เป็น
- :ไม่
- :ที่ไหน
- $ ขึ้น
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 17
- 19
- 23
- 27
- 31
- 320
- 7
- 8
- 9
- a
- เกี่ยวกับเรา
- เร่ง
- การยอมรับ
- เข้า
- ลงชื่อเข้าใช้
- บัญชี
- ข้าม
- การกระทำ
- ปรับ
- เพิ่ม
- ที่อยู่
- การบริหาร
- การนำมาใช้
- หลังจาก
- อายุ
- AI
- จัดแนว
- ทั้งหมด
- อนุญาต
- ช่วยให้
- ตาม
- ด้วย
- อเมซอน
- อเมซอน SageMaker
- Amazon Web Services
- an
- และ
- อื่น
- ใด
- การใช้งาน
- เหมาะสม
- อนุมัติ
- ได้รับการอนุมัติ
- สถาปัตยกรรม
- เป็น
- พื้นที่
- รอบ
- เทียม
- ปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ (AI)
- AS
- ขอให้
- ที่เกี่ยวข้อง
- สมมติ
- แนบ
- รถยนต์
- อัตโนมัติ
- อัตโนมัติ
- อัตโนมัติ
- ยานยนต์
- ใช้ได้
- การบิน
- หลีกเลี่ยง
- AWS
- ลูกค้า AWS
- บริการระดับมืออาชีพของ AWS
- กลับ
- ตาม
- รากฐาน
- BE
- เพราะ
- รับ
- ก่อน
- กำลัง
- ที่ดีที่สุด
- ปฏิบัติที่ดีที่สุด
- ระหว่าง
- ใหญ่
- ข้อมูลขนาดใหญ่
- ทั้งสอง
- สาขา
- การแก้
- การนำ
- สร้าง
- การก่อสร้าง
- สร้าง
- ธุรกิจ
- แต่
- by
- การคำนวณ
- แคลิฟอร์เนีย
- ที่เรียกว่า
- CAN
- กรณี
- ส่วนกลาง
- เปลี่ยนแปลง
- การเปลี่ยนแปลง
- การเปลี่ยนแปลง
- โหลด
- ตรวจสอบ
- ทางเลือก
- Choose
- รหัส
- การทำงานร่วมกัน
- รวบรวม
- โคโลราโด
- คอลัมน์
- คอลัมน์
- COM
- การผสมผสาน
- สมบูรณ์
- การปฏิบัติตาม
- ส่วนประกอบ
- ครอบคลุม
- คอมพิวเตอร์
- วิทยาการคอมพิวเตอร์
- สภาพ
- องค์ประกอบ
- ยืนยัน
- ปลอบใจ
- ผู้ให้คำปรึกษา
- ภาชนะ
- มี
- ควบคุม
- การประชุม
- แปลง
- ตรงกัน
- สร้าง
- ที่สร้างขึ้น
- การสร้าง
- หนังสือรับรอง
- ข้าม
- ลูกค้า
- โซลูชั่นสำหรับลูกค้า
- ลูกค้า
- ประจำวัน
- หน้าปัด
- ข้อมูล
- ดาต้าเลค
- วิทยาศาสตร์ข้อมูล
- นักวิทยาศาสตร์ข้อมูล
- ชุดข้อมูล
- ถอดรหัส
- ค่าเริ่มต้น
- องศา
- ปรับใช้
- ปรับใช้
- การใช้งาน
- Deploys
- การออกแบบ
- รายละเอียด
- ตรวจจับ
- ตรวจพบ
- dev
- พัฒนา
- ที่กำลังพัฒนา
- พัฒนาการ
- Dict
- ต่าง
- โดเมน
- โดเมน
- ในระหว่าง
- พลวัต
- แต่ละ
- ก่อน
- ผล
- ทั้ง
- อีเมล
- อีเมล
- ทำให้สามารถ
- ที่มีการเข้ารหัส
- วิศวกร
- เพื่อให้แน่ใจ
- เข้าสู่
- สิ่งแวดล้อม
- สภาพแวดล้อม
- จำเป็น
- เหตุการณ์
- การพัฒนา
- การปฏิบัติ
- ที่คาดหวัง
- ประสบการณ์
- อธิบาย
- อธิบาย
- ขยายออก
- อำนวยความสะดวก
- ล้มเหลว
- ล้มเหลว
- ล้มเหลว
- ความล้มเหลว
- ลักษณะ
- คุณสมบัติ
- สองสาม
- รูป
- เนื้อไม่มีมัน
- สุดท้าย
- ทางการเงิน
- เสร็จสิ้น
- บริษัท
- ชื่อจริง
- ครั้งแรก
- ดังต่อไปนี้
- สำหรับ
- พบ
- กรอบ
- กรอบ
- ราคาเริ่มต้นที่
- เติมเต็ม
- เต็ม
- ฟังก์ชัน
- การทำงาน
- อนาคต
- ช่องว่าง
- สร้าง
- สร้าง
- สร้าง
- ได้รับ
- ไป
- GitHub
- ให้
- กำหนด
- จะช่วยให้
- เหตุการณ์ที่
- Go
- ไป
- ทุน
- บัญชีกลุ่ม
- มี
- การดูแลสุขภาพ
- เธอ
- สูงกว่า
- ถือ
- โฮสติ้ง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTML
- ที่ http
- HTTPS
- ID
- เอกลักษณ์
- if
- การดำเนินการ
- นำเข้า
- in
- รวมถึง
- รวมทั้ง
- ดัชนี
- โครงสร้างพื้นฐาน
- ในขั้นต้น
- ความคิดริเริ่ม
- ปัจจัยการผลิต
- ติดตั้ง
- การติดตั้ง
- ตัวอย่าง
- คำแนะนำการใช้
- รวม
- Intelligence
- อินเทอร์เน็ต
- เข้าไป
- แนะนำ
- IT
- การสัมภาษณ์
- งาน
- jpg
- JSON
- คีย์
- กุญแจ
- ฉลาก
- ทะเลสาบ
- ภูมิประเทศ
- ต่อมา
- ล่าสุด
- การเรียนรู้
- นำ
- ใช้ประโยชน์
- ชีวิต
- วิทยาศาสตร์สิ่งมีชีวิต
- Line
- เข้าสู่ระบบ
- ระยะยาว
- เครื่อง
- เรียนรู้เครื่อง
- หลัก
- เก็บรักษา
- ทำ
- การจัดการ
- การจัดการ
- การผลิต
- ขอบ
- มวล
- ปริญญาโท
- กลไก
- ที่ประชุม
- เมนู
- ผสาน
- ตัวชี้วัด
- หายไป
- ML
- ม.ป.ป
- แบบ
- การสร้างแบบจำลอง
- โมเดล
- แก้ไข
- โมดูล
- Moments
- การตรวจสอบ
- การตรวจสอบ
- การตรวจสอบ
- ข้อมูลเพิ่มเติม
- หลาย
- ชื่อ
- ที่มีชื่อ
- การตั้งชื่อ
- การเดินเรือ
- จำเป็นต้อง
- จำเป็น
- ความต้องการ
- ใหม่
- ถัดไป
- ปกติ
- สมุดบันทึก
- การประกาศ
- การแจ้งเตือน
- จำนวน
- มึน
- of
- มักจะ
- on
- ONE
- การดำเนินการ
- or
- ใบสั่ง
- องค์กร
- อื่นๆ
- ออก
- ด้านนอก
- เกิน
- ภาพรวม
- ของตนเอง
- แพ็คเกจ
- หน้า
- อาการเจ็บปวด
- หมีแพนด้า
- บานหน้าต่าง
- ส่วนหนึ่ง
- ส่วน
- ผ่าน
- กิเลส
- หลงใหล
- แบบแผน
- การปฏิบัติ
- สิทธิ์
- การถ่ายภาพ
- เลือก
- คัดสรร
- ท่อ
- เวที
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- จุด
- นโยบาย
- นโยบาย
- โพสต์
- การปฏิบัติ
- คาดการณ์
- การคาดการณ์
- เตรียมการ
- ข้อกำหนดเบื้องต้น
- ก่อน
- หลัก
- ก่อน
- สิทธิ์
- กระบวนการ
- การประมวลผล
- การผลิต
- ผลิตภัณฑ์
- มืออาชีพ
- โครงการ
- ส่งเสริม
- การเลื่อนตำแหน่ง
- โปรโมชั่น
- ให้
- ให้
- ให้
- การให้
- บทบัญญัติ
- สาธารณชน
- ดึง
- ไล่ตาม
- ผลัก
- หลาม
- อย่างรวดเร็ว
- อย่างรวดเร็ว
- ดิบ
- อ่าน
- พร้อม
- โลกแห่งความจริง
- ภูมิภาค
- ทะเบียน
- ลงทะเบียน
- ลงทะเบียน
- รีจิสทรี
- หน่วยงานกำกับดูแล
- ที่เกี่ยวข้อง
- ความสัมพันธ์
- เอาออก
- กรุ
- ขอ
- จำเป็นต้องใช้
- ความต้องการ
- ทรัพยากร
- แหล่งข้อมูล
- คำตอบ
- ค้าปลีก
- กลับ
- ริมแม่น้ำ
- บทบาท
- บทบาท
- ราก
- กฎ
- กฎระเบียบ
- วิ่ง
- ทำงาน
- sagemaker
- ท่อส่ง SageMaker
- เดียวกัน
- ลด
- ที่บันทึกไว้
- ที่ปรับขนาดได้
- สถานการณ์
- กำหนด
- ที่กำหนดไว้
- การกำหนด
- วิทยาศาสตร์
- วิทยาศาสตร์
- นักวิทยาศาสตร์
- ต้นฉบับ
- สคริปต์
- ได้อย่างลงตัว
- ที่สอง
- Section
- ปลอดภัย
- ความปลอดภัย
- เห็น
- ส่ง
- การส่ง
- ส่ง
- ส่ง
- แยก
- เซิร์ฟเวอร์
- บริการ
- บริการ
- ชุด
- การตั้งค่า
- การติดตั้ง
- รูปร่าง
- Share
- เธอ
- น่า
- โชว์
- จัดแสดง
- แสดง
- แสดงให้เห็นว่า
- ง่าย
- เศษเล็กเศษน้อย
- So
- ทางออก
- โซลูชัน
- การแก้
- แหล่ง
- แหล่งที่มา
- ช่องว่าง
- เฉพาะ
- โดยเฉพาะ
- แยก
- สถานะ
- คำแถลง
- คงที่
- Status
- ขั้นตอน
- ขั้นตอน
- ยังคง
- จัดเก็บ
- เก็บไว้
- ร้านค้า
- เชือก
- โครงสร้าง
- สตูดิโอ
- ที่ประสบความสำเร็จ
- อย่างเช่น
- รองรับ
- เป้า
- ทีม
- โทรคมนาคม
- terraform
- ทดสอบ
- การทดสอบ
- ที่
- พื้นที่
- พวกเขา
- แล้วก็
- ที่นั่น
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- สิ่ง
- ที่สาม
- ของบุคคลที่สาม
- นี้
- สาม
- ตลอด
- เวลา
- ไปยัง
- ชุดเครื่องมือ
- ด้านบน
- หัวข้อ
- ลู่
- รถไฟ
- ผ่านการฝึกอบรม
- การฝึกอบรม
- แปลง
- เรียก
- ทริกเกอร์
- วิกฤติ
- จริง
- วางใจ
- กลับ
- สอง
- ui
- ภายใต้
- มหาวิทยาลัย
- มหาวิทยาลัยแห่งแคลิฟอร์เนีย
- บันทึก
- ให้กับคุณ
- อัปโหลด
- URL
- us
- ใช้
- มือสอง
- การใช้
- ประโยชน์
- ความคุ้มค่า
- ต่างๆ
- รุ่น
- รุ่น
- ผ่านทาง
- วีดีโอ
- มองเห็นได้
- นาฬิกา
- we
- เว็บ
- บริการเว็บ
- เมื่อ
- เมื่อไรก็ตาม
- แต่ทว่า
- ที่
- ในขณะที่
- จะ
- กับ
- ภายใน
- ไม่มี
- งาน
- ทำงาน
- เวิร์กโฟลว์
- การทำงาน
- โรงงาน
- เขียน
- เขียน
- คุณ
- ของคุณ
- YouTube
- ลมทะเล