รูปแบบการโฮสต์โมเดลใน SageMaker: แนวทางปฏิบัติที่ดีที่สุดในการทดสอบและอัปเดตโมเดลบน SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปแบบการโฮสต์โมเดลใน SageMaker: แนวทางปฏิบัติที่ดีที่สุดในการทดสอบและอัปเดตโมเดลบน SageMaker

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

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

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

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

ในโพสต์นี้ เราจะหารือเกี่ยวกับจุดสิ้นสุดแบบหลายตัวแปรของ SageMaker และแนวทางปฏิบัติที่ดีที่สุดสำหรับการเพิ่มประสิทธิภาพ

การเปรียบเทียบตัวเลือกการอนุมานตามเวลาจริงของ SageMaker

แผนภาพต่อไปนี้แสดงภาพรวมอย่างรวดเร็วของตัวเลือกการอนุมานตามเวลาจริงด้วย SageMaker

จุดสิ้นสุดโมเดลเดียวช่วยให้คุณปรับใช้โมเดลหนึ่งโมเดลบนคอนเทนเนอร์ที่โฮสต์บนอินสแตนซ์เฉพาะหรือแบบไร้เซิร์ฟเวอร์สำหรับเวลาแฝงต่ำและปริมาณงานสูง คุณสามารถสร้างแบบจำลองและ กู้ a รูปภาพที่รองรับ SageMaker สำหรับเฟรมเวิร์กยอดนิยม เช่น TensorFlow, PyTorch, Scikit-learn และอื่นๆ หากคุณกำลังทำงานกับเฟรมเวิร์กแบบกำหนดเองสำหรับโมเดลของคุณ คุณก็สามารถทำได้เช่นกัน นำภาชนะของคุณเอง ที่ติดตั้งการพึ่งพาของคุณ

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

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

  • โมเดลการโฮสต์บนเฟรมเวิร์กต่างๆ (เช่น TensorFlow, PyTorch และ Scikit-learn) ที่มีทราฟฟิกไม่เพียงพอที่จะทำให้อินสแตนซ์เต็มความจุ
  • โมเดลการโฮสต์จากเฟรมเวิร์กเดียวกันกับอัลกอริธึม ML ที่แตกต่างกัน (เช่น คำแนะนำ การคาดการณ์ หรือการจัดประเภท) และฟังก์ชันตัวจัดการ
  • การเปรียบเทียบสถาปัตยกรรมที่คล้ายกันที่ทำงานบนเฟรมเวิร์กเวอร์ชันต่างๆ (เช่น TensorFlow 1.x กับ TensorFlow 2.x) สำหรับสถานการณ์ต่างๆ เช่น การทดสอบ A/B

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

ภาพรวมของปลายทางแบบหลายตัวแปรของ SageMaker

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

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

แผนภาพต่อไปนี้แสดงวิธีการทำงานของ MVE ในรายละเอียดเพิ่มเติม

จุดสิ้นสุดแบบหลายตัวแปรของ SageMaker

การปรับใช้ MVE นั้นตรงไปตรงมามากเช่นกัน สิ่งที่คุณต้องทำคือกำหนดวัตถุโมเดลด้วยรูปภาพและข้อมูลโมเดลโดยใช้ create_model สร้างจาก SageMaker Python SDK และกำหนดการกำหนดค่าปลายทางโดยใช้ production_variant สร้างเพื่อสร้างรูปแบบการผลิต โดยแต่ละรูปแบบมีรูปแบบและความต้องการทรัพยากรที่แตกต่างกัน (ประเภทอินสแตนซ์และจำนวน) สิ่งนี้ทำให้คุณสามารถทดสอบโมเดลบนอินสแตนซ์ประเภทต่างๆ หากต้องการปรับใช้ ให้ใช้ไฟล์ endpoint_from_production_variant สร้างเพื่อสร้างจุดสิ้นสุด

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

sm_session.create_model(
	name=model_name,
	role=role,
	container_defs={'Image':  image_uri, 'ModelDataUrl': model_url}
	)

sm_session.create_model(
	name=model_name2,
	role=role,
	container_defs={'Image':  image_uri, 'ModelDataUrl': model_url2 }
	)

variant1 = production_variant(
	model_name=model_name,
	instance_type="ml.c5.4xlarge",
	initial_instance_count=1,
	variant_name="Variant1",
	initial_weight=1
	)

variant2 = production_variant(
	model_name=model_name2,
	instance_type="ml.m5.4xlarge",
	initial_instance_count=1,
	variant_name="Variant2",
	initial_weight=1
	)

sm_session.endpoint_from_production_variants(
	name=endpoint_name,
	production_variants=[variant1,  variant2]
	)

ในตัวอย่างก่อนหน้านี้ เราสร้างตัวแปรสองรายการ โดยแต่ละรายการมีรูปแบบที่แตกต่างกัน (เหล่านี้อาจมีประเภทและจำนวนอินสแตนซ์ต่างกันด้วย) เราตั้งค่า initial_weight จาก 1 สำหรับตัวแปรทั้งสอง: หมายความว่า 50% ของคำขอของเราไปที่ Variant1, และอีก 50% ที่เหลือเป็น Variant2. ผลรวมของน้ำหนักของตัวแปรทั้งสองคือ 2 และแต่ละตัวแปรมีการกำหนดน้ำหนักเป็น 1 ซึ่งหมายความว่าแต่ละตัวแปรจะได้รับ 50% ของการเข้าชมทั้งหมด

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

sm_runtime.invoke_endpoint(
	EndpointName=endpoint_name,
	ContentType="text/csv",
	Body=payload
	)

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

หากต้องการเรียกใช้รุ่นเฉพาะของรุ่น ให้ระบุตัวแปรเป็น TargetVariant ในการโทร invoke_endpoint:

sm_runtime.invoke_endpoint(
	EndpointName=endpoint_name,
	ContentType="text/csv",
	Body=payload,
	TargetVariant="Variant1"
	)

คุณสามารถประเมินประสิทธิภาพของตัวแปรการผลิตแต่ละรายการได้โดยการตรวจสอบเมตริกต่างๆ เช่น ความแม่นยำ ความแม่นยำ การเรียกคืน คะแนน F1 และลักษณะ/พื้นที่การทำงานของเครื่องรับภายใต้เส้นโค้งสำหรับแต่ละตัวแปรโดยใช้ การตรวจสอบโมเดล Amazon SageMaker. จากนั้น คุณสามารถตัดสินใจเพิ่มการเข้าชมไปยังรุ่นที่ดีที่สุดโดยการอัปเดตน้ำหนักที่กำหนดให้กับตัวแปรแต่ละตัวโดยการโทร อัปเดตจุดสิ้นสุดน้ำหนักและความจุ. สิ่งนี้จะเปลี่ยนการกระจายการรับส่งข้อมูลไปยังรูปแบบการผลิตของคุณโดยไม่ต้องมีการอัปเดตปลายทางของคุณ ดังนั้น แทนที่จะเป็น 50% ของการเข้าชมจากการตั้งค่าเริ่มต้น เราจึงเปลี่ยน 75% ของการเข้าชมเป็น Variant2 โดยกำหนดน้ำหนักใหม่ให้กับแต่ละตัวแปรโดยใช้ UpdateEndpointWeightsAndCapacities. ดูรหัสต่อไปนี้:

sm.update_endpoint_weights_and_capacities(
	EndpointName=endpoint_name,
	DesiredWeightsAndCapacities=[
	{
		"DesiredWeight": 25,
		"VariantName": variant1["VariantName"]
	},
	{
		"DesiredWeight": 75,
		"VariantName": variant2["VariantName"]
	}
] )

เมื่อคุณพอใจกับประสิทธิภาพของตัวแปร คุณสามารถกำหนดเส้นทางการรับส่งข้อมูล 100% ไปยังตัวแปรนั้นได้ ตัวอย่างเช่น คุณสามารถตั้งค่าน้ำหนักสำหรับ Variant1 ถึง 0 และน้ำหนักสำหรับ Variant2 ถึง 1 จากนั้น SageMaker จะส่งคำขอการอนุมานทั้งหมด 100% ไปยัง Variant2. จากนั้นคุณสามารถอัปเดตตำแหน่งข้อมูลและลบได้อย่างปลอดภัย Variant1 จากปลายทางของคุณ คุณยังสามารถทดสอบโมเดลใหม่ในการผลิตต่อไปได้โดยเพิ่มตัวแปรใหม่ไปยังตำแหน่งข้อมูลของคุณ คุณยังสามารถกำหนดค่าปลายทางเหล่านี้เพื่อปรับขนาดโดยอัตโนมัติตามการรับส่งข้อมูลที่ปลายทางได้รับ

ข้อดีของจุดสิ้นสุดแบบหลายตัวแปร

SageMaker MVE ช่วยให้คุณทำสิ่งต่อไปนี้ได้:

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

ความท้าทายเมื่อใช้ปลายทางหลายตัวแปร

MVE ของ SageMaker มาพร้อมกับความท้าทายต่อไปนี้:

  • โหลดความพยายามในการทดสอบ – คุณต้องใช้ความพยายามและทรัพยากรพอสมควรสำหรับการทดสอบและการเปรียบเทียบเมทริกซ์แบบจำลองสำหรับแต่ละตัวแปร เพื่อให้การทดสอบ A/B ประสบความสำเร็จ คุณต้องทำการวิเคราะห์ทางสถิติของเมตริกที่รวบรวมจากการทดสอบเพื่อดูว่ามีผลลัพธ์ที่มีนัยสำคัญทางสถิติหรือไม่ อาจกลายเป็นเรื่องยากที่จะลดการสำรวจตัวแปรที่มีประสิทธิภาพต่ำให้เหลือน้อยที่สุด คุณสามารถใช้ โจรหลายอาวุธ เทคนิคการเพิ่มประสิทธิภาพเพื่อหลีกเลี่ยงการส่งการเข้าชมไปยังการทดสอบที่ไม่ได้ผล และเพิ่มประสิทธิภาพในขณะที่คุณทดสอบ สำหรับการทดสอบโหลด คุณสามารถสำรวจได้เช่นกัน ผู้แนะนำการอนุมานของ Amazon SageMaker เพื่อดำเนินการวัดประสิทธิภาพที่ครอบคลุมตามข้อกำหนดการผลิตสำหรับเวลาแฝงและปริมาณงาน รูปแบบการรับส่งข้อมูลที่กำหนดเอง และอินสแตนซ์ (สูงสุด 10 รายการ) ที่คุณเลือก
  • การมีเพศสัมพันธ์ที่แน่นหนาระหว่างตัวแปรรุ่นและจุดสิ้นสุด – อาจเป็นเรื่องยุ่งยากขึ้นอยู่กับความถี่ในการปรับใช้โมเดล เนื่องจากจุดสิ้นสุดอาจสิ้นสุดใน updating สถานะสำหรับแต่ละรุ่นการผลิตที่กำลังปรับปรุง SageMaker ยังรองรับ รั้วการติดตั้งซึ่งคุณสามารถใช้เพื่อเปลี่ยนจากรุ่นปัจจุบันที่ใช้งานจริงเป็นรุ่นใหม่ได้อย่างง่ายดายด้วยวิธีที่ควบคุมได้ ตัวเลือกนี้แนะนำ นกขมิ้น และ เชิงเส้น โหมดการเปลี่ยนการรับส่งข้อมูล เพื่อให้คุณสามารถควบคุมอย่างละเอียดเกี่ยวกับการเปลี่ยนการรับส่งข้อมูลจากรุ่นปัจจุบันของคุณไปยังรุ่นใหม่ในระหว่างการอัปเดต ด้วยการป้องกันในตัว เช่น การย้อนกลับอัตโนมัติ คุณสามารถตรวจพบปัญหาได้ตั้งแต่เนิ่นๆ และดำเนินการแก้ไขโดยอัตโนมัติก่อนที่จะทำให้เกิดผลกระทบต่อการผลิตอย่างมาก

แนวทางปฏิบัติที่ดีที่สุดสำหรับปลายทางหลายตัวแปร

เมื่อโฮสต์โมเดลโดยใช้ SageMaker MVE ให้พิจารณาสิ่งต่อไปนี้:

  • SageMaker นั้นยอดเยี่ยมสำหรับการทดสอบโมเดลใหม่ๆ เพราะคุณสามารถปรับใช้ในสภาพแวดล้อมการทดสอบ A/B ได้อย่างง่ายดาย และคุณจ่ายเฉพาะสิ่งที่คุณใช้เท่านั้น คุณจะถูกเรียกเก็บเงินต่อชั่วโมงอินสแตนซ์ที่ใช้สำหรับแต่ละอินสแตนซ์ขณะที่จุดสิ้นสุดกำลังทำงาน เมื่อคุณทำการทดสอบเสร็จแล้วและไม่ได้ใช้จุดสิ้นสุดหรือตัวแปรมากเกินไปอีกต่อไป คุณควรลบออกเพื่อประหยัดค่าใช้จ่าย คุณสามารถสร้างใหม่ได้ทุกเมื่อที่ต้องการอีกครั้ง เนื่องจากโมเดลถูกจัดเก็บไว้ใน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3).
  • คุณควรใช้ประเภทและขนาดอินสแตนซ์ที่เหมาะสมที่สุดในการปรับใช้โมเดล ปัจจุบัน SageMaker นำเสนอ อินสแตนซ์การคำนวณ ML ในครอบครัวตัวอย่างต่างๆ อินสแตนซ์ปลายทางทำงานตลอดเวลา (ในขณะที่อินสแตนซ์อยู่ในบริการ) ดังนั้น การเลือกประเภทอินสแตนซ์ที่เหมาะสมจึงส่งผลอย่างมากต่อต้นทุนและประสิทธิภาพของโมเดล ML ทั้งหมด โหลดการทดสอบ เป็นแนวทางปฏิบัติที่ดีที่สุดในการกำหนดประเภทอินสแตนซ์และขนาดฟลีตที่เหมาะสม โดยมีหรือไม่มีการปรับขนาดอัตโนมัติสำหรับตำแหน่งข้อมูลสดของคุณเพื่อหลีกเลี่ยงการจัดสรรเกินและจ่ายเพิ่มสำหรับความจุที่คุณไม่ต้องการ
  • คุณสามารถตรวจสอบประสิทธิภาพของโมเดลและการใช้ทรัพยากรใน CloudWatch คุณสามารถกำหนดค่า ProductionVariant ใช้ แอปพลิเคชัน Auto Scaling. ในการระบุเมตริกและค่าเป้าหมายสำหรับนโยบายมาตราส่วน คุณต้องกำหนดค่านโยบายมาตราส่วนการติดตามเป้าหมาย คุณสามารถใช้เมตริกที่กำหนดไว้ล่วงหน้าหรือเมตริกที่กำหนดเองก็ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์การกำหนดค่านโยบาย โปรดดูที่ การกำหนดค่า TargetTrackingScalingPolicy. สำหรับข้อมูลเกี่ยวกับการกำหนดค่ามาตราส่วนอัตโนมัติ โปรดดูที่ ปรับขนาดโมเดล Amazon SageMaker โดยอัตโนมัติ. หากต้องการกำหนดนโยบายมาตราส่วนการติดตามเป้าหมายอย่างรวดเร็วสำหรับตัวแปร คุณสามารถเลือกเมตริก CloudWatch เฉพาะและตั้งค่าเกณฑ์ได้ ตัวอย่างเช่น ใช้เมตริก SageMakerVariantInvocationsPerInstance เพื่อตรวจสอบจำนวนครั้งเฉลี่ยต่อนาทีที่แต่ละอินสแตนซ์สำหรับตัวแปรถูกเรียกใช้ หรือใช้เมตริก CPUUtilization เพื่อตรวจสอบผลรวมของงานที่จัดการโดย CPU ตัวอย่างต่อไปนี้ใช้ SageMakerVariantInvocationsPerInstance เมตริกที่กำหนดไว้ล่วงหน้าเพื่อปรับจำนวนอินสแตนซ์ตัวแปรเพื่อให้แต่ละอินสแตนซ์มี InvocationsPerInstance เมตริก 70:
{
	"TargetValue": 70.0,
	"PredefinedMetricSpecification":
	{
		"PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
	}
}

  • การเปลี่ยนหรือลบอาร์ติแฟกต์ของโมเดลหรือการเปลี่ยนรหัสอนุมานหลังจากปรับใช้โมเดลจะให้ผลลัพธ์ที่คาดเดาไม่ได้ ก่อนนำโมเดลไปใช้งานจริง เป็นแนวปฏิบัติที่ดีในการตรวจสอบว่าการโฮสต์โมเดลในโหมดโลคัลสำเร็จหรือไม่หลังจากดีบักข้อมูลโค้ดอนุมานอย่างเพียงพอ (เช่น model_fn, input_fn, predict_fnและ output_fn) ในสภาพแวดล้อมการพัฒนาท้องถิ่น เช่น อินสแตนซ์โน้ตบุ๊ก SageMaker หรือเซิร์ฟเวอร์ภายใน หากคุณต้องการเปลี่ยนหรือลบอาร์ติแฟกต์แบบจำลองหรือเปลี่ยนรหัสอนุมาน ให้แก้ไขจุดสิ้นสุดโดยกำหนดการกำหนดค่าจุดสิ้นสุดใหม่ หลังจากที่คุณระบุการกำหนดค่าปลายทางใหม่แล้ว คุณจะเปลี่ยนหรือลบอาร์ติแฟกต์โมเดลที่สอดคล้องกับการกำหนดค่าปลายทางเก่าได้
  • คุณสามารถใช้ SageMaker การแปลงแบทช์ เพื่อทดสอบสายพันธุ์การผลิต การแปลงเป็นชุดเหมาะอย่างยิ่งสำหรับการอนุมานจากชุดข้อมูลขนาดใหญ่ คุณสามารถสร้างงานการแปลงแยกต่างหากสำหรับตัวแปรโมเดลใหม่แต่ละรายการ และใช้ชุดข้อมูลการตรวจสอบเพื่อทดสอบ สำหรับงานการแปลงแต่ละรายการ ให้ระบุชื่อรุ่นและตำแหน่งที่ไม่ซ้ำกันใน Amazon S3 สำหรับไฟล์เอาต์พุต ในการวิเคราะห์ผลลัพธ์ให้ใช้ บันทึกไปป์ไลน์อนุมานและเมตริก.

สรุป

SageMaker ช่วยให้คุณสามารถทดสอบ A/B แบบจำลอง ML ในการผลิตได้อย่างง่ายดายโดยการเรียกใช้ตัวแปรการผลิตหลายรายการบนจุดสิ้นสุด คุณสามารถใช้ความสามารถของ SageMaker เพื่อทดสอบโมเดลที่ได้รับการฝึกอบรมโดยใช้ชุดข้อมูลการฝึกอบรม ไฮเปอร์พารามิเตอร์ อัลกอริทึม หรือเฟรมเวิร์ก ML ที่แตกต่างกัน วิธีการทำงานของอินสแตนซ์ประเภทต่างๆ หรือรวมกันทั้งหมดข้างต้น คุณสามารถระบุการกระจายการรับส่งข้อมูลระหว่างตัวแปรบนจุดสิ้นสุด และ SageMaker แยกการรับส่งข้อมูลโดยอนุมานไปยังตัวแปรตามการกระจายที่ระบุ อีกทางหนึ่ง หากคุณต้องการทดสอบโมเดลสำหรับกลุ่มลูกค้าเฉพาะ คุณสามารถระบุตัวแปรที่ควรประมวลผลคำขอการอนุมานโดยระบุ TargetVariant ส่วนหัว และ SageMaker จะกำหนดเส้นทางคำขอไปยังตัวแปรที่คุณระบุ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบ A/B โปรดดู อัปเดตโมเดลในการผลิตอย่างปลอดภัย.

อ้างอิง


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

รูปแบบการโฮสต์โมเดลใน SageMaker: แนวทางปฏิบัติที่ดีที่สุดในการทดสอบและอัปเดตโมเดลบน SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.ทีปาลี ราจาเล เป็นผู้จัดการบัญชีทางเทคนิคผู้เชี่ยวชาญ AI/ML ที่ Amazon Web Services เธอทำงานร่วมกับลูกค้าระดับองค์กรโดยให้คำแนะนำด้านเทคนิคเกี่ยวกับการนำโซลูชันแมชชีนเลิร์นนิงไปใช้พร้อมแนวทางปฏิบัติที่ดีที่สุด ในเวลาว่าง เธอชอบไปปีนเขา ดูภาพยนตร์ และออกไปเที่ยวกับครอบครัวและเพื่อนๆ

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

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

ประทับเวลา:

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

ลดการใช้พลังงานของปริมาณงานแมชชีนเลิร์นนิ่งของคุณได้ถึง 90% ด้วยตัวเร่งความเร็วที่สร้างขึ้นตามวัตถุประสงค์ของ AWS | บริการเว็บอเมซอน

โหนดต้นทาง: 1850227
ประทับเวลา: มิถุนายน 20, 2023