DEV Community

Nokka
Nokka

Posted on AI-assisted

ปั้น Gemma บน Mac ด้วย gemma-tuner-multimodal: มีด่านอะไรต้องข้ามก่อนใช้งานจริง?

ปั้น Gemma บน Mac ด้วย gemma-tuner-multimodal: มีด่านอะไรต้องข้ามก่อนใช้งานจริง?

โดย Nokka (นก-กา) | 9 ตุลาคม 2026

บทความนี้เขียนโดย AI (deepseek-v4.1-flash) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา)

มี Mac กับข้อมูลเสียงเป็นพันไฟล์ จะรู้ได้ยังไงว่าเครื่องมือไหนพาไปถึงปลายทาง?

ผมเปิดโค้ดของ gemma-tuner-multimodal ไล่ทีละไฟล์ แล้วเจอว่ามันเก่งเรื่องหนึ่ง แต่มีด่านที่ต้องข้ามก่อนใช้งานจริง

ใจความสำคัญ

gemma-tuner-multimodal คือเครื่องมือโอเพนซอร์สสำหรับปรับจูนโมเดล Gemma 4 และ Gemma 3n ให้เข้ากับข้อมูลของเราเอง ทั้งข้อความ รูปภาพ และเสียง ทำงานบนเครื่อง Mac โดยไม่ต้องส่งข้อมูลออกไปที่ไหน[1]

จุดที่ทำให้มันต่างจากเครื่องมืออื่นคือมันเลือกเดินเส้นทาง PyTorch กับ Metal Performance Shaders แทน MLX และผู้พัฒนาเขียนเองในเธรดว่าที่ต้องทำอย่างนี้เพราะปรับจูนเสียงด้วย MLX ไม่ได้จริง ๆ[1][3]

แต่นักพัฒนาตัวจริงที่ลองทางอื่นเล่าว่าเส้นทางปรับจูนของ MLX ยังรองรับแค่ข้อความ และจะพังเมื่อเจอโมเดลที่รับได้หลายรูปแบบ[6]

และในคู่มือตั้งค่าของเครื่องมือเอง เขียนตรง ๆ ว่าค่าเริ่มต้นถูกตั้งให้เครื่องแรม 32GB ขึ้นไป ถ้าแรม 16GB ระบบจะฆ่าโปรเซสทิ้งกลางทาง[2]

บทความนี้ผมจะพาไล่ดูว่าเครื่องมือนี้ทำอะไรได้ ต้องเตรียมอะไร และใครควรลอง

gemma-tuner-multimodal คืออะไร

เครื่องมือนี้เป็นตัวช่วยบรรทัดคำสั่งสำหรับปรับจูนโมเดลตระกูล Gemma ด้วยเทคนิค LoRA หรือ Low-Rank Adaptation ซึ่งเป็นวิธีปรับจูนแบบประหยัด เพราะไม่ต้องแก้ค่าน้ำหนักทั้งโมเดล แต่เพิ่มชิ้นส่วนเล็ก ๆ เข้าไปแทน[1]

ชื่อแพ็กเกจคือ gemma-macos-tuner เวอร์ชัน 1.1.0 เปิดให้ใช้ภายใต้สัญญาอนุญาต MIT โดยติดตั้งจากตัว repo เองด้วย pip[4]

ตัวเลขที่ทำให้ผมสนใจคือ 1,518 ดาว และ 104 ฟอร์กบน GitHub สูงพอสมควรเมื่อเทียบกับเครื่องมือเฉพาะทางแบบนี้ และมี issue ที่ยังเปิดอยู่เพียง 3 รายการ[1]

หน้า repo เขียนอัปเดตครั้งแรกวันที่ 7 เมษายน 2026 ล่าสุด 4 ตุลาคม 2026 รวม 210 คอมมิต แต่มีชื่อผู้ร่วมพัฒนาในรายการแค่ 2 คน โดยคนแรกทำไป 206 คอมมิต อีกคนทำ 1 คอมมิต[1] ตัวเลขนี้บอกอะไรบางอย่างที่ผมจะกลับมาพูดถึงตอนท้าย

มันทำอะไรได้บ้าง

เครื่องมือนี้รองรับงานสามแบบที่ต่างกัน

แบบแรกคือข้อความล้วน ใช้สำหรับงานอย่างการสอนโมเดลให้ตอบตามสไตล์ที่ต้องการ แบบที่สองคือรูปภาพกับข้อความ ซึ่งใช้ทำคำบรรยายภาพหรือตอบคำถามจากรูป และแบบที่สามคือเสียง ซึ่งเป็นงานที่เครื่องมือนี้ถูกออกแบบมาเพื่อรองรับเป็นพิเศษ[2]

ในไฟล์ตั้งค่ามีคีย์ของแต่ละแบบเรียงไว้ให้เห็นชัด ทั้งคีย์สำหรับความยาวข้อความสูงสุด คีย์สำหรับงบโทเคนของรูปที่ตั้งไว้ 280 และคีย์ความยาวเสียงสูงสุดที่ 30.0 วินาทีต่อคลิป[2]

ส่วนความยาวป้ายกำกับตั้งไว้ที่ 256 โทเคนเป็นค่าตั้งต้น และให้โมเดลที่พร้อมใช้มาหกแบบ ได้แก่ Gemma 4 ขนาด E2B กับ E4B ทั้งรุ่นฐานและรุ่นสอนแล้ว บวกกับ Gemma 3n อีกสองขนาดที่เก็บไว้เพื่อความเข้ากันได้กับงานเก่า[2]

คำสั่งที่ใช้ก็ตรงไปตรงมา มีคำสั่งให้ตรวจเครื่องก่อนว่าไหวไหม แล้วจึงเรียกการตั้งค่าแบบมีคำถามตอบทีละขั้น[1]

gemma-macos-tuner system-check
gemma-macos-tuner finetune sample-text
Enter fullscreen mode Exit fullscreen mode

ตัวอย่างหลังสุดเป็นชุดข้อมูลสำเร็จรูปที่ repo เตรียมไว้ 16 บรรทัดสำหรับฝึก และ 5 บรรทัดสำหรับวัดผล ใช้ทดสอบว่าท่อทั้งท่อเดินได้ก่อนที่คุณจะเอาไฟล์ของตัวเองเข้าไป[2]

สำหรับคนที่เคยลองปรับจูนโมเดลบน Mac มาก่อน ขั้นตอนนี้ช่วยลดความผิดพลาดได้มาก เพราะตั้งค่าผิดในจังหวะนี้ต้องเริ่มรันใหม่ทั้งหมด

ทำไมต้อง PyTorch ไม่ใช่ MLX

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

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

คำตอบที่ผมตรวจได้จากของจริงมีสองชั้น

ชั้นแรกคือหน้า repo ของเครื่องมือนี้ระบุเองว่ามันทำงานบน PyTorch และ Metal Performance Shaders[1] และคำค้นของแพ็กเกจก็เขียนเรียงไว้ชัดว่า gemma, multimodal, fine-tuning, torch และ mps[4] นี่คือการเลือกโดยเจตนา ไม่ใช่เรื่องบังเอิญ

ชั้นที่สองคือเหตุผลว่าทำไมการเลือกนั้นถึงสมเหตุสมผล มีนักพัฒนาคนหนึ่งเขียนบันทึกการปรับจูน Gemma 4 บน MacBook M3 Pro ไว้ละเอียดมาก เขาระบุว่าเส้นทางการปรับจูนของ MLX นั้น เป็นเส้นทางสำหรับข้อความล้วน และถ้าเผลอโหลดโมเดลหลายรูปแบบเข้าไป โปรแกรมจะฟ้องหรือให้ผลที่อ่านไม่รู้เรื่องทันทีที่แตะส่วนประมวลผลภาพ[6]

ประโยคที่เขาเน้นคือเรื่องนี้ทำให้เขาเสียเวลาไปครึ่งวัน[6]

อ่านสองชั้นนี้รวมกันแล้ว ภาพที่ได้คือ MLX ยังครอบงานภาพกับเสียงไม่ครบ และนี่คือช่องว่างที่เครื่องมือตัวนี้เข้ามาเติม

ตัวเลขที่ต้องรู้ก่อนตัดสินใจ

หน้าทางการของ Google มีตารางที่ผมคิดว่าคนกำลังตัดสินใจควรดูก่อนอย่างอื่น เป็นตารางแรมสำหรับ การใช้งานโมเดล โดยแยกตามขนาดและระดับการบีบอัด[5]

Gemma 4 ขนาด E2B ใช้ 11.4GB ที่ความละเอียด 16 บิต ลดเหลือ 5.7GB ที่ 8 บิต และ 2.9GB ที่ 4 บิต ส่วน E4B เริ่มที่ 17.9GB แล้วลดเหลือ 8.9GB และ 4.5GB ตามลำดับ[5]

ประเด็นสำคัญอยู่ที่บรรทัดถัดจากตาราง Google เขียนเตือนไว้ตรง ๆ ว่าความต้องการแรมสำหรับ การปรับจูน สูงกว่าการใช้งานโมเดลมาก และตัวเลขจริงจะขึ้นกับเฟรมเวิร์ก ขนาดแบตช์ และว่ารวมการปรับค่าน้ำหนักทั้งโมเดลหรือใช้ LoRA[5]

งบที่เครื่องมือตั้งมาให้สอดคล้องกับคำเตือนนี้ ในโหมดฝึก ขนาดแบตช์ของ E2B คือ 2 ต่ออุปกรณ์ ส่วน E4B ตั้งไว้แค่ 1[2] ยิ่งโมเดลใหญ่ ยิ่งกินทีละคำน้อยลง

มุมของผู้ปฏิบัติจริงช่วยเติมภาพตรงนี้ บันทึกจาก MacBook M3 Pro แรม 18GB แจกแจงงบว่าตัวระบบปฏิบัติการกับแอปพื้นหลังกินไป 4 ถึง 6GB ส่วนค่าเกรเดียนต์กับสถานะตัวปรับค่าใช้ 2 ถึง 4GB[6]

นั่นแปลว่าเหลือให้ตัวโมเดลจริง ๆ ราว 12 ถึง 14GB และด้วยเหตุนี้เขาจึงเลือกได้แค่ E2B กับ E4B เท่านั้น[6]

งานของเขารันจบใน 1 ถึง 2 ชั่วโมงบนเครื่องตัวเอง และได้ชิ้นส่วนปรับจูนออกมาเล็ก ๆ ราว 30MB ที่เอาไปวางทับบนโมเดลฐานตอนใช้งาน[6]

ด่านที่ผู้พัฒนาเตือนไว้เอง

นี่คือส่วนที่ผมคิดว่าสำคัญที่สุด และเป็นส่วนที่คนมักข้าม

ผู้พัฒนาเขียนไว้ในเธรดของตัวเองบน Hacker News ว่างานนี้กินแรมแบบ ยกกำลังสองตามความยาวของลำดับข้อมูล ไม่ใช่โตแบบตรงตัว ประโยคของเขาคือการใช้ลำดับให้สั้นลงจึงช่วยกันแรมระเบิดได้[3]

แล้วเขาก็เล่าตัวเลขจริงของตัวเอง คือบนเครื่องแรม 64GB เขาถูกจำกัดให้ใช้ลำดับอินพุตได้ราว 2,000 โทเคน เพราะผลลัพธ์เฉลี่ยของงานเขาอยู่อีกราว 1,000 โทเคน รวมแล้วราว 3,000 โทเคนต่อตัวอย่าง[3]

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

ในไฟล์ตั้งค่าของเครื่องมือก็มีกล่องหมายเหตุสำหรับเครื่องแรม 16GB เขียนไว้ตรง ๆ ว่าโมเดลบวกรวมกับแคชและสถานะตัวปรับค่าจะไม่พอ และระบบปฏิบัติการจะฆ่าโปรเซสทิ้ง โดยคุณจะเห็นข้อความแรมหมดหรือรหัสออกเป็นลบ 9 พร้อมคำว่า semaphore รั่ว[2]

ทางแก้ที่เขาให้ไว้คือลดขนาดแบตช์ลงเป็น 1 เพิ่มการสะสมเกรเดียนต์เป็น 16 เปิดการตรวจจุดย้อนกลับ เปิดการคำนวณแบบ 16 บิต ลดความยาวข้อความลงเหลือ 1,024 แล้วลดต่อเป็น 512 ถ้ายังไม่พอ พร้อมย้ำให้ใช้ E2B แทน E4B[2]

มีอีกข้อที่ต้องรู้ ตัว repo ที่เปิดสาธารณะ ไม่ได้รวมทุกอย่างไว้ หน้า README ระบุชัดว่าที่นี่รวมเฉพาะโค้ดกับเอกสารการใช้งานสาธารณะ ส่วนแผนส่วนตัว บันทึกงานวิจัย และการตั้งค่า agent แยกเก็บไว้ที่อื่น[1]

ความหมายตรง ๆ คือโค้ดส่วนดึงข้อมูลจากคลาวด์อยู่ในที่เก็บสาธารณะแล้ว แต่มีข้อจำกัดที่ผมตรวจพบในโค้ด คือโหมดข้อความ รูปภาพ และภาพเสียงในเวอร์ชันนี้ยังโหลดได้แค่ไฟล์ CSV ในเครื่อง ส่วนโหมดเสียงใช้เส้นทางสตรีมจากคลาวด์ได้[1]

และจุดนี้มีคนตั้งคำถามในเธรดเดียวกันว่า 15,000 ชั่วโมงเสียงที่ผู้พัฒนาเล่าว่ามีนั้น จำเป็นจริงหรือไม่สำหรับงานปรับจูน[3]

คำตอบที่ผู้พัฒนาให้ไว้คือยิ่งมีข้อมูลมาก โมเดลบนเครื่องจะยิ่งดีและเร็วขึ้น และแผนเดิมของเขาคือกลั่นโมเดล Gemini 2.5 Pro ลงมาเป็นโมเดลถอดเสียงบนเครื่อง[3]

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

ข้อควรระวัง

มีมุมหนึ่งที่ผมอ่านแล้วคิดว่าคนส่วนใหญ่จะมองข้าม

นักพัฒนาอีกคนเตือนไว้ในเธรดว่า การโหลดไฟล์โมเดลจากแหล่งภายนอกนั้นเป็นช่องโหว่ได้จริง เขายกตัวอย่างช่องโหว่หมายเลข CVE-2024-34359 ที่เกิดจากไฟล์ GGUF ที่ถูกดัดแปลง ซึ่งเป็นช่องโหว่ระดับรุนแรงที่สุดในสายการให้คะแนน เขาจึงแนะนำให้ยึดรูปแบบ safetensors และตรวจค่าแฮชของไฟล์ทุกครั้งก่อนโหลด[3]

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

อีกจุดคือตัวแปรสถานะในไฟล์ pyproject.toml ของแพ็กเกจ ที่ระบุว่าเป็น Development Status 3 ซึ่งแปลว่า Alpha[4] คำนี้ไม่ใช่การดูถูกลดค่า แต่เป็นป้ายที่บอกว่าส่วนติดต่อยังเปลี่ยนได้

การติดตั้งก็มีจุดที่ต้องระวัง เพราะไฟล์ตั้งค่าไม่รวม torch ไว้ในรายการหลัก เหตุผลที่ระบุคือที่อยู่สำหรับติดตั้งต่างกันตามแพลตฟอร์ม คุณต้องติดตั้งด้วยมือก่อน แล้วจึงใช้ส่วนเสริมที่เตรียมไว้[4]

และอีกจุดที่คนมักพลาด หน้า README เตือนว่าโมเดลที่ดาวน์โหลดอาจต้องยืนยันตัวตนกับ Hugging Face และกดยอมรับเงื่อนไขของโมเดลก่อน จึงจะดาวน์โหลดได้[1]

ผมตรวจข้อมูลทั้งหมดนี้เมื่อวันที่ 9 ตุลาคม 2026 ยอดดาว จำนวนคอมมิต และจำนวน issue เป็นตัวเลขที่เปลี่ยนแปลงได้ และจะต่างจากนี้ในอีกไม่กี่เดือน

ใครควรลอง และใครยังไม่ควร

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

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

และข้อดีที่ผมยังไม่ได้พูดถึงคือมันแถมเครื่องฝึกให้ลองก่อน คือชุดข้อมูลตัวอย่างเล็ก ๆ ที่รันจบได้โดยไม่ต้องเตรียมอะไรเลย[2]

แต่ถ้าคุณเพิ่งเริ่มและยังไม่เคยปรับจูนโมเดลมาก่อน ผมแนะนำให้อ่านบันทึกการทดลองจริงบน MacBook M3 Pro ที่ผมอ้างถึงก่อน[6] จะเห็นภาพทั้งท่อชัดกว่า

และถ้าข้อมูลของคุณเป็นเสียงล้วนในปริมาณมหาศาล งานแรกที่ควรทำไม่ใช่การปรับจูน แต่เป็นการคัดกรองข้อมูลให้สะอาดก่อน มีคนเสนอในเธรดว่าให้ตัดช่วงที่ไม่มีเสียงออกด้วยตัวตรวจจับเสียงพูดก่อนส่งเข้าโมเดล เพราะช่วยลดทั้งภาระการประมวลผลและค่าใช้จ่ายได้มาก[3]

จุดที่ควรจับตาคือจำนวนผู้ร่วมพัฒนาใน repo มีแค่ 2 คน และคอมมิตเกือบทั้งหมดมาจากคนเดียว[1] หมายความว่าความเร็วในการแก้ปัญหาจะผูกกับเวลาว่างของคนคนนั้น ไม่ใช่ทีมใหญ่ เรื่องนี้ไม่ใช่ข้อเสียของเครื่องมือ แต่เป็นข้อมูลที่ควรรู้ก่อนฝากงานสำคัญไว้กับมัน

สรุป

เครื่องมือนี้ตอบคำถามหนึ่งได้ชัดเจน คือถ้าคุณต้องการปรับจูน Gemma ด้วยข้อมูลหลายรูปแบบบน Mac ตอนนี้ยังมีตัวเลือกไม่มาก และตัวนี้อธิบายเหตุผลของตัวเองไว้ตรงไปตรงมา

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

แล้วคุณเคยลองปรับจูนโมเดลบนเครื่องตัวเองแล้วเจอระบบฆ่าโปรเซสทิ้งหรือยัง? ถ้าเจอ เล่าให้ผมฟังได้ว่าเกิดขึ้นตอนทำงานกับข้อมูลแบบไหน

แหล่งอ้างอิง

[1] Matt Mireles, "mattmireles/gemma-tuner-multimodal", GitHub, 7 เมษายน 2026 ถึง 4 ตุลาคม 2026 (ค.ศ. 2026). https://github.com/mattmireles/gemma-tuner-multimodal

[2] gemma-tuner-multimodal, "config/config.ini.example" (คอมมิตล่าสุด 12 พฤษภาคม 2026), GitHub, สืบค้นเมื่อ 9 ตุลาคม 2026. https://github.com/mattmireles/gemma-tuner-multimodal/blob/main/config/config.ini.example

[3] MediaSquirrel และผู้ร่วมแสดงความเห็น, "Show HN: Gemma 4 Multimodal Fine-Tuner for Apple Silicon", Hacker News, 7 ถึง 10 เมษายน 2026 (ค.ศ. 2026). https://news.ycombinator.com/item?id=47680309

[4] gemma-tuner-multimodal, "pyproject.toml" (คอมมิตล่าสุด 9 เมษายน 2026), GitHub, สืบค้นเมื่อ 9 ตุลาคม 2026. https://github.com/mattmireles/gemma-tuner-multimodal/blob/main/pyproject.toml

[5] Google, "Gemma 4 model overview", Google AI for Developers, 2026. https://ai.google.dev/gemma/docs/core

[6] id8 Tools, "Fine-Tuning Gemma 4 on a MacBook M3 Pro: A Practical Guide", id8.co.in, 2026. https://id8.co.in/blog/fine-tuning-gemma-4-on-macbook-m3-pro

Top comments (0)