ฉันต้องการวิธีที่ง่ายและทำซ้ำได้เพื่อตอบคำถามเชิงปฏิบัติ:
“หากเราต้องรันโมเดลส่วนตัวบน AWS ความเป็นจริงในการดำเนินงานบน Inf2 / Trn3 จะเป็นอย่างไร?”
โพสต์นี้บันทึกการทดลอง ภาคปฏิบัติ เล็กๆ หนึ่งครั้ง (Inf2) พร้อมกับการตรวจสอบติดตามผลที่ฉันจะดำเนินการกับ Trn3 อย่างละเอียด
การตั้งค่าการทดลอง (Inf2) ลิงก์ไปยังหัวข้อ
นี่เป็นการทดสอบแบบรวดเร็วว่า “เราสามารถทำให้มันทำงานได้ตั้งแต่ต้นจนจบหรือไม่” ไม่ใช่ชุดการวัดประสิทธิภาพที่สมบูรณ์
- วันที่ดำเนินการ: 2026-02-01
- อินสแตนซ์ที่ทดสอบ:
inf2.xlarge - ภูมิภาค:
us-east-2 - โมเดล:
meta-llama/Llama-4-Maverick-17B-128E-Instruct - Serving layer: vLLM บน Neuron
- API surface: OpenAI-compatible endpoints (
/v1/chat/completions,/v1/completions) - พอร์ต:
8080
สิ่งที่ได้ผล (และทำไมจึงสำคัญ) ลิงก์ไปยังหัวข้อ
ผลลัพธ์หลัก: vLLM บน Neuron ทำงานได้ และ API ที่เข้ากันได้กับ OpenAI ทำให้ง่ายต่อการเชื่อมต่อกับเครื่องมือโดยไม่ต้องเขียนไคลเอนต์ที่กำหนดเอง
อย่างไรก็ตาม มีบทเรียนการดำเนินงานที่ “เป็นจริง” ไม่กี่อย่างที่สำคัญกว่า tokens/sec ดิบๆ
1) การคอมไพล์ Neuron ครั้งแรกมีค่าใช้จ่ายสูง ลิงก์ไปยังหัวข้อ
ครั้งแรกที่คุณรันการกำหนดค่าโมเดลเฉพาะ การคอมไพล์ Neuron อาจใช้เวลา ~15–30 นาที
นี่ไม่ใช่ปัญหาโดยเนื้อแท้ แต่จะเปลี่ยนประสบการณ์ผู้ใช้ของ:
- การรีสตาร์ทแบบโรลลิ่ง
- การปรับขนาดอัตโนมัติ
- การหยุดชะงักของ Spot
2) เก็บแคชไว้ มิฉะนั้นการรีสตาร์ทจะเจ็บปวด ลิงก์ไปยังหัวข้อ
วิธีแก้ไขเชิงปฏิบัติทำได้ง่าย: เก็บแคช HuggingFace และอาร์ติแฟกต์ที่คอมไพล์แล้วของ Neuron บนที่เก็บข้อมูลโฮสต์ เพื่อให้การรีสตาร์ทเร็วขึ้น (บ่อยครั้ง < 1 นาที เมื่อวอร์มอัพแล้ว)
หากคุณถือว่าอินสแตนซ์เป็นแบบใช้แล้วทิ้งโดยไม่มีแคชถาวร คุณจะต้องจ่ายค่าคอมไพล์ซ้ำๆ
3) ดิสก์คือโหมดความล้มเหลวแรก ลิงก์ไปยังหัวข้อ
สำหรับการทดลองประเภทนี้ ดิสก์จะเต็มก่อน CPU
กฎง่ายๆ จากการรันนี้:
- ขั้นต่ำ 200GB
- แนะนำ 500GB สำหรับ “การทดสอบจริง” (น้ำหนักโมเดล + อาร์ติแฟกต์ที่คอมไพล์แล้ว + เลเยอร์ Docker + บันทึก)
ขั้นตอนการทดสอบ “โมเดลส่วนตัวบน EC2” (ทำซ้ำได้) ลิงก์ไปยังหัวข้อ
นี่คือขั้นตอนขั้นต่ำที่ฉันใช้และจะใช้อีกครั้ง:
- เปิด EC2 (Inf2 หรือ Trn3) ด้วย gp3 EBS ขนาดใหญ่ และการเข้าถึง IAM/SSM ที่เหมาะสม
- เชื่อมต่อผ่าน SSM (แนะนำ) แทนการเปิด SSH สู่โลกภายนอก
- เริ่มคอนเทนเนอร์ vLLM (Neuron) ด้วย แคชที่เก็บถาวรบนโฮสต์
- ทดสอบ API ที่เข้ากันได้กับ OpenAI (
models,chat,completion) - สังเกตบันทึกและเมตริกฮาร์ดแวร์ขณะรันลูปคำขอขนาดเล็ก
Spot instances: ทำให้ราคาไม่แพง (ด้วยกฎหนึ่งข้อ) ลิงก์ไปยังหัวข้อ
สำหรับการวัดประสิทธิภาพและการทดลอง Spot ทำให้ราคาถูกลงอย่างมากเมื่อเทียบกับ On-Demand
กฎหนึ่งข้อ: ออกแบบการตั้งค่าสำหรับการหยุดชะงัก
- ใช้ Spot สำหรับการรัน
- สมมติว่าจะถูกขัดจังหวะ
- เก็บแคชไว้บน EBS (และสแนปช็อต/สำรองข้อมูลหากคุณต้องการการกู้คืนที่เร็วขึ้น)
- เลือกการจัดสรรที่ปรับให้เหมาะสมกับความจุเมื่อทำได้
แล้ว Trn3/Trn4 ล่ะ? ลิงก์ไปยังหัวข้อ
เราได้ทดสอบพลังของ Inf2 แต่ Trn3/Trn4 มีให้บริการตามคำขอเท่านั้นในขณะนี้
Inf2 สามารถให้ความเร็วของผู้ให้บริการโมเดลสาธารณะแก่เรา และเมื่อรวมกับการพัฒนาและการเติบโตของโมเดล มันจะต้องการทรัพยากรน้อยลงเรื่อยๆ ในอนาคต
แต่ประเด็นสำคัญคือความเป็นอิสระจากชิป Nvidia และ AMD ซึ่งมีจำกัดและความต้องการสูง
บทสรุป ลิงก์ไปยังหัวข้อ
สำหรับปริมาณงานปัจจุบันของฉัน (แบบเป็นช่วงๆ) ฉัน ไม่จำเป็นต้อง โฮสต์โมเดลส่วนตัวในตอนนี้: API สาธารณะมีราคาถูกกว่าและต้องการการดำเนินงานน้อยกว่ามาก
แต่หากคุณมีข้อกำหนดที่เข้มงวด (โมเดลส่วนตัว/กรรมสิทธิ์ หรือขอบเขตข้อมูลที่เข้มงวด) แล้ว Inf2/Trn3 + vLLM (Neuron) เป็นเส้นทาง AWS ที่ใช้งานได้จริง — เพียงแค่วางแผนสำหรับเวลาในการคอมไพล์ แคชถาวร และดิสก์ขนาดใหญ่