ลูกค้า AWS ใช้โครงสร้างพื้นฐานเป็นรหัส (IaC) เพื่อออกแบบ พัฒนา และจัดการโครงสร้างพื้นฐานระบบคลาวด์ของตน IaC ทำให้มั่นใจได้ว่าโครงสร้างพื้นฐานและบริการของลูกค้าสอดคล้องกัน ปรับขยายได้ และผลิตซ้ำได้ ในขณะที่สามารถปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดในด้านการพัฒนา (DevOps)
วิธีหนึ่งที่เป็นไปได้ในการจัดการโครงสร้างพื้นฐานและบริการของ AWS ด้วย IaC คือ terraformซึ่งช่วยให้นักพัฒนาสามารถจัดระเบียบโครงสร้างพื้นฐานในโมดูลรหัสที่ใช้ซ้ำได้ แง่มุมนี้มีความสำคัญมากขึ้นในด้านการเรียนรู้ของเครื่อง (ML) การพัฒนาและจัดการไปป์ไลน์ ML รวมถึงการฝึกอบรมและการอนุมานด้วย Terraform เป็น IaC ช่วยให้คุณปรับขนาดสำหรับกรณีการใช้งาน ML หรือภูมิภาคต่างๆ ได้อย่างง่ายดาย โดยไม่ต้องพัฒนาโครงสร้างพื้นฐานตั้งแต่เริ่มต้น นอกจากนี้ ยังให้ความสอดคล้องกันสำหรับโครงสร้างพื้นฐาน (เช่น ประเภทและขนาดอินสแตนซ์) สำหรับการฝึกอบรมและการอนุมานในการใช้งานท่อ ML ที่แตกต่างกัน ซึ่งช่วยให้คุณกำหนดเส้นทางคำขอและการรับส่งข้อมูลไปยังที่ต่างๆ ได้ อเมซอน SageMaker ปลายทาง
ในโพสต์นี้ เราจะแสดงวิธีปรับใช้และจัดการไปป์ไลน์ ML โดยใช้ Terraform และ Amazon SageMaker
ภาพรวมโซลูชัน
โพสต์นี้ให้โค้ดและแนะนำขั้นตอนที่จำเป็นในการปรับใช้โครงสร้างพื้นฐาน AWS สำหรับไปป์ไลน์ ML ด้วย Terraform สำหรับการฝึกโมเดลและการอนุมานโดยใช้ Amazon SageMaker ไปป์ไลน์ ML ได้รับการจัดการผ่าน ฟังก์ชันขั้นตอนของ AWS เพื่อประสานขั้นตอนต่าง ๆ ที่ใช้ในไปป์ไลน์ ML ดังแสดงในรูปต่อไปนี้
Step Functions เริ่มต้น AWS แลมบ์ดา สร้างรหัสงานเฉพาะ ซึ่งจะใช้เมื่อเริ่มงานฝึกอบรม SageMaker Step Functions ยังสร้างแบบจำลอง การกำหนดค่าจุดสิ้นสุด และจุดสิ้นสุดที่ใช้สำหรับการอนุมาน ทรัพยากรเพิ่มเติมรวมถึงต่อไปนี้:
- AWS Identity และการจัดการการเข้าถึง บทบาทและนโยบาย (IAM) ที่แนบมากับทรัพยากรเพื่อให้สามารถโต้ตอบกับทรัพยากรอื่นๆ ได้
- บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) บัคเก็ตสำหรับข้อมูลการฝึกและเอาต์พุตโมเดล
- An การลงทะเบียน Amazon Elastic Container พื้นที่เก็บข้อมูล (Amazon ECR) สำหรับ นักเทียบท่า รูปภาพที่มีตรรกะการฝึกอบรมและการอนุมาน
โค้ดที่เกี่ยวข้องกับ ML สำหรับการฝึกอบรมและการอนุมานด้วยอิมเมจ Docker อาศัยงานที่มีอยู่เป็นหลักดังต่อไปนี้ พื้นที่เก็บข้อมูล GitHub.
ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชัน:
เราแนะนำคุณผ่านขั้นตอนระดับสูงดังต่อไปนี้:
- ปรับใช้โครงสร้างพื้นฐาน AWS ของคุณด้วย Terraform
- ส่งอิมเมจ Docker ของคุณไปที่ Amazon ECR
- เรียกใช้ไปป์ไลน์ ML
- เรียกใช้จุดสิ้นสุดของคุณ
โครงสร้างที่เก็บ
คุณสามารถค้นหาที่เก็บที่มีรหัสและข้อมูลที่ใช้สำหรับโพสต์นี้ในต่อไปนี้ พื้นที่เก็บข้อมูล GitHub.
ที่เก็บประกอบด้วยไดเร็กทอรีต่อไปนี้:
/terraform
– ประกอบด้วยโฟลเดอร์ย่อยดังต่อไปนี้:./infrastructure
– มีไฟล์ main.tf ที่เรียกโมดูลไปป์ไลน์ ML นอกเหนือจากการประกาศตัวแปรที่เราใช้ในการปรับใช้โครงสร้างพื้นฐาน./ml-pipeline-module
– มีโมดูลไปป์ไลน์ Terraform ML ซึ่งเราสามารถนำมาใช้ซ้ำได้
/src
– ประกอบด้วยโฟลเดอร์ย่อยดังต่อไปนี้:./container
– มีโค้ดตัวอย่างสำหรับการฝึกอบรมและการอนุมานพร้อมคำจำกัดความสำหรับอิมเมจ Docker./lambda_function
– มีรหัส Python สำหรับการสร้างการกำหนดค่าฟังก์ชัน Lambda เช่น ID งานเฉพาะสำหรับงานฝึกอบรม SageMaker
/data
- มีไฟล์ดังต่อไปนี้:./iris.csv
– มีข้อมูลสำหรับการฝึกอบรมโมเดล ML
เบื้องต้น
สำหรับคำแนะนำนี้ คุณควรมีข้อกำหนดเบื้องต้นต่อไปนี้:
- บัญชี AWS
- terraform เวอร์ชัน 0.13.5 หรือสูงกว่า
- อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS (AWS CLI) เวอร์ชัน 2
- หลาม 3.7 ขึ้นไป
- นักเทียบท่า
ปรับใช้โครงสร้างพื้นฐาน AWS ของคุณด้วย Terraform
ในการปรับใช้ไปป์ไลน์ ML คุณต้องปรับตัวแปรและชื่อสองสามตัวตามความต้องการของคุณ รหัสสำหรับขั้นตอนนี้อยู่ใน /terraform
ไดเรกทอรี
เมื่อเริ่มต้นครั้งแรก ให้เปิดไฟล์ terraform/infrastructure/terraform.tfvars
และปรับตัวแปร ชื่อโครงการ ให้กับชื่อโครงการของคุณ นอกเหนือจากตัวแปร ภูมิภาค หากคุณต้องการปรับใช้ในภูมิภาคอื่น คุณยังสามารถเปลี่ยนตัวแปรเพิ่มเติม เช่น ประเภทอินสแตนซ์สำหรับการฝึกอบรมและการอนุมาน
จากนั้นใช้คำสั่งต่อไปนี้เพื่อปรับใช้โครงสร้างพื้นฐานกับ Terraform:
ตรวจสอบผลลัพธ์และตรวจสอบให้แน่ใจว่าทรัพยากรที่วางแผนไว้ปรากฏอย่างถูกต้อง และยืนยันด้วย ใช่ ในขั้นตอนนำไปใช้หากทุกอย่างถูกต้อง จากนั้นไปที่คอนโซล Amazon ECR (หรือตรวจสอบผลลัพธ์ของ Terraform ในเทอร์มินัล) และรับ URL สำหรับที่เก็บ ECR ของคุณที่คุณสร้างผ่าน Terraform
เอาต์พุตควรมีลักษณะคล้ายกับเอาต์พุตที่แสดงต่อไปนี้ รวมถึง URL ที่เก็บ ECR:
ส่งอิมเมจ Docker ของคุณไปที่ Amazon ECR
เพื่อให้ ML ไปป์ไลน์และ SageMaker ฝึกและจัดเตรียมตำแหน่งข้อมูล SageMaker สำหรับการอนุมาน คุณต้องจัดเตรียมอิมเมจ Docker และจัดเก็บไว้ใน Amazon ECR คุณสามารถค้นหาตัวอย่างได้ในไดเร็กทอรี src/container
. หากคุณใช้โครงสร้างพื้นฐาน AWS จากขั้นตอนก่อนหน้าแล้ว คุณสามารถพุชอิมเมจ Docker ตามที่อธิบายไว้ หลังจากอิมเมจ Docker ของคุณได้รับการพัฒนา คุณสามารถดำเนินการต่อไปนี้และส่งไปยัง Amazon ECR (ปรับ URL ของ Amazon ECR ตามความต้องการของคุณ):
หากคุณใช้โครงสร้างพื้นฐาน AWS กับ Terraform แล้ว คุณสามารถพุชการเปลี่ยนแปลงของโค้ดและอิมเมจ Docker ไปยัง Amazon ECR ได้โดยตรงโดยไม่ต้องปรับใช้ผ่าน Terraform อีกครั้ง
เรียกใช้ไปป์ไลน์ ML
หากต้องการฝึกและรันไปป์ไลน์ ML ให้ไปที่คอนโซล Step Functions และเริ่มการใช้งาน คุณสามารถตรวจสอบความคืบหน้าของแต่ละขั้นตอนในการแสดงภาพของเครื่องสถานะ คุณยังสามารถตรวจสอบความคืบหน้าของงานฝึกอบรม SageMaker และสถานะของตำแหน่งข้อมูล SageMaker ของคุณได้
หลังจากที่คุณรันเครื่องสถานะใน Step Functions สำเร็จแล้ว คุณจะเห็นว่าตำแหน่งข้อมูล SageMaker ถูกสร้างขึ้นแล้ว บนคอนโซล SageMaker เลือก การอนุมาน ในบานหน้าต่างนำทาง จากนั้น ปลายทาง. อย่าลืมรอให้สถานะเปลี่ยนเป็น InService
เรียกใช้จุดสิ้นสุดของคุณ
ในการเรียกใช้จุดสิ้นสุดของคุณ (ในตัวอย่างนี้ สำหรับชุดข้อมูล iris) คุณสามารถใช้สคริปต์ Python ต่อไปนี้กับ AWS SDK สำหรับ Python (Boto3). คุณสามารถทำได้จากสมุดบันทึก SageMaker หรือฝังข้อมูลโค้ดต่อไปนี้ในฟังก์ชัน Lambda:
ทำความสะอาด
คุณสามารถทำลายโครงสร้างพื้นฐานที่สร้างโดย Terraform ด้วยคำสั่ง terraform destroy แต่คุณต้องลบข้อมูลและไฟล์ในบัคเก็ต S3 ก่อน นอกจากนี้ จุดสิ้นสุดของ SageMaker (หรือจุดสิ้นสุดของ SageMaker หลายจุดหากรันหลายครั้ง) จะถูกสร้างขึ้นผ่าน Step Functions และไม่ได้รับการจัดการผ่าน Terraform ซึ่งหมายความว่าการปรับใช้เกิดขึ้นเมื่อรันไปป์ไลน์ ML ด้วย Step Functions ดังนั้น ตรวจสอบให้แน่ใจว่าคุณได้ลบจุดสิ้นสุดของ SageMaker หรือจุดสิ้นสุดที่สร้างผ่านไปป์ไลน์ Step Functions ML ด้วยเพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่จำเป็น ทำตามขั้นตอนต่อไปนี้:
- บนคอนโซล Amazon S3 ให้ลบชุดข้อมูลในบัคเก็ตการฝึกอบรม S3
- ลบโมเดลทั้งหมดที่คุณฝึกผ่าน ML ไปป์ไลน์ในบัคเก็ตโมเดล S3 ไม่ว่าจะผ่านคอนโซล Amazon S3 หรือ AWS CLI
- ทำลายโครงสร้างพื้นฐานที่สร้างผ่าน Terraform:
- ลบตำแหน่งข้อมูล SageMaker การกำหนดค่าตำแหน่งข้อมูล และโมเดลที่สร้างผ่าน Step Functions บนคอนโซล SageMaker หรือผ่าน AWS CLI
สรุป
ยินดีด้วย! คุณได้ปรับใช้ไปป์ไลน์ ML โดยใช้ SageMaker กับ Terraform โซลูชันตัวอย่างนี้แสดงวิธีที่คุณสามารถปรับใช้โครงสร้างพื้นฐานและบริการของ AWS สำหรับไปป์ไลน์ ML ในแบบที่ใช้ซ้ำได้ สิ่งนี้ทำให้คุณสามารถปรับขนาดสำหรับกรณีการใช้งานหรือภูมิภาคต่างๆ และเปิดใช้งานการฝึกอบรมและการปรับใช้โมเดล ML ได้ด้วยคลิกเดียวในลักษณะที่สอดคล้องกัน นอกจากนี้ คุณสามารถเรียกใช้ ML ไปป์ไลน์ได้หลายครั้ง เช่น เมื่อมีข้อมูลใหม่หรือคุณต้องการเปลี่ยนรหัสอัลกอริทึม คุณยังสามารถเลือกที่จะกำหนดเส้นทางคำขอหรือทราฟฟิกไปยังจุดสิ้นสุด SageMaker ต่างๆ
ฉันขอแนะนำให้คุณสำรวจการเพิ่มคุณลักษณะด้านความปลอดภัยและนำแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดมาใช้ตามความต้องการของคุณและมาตรฐานของบริษัทที่เป็นไปได้ นอกจากนี้ การฝังโซลูชันนี้ลงในไปป์ไลน์ CI/CD ของคุณจะช่วยให้คุณมีความสามารถเพิ่มเติมในการปรับใช้และสร้างแนวทางปฏิบัติและมาตรฐานที่ดีที่สุดของ DevOps ตามความต้องการของคุณ
เกี่ยวกับผู้เขียน
โอลิเวอร์ โซลลิโคเฟอร์ เป็นนักวิทยาศาสตร์ข้อมูลที่ Amazon Web Services เขาช่วยให้ลูกค้าองค์กรทั่วโลกสามารถสร้าง ฝึกฝน และปรับใช้โมเดลแมชชีนเลิร์นนิง ตลอดจนจัดการวงจรชีวิตของโมเดล ML ด้วย MLOps นอกจากนี้ เขายังสร้างและออกแบบโซลูชันระบบคลาวด์ที่เกี่ยวข้อง
- "
- 100
- 7
- เข้า
- ตาม
- ข้าม
- การปฏิบัติ
- นอกจากนี้
- เพิ่มเติม
- ขั้นตอนวิธี
- ทั้งหมด
- แล้ว
- อเมซอน
- Amazon Web Services
- อื่น
- เข้าใกล้
- สถาปัตยกรรม
- AREA
- ใช้ได้
- AWS
- กำลัง
- ที่ดีที่สุด
- ปฏิบัติที่ดีที่สุด
- ร่างกาย
- ชายแดน
- สร้าง
- สร้าง
- ความสามารถในการ
- กรณี
- CD
- เปลี่ยนแปลง
- Choose
- เมฆ
- โครงสร้างพื้นฐานคลาวด์
- รหัส
- บริษัท
- องค์ประกอบ
- ปลอบใจ
- ภาชนะ
- มี
- ค่าใช้จ่าย
- ที่สร้างขึ้น
- สร้าง
- ลูกค้า
- ลูกค้า
- ข้อมูล
- นักวิทยาศาสตร์ข้อมูล
- ปรับใช้
- นำไปใช้
- ปรับใช้
- การใช้งาน
- อธิบาย
- ออกแบบ
- ทำลาย
- ทำลาย
- พัฒนา
- พัฒนา
- นักพัฒนา
- ที่กำลังพัฒนา
- พัฒนาการ
- ต่าง
- โดยตรง
- นักเทียบท่า
- อย่างง่ายดาย
- ทำให้สามารถ
- ส่งเสริม
- ปลายทาง
- Enterprise
- ทุกอย่าง
- ตัวอย่าง
- ที่มีอยู่
- สำรวจ
- ร้านแฟชั่นเกาหลี
- คุณสมบัติ
- รูป
- ชื่อจริง
- ครั้งแรก
- ปฏิบัติตาม
- ดังต่อไปนี้
- ฟังก์ชัน
- ต่อไป
- การสร้าง
- เหตุการณ์ที่
- มี
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- เอกลักษณ์
- ภาพ
- การดำเนินงาน
- การดำเนินการ
- ความสำคัญ
- ประกอบด้วย
- รวมถึง
- รวมทั้ง
- ขึ้น
- โครงสร้างพื้นฐาน
- อินพุต
- ปฏิสัมพันธ์
- IT
- การสัมภาษณ์
- ล่าสุด
- การเรียนรู้
- Line
- เครื่อง
- เรียนรู้เครื่อง
- จัดการ
- การจัดการ
- การจัดการ
- ML
- แบบ
- โมเดล
- หลาย
- ชื่อ
- การเดินเรือ
- จำเป็น
- สมุดบันทึก
- เปิด
- การดำเนินการ
- ใบสั่ง
- อื่นๆ
- นโยบาย
- เป็นไปได้
- ที่มีศักยภาพ
- โครงการ
- ให้
- ให้
- กรุ
- ขอ
- การร้องขอ
- ความต้องการ
- แหล่งข้อมูล
- คำตอบ
- เส้นทาง
- วิ่ง
- วิ่ง
- ที่ปรับขนาดได้
- ขนาด
- นักวิทยาศาสตร์
- SDK
- ความปลอดภัย
- บริการ
- คล้ายคลึงกัน
- ง่าย
- ขนาด
- ของแข็ง
- ทางออก
- โซลูชัน
- ระยะ
- มาตรฐาน
- เริ่มต้น
- เริ่มต้น
- สถานะ
- Status
- การเก็บรักษา
- จัดเก็บ
- ประสบความสำเร็จ
- สถานีปลายทาง
- ดังนั้น
- ตลอด
- เวลา
- การจราจร
- การฝึกอบรม
- เป็นเอกลักษณ์
- ใช้
- การสร้างภาพ
- รอ
- เว็บ
- บริการเว็บ
- ในขณะที่
- ไม่มี
- งาน