ฉันต้องการวิธีที่ง่ายและทำซ้ำได้เพื่อตอบคำถามเชิงปฏิบัติ:

“หากเราต้องรันโมเดลส่วนตัวบน 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” (ทำซ้ำได้) ลิงก์ไปยังหัวข้อ

นี่คือขั้นตอนขั้นต่ำที่ฉันใช้และจะใช้อีกครั้ง:

  1. เปิด EC2 (Inf2 หรือ Trn3) ด้วย gp3 EBS ขนาดใหญ่ และการเข้าถึง IAM/SSM ที่เหมาะสม
  2. เชื่อมต่อผ่าน SSM (แนะนำ) แทนการเปิด SSH สู่โลกภายนอก
  3. เริ่มคอนเทนเนอร์ vLLM (Neuron) ด้วย แคชที่เก็บถาวรบนโฮสต์
  4. ทดสอบ API ที่เข้ากันได้กับ OpenAI (models, chat, completion)
  5. สังเกตบันทึกและเมตริกฮาร์ดแวร์ขณะรันลูปคำขอขนาดเล็ก

Spot instances: ทำให้ราคาไม่แพง (ด้วยกฎหนึ่งข้อ) ลิงก์ไปยังหัวข้อ

สำหรับการวัดประสิทธิภาพและการทดลอง Spot ทำให้ราคาถูกลงอย่างมากเมื่อเทียบกับ On-Demand

กฎหนึ่งข้อ: ออกแบบการตั้งค่าสำหรับการหยุดชะงัก

  • ใช้ Spot สำหรับการรัน
  • สมมติว่าจะถูกขัดจังหวะ
  • เก็บแคชไว้บน EBS (และสแนปช็อต/สำรองข้อมูลหากคุณต้องการการกู้คืนที่เร็วขึ้น)
  • เลือกการจัดสรรที่ปรับให้เหมาะสมกับความจุเมื่อทำได้

แล้ว Trn3/Trn4 ล่ะ? ลิงก์ไปยังหัวข้อ

เราได้ทดสอบพลังของ Inf2 แต่ Trn3/Trn4 มีให้บริการตามคำขอเท่านั้นในขณะนี้

Inf2 สามารถให้ความเร็วของผู้ให้บริการโมเดลสาธารณะแก่เรา และเมื่อรวมกับการพัฒนาและการเติบโตของโมเดล มันจะต้องการทรัพยากรน้อยลงเรื่อยๆ ในอนาคต

แต่ประเด็นสำคัญคือความเป็นอิสระจากชิป Nvidia และ AMD ซึ่งมีจำกัดและความต้องการสูง

บทสรุป ลิงก์ไปยังหัวข้อ

สำหรับปริมาณงานปัจจุบันของฉัน (แบบเป็นช่วงๆ) ฉัน ไม่จำเป็นต้อง โฮสต์โมเดลส่วนตัวในตอนนี้: API สาธารณะมีราคาถูกกว่าและต้องการการดำเนินงานน้อยกว่ามาก

แต่หากคุณมีข้อกำหนดที่เข้มงวด (โมเดลส่วนตัว/กรรมสิทธิ์ หรือขอบเขตข้อมูลที่เข้มงวด) แล้ว Inf2/Trn3 + vLLM (Neuron) เป็นเส้นทาง AWS ที่ใช้งานได้จริง — เพียงแค่วางแผนสำหรับเวลาในการคอมไพล์ แคชถาวร และดิสก์ขนาดใหญ่