Ferret: โมเดลภาษาขนาดใหญ่แบบมัลติโมดัล
(github.com/apple)- Ferret เป็น MLLM แบบเอนด์ทูเอนด์ที่รับเป้าหมายอ้างอิงในรูปแบบอิสระเป็นอินพุต และระบุพิกัดอ้างอิงในคำตอบ โดยมุ่งให้รองรับการอ้างอิงและการระบุหลักฐานได้ทุกระดับความละเอียดและทุกตำแหน่ง
- องค์ประกอบหลักคือ Hybrid Region Representation และ Spatial-aware Visual Sampler ซึ่งช่วยให้ MLLM รองรับการอ้างอิงและการระบุหลักฐานแบบ open-vocabulary ที่ละเอียดได้
- โปรเจกต์นี้มี GRIT Dataset ประมาณ 1.1 ล้านรายการ, Ferret-Bench, checkpoint delta ขนาด 7B·13B รวมถึงขั้นตอนการฝึก การประเมิน และการรันเดโม
- การฝึกอ้างอิงสภาพแวดล้อม 8×A100 80GB และเมื่อมีจำนวน GPU น้อยกว่า ต้องปรับชุดค่า
per_device_train_batch_size,gradient_accumulation_steps,num_gpusเพื่อคงขนาด global batch ไว้ - ข้อมูลและโค้ดมีไว้ เฉพาะเพื่อวัตถุประสงค์ด้านการวิจัย โดยชุดข้อมูลอยู่ภายใต้ CC BY NC 4.0 อนุญาตเฉพาะการใช้งานที่ไม่ใช่เชิงพาณิชย์ และต้องปฏิบัติตามเงื่อนไขไลเซนส์ของ LLaMA, Vicuna และ GPT-4 ด้วย
เป้าหมายและองค์ประกอบของ Ferret
- Ferret เป็น MLLM แบบเอนด์ทูเอนด์ ที่ชูแนวคิด “Refer and Ground Anything Anywhere at Any Granularity”
- มีเป้าหมายเพื่อรับอินพุตอ้างอิงได้ในรูปแบบใดก็ได้ และ ระบุหลักฐานเชิงตำแหน่ง ของเป้าหมายในคำตอบ
- ผลงานหลักสรุปได้เป็นสามส่วน
- Ferret Model: ใช้ Hybrid Region Representation และ Spatial-aware Visual Sampler เพื่อให้อ้างอิงและระบุหลักฐานแบบ open-vocabulary ที่ละเอียดได้
- GRIT Dataset: ชุดข้อมูล ground-and-refer instruction tuning ขนาดใหญ่ ลำดับชั้น และทนทาน ประมาณ 1.1 ล้านรายการ
- Ferret-Bench: เบนช์มาร์กประเมินผลมัลติโมดัลที่ต้องใช้ทั้งการอ้างอิง·การระบุหลักฐาน ความหมาย ความรู้ และการใช้เหตุผล
รีลีสและสถานะโมเดล
- วันที่ 8 ตุลาคม 2024 มีการเปิดตัว Ferret-UI
- แนะนำว่าเป็น MLLM ที่เน้น UI ซึ่งสามารถทำงาน referring, grounding และ reasoning ได้อย่างมีประสิทธิภาพ
- วันที่ 10 กรกฎาคม 2024 Ferret-v2 ได้รับการคัดเลือกใน COLM 2024
- วันที่ 15 กุมภาพันธ์ 2024 Ferret ได้รับการคัดเลือกเป็น ICLR 2024 Spotlight
- วันที่ 14 ธันวาคม 2023 มีการเผยแพร่ checkpoint Ferret 7B·13B
- วันที่ 30 ตุลาคม 2023 มีการเผยแพร่ โค้ดโมเดล FERRET และ Ferret-Bench
การติดตั้งและเงื่อนไขการฝึก
- การติดตั้งเป็นขั้นตอนโคลนรีโพซิทอรี แล้วติดตั้งแพ็กเกจในสภาพแวดล้อม Conda ที่ใช้
python=3.10pip install -e .pycocotoolsprotobuf==3.20.0
- สำหรับการฝึก ต้องติดตั้งแพ็กเกจเพิ่มเติมคือ ninja และ
flash-attn --no-build-isolation - สภาพแวดล้อมอ้างอิงสำหรับการฝึก FERRET คือ A100 GPU 8 ตัว หน่วยความจำตัวละ 80GB
- เมื่อฝึกด้วย GPU จำนวนน้อยกว่า ต้องคงขนาด global batch ไว้
- ขนาด global batch =
per_device_train_batch_size×gradient_accumulation_steps×num_gpus
- ขนาด global batch =
- ไฮเปอร์พารามิเตอร์สำหรับการ fine-tuning ใช้โครงสร้างคล้ายกับ LLaVA(Vicuna)
- FERRET-7B: Global Batch Size 128, Learning rate
2e-5, Epochs 3, Max length 2048, Weight decay 0 - FERRET-13B: Global Batch Size 128, Learning rate
2e-5, Epochs 3, Max length 2048, Weight decay 0
- FERRET-7B: Global Batch Size 128, Learning rate
การใช้โมเดลฐานและ checkpoint
- ก่อนฝึก ต้องเตรียมน้ำหนักโมเดลฐาน Vicuna v1.3
- ต้องใช้น้ำหนัก projector จากการ pretraining ขั้นที่ 1 ของ LLaVA ด้วย
- 7B projector
- 13B projector
- checkpoint ที่เผยแพร่ไม่ได้เป็นโมเดลที่ pretrain แล้วทั้งชุด แต่ให้มาในรูปแบบ delta เทียบกับ Vicuna
- ผู้ใช้ต้องรับน้ำหนัก Vicuna ก่อน จากนั้นดาวน์โหลด delta 7B หรือ 13B ของ Ferret แล้วใช้สคริปต์
ferret.model.apply_deltaเพื่อปรับ offset เข้ากับน้ำหนัก Vicuna - weight differentials ที่ Apple จัดให้อยู่ภายใต้ไลเซนส์ CC-BY-NC ส่วน LLaMA หรือซอฟต์แวร์บุคคลที่สามอื่น ๆ ต้องเป็นไปตามเงื่อนไขของแต่ละราย
การประเมินและการรันเดโม
- การประเมินมีรายละเอียดขั้นตอนในเอกสาร
EVAL.mdแยกต่างหาก - เดโมโลคัลใช้ Gradio web UI และต้องมีการฝึก FERRET รวมถึง checkpoint สำหรับใช้งานโลคัล
- ขั้นตอนการรันเดโมมีสามขั้น
- รัน controller:
ferret.serve.controller - รันเว็บเซิร์ฟเวอร์ Gradio:
ferret.serve.gradio_web_server - รัน model worker ที่ทำ inference บน GPU:
ferret.serve.model_worker
- รัน controller:
- model worker รับผิดชอบโมเดลเดียวที่ระบุด้วย
--model-path - เมื่อโหลดโมเดลเสร็จและเห็น “Uvicorn running on ...” ให้รีเฟรช Gradio web UI แล้วจะเห็นโมเดลที่รันอยู่ในรายการ
ข้อจำกัดการใช้งานและที่มา
- ข้อมูลและโค้ดถูกออกแบบและให้ไลเซนส์ไว้ เพื่อวัตถุประสงค์ด้านการวิจัย เท่านั้น
- จำกัดการใช้งานให้เป็นไปตามข้อตกลงไลเซนส์ของ LLaMA, Vicuna และ GPT-4
- ชุดข้อมูลอยู่ภายใต้ CC BY NC 4.0 และอนุญาตเฉพาะการใช้งานที่ไม่ใช่เชิงพาณิชย์
- โมเดลที่ฝึกด้วยชุดข้อมูลนี้ไม่ควรถูกใช้นอกเหนือจากวัตถุประสงค์ด้านการวิจัย
- โปรเจกต์นี้อิงจากโค้ดเบสของ LLaVA และโค้ดเบส LLM ของ Vicuna
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
นี่จะไปทาง มัลติโมดัล กันแล้วเหรอ? ถ้า Google ยังทำคำบรรยายภาพด้านการเข้าถึงในพื้นที่นี้ได้ไม่ดีกว่าระดับ “โลโก้บริษัท” ก็คิดว่าจะกลับไปใช้ Apple
แม้ Apple เองก็ต้องลดบั๊กและทำให้ VoiceOver ไม่รู้สึกเหมือนจะแตกพังเพียงแค่ไปแตะนิดหน่อย แต่แม้ไม่มี LLM คำบรรยายภาพก็สะอาดและชัดเจนอยู่แล้ว
ตัวอย่างเช่น มันใกล้เคียงกับ “โลโก้สีเขียวบนพื้นหลังสีดำ” ขณะที่ Google อย่างที่บอกไปก่อนหน้านี้ จะใกล้กับ “โลโก้บริษัท” มากกว่า ดูเหมือนผลลัพธ์ที่เกิดขึ้นเมื่อ AI ถูกคราวด์ซอร์สแทนที่จะฝึกด้วยข้อมูลคุณภาพสูงที่ดี
ใช้ตระกูลโมเดล Flamingo: https://deepmind.google/discover/blog/tackling-multiple-task...
ยังมีข่าวลือด้วยว่าฟีเจอร์ LLM จะเข้ามาใน macOS / iOS รุ่นที่จะออกปีหน้า
อีกอย่างที่น่าสนใจเกี่ยวข้องกัน: “LLM in a flash: Efficient Large Language Model Inference with Limited Memory”
Apple ดูเหมือนกำลังเตรียมความก้าวหน้าครั้งใหญ่ด้าน การอนุมานบนอุปกรณ์ โดยใช้ LLM ลักษณะนี้
https://arxiv.org/abs/2312.11514
ตัวงานวิจัยเก่าแล้ว (ตุลาคม 2023) แต่ weights เพิ่งออกมาใหม่ (ธันวาคม 2023)
https://lifearchitect.ai/models-table/
Apple ดูเหมือนเงียบ ๆ เรื่อง LLM แต่ก็พัฒนา สแตก AI ฮาร์ดแวร์+ซอฟต์แวร์ อย่างต่อเนื่องโดยไม่โฆษณาหวือหวา
ถ้า iOS รุ่นใหม่จู่ ๆ ทำให้หน้าต่างแชต OpenAI/Bard ดูล้าสมัยอย่างน่าขัน ก็อาจแซง Microsoft/OpenAI และ Google ได้เลย
ถ้าการใช้งาน AI ส่วนใหญ่ย้ายไปอยู่บนฮาร์ดแวร์ของ Apple มากขึ้น ก็จะเป็นภัยต่อ Nvidia และ Arm กับ TSMC ก็มีแนวโน้มจะได้ประโยชน์
มีโอกาสสูงกว่าที่จะ “แค่” ใช้เทคโนโลยีเดียวกันนี้ค่อย ๆ ปรับปรุงผลิตภัณฑ์อย่าง Siri หรือ การเติมข้อความอัตโนมัติ บนคีย์บอร์ด ซึ่งคิดว่าเป็นทิศทางที่ดี
ไม่ได้พยายามหาเงินลงทุนจากเวนเจอร์ และธุรกิจหลักก็ไม่ได้ถูก AI ในฐานะ “วิวัฒนาการของการค้นหา” คุกคาม
ในมุมผลิตภัณฑ์ ตอนนี้สิ่งที่ได้ยินก็มีแค่ข้อความประมาณว่า M3 Max เหมาะกับการรันโมเดลแมชชีนเลิร์นนิง
จนกว่าจะมีผลิตภัณฑ์สำหรับผู้บริโภคพร้อมจริง ก็คงแค่พูดถึงแบบเป็นพิธีการในประชุมการเงินเพื่อจัดการความคาดหวังของนักวิเคราะห์ก็พอ
แค่จะกู้ความเชื่อมั่นของนักพัฒนาก็น่าจะใช้เวลานาน และก็ดูไม่เหมือนว่าจะเกิดขึ้น
ช่วยนิยามหน่อยได้ไหมว่า “MLLM” หมายถึงอะไร?
อยากให้ Apple ออก iPhone ที่มี ผู้ช่วย LLM แบบส่วนตัวบนอุปกรณ์ ที่ดีได้เร็วสุดก็ปีหน้า
ฮาร์ดแวร์ก็ดูเหมาะกับสิ่งนี้มาก
ถ้าออกมาแบบนั้น อาจทำให้ฉันยอมทำลายรอบการเปลี่ยนเครื่องที่ปกติใช้ราว 4 ปีแล้วซื้อโทรศัพท์ใหม่เลย สำหรับฉัน Siri แทบใช้งานไม่ได้
น่าสนใจว่าจะให้ความสามารถต่างกันตามสถานะออนไลน์/ออฟไลน์ หรือจะรองรับแบบออฟไลน์ล้วนไปเลย
มีบทความหนึ่งที่พอเห็นภาพพื้นหลังได้: https://archive.is/en3VL
ถ้าเป็นเครื่องมือเสียง มันใกล้เคียงกับสิ่งที่คาดหวังมาก คือคุยเหมือนคุยกับคนปกติได้ ไม่ใช่ต้องพูดคำสั่งเฉพาะเสียงดังแบบ Siri
https://jackcook.com/2023/09/08/predictive-text.html
ฉันใช้ iPhone รุ่นใหม่อยู่ แต่แทบไม่ค่อยเห็นมันทำงานจริง
ตอนนี้ดูเหมือนมันยังช้าเกินไปกว่าจะตามความเร็วการพิมพ์ของฉัน หรือไม่ก็โมเดลเล็กเกินไปกว่าจะเสนอสิ่งที่มีประโยชน์ได้มาก
แม้ตอนนี้ก็ยังทำให้ ChatGPT พูดเรื่องแย่มาก ๆ ได้ และถ้า Apple ออกอะไรแบบรันบนอุปกรณ์ มันก็คงถูกทำให้เป็นหุ่นยนต์ไม่ดีได้เหมือนกัน
ส่วนตัวคิดว่า LLM ยังไม่ปลอดภัยพอสำหรับใช้งานโปรดักชันที่มุ่งสู่ผู้ใช้ทั่วไป
พอเห็นว่า “FERRET ถูกฝึกด้วย A100 GPU 8 ตัวที่มีหน่วยความจำ 80GB” ก็เหมือนว่า Apple เองก็หนี กับดัก CUDA ไม่พ้นเหมือนกัน
น่าสนใจดีที่มีความสัมพันธ์เชิงเป็นปฏิปักษ์ทางศีลธรรมกับ Nvidia แต่ก็ต้องพึ่งพากันบางส่วน
แต่ถ้าลงลึกมากพอ ก็อาจยอมทุ่มเงินกับโครงสร้างพื้นฐานด้านการประมวลผลของตัวเองได้
ตอนนี้ Nvidia คือราชาแห่งงานประมวลผลบน GPU และการพัฒนาฮาร์ดแวร์ที่ใกล้เคียงกันก็ไม่ใช่งานเล็กหรือราคาถูก แต่ Apple ก็อยู่ในตำแหน่งที่ดีมากพอจะทำได้ถ้าตัดสินใจลงทุน
ต่อให้มีความขัดแย้งระหว่างบริษัท ผมว่าถ้ากระบวนการไหนถูกกว่าหรือง่ายกว่า บริษัทต่าง ๆ ก็ยินดีจะยอมรับมัน
แม้แต่ Studio กับ Mac Pro เองก็ยังใกล้เคียงกับการเอาชิปโน้ตบุ๊กมาต่อรวมกัน และถ้าเป็นงานหนักก็ควรใช้อุปกรณ์หนักให้เหมาะกัน
รู้ว่า Apple มีความสัมพันธ์ที่ไม่ค่อยดีกับ Nvidia แต่ก็หวังว่าจะช่วยเสริมความแข็งแรงให้ระบบนิเวศ AMD/ROCm
แน่นอนว่า Apple เองก็น่าจะกำลังสร้างอะไรของตัวเองในพื้นที่นี้อยู่เหมือนกัน ด้วยสินทรัพย์สภาพคล่องระดับหลายพันล้านดอลลาร์ ก็น่าจะทุ่มกับ R&D ไม่น้อย
สุดท้ายแล้ว โมเดลดีปเลิร์นนิง พวกนี้รันได้บนฮาร์ดแวร์แทบทุกแบบ และถ้ายอมเสียประสิทธิภาพเล็กน้อย ก็สามารถสลับฮาร์ดแวร์ประเภทหนึ่งไปใช้อีกประเภทได้ค่อนข้างง่าย
โดยพื้นฐานแล้วมันค่อนข้างใกล้เคียงกับสินค้าโภคภัณฑ์ทั่วไป
มีใครรู้ไหมว่า โมเดลโอเพนซอร์ส ตัวที่ดีที่สุดที่ใช้เชิงพาณิชย์ได้และรันแบบโลคัลบน iPhone ได้คืออะไร?
เป็นโอเพนซอร์สและรันแบบเนทีฟบนแพลตฟอร์มหลัก ๆ ได้ ผมยังแชร์วิดีโอที่มันรันบน iPad Mini, Pixel 7, iPhone 12, Surface Pro (Windows 10 & Ubuntu Jellyfish), Mac (Intel & สถาปัตยกรรม M) ไว้ด้วย
แอปยังห่างไกลจากคำว่าสมบูรณ์มาก จุดเริ่มต้นคือผมอยากใช้ on-device AI บน Flutter เลยเริ่มจากพอร์ต llama.cpp และต่อไปก็คิดว่าจะพอร์ตอิมพลีเมนเทชันใหม่ ๆ อย่าง whisper.cpp, bark.cpp ด้วย
ที่เก็บโค้ด: https://github.com/BrutalCoding/aub.ai
บนอุปกรณ์ Apple ใช้อันนี้ได้เลย: https://testflight.apple.com/join/XuTpIgyY
แอปรองรับไฟล์ GGUF ใด ๆ ก็ได้ แต่ควรเป็นรูปแบบพรอมป์ต์ ChatML ไม่อย่างนั้น UI แชต/บอลลูนข้อความอาจเพี้ยนได้ ตอนนี้ยังไม่ได้ทำให้ปรับแต่งได้ เพราะมันเป็นเพียงแอปตัวอย่างของปลั๊กอินเท่านั้น ถึงอย่างนั้นก็กำลังพัฒนาอย่างจริงจังให้ไปถึงรูปแบบที่ตั้งใจไว้
แต่ในแง่การใช้งาน แอป ChatGPT4 ดีกว่ามาก ทั้งตัวโมเดลเองก็ดีกว่า และยังมีความสามารถมัลติโมดัลรวมถึงข้อความ/ภาพ/เสียง พร้อม UI ที่ดีกว่าด้วย
“ข้อมูลและโค้ดมีไว้และได้รับอนุญาตให้ใช้เพื่อวัตถุประสงค์ด้านการวิจัยเท่านั้น นอกจากนี้ยังจำกัดให้ใช้ภายใต้ข้อตกลงใบอนุญาตของ LLaMA, Vicuna และ GPT-4 ชุดข้อมูลอยู่ภายใต้ CC BY NC 4.0 และอนุญาตเฉพาะการใช้งานที่ไม่ใช่เชิงพาณิชย์ และโมเดลที่ฝึกด้วยชุดข้อมูลนี้ห้ามนำไปใช้นอกเหนือจากวัตถุประสงค์ด้านการวิจัย”
เดี๋ยวก่อน ตรงนี้ GPT-4 เข้ามาเกี่ยวได้ยังไง?