การรัน LLM แบบโลคัล (Gemma 3) บน iOS ด้วย MLC-LLM
(blog.devstory.co.kr)โพสต์นี้สรุปวิธีรันโมเดล Gemma 3 แบบโลคัลบนอุปกรณ์ iOS ผ่าน MLC-LLM พร้อมตัวชี้วัดประสิทธิภาพจากการใช้งานจริง
สรุป
- การใช้ MLC-LLM: สร้างสภาพแวดล้อมการอนุมานที่ลื่นไหลบนอุปกรณ์มือถือโดยแทบไม่มีความหน่วง (Latency) ด้วยการเร่งความเร็วผ่าน Metal API
- กระบวนการบิลด์ Gemma 3 1B: คู่มือเวิร์กโฟลว์ครบถ้วนตั้งแต่ดาวน์โหลดโมเดลจาก Hugging Face ไปจนถึงการควอนไทซ์แบบ q4f16_1, การใช้เทมเพลตบทสนทนา (gemma3_instruction) และการคอมไพล์ Metal kernel
- ตัวชี้วัดประสิทธิภาพและทรัพยากร:
- Gemma 2 2B: ใช้ VRAM ประมาณ 2.4GB
- Gemma 3 1B: ใช้ VRAM ประมาณ 1.14GB
- เคล็ดลับการรัน: มีวิธีแพ็กเกจโมเดลแบบกำหนดเองเข้าในโปรเจกต์ Xcode ผ่านการตั้งค่า
mlc-package-config.json
การประเมิน
- เมื่อใช้ MLC-LLM ก็สามารถพอร์ต LLM ประสิทธิภาพสูงมารันบนอุปกรณ์ iOS ได้โดยตรง พร้อมได้ข้อดีทั้งด้านการคุ้มครองความเป็นส่วนตัวและการทำงานแบบออฟไลน์
- มีแนวโน้มว่าจะยังสร้างคำตอบแบบมีโครงสร้าง เช่น ฟอร์แมต JSON ได้ไม่ค่อยดีนัก
- หากต้องการนำไปใช้กับฟีเจอร์ที่ต้องใช้ system prompt ซับซ้อนหรืองานดึงข้อมูล ก็น่าจะต้องมีการปรับแต่งเพิ่มเติม เช่น prompt engineering หรือ fine-tuning เพิ่มเติม
- หากในอนาคตมีการเชื่อมต่อ pipeline เฉพาะสำหรับโมเดลและทำงานด้านการเพิ่มประสิทธิภาพของโปรเจกต์ควบคู่กันไป ก็คาดว่าจะสามารถสร้างบริการ On-Device AI ที่ใช้งานได้จริงมากยิ่งขึ้น
8 ความคิดเห็น
ผมกำลังรัน qwen 3 0.6b q5 บน Galaxy Fold 4 อยู่ครับ แต่ตอนนี้ยังรู้สึกว่ายังขาดอะไรไปนิดหน่อย
สงสัยว่าติดใจตรงส่วนไหนครับ
อยากทราบว่าเป็นเพราะโมเดลเล็กเกินไปจนประสิทธิภาพของ LLM ยังน่าผิดหวัง หรือเป็นเพราะประสิทธิภาพตอนรันแบบโลคัลยังน่าผิดหวังกันแน่ครับ
ประสิทธิภาพยังน่าเสียดายอยู่ครับ ตอนนี้ยังไม่รองรับ GPU หรือ NPU บางรุ่น เลยทำงานช้าครับ..
ผมกำลังศึกษารุ่น gemma3 1b int4 บน Galaxy Note 20 Ultra อยู่ครับ
อยู่ในระดับที่พอรันได้บนรุ่นเก่า
อ้อ ไม่ทราบว่ารองรับการเร่งความเร็วด้วย Vulkan ไหม?
เห็นเขาว่าทำได้ แต่ของผมทำไม่ได้ครับ T_T
บน Galaxy Note20 คงจะใช้งานได้ลื่นไหลค่อนข้างยาก จนกว่าจะมีโมเดลที่ทำงานได้ดีบน CPU สเปกต่ำกว่านี้มากขึ้น (ซึ่งได้รับการปรับแต่งมาอย่างดี) ใช่ไหมครับ?
จากเนื้อหาข้างต้น ระบุว่าเขาสร้างมาสำหรับ Metal kernel ที่ใช้เฉพาะบน Mac
เท่าที่ทราบ หากใช้ MLX จะสามารถโหลดและรันได้เร็วกกว่า GGUF ทั่วไป
แต่ถ้าเป็นรุ่น 4b ก็ยังค่อนข้างก้ำกึ่งอยู่ ;;