รูปแบบการออกแบบสำหรับการอนุมานแบบอนุกรมบน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ออกแบบรูปแบบสำหรับการอนุมานแบบอนุกรมบน Amazon SageMaker

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

นอกจากนี้ ไปป์ไลน์การอนุมานแบบอนุกรมเหล่านี้ควรมีสิ่งต่อไปนี้:

  • การใช้งานที่ยืดหยุ่นและกำหนดเองได้ (การพึ่งพา อัลกอริธึม ตรรกะทางธุรกิจ และอื่นๆ)
  • ทำซ้ำได้และสม่ำเสมอสำหรับการดำเนินการผลิต
  • การยกของหนักที่ไม่แตกต่างโดยลดการจัดการโครงสร้างพื้นฐานให้เหลือน้อยที่สุด

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

ตารางต่อไปนี้สรุปกรณีการใช้งานต่างๆ สำหรับการอนุมานแบบอนุกรม ข้อควรพิจารณาในการใช้งาน และตัวเลือกต่างๆ เหล่านี้จะกล่าวถึงในโพสต์นี้

ใช้กรณี ใช้คำอธิบายกรณี ข้อควรพิจารณาเบื้องต้น ความซับซ้อนในการดำเนินการโดยรวม ตัวเลือกการใช้งานที่แนะนำ ตัวอย่างโค้ดอาร์ติแฟกต์และโน้ตบุ๊ก
ไปป์ไลน์การอนุมานแบบอนุกรม (พร้อมขั้นตอนก่อนการประมวลผลและหลังการประมวลผล) ไปป์ไลน์การอนุมานจำเป็นต้องประมวลผลข้อมูลขาเข้าล่วงหน้าก่อนที่จะเรียกใช้โมเดลที่ผ่านการฝึกอบรมเพื่อสร้างการอนุมาน และจากนั้นจึงสร้างการอนุมานภายหลังการประมวลผล เพื่อให้แอปพลิเคชันดาวน์สตรีมสามารถใช้งานได้ง่าย ใช้งานง่าย ต่ำ คอนเทนเนอร์การอนุมานโดยใช้ SageMaker Inference Toolkit ปรับใช้โมเดล PyTorch ที่ผ่านการฝึกอบรม
ไปป์ไลน์การอนุมานแบบอนุกรม (พร้อมขั้นตอนก่อนการประมวลผลและหลังการประมวลผล) ไปป์ไลน์การอนุมานจำเป็นต้องประมวลผลข้อมูลขาเข้าล่วงหน้าก่อนที่จะเรียกใช้โมเดลที่ผ่านการฝึกอบรมเพื่อสร้างการอนุมาน และจากนั้นจึงสร้างการอนุมานภายหลังการประมวลผล เพื่อให้แอปพลิเคชันดาวน์สตรีมสามารถใช้งานได้ง่าย การแยกส่วน การปรับใช้ที่ง่ายขึ้น และการอัพเกรด กลาง ไปป์ไลน์การอนุมาน SageMaker ไปป์ไลน์การอนุมานด้วยคอนเทนเนอร์แบบกำหนดเองและ xgBoost
ชุดโมเดลซีเรียล ไปป์ไลน์การอนุมานจำเป็นต้องโฮสต์และจัดเรียงโมเดลหลายตัวตามลำดับ เพื่อให้แต่ละโมเดลปรับปรุงการอนุมานที่สร้างโดยโมเดลก่อนหน้า ก่อนที่จะสร้างการอนุมานสุดท้าย การแยกส่วน การปรับใช้และการอัพเกรดที่ง่ายขึ้น ความยืดหยุ่นในการเลือกเฟรมเวิร์กโมเดล กลาง ไปป์ไลน์การอนุมาน SageMaker ไปป์ไลน์การอนุมานด้วย Scikit-learn และ Linear Learner
ไปป์ไลน์การอนุมานแบบอนุกรม (พร้อมการเรียกใช้โมเดลเป้าหมายจากกลุ่ม) ไปป์ไลน์การอนุมานจำเป็นต้องเรียกใช้โมเดลที่ปรับแต่งเฉพาะจากกลุ่มของโมเดลที่ปรับใช้ ตามลักษณะคำขอหรือสำหรับการเพิ่มประสิทธิภาพต้นทุน นอกเหนือจากงานก่อนการประมวลผลและหลังการประมวลผล การเพิ่มประสิทธิภาพต้นทุนและการปรับแต่ง จุดสูง ไปป์ไลน์การอนุมาน SageMaker พร้อมจุดปลายหลายรุ่น (MME) จุดยุติหลายรุ่นของ Amazon SageMaker โดยใช้ Linear Learner

ในส่วนต่อไปนี้ เราจะพูดถึงแต่ละกรณีการใช้งานโดยละเอียดยิ่งขึ้น

ไปป์ไลน์การอนุมานแบบอนุกรมโดยใช้คอนเทนเนอร์การอนุมาน

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

SageMaker มีตัวเลือกในการปรับแต่งคอนเทนเนอร์การอนุมาน และใช้เพื่อสร้างไปป์ไลน์การอนุมานแบบอนุกรม คอนเทนเนอร์อนุมานใช้ ชุดเครื่องมือการอนุมาน SageMaker และถูกสร้างขึ้นบน SageMaker เซิร์ฟเวอร์หลายรุ่น (MMS)ซึ่งมีกลไกที่ยืดหยุ่นในการให้บริการโมเดล ML ไดอะแกรมต่อไปนี้แสดงรูปแบบการอ้างอิงของวิธีการใช้ไปป์ไลน์การอนุมานแบบอนุกรมโดยใช้คอนเทนเนอร์การอนุมาน

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

  • input_fn() – รับผิดชอบในการดีซีเรียลไลซ์และประมวลผลข้อมูลอินพุตล่วงหน้า
  • model_fn() – รับผิดชอบในการโหลดแบบจำลองที่ได้รับการฝึกอบรมจากสิ่งประดิษฐ์ใน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3)
  • ทำนาย_fn() – รับผิดชอบในการอนุมานจากแบบจำลอง
  • เอาท์พุท_fn() – รับผิดชอบสำหรับ serializing และ postprocessing ข้อมูลผลลัพธ์ (อนุมาน)

สำหรับขั้นตอนโดยละเอียดในการปรับแต่งคอนเทนเนอร์การอนุมาน โปรดดูที่ การปรับคอนเทนเนอร์การอนุมานของคุณเอง.

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

  • ความสามัคคีสูง – ตรรกะในการประมวลผลและรูปแบบที่สอดคล้องกันขับเคลื่อนการทำงานของธุรกิจเดียวและจำเป็นต้องอยู่ร่วมกัน
  • เวลาแฝงโดยรวมต่ำ – เวลาที่ผ่านไประหว่างเมื่อมีการร้องขอการอนุมานและได้รับการตอบกลับ

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

นอกจากนี้ สำหรับกรณีการใช้งานที่ความง่ายในการใช้งานเป็นเกณฑ์สำคัญ คอนเทนเนอร์การอนุมานสามารถช่วยได้ โดยมีขั้นตอนการประมวลผลต่างๆ ของไปป์ไลน์ที่จัดตำแหน่งร่วมกันภายในคอนเทนเนอร์เดียวกัน

ไปป์ไลน์การอนุมานแบบอนุกรมโดยใช้ไปป์ไลน์การอนุมานของ SageMaker

อีกรูปแบบหนึ่งของกรณีการใช้ไปป์ไลน์การอนุมานอนุกรมจำเป็นต้องมีการแยกส่วนที่ชัดเจนระหว่างขั้นตอนต่างๆ ในไปป์ไลน์ (เช่น การประมวลผลข้อมูลล่วงหน้า การสร้างการอนุมาน การประมวลผลข้อมูลภายหลัง และการจัดรูปแบบและการทำให้เป็นอนุกรม) ซึ่งอาจเกิดจากสาเหตุหลายประการ:

  • decoupling – ขั้นตอนต่างๆ ของไปป์ไลน์มีวัตถุประสงค์ที่กำหนดไว้อย่างชัดเจนและจำเป็นต้องรันบนคอนเทนเนอร์ที่แยกจากกันเนื่องจากการพึ่งพาที่เกี่ยวข้อง สิ่งนี้ยังช่วยให้ไปป์ไลน์มีโครงสร้างที่ดี
  • กรอบ – ขั้นตอนต่างๆ ของไปป์ไลน์ใช้เฟรมเวิร์กที่เหมาะสมกับวัตถุประสงค์เฉพาะ (เช่น scikit หรือ Spark ML) ดังนั้นจึงจำเป็นต้องรันบนคอนเทนเนอร์แยกต่างหาก
  • การแยกทรัพยากร – ขั้นตอนต่างๆ ของไปป์ไลน์มีความต้องการการใช้ทรัพยากรที่แตกต่างกัน ดังนั้นจึงจำเป็นต้องรันบนคอนเทนเนอร์แยกต่างหากเพื่อความยืดหยุ่นและการควบคุมที่มากขึ้น

นอกจากนี้ สำหรับไปป์ไลน์การอนุมานแบบอนุกรมที่ซับซ้อนกว่าเล็กน้อย อาจมีหลายขั้นตอนที่เกี่ยวข้องในการประมวลผลคำขอและสร้างการอนุมาน ดังนั้น จากจุดยืนในการดำเนินงาน อาจเป็นประโยชน์ที่จะโฮสต์ขั้นตอนเหล่านี้ในคอนเทนเนอร์ที่แยกจากกันเพื่อการแยกการทำงานที่ดีขึ้น และอำนวยความสะดวกในการอัพเกรดและการปรับปรุงที่ง่ายขึ้น (เปลี่ยนขั้นตอนเดียวโดยไม่ส่งผลกระทบต่อรุ่นอื่นๆ หรือขั้นตอนการประมวลผล)

หากกรณีการใช้งานของคุณสอดคล้องกับข้อควรพิจารณาบางประการ a ไปป์ไลน์การอนุมาน SageMaker ให้ตัวเลือกที่ง่ายและยืดหยุ่นในการสร้างไปป์ไลน์การอนุมานแบบอนุกรม ไดอะแกรมต่อไปนี้แสดงรูปแบบการอ้างอิงของวิธีการใช้ไปป์ไลน์การอนุมานแบบอนุกรมโดยใช้หลายขั้นตอนที่โฮสต์บนคอนเทนเนอร์เฉพาะโดยใช้ไปป์ไลน์การอนุมาน SageMaker

ml9154-inference-ไปป์ไลน์

ไปป์ไลน์การอนุมานของ SageMaker ประกอบด้วยลำดับเชิงเส้นของคอนเทนเนอร์ 2–15 รายการที่ประมวลผลคำขอสำหรับการอนุมานข้อมูล ไปป์ไลน์การอนุมานมีตัวเลือกให้ใช้อัลกอริธึมในตัวของ SageMaker ที่ผ่านการฝึกอบรมล่วงหน้าหรืออัลกอริธึมแบบกำหนดเองที่บรรจุในคอนเทนเนอร์ Docker คอนเทนเนอร์ถูกโฮสต์บนอินสแตนซ์พื้นฐานเดียวกัน ซึ่งช่วยลดเวลาแฝงโดยรวมและลดต้นทุน

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

เราเริ่มต้นด้วยการสร้างและระบุโมเดล Spark ML และ XGBoost ที่เราตั้งใจจะใช้เป็นส่วนหนึ่งของไปป์ไลน์:

from sagemaker.model import Model
from sagemaker.pipeline_model import PipelineModel
from sagemaker.sparkml.model import SparkMLModel
sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
sparkml_model = SparkMLModel(model_data=sparkml_data)
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

จากนั้น โมเดลจะถูกจัดเรียงตามลำดับภายในนิยามโมเดลไปป์ไลน์:

model_name = 'serial-inference-' + timestamp_prefix
endpoint_name = 'serial-inference-ep-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])

จากนั้นไปป์ไลน์การอนุมานจะถูกปรับใช้หลังปลายทางสำหรับการอนุมานแบบเรียลไทม์โดยระบุประเภทและจำนวนของอินสแตนซ์ ML ของโฮสต์:

sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)

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

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

ชุดโมเดลอนุกรมโดยใช้ไปป์ไลน์การอนุมาน SageMaker

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

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

  • 1 รุ่น – ยอมรับรูปภาพเป็นอินพุตและประเมินคุณภาพของรูปภาพตามความละเอียด การวางแนว และอื่นๆ ของรูปภาพ โมเดลนี้จะพยายามขยายคุณภาพของภาพและส่งภาพที่ผ่านการประมวลผลซึ่งตรงตามเกณฑ์คุณภาพที่กำหนดไปยังรุ่นถัดไป (รุ่น 2)
  • 2 รุ่น – ยอมรับภาพที่ตรวจสอบแล้วผ่าน Model 1 และดำเนินการ การจดจำภาพ เพื่อระบุวัตถุ สถานที่ บุคคล ข้อความ และการดำเนินการและแนวคิดที่กำหนดเองอื่นๆ ในรูปภาพ เอาต์พุตจากโมเดล 2 ที่มีอ็อบเจ็กต์ที่ระบุจะถูกส่งไปยังโมเดล 3
  • 3 รุ่น – ยอมรับผลลัพธ์จากโมเดล 2 และดำเนินการประมวลผลภาษาธรรมชาติ (NLP) เช่น การสร้างแบบจำลองหัวข้อสำหรับการจัดกลุ่มรูปภาพเข้าด้วยกันตามธีม ตัวอย่างเช่น สามารถจัดกลุ่มรูปภาพตามสถานที่หรือบุคคลที่ระบุ ผลลัพธ์ (การจัดกลุ่ม) จะถูกส่งกลับไปยังแอปพลิเคชันไคลเอนต์

ไดอะแกรมต่อไปนี้แสดงรูปแบบการอ้างอิงของวิธีการใช้โมเดล ML หลายตัวที่โฮสต์บนชุดโมเดลอนุกรมโดยใช้ไปป์ไลน์การอนุมาน SageMaker

ml9154-รุ่น-ชุด

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

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

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

ไปป์ไลน์การอนุมานแบบอนุกรม (ที่มีการเรียกใช้โมเดลเป้าหมายจากกลุ่ม) โดยใช้ไพพ์ไลน์การอนุมาน SageMaker

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

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

มล.9154-มม

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

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

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

ตัวเลือกการโฮสต์ไปป์ไลน์

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

ตอนนี้คุณสามารถใช้เซิร์ฟเวอร์ NVIDIA Triton Inference เพื่อให้บริการโมเดลสำหรับการอนุมานบน SageMaker สำหรับความต้องการในการประมวลผลที่แตกต่างกัน เช็คเอาท์ ปรับใช้ AI ที่รวดเร็วและปรับขนาดได้ด้วยเซิร์ฟเวอร์ NVIDIA Triton Inference ใน Amazon SageMaker สำหรับรายละเอียดเพิ่มเติม

สรุป

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

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


เกี่ยวกับผู้แต่ง

รูปแบบการออกแบบสำหรับการอนุมานแบบอนุกรมบน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. ราหุลชาร์ เป็นสถาปนิกโซลูชันอาวุโสที่ AWS Data Lab ซึ่งช่วยลูกค้า AWS ออกแบบและสร้างโซลูชัน AI/ML ก่อนร่วมงานกับ AWS Rahul ใช้เวลาหลายปีในด้านการเงินและการประกันภัย โดยช่วยลูกค้าสร้างข้อมูลและแพลตฟอร์มการวิเคราะห์

รูปแบบการออกแบบสำหรับการอนุมานแบบอนุกรมบน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. อานันท์ประกาช เป็นสถาปนิกโซลูชันอาวุโสที่ AWS Data Lab Anand มุ่งเน้นที่การช่วยลูกค้าออกแบบและสร้าง AI/ML การวิเคราะห์ข้อมูล และโซลูชันฐานข้อมูลเพื่อเร่งเส้นทางสู่การผลิต

รูปแบบการออกแบบสำหรับการอนุมานแบบอนุกรมบน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. ดาวัล พาเทล เป็นหัวหน้าสถาปนิก Machine Learning ที่ AWS เขาได้ทำงานร่วมกับองค์กรต่างๆ ตั้งแต่องค์กรขนาดใหญ่ไปจนถึงสตาร์ทอัพขนาดกลางในปัญหาที่เกี่ยวข้องกับการคำนวณแบบกระจายและปัญญาประดิษฐ์ เขามุ่งเน้นไปที่การเรียนรู้อย่างลึกซึ้งรวมถึงโดเมน NLP และ Computer Vision เขาช่วยให้ลูกค้าบรรลุการอนุมานแบบจำลองประสิทธิภาพสูงบน SageMaker

รูปแบบการออกแบบสำหรับการอนุมานแบบอนุกรมบน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. ซอราภ ตรีกันเด เป็นผู้จัดการผลิตภัณฑ์อาวุโสสำหรับการอนุมานของ Amazon SageMaker เขาหลงใหลในการทำงานกับลูกค้าและทำให้การเรียนรู้ของเครื่องสามารถเข้าถึงได้มากขึ้น ในเวลาว่าง Saurabh สนุกกับการเดินป่า เรียนรู้เกี่ยวกับเทคโนโลยีที่เป็นนวัตกรรม ติดตาม TechCrunch และใช้เวลากับครอบครัวของเขา

ประทับเวลา:

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