5 คะแนน โดย GN⁺ 2025-05-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Ollama เริ่มรองรับโมเดลมัลติโหมด (ข้อความ+ภาพ) ผ่าน เอนจินใหม่
  • รองรับโมเดลวิชวลมัลติโหมดหลากหลาย เช่น Llama 4 Scout และ Gemma 3 ทำให้สามารถถาม-ตอบโดยผสานภาพและข้อความเข้าด้วยกันได้
  • เอนจินใหม่นี้มีความสามารถด้าน การเพิ่มความเป็นโมดูลของโมเดล, การปรับปรุงความแม่นยำ, การจัดการหน่วยความจำอย่างมีประสิทธิภาพ
  • มี ประสิทธิภาพการอนุมานที่รวดเร็ว และการปรับแต่งให้เหมาะกับฮาร์ดแวร์ผ่าน image caching และการใช้ฮาร์ดแวร์เมทาดาทา
  • ในอนาคตมีแผนขยายฟีเจอร์เพิ่มเติมอีกหลายด้าน เช่น การรองรับคอนเท็กซ์ที่ยาวขึ้น, tool calling และสตรีมมิง

การรองรับโมเดลมัลติโหมดของ Ollama

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

ความเข้าใจและการอนุมานมัลติโหมดแบบครอบคลุม

Llama 4 Scout

  • Ollama รองรับ Llama 4 Scout (พารามิเตอร์ 109 พันล้าน, โมเดล mixture-of-experts)
  • ตัวอย่างเช่น สามารถตั้งคำถามที่อิงตำแหน่งในเฟรมวิดีโอได้
    • เช่น ตรวจจับลักษณะต่างๆ ของภาพได้ ไม่ว่าจะเป็นอาคารเฉพาะ จุดเด่นของสภาพแวดล้อม หรือข้อมูลพื้นหลัง
  • จากนั้นยังสามารถถามต่อเนื่องได้อย่างเป็นธรรมชาติ
    • เช่น "จากอาคารนี้ไป Stanford ไกลแค่ไหน?", "เดินทางอย่างไรดีที่สุด?" และให้ข้อมูลที่แม่นยำได้
    • ให้คำตอบที่สอดคล้องกับสถานการณ์จริง เช่น วิธีเดินทางหลายแบบ เส้นทาง และเวลาโดยประมาณ

Gemma 3

  • Gemma 3 สามารถรับภาพหลายภาพพร้อมกัน และวิเคราะห์ความสัมพันธ์ระหว่างภาพเหล่านั้นได้
    • เช่น ระบุได้อย่างรวดเร็วว่าในภาพ 4 ภาพมีพืชหรือสัตว์ชนิดใดปรากฏร่วมกัน มีฉากบางแบบอยู่หรือไม่ หรือมีสถานการณ์แปลกพิเศษหรือไม่
    • ตัวอย่างแนวสนุกคือ วิเคราะห์ว่าใครจะชนะหากเห็นลามะกับโลมากำลังชกมวย โดยพิจารณาคุณลักษณะของแต่ละตัวและความเคลื่อนไหว

การรู้จำและวิเคราะห์เอกสาร

Qwen 2.5 VL

  • โมเดล Qwen 2.5 VL ถูกใช้กับงานรู้จำตัวอักษร (OCR) และการดึงข้อมูลข้อความเฉพาะจากภายในภาพ
    • ตัวอย่างการใช้งานจริง เช่น ดึงข้อมูลจากเช็ค หรือแปลข้อความแนวตั้งภาษาจีนอย่างคำกลอนคู่รับฤดูใบไม้ผลิเป็นภาษาอังกฤษ

คุณลักษณะของเอนจินมัลติโหมดของ Ollama

  • ที่ผ่านมานั้น Ollama พึ่งพาโปรเจกต์ ggml-org/llama.cpp ในการรองรับโมเดล และพัฒนาโดยเน้นที่การใช้งานและ ความสามารถในการพกพาของโมเดล
  • ช่วงหลังมีสถาบันวิจัยหลายแห่งเปิดตัวโมเดลมัลติโหมด ทำให้ Ollama เสริมความแข็งแกร่งให้เอนจินของตนเองเพื่อรองรับโมเดลได้กว้างขึ้นตามเป้าหมาย
  • เอนจินใหม่นี้ปฏิบัติต่อโมเดลมัลติโหมดในฐานะองค์ประกอบอิสระและเป็นพลเมืองชั้นหนึ่ง พร้อมเพิ่มการมีส่วนร่วมจากพาร์ตเนอร์และชุมชน

ความหมายของพัฒนาการของเอนจิน

  • ยกระดับ ความน่าเชื่อถือและความแม่นยำ ของการอนุมานแบบโลคัลของ Ollama และวางรากฐานสำหรับการรองรับงานมัลติโหมดที่หลากหลายในอนาคต (เช่น เสียง, การสร้างภาพ, การสร้างวิดีโอ, การรองรับคอนเท็กซ์ยาว, การใช้เครื่องมือที่ดีขึ้น เป็นต้น)

ความเป็นโมดูลของโมเดล

  • ออกแบบให้ “ขอบเขตผลกระทบ” ของแต่ละโมเดลแยกจากกัน เพื่อเพิ่มความน่าเชื่อถือและช่วยให้นักพัฒนาผสานโมเดลใหม่ได้ง่าย
    • ggml/llama.cpp เดิมรองรับเฉพาะโมเดลข้อความล้วน ส่วนมัลติโหมดนั้น text decoder และ vision encoder แยกกันและทำงานแยกต่างหาก
    • ภาพต้องถูกฝังเป็น embedding ในอัลกอริทึมวิชันก่อนส่งต่อไปยังโมเดลข้อความ จึงทำให้สามารถทำลอจิกเฉพาะของแต่ละโมเดลให้กระชับได้
    • ภายใน Ollama โมเดลสามารถแยก embedding projection layer และโครงสร้างที่สอดคล้องกับระบบการฝึกเฉพาะของโมเดลได้เอง
    • ผู้สร้างโมเดลจึงโฟกัสกับโมเดลและการฝึกของตนเองได้ โดยไม่ต้องเพิ่มแพตช์เสริมหรือเงื่อนไขแยกซับซ้อน
    • ตัวอย่างสถาปัตยกรรมของบางโมเดลสามารถดูได้ใน GitHub repository ของ Ollama

การปรับปรุงความแม่นยำ

  • ภาพขนาดใหญ่มีจำนวนโทเค็นมาก จนอาจเกินขนาดแบตช์ได้
    • หากภาพเกินแบตช์ ข้อมูลตำแหน่งอาจเสียหายได้
  • Ollama เพิ่มเมทาดาทาเพิ่มเติมระหว่างการประมวลผลภาพเพื่อยกระดับความแม่นยำ
    • มีการจัดการรายละเอียด เช่น การใช้ causal attention หรือไม่, การแบ่งแบตช์ของ image embedding และการดูแลขอบเขต
    • หากจุดแบ่งไม่เหมาะสม คุณภาพของผลลัพธ์อาจลดลง จึงกำหนดเกณฑ์ตามงานวิจัยของแต่ละโมเดล
  • แม้เครื่องมืออนุมานแบบโลคัลอื่นจะใช้แนวทางต่างกันไป แต่ Ollama รับประกันคุณภาพด้วยการประมวลผลที่แม่นยำตามการออกแบบและวิธีฝึกของโมเดล

การเพิ่มประสิทธิภาพการจัดการหน่วยความจำ

  • Image caching: ภาพที่ประมวลผลแล้วหนึ่งครั้งจะถูกเก็บไว้ในหน่วยความจำต่อเนื่อง ทำให้การประมวลผลพรอมป์ต์ถัดไปเร็วขึ้น ตราบใดที่ยังไม่ถึงขีดจำกัดหน่วยความจำ ภาพจะยังคงถูกเก็บไว้
  • การคาดการณ์หน่วยความจำและการปรับปรุง KV cache: ร่วมมือกับผู้ผลิตฮาร์ดแวร์และพาร์ตเนอร์ด้าน OS เพื่อรับรู้ฮาร์ดแวร์เมทาดาทาอย่างแม่นยำและเพิ่มประสิทธิภาพการใช้หน่วยความจำ
    • มีการตรวจสอบตามเวอร์ชันเฟิร์มแวร์ และทำ benchmarking สำหรับความสามารถใหม่ๆ
  • Ollama ปรับแต่ง causal attention แยกเป็นรายโมเดล ไม่ใช่ในระดับกลุ่ม และให้การตั้งค่าที่เหมาะกับแต่ละโมเดล
    • ตัวอย่าง:
      • Gemma 3 ของ Google DeepMind: ใช้ sliding window attention เพื่อจัดสรรคอนเท็กซ์เพียงบางส่วน และนำหน่วยความจำที่เหลือไปใช้กับการอนุมานพร้อมกัน เป็นต้น
      • Llama 4 Scout, Maverick ฯลฯ ของ Meta: รองรับ chunked attention, 2D rotary embedding และการรองรับคอนเท็กซ์ยาวของโมเดล mixture-of-experts
  • ในกรณีของโมเดลที่ยังติดตั้งชั้น attention ไม่ครบถ้วน อาจยัง ‘ทำงาน’ ได้ แต่ระยะยาวอาจทำให้คุณภาพผลลัพธ์ลดลงหรือเกิดผลลัพธ์ผิดปกติได้

แผนในอนาคต

  • รองรับความยาวคอนเท็กซ์ที่มากขึ้น
  • เสริมความสามารถด้านการอนุมาน/การคิด
  • รองรับ tool calling และการตอบกลับแบบสตรีมมิง
  • ขยายความสามารถในการใช้งานคอมพิวเตอร์โดยตรง

คำขอบคุณ

  • องค์กรและนักวิจัยที่มีส่วนร่วมในการพัฒนาโมเดล
    • ขอขอบคุณห้องแล็บและสมาชิกชุมชนจำนวนมากที่ทุ่มเทกับการพัฒนาโมเดลวิชัน เช่น Google DeepMind, Meta Llama, Alibaba Qwen, Mistral, IBM Granite
  • GGML
    • เทนเซอร์ไลบรารีของทีม GGML เป็นองค์ประกอบหลักที่ขับเคลื่อนเอนจินอนุมานของ Ollama โดยสามารถเข้าถึง GGML ได้โดยตรงจาก Go เพื่อนำไปใช้กับ custom inference graph และการออกแบบสถาปัตยกรรมโมเดลที่ซับซ้อน
  • พาร์ตเนอร์ด้านฮาร์ดแวร์
    • ขอขอบคุณพาร์ตเนอร์ด้านฮาร์ดแวร์อย่าง NVIDIA, AMD, Qualcomm, Intel, Microsoft ที่ร่วมมือกันยกระดับประสิทธิภาพการอนุมานบนอุปกรณ์หลากหลายประเภท

1 ความคิดเห็น

 
GN⁺ 2025-05-17
ความคิดเห็นจาก Hacker News
  • รู้สึกประหลาดใจที่ได้ยินข่าวว่า Ollama ประกาศเอนจินใหม่ในช่วงเวลานี้ และแชร์ความรู้สึกว่าน่าจะสืบเนื่องจากการที่ llama.cpp ใส่ความสามารถด้าน vision ที่เสถียรลงในบรাঞ্চหลักได้สำเร็จหลังจากพยายามกันมานาน จนในที่สุดออกดอกออกผล คาดว่า Ollama เองก็น่าจะเตรียมฟีเจอร์นี้มานานแล้ว และมองว่าการตัดสินใจแยกตัวออกจากการพึ่งพา llama.cpp ในระยะแรกเพื่อเดินหน้าด้วยตัวเองเป็นการตัดสินใจที่สมเหตุสมผล
  • สงสัยว่าความแตกต่างที่แท้จริงของการเพิ่มความสามารถมัลติโหมดัลในทั้งสองโปรเจ็กต์คืออะไร เพราะรองรับ LLaVA มานานแล้ว จึงตั้งคำถามว่าเดิมทีจำเป็นต้องมีวิธีจัดการแบบพิเศษหรือไม่ เดิมคาดหวังว่า TFA จะอธิบายความต่างนี้ แต่กลับรู้สึกสับสนที่ Ollama นำเสนอมัลติโหมดัลราวกับเป็นสิ่งใหม่ทั้งหมด
  • มองว่าคำว่า มัลติโหมดัล ควรครอบคลุมไม่ใช่แค่ข้อความและภาพ แต่รวมถึงเสียงด้วย (และอาจรวมวิดีโอในอนาคต) หากโมเดลมีเพียงการสร้างภาพหรือวิเคราะห์ภาพ ก็ควรเรียกว่า ‘โมเดลวิชัน’ จะตรงกว่า ยกตัวอย่างว่าควรแยกโมเดลอย่าง Qwen2.5-Omni กับ Qwen2.5-VL ให้ชัดเจน และอธิบายว่าเอนจินใหม่ของ Ollama ในความหมายนี้คือการเพิ่มการรองรับ 'vision'
  • สนใจอยากจัดการอินพุตวิดีโอ และถามว่า Qwen2.5-Omni กับ Ollama รองรับอินพุตวิดีโอหรือไม่
  • แม้จะมีการพูดถึง ‘เอนจินใหม่’ ของ Ollama มาก แต่ก็อยากเห็นข้อมูลเชิงลึกว่ามันถูกสร้างขึ้นจริงอย่างไร เพราะ llama.cpp เองก็เป็นโปรเจ็กต์ที่ยอดเยี่ยมมาก ถ้าสร้างเอนจินมาทดแทนได้ก็อยากเห็นตัวอย่างแนวทางการทำงาน คาดว่าไลบรารีเทนเซอร์ GGML น่าจะมีบทบาทสำคัญ และเข้าใจว่าโครงสร้างน่าจะเป็นการเขียนการทำงานของโมเดลโดยตรงในภาษา Go ผ่าน FFI (การเรียกฟังก์ชันข้ามภาษา) เช่น การทำ Gemma3 พร้อมใช้ความสามารถของ GGML มองว่ารายละเอียดทางเทคนิคแบบนี้ควรถูกอธิบายอย่างชัดเจนกว่านี้ในบล็อกทางการ
  • Ollama ถูกวิจารณ์มาโดยตลอดเรื่องความไม่โปร่งใส การให้เครดิตที่คลุมเครือ และการตัดสินใจที่ไม่ค่อยยึดผู้ใช้เป็นศูนย์กลาง แต่ในโพสต์นี้กลับแปลกใจที่มีการใส่เครดิตให้ผู้มีส่วนร่วมมากขึ้น จึงเดาว่าน่าจะเป็นผลจากเสียงวิจารณ์ของผู้ใช้ที่ทำให้มีการปรับตัว
  • ยอมรับว่าธรรมเนียมการตั้งชื่อแบบ *llama ในโลก LLM ชวนสับสนมาก มีโปรเจ็กต์ชื่อคล้าย llama เต็มไปหมดจนยิ่งทำให้สับสน
  • แชร์ว่าความก้าวหน้าของ AI/ML เร็วเกินไปจนตามไม่ทัน ถ้าไม่ได้จับตาตลอดก็ยากจะเข้าใจจริง ๆ และยังพูดถึงแนวโน้มการชอบตั้งชื่อแบบเป็นมีม ก่อนหน้านี้ก็เคยมีกระแสตั้งชื่อตามตัวละคร Sesame Street หรือโมเดลตระกูล YOLO และแม้แต่งานวิจัยในงานประชุมก็ไม่ใช่ข้อยกเว้น
  • ออกนอกประเด็นเล็กน้อยเพื่อถามว่าทำไมผู้ใช้บางส่วนถึงมอง Ollama ในแง่ลบ เพราะที่ผ่านมาแทบไม่เห็นคำอธิบายที่มากไปกว่าแค่บอกให้ไปรัน llama.cpp เอง
  • แชร์ลิงก์ Reddit และ GitHub issue เพื่อชี้ให้เห็นว่า Ollama มีปัญหาเรื้อรังเรื่องไม่ให้เครดิต llama.cpp อย่างเหมาะสม และถึงขั้นมีบางโปรเจ็กต์ที่ใช้ llama.cpp โดยตรงแต่กลับทำให้คนเข้าใจว่าเครดิตเป็นของ Ollama อีกทั้ง Ollama เองก็ไม่ได้มีการมีส่วนร่วมโดยตรงเสมอไป (แม้จะไม่ใช่ข้อบังคับ) แต่มีฟอร์กที่ดูแลกันภายใน ทำให้คนที่สนใจสามารถนำโค้ดไปใช้ต่อแบบ cherry-pick ได้เมื่ออยากใช้
  • นอกเหนือจากประเด็นเรื่องวัฒนธรรม ไลเซนส์ และ FOSS ที่พูดไปก่อนหน้า ยังมีคนบ่นเรื่องวิธีเก็บไฟล์ด้วย โดยชี้ว่า Ollama ใช้ระบบจัดเก็บบนดิสก์และรีจิสทรีของตัวเอง ทำให้การนำกลับมาใช้ซ้ำไม่สะดวก คาดว่าในระยะยาวอาจออกแบบโครงสร้างแบบปิดไว้เพื่อการทำเงิน อาจตั้งใจเลียนแบบ Docker เพื่อลดการเก็บซ้ำ แต่ในทางปฏิบัติกลับทำให้ใช้งานแย่ลง สุดท้ายผู้ใช้ต้องเก็บไฟล์ขนาดใหญ่กว่า 30GB ซ้ำไปมา ทำให้แม้เป็นปัญหาเล็กก็รู้สึกหนักขึ้น มองว่าวิธีมาตรฐานที่เข้ากันได้กับหลายอีโคซิสเต็มจะดีกว่า และสุดท้ายก็เลิกใช้ Ollama เพราะความไม่สะดวกนี้
  • มองว่า Ollama เป็นโซลูชันในโลก LLM ที่คล้าย Docker ทั้งในด้านประสบการณ์ผู้ใช้และไวยากรณ์ของไฟล์โมเดลที่ดูได้แรงบันดาลใจจาก Dockerfile นึกถึงช่วงแรกของ Docker ที่มีข้อถกเถียง Docker กับ LXC แต่หลายคนมองข้ามนวัตกรรมด้านประสบการณ์ผู้ใช้ของ Docker ไป อย่างไรก็ตามก็ยังเห็นว่าการไม่ยอมรับ llama.cpp อย่างเหมาะสมมาเป็นเวลานานเป็นปัญหา แม้ปัจจุบันจะเริ่มเปิดเผยเครดิตมากขึ้นบ้างแล้ว
  • ไม่พอใจที่ Ollama ไม่ค่อยร่วมมือกับชุมชน และเพราะเป็นบริษัทที่ได้รับเงินทุนจาก VC จึงยังคงมีคำถามเรื่องโมเดลรายได้อยู่ ขณะที่ทางเลือกอื่นอย่าง llama.cpp, lmstudio, ramalama ต่างก็พอมองเห็นภาพสถานะของตนได้ชัดกว่า และ ramalama เองก็มีส่วนช่วยโปรเจ็กต์โอเพนซอร์สที่เกี่ยวข้องอยู่มาก พร้อมแชร์ลิงก์ GitHub ไว้ให้อ้างอิง
  • รู้สึกเสียดายที่ทั้งที่ Ollama เป็นเพียงฟรอนต์เอนด์ของ llama.cpp แต่กลับไม่แสดงออกหรือยอมรับเรื่องนั้นอย่างตรงไปตรงมา
  • มีการชี้ว่าในตัวอย่างของ Ollama เรื่อง ‘การแปลคำกลอนตรุษจีนแนวตั้ง’ มีการแปลผิดหลายจุด จึงเดาว่าคนเขียนบล็อกอาจไม่ใช่ผู้ใช้ภาษาจีนจริง ๆ พร้อมวิเคราะห์อย่างละเอียดว่าแต่ละส่วนของข้อความจริงต่างจากผลลัพธ์ของ Ollama อย่างไร
  • ผู้ดูแลที่ทำเดโมตัวอย่างดังกล่าวเข้ามาตอบด้วยตัวเอง โดยยืนยันชัดเจนว่าตนเป็นคนจีน เพิ่มความน่าเชื่อถือให้คำอธิบาย และมองว่าคำแปลภาษาอังกฤษนั้นค่อนข้างแม่นยำอยู่แล้ว พร้อมย้ำว่าไม่ได้พยายามปกปิดหรือบิดเบือนข้อผิดพลาดของโมเดลหรือเดโม และหวังว่าในระยะยาวคุณภาพของโมเดลจะดีขึ้นอีก
  • ตั้งใจว่าจะลองใช้ดูเอง และชอบรูปแบบบทความที่โชว์ตัวอย่างใช้งานจริงกับรายละเอียดได้ทันที
  • จุดแข็งของ Ollama คือที่ผ่านมาเราสามารถรันโมเดลได้ทันทีด้วยคำสั่ง Docker ง่าย ๆ โดยแทบไม่ต้องตั้งค่าอะไรเลย แต่หากต้องใช้ภาพและวิดีโอ Docker จะไม่ใช้ GPU ทำให้เกิดข้อจำกัดทางเทคนิค จึงสงสัยว่า Ollama จะรักษาการรองรับการเชื่อมต่อกับ Docker ต่อไปอย่างไร หรือฟีเจอร์นี้อาจกลายเป็นเพียงองค์ประกอบรองที่ไม่ได้สำคัญมากสำหรับโปรเจ็กต์ในอนาคต
  • มีความเห็นเสริมว่าในบางแพลตฟอร์ม Docker ใช้ GPU ได้ เพียงแต่ต้องตั้งค่าเพิ่มมากขึ้น และ nvidia ก็มีเอกสารที่เกี่ยวข้องให้
  • รู้สึกขำที่ในตัวอย่างการนำทางในสแตนฟอร์ดมีข้อมูลผิดจริง โดยแชร์เกร็ดว่าทางหลวง CA-85 อยู่ทางใต้กว่าของ Palo Alto
  • ใช้ Ollama กับโมเดลรันในเครื่องมาเกือบหนึ่งปีและพอใจมาก แต่แทบไม่มีโอกาสได้ใช้ความสามารถมัลติโหมดัลอย่าง Llava เพราะส่วนใหญ่ใช้งานแบบข้อความเป็นหลัก จึงขอคำแนะนำโปรเจ็กต์ที่มีประโยชน์และน่าสนใจซึ่งสร้างบนโมเดลมัลติโหมดัลแบบโลคัล เพื่อหาไอเดียสำหรับโปรเจ็กต์ส่วนตัว