การนำไปใช้งานบนคลาวด์: AWS SageMaker
SageMaker Model, EndpointConfig, Endpoint การอนุมานแบบเรียลไทม์ และการแปลงข้อมูลเป็นชุด
การนำไปใช้งานบนคลาวด์: AWS SageMaker เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่เลือก SageMaker
Amazon SageMaker คือบริการแบบมีการจัดการสำหรับฝึกและนำโมเดล ML ไปใช้งาน แทนที่จะจัดเตรียมเซิร์ฟเวอร์และตัวกระจายโหลดด้วยตนเอง คุณเพียงอธิบายโมเดล แล้ว SageMaker จะจัดเตรียมปลายทาง HTTPS ที่ปรับขนาดได้ให้เบื้องหลัง
องค์ประกอบสามอย่าง
การนำโมเดลไปใช้งานด้วย SageMaker ต้องมีสามสิ่ง:
- image_uri ของคอนเทนเนอร์ (อิมเมจให้บริการของคุณใน ECR หรืออิมเมจเฟรมเวิร์กที่มีมาให้)
- น้ำหนักที่ฝึกแล้วในรูปแบบ model_data ซึ่งเป็นไฟล์ tar.gz ใน S3
- บทบาท IAM ที่อนุญาตให้ SageMaker เข้าถึงทรัพยากรเหล่านั้น
การกำหนดโมเดล
ออบเจ็กต์ sagemaker.Model เชื่อมอิมเมจคอนเทนเนอร์เข้ากับอาร์ติแฟกต์ของโมเดลใน S3
import sagemaker
from sagemaker.model import Model
model = Model(
image_uri="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-model:latest",
model_data="s3://my-bucket/models/model.tar.gz",
role="arn:aws:iam::123456789012:role/SageMakerRole",
)สิ่งที่อยู่ใน model.tar.gz
SageMaker จะดาวน์โหลดและแตกไฟล์ model_data ไปไว้ที่ /opt/ml/model ภายในคอนเทนเนอร์เมื่อเริ่มต้นทำงาน โค้ดให้บริการของคุณจะอ่านน้ำหนักจากตำแหน่งนั้น โดยทั่วไปไฟล์เก็บถาวรจะมีไฟล์โมเดลที่บันทึกไว้พร้อมทรัพยากรสำหรับการประมวลผลล่วงหน้า
# model.tar.gz contents
# model.pt
# tokenizer.json
# config.jsonการนำปลายทางแบบเรียลไทม์ไปใช้งาน
model.deploy จะเปิดใช้งานอินสแตนซ์อย่างน้อยหนึ่งรายการอยู่เบื้องหลังปลายทาง HTTPS แบบถาวร คุณเลือก instance_type และจำนวนอินสแตนซ์เริ่มต้นได้
predictor = model.deploy(
initial_instance_count=1,
instance_type="ml.m5.xlarge",
endpoint_name="my-model-endpoint",
)การเลือกประเภทอินสแตนซ์
ประเภทอินสแตนซ์เป็นตัวกำหนดต้นทุนและเวลาแฝง:
ml.m5.*CPU สำหรับใช้งานทั่วไป ราคาประหยัดสำหรับโมเดลขนาดเล็กml.c5.*ปรับให้เหมาะกับงานประมวลผลml.g4dn.*/ml.g5.*GPU สำหรับการอนุมานเชิงการเรียนรู้เชิงลึก
เลือกอินสแตนซ์ให้เหมาะกับโมเดล การใช้ GPU กับโมเดล scikit-learn ขนาดเล็กเป็นการสิ้นเปลือง
การเรียกใช้ predict()
เมื่อนำไปใช้งานแล้ว predictor.predict() จะส่งข้อมูลไปยังปลายทางและส่งคืนผลการอนุมาน SageMaker จะจัดลำดับข้อมูลคำขอและส่งต่อไปยังอินสแตนซ์ที่กำลังทำงานอยู่
result = predictor.predict({
"instances": [[5.1, 3.5, 1.4, 0.2]]
})
print(result)การล้างปลายทาง
ปลายทางแบบเรียลไทม์จะคิดค่าบริการเป็นรายวินาทีขณะที่ทำงานอยู่ ควรลบปลายทางที่ไม่ต้องการใช้แล้วเสมอ มิฉะนั้นจะมีค่าใช้จ่ายสะสมแม้ไม่มีการรับส่งข้อมูล
predictor.delete_endpoint()Batch Transform สำหรับงานออฟไลน์
หากต้องการประมวลผลคะแนนชุดข้อมูลขนาดใหญ่เพียงครั้งเดียว (ไม่ใช่การให้บริการที่มีเวลาแฝงต่ำ) ให้ใช้ การแปลงแบบกลุ่ม SageMaker จะเปิดใช้งานอินสแตนซ์ ประมวลผลชุดข้อมูลทั้งหมดใน S3 เขียนผลลัพธ์กลับไปยัง S3 แล้วปิดอินสแตนซ์ ไม่มีปลายทางถาวรและไม่มีค่าใช้จ่ายจากการรอใช้งาน
การเรียกใช้ Batch Transform
คุณสร้างตัวแปลงจากโมเดลและระบุข้อมูลนำเข้าที่อยู่ใน S3
transformer = model.transformer(
instance_count=1,
instance_type="ml.m5.xlarge",
output_path="s3://my-bucket/predictions/",
)
transformer.transform(
data="s3://my-bucket/input/batch.csv",
content_type="text/csv",
)
transformer.wait()เรียลไทม์เทียบกับแบบกลุ่ม
เลือกตามลักษณะงาน:
- ปลายทางแบบเรียลไทม์: คำขอต่อเนื่องที่มีเวลาแฝงต่ำ (เช่น API แนะนำรายการ)
- การแปลงแบบกลุ่ม: การประมวลผลคะแนนชุดข้อมูลขนาดใหญ่เป็นระยะ (เช่น การคาดการณ์การเลิกใช้บริการทุกคืน)
การประมวลผลแบบกลุ่มมีต้นทุนถูกกว่ามากเมื่อคุณไม่ต้องการคำตอบทันที
ตรวจสอบอย่างรวดเร็ว
คุณควรใช้การแปลงแบบกลุ่มของ SageMaker แทนปลายทางแบบเรียลไทม์เมื่อใด
สรุปทบทวน
คุณได้นำโมเดลไปใช้งานบน AWS SageMaker:
sagemaker.Modelเชื่อม image_uri เข้ากับ model_data ใน S3model.deployสร้างปลายทางแบบเรียลไทม์ด้วย instance_type ที่เลือกpredictor.predict()ส่งคำขอการอนุมาน- การแปลงแบบกลุ่ม รองรับงานออฟไลน์ขนาดใหญ่ด้วยต้นทุนต่ำ
- ลบปลายทางที่ไม่มีการใช้งานเสมอเพื่อหลีกเลี่ยงค่าใช้จ่าย
คำถามที่พบบ่อย
บทเรียน “การนำไปใช้งานบนคลาวด์: AWS SageMaker” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การนำไปใช้งานบนคลาวด์: AWS SageMaker” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนำไปใช้งานบนคลาวด์: AWS SageMaker”
SageMaker Model, EndpointConfig, Endpoint การอนุมานแบบเรียลไทม์ และการแปลงข้อมูลเป็นชุด คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การนำไปใช้งานบนคลาวด์: AWS SageMaker” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การบรรจุโมเดลแมชชีนเลิร์นนิงลงคอนเทนเนอร์ด้วย Docker
- การนำไปใช้งานบนคลาวด์: AWS SageMaker
- การให้บริการประสิทธิภาพสูงด้วย Triton Inference Server
- การปรับขนาดและปรับขนาดอัตโนมัติของจุดปลายทางแบบจำลอง