Ferret: Mô hình ngôn ngữ lớn đa phương thức
(github.com/apple)- Ferret là một MLLM end-to-end nhận các đối tượng chỉ dẫn ở dạng tự do làm đầu vào và có thể gắn cơ sở vị trí trong phản hồi, hướng tới tham chiếu và gắn cơ sở không phụ thuộc vào mức độ chi tiết hay vị trí
- Các thành phần cốt lõi là Hybrid Region Representation và Spatial-aware Visual Sampler, qua đó hỗ trợ tham chiếu và gắn cơ sở open-vocabulary ở mức tinh vi trong MLLM
- Dự án đồng thời cung cấp khoảng 1,1 triệu mục của GRIT Dataset, Ferret-Bench, delta checkpoint 7B·13B, cùng quy trình chạy huấn luyện, đánh giá và demo
- Huấn luyện lấy môi trường 8×A100 80GB làm chuẩn; khi có ít GPU hơn, cần điều chỉnh tổ hợp
per_device_train_batch_size,gradient_accumulation_steps,num_gpusđể giữ nguyên kích thước batch toàn cục - Dữ liệu và mã nguồn chỉ dành cho mục đích nghiên cứu; bộ dữ liệu dùng giấy phép CC BY NC 4.0 nên chỉ cho phép sử dụng phi thương mại, đồng thời phải tuân theo điều kiện giấy phép của LLaMA, Vicuna và GPT-4
Mục tiêu và cấu thành của Ferret
- Ferret là một MLLM end-to-end với khẩu hiệu “Refer and Ground Anything Anywhere at Any Granularity”
- Mục tiêu là chấp nhận đầu vào tham chiếu ở định dạng tùy ý và gắn cơ sở đối tượng trong phản hồi
- Các đóng góp chính được tóm tắt thành ba phần
- Ferret Model: sử dụng Hybrid Region Representation và Spatial-aware Visual Sampler để cho phép tham chiếu và gắn cơ sở open-vocabulary ở mức tinh vi
- GRIT Dataset: bộ dữ liệu instruction tuning ground-and-refer quy mô lớn, có cấu trúc phân cấp và độ bền cao với khoảng 1,1 triệu mẫu
- Ferret-Bench: benchmark đánh giá đa phương thức đòi hỏi đồng thời tham chiếu·gắn cơ sở, ngữ nghĩa, tri thức và suy luận
Tình hình phát hành và mô hình
- Ngày 8/10/2024, Ferret-UI được công bố
- Được giới thiệu là MLLM tập trung vào UI, có thể thực hiện hiệu quả các tác vụ referring, grounding và reasoning
- Ngày 10/7/2024, Ferret-v2 được chấp nhận tại COLM 2024
- Ngày 15/2/2024, Ferret được chọn là ICLR 2024 Spotlight
- Ngày 14/12/2023, checkpoint Ferret 7B·13B được phát hành
- Ngày 30/10/2023, mã mô hình FERRET và Ferret-Bench được công bố
Cài đặt và điều kiện huấn luyện
- Quy trình cài đặt là clone kho lưu trữ rồi cài gói trong môi trường Conda
python=3.10pip install -e .pycocotoolsprotobuf==3.20.0
- Các gói bổ sung cho huấn luyện gồm ninja và
flash-attn --no-build-isolation - Môi trường chuẩn để huấn luyện FERRET là 8 GPU A100, mỗi GPU có 80GB bộ nhớ
- Khi huấn luyện với ít GPU hơn, cần giữ nguyên kích thước batch toàn cục
- Kích thước batch toàn cục =
per_device_train_batch_size×gradient_accumulation_steps×num_gpus
- Kích thước batch toàn cục =
- Hyperparameter fine-tuning sử dụng cấu hình tương tự 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
Mô hình nền và cách dùng checkpoint
- Trước khi huấn luyện, cần chuẩn bị trọng số mô hình nền Vicuna v1.3
- Cũng cần trọng số projector pretraining giai đoạn 1 của LLaVA
- projector 7B
- projector 13B
- Checkpoint công khai không được cung cấp dưới dạng toàn bộ mô hình pretrained mà ở dạng delta so với Vicuna
- Người dùng trước tiên cần nhận trọng số Vicuna, sau đó tải delta 7B hoặc 13B của Ferret và dùng script
ferret.model.apply_deltađể áp dụng offset vào trọng số Vicuna - Weight differentials do Apple cung cấp áp dụng giấy phép CC-BY-NC; còn LLaMA hay phần mềm bên thứ ba khác tuân theo điều kiện riêng của chúng
Đánh giá và chạy demo
- Việc đánh giá được mô tả chi tiết trong tài liệu riêng
EVAL.md - Demo cục bộ sử dụng Gradio web UI và yêu cầu huấn luyện FERRET cũng như sử dụng checkpoint cục bộ
- Quy trình chạy demo gồm ba bước
- chạy controller:
ferret.serve.controller - chạy Gradio web server:
ferret.serve.gradio_web_server - chạy model worker thực hiện suy luận trên GPU:
ferret.serve.model_worker
- chạy controller:
- Model worker phụ trách một mô hình duy nhất được chỉ định bằng
--model-path - Sau khi tải mô hình xong và thấy thông báo “Uvicorn running on ...”, có thể làm mới Gradio web UI để kiểm tra mô hình đã chạy trong danh sách
Hạn chế sử dụng và nguồn gốc
- Dữ liệu và mã nguồn được cung cấp giấy phép và chỉ dành cho mục đích nghiên cứu
- Việc sử dụng bị giới hạn trong phạm vi tuân thủ các thỏa thuận giấy phép của LLaMA, Vicuna và GPT-4
- Bộ dữ liệu dùng giấy phép CC BY NC 4.0 và chỉ cho phép sử dụng phi thương mại
- Các mô hình được huấn luyện bằng bộ dữ liệu này không được sử dụng ngoài mục đích nghiên cứu
- Dự án dựa trên codebase của LLaVA và codebase LLM của Vicuna
1 bình luận
Ý kiến trên Hacker News
Đã chuyển sang đa phương thức rồi sao? Nếu Google không thể làm phần mô tả hình ảnh trong mảng khả năng tiếp cận này tốt hơn mức “logo công ty”, tôi sẽ tính quay lại Apple
Dù Apple cũng cần giảm lỗi và làm cho VoiceOver bớt cảm giác như chỉ cần đụng nhẹ là sập, nhưng ngay cả khi không có LLM, mô tả hình ảnh của họ đã gọn gàng và rõ ràng rồi
Ví dụ, nó gần với “logo màu xanh lá trên nền đen”, còn Google thì như đã nói, gần với “logo công ty”. Cảm giác như đây là kết quả khi AI được crowdsourcing thay vì được huấn luyện bằng dữ liệu chất lượng cao tốt
Nó dùng họ mô hình Flamingo: https://deepmind.google/discover/blog/tackling-multiple-task...
Cũng có tin đồn rằng bản phát hành macOS / iOS năm sau sẽ có tính năng LLM
Một thứ liên quan đáng xem: “LLM in a flash: Efficient Large Language Model Inference with Limited Memory”
Apple có vẻ đang chuẩn bị một bước tiến lớn về suy luận trên thiết bị bằng các LLM như thế này
https://arxiv.org/abs/2312.11514
Bài báo thì đã cũ (tháng 10/2023), nhưng trọng số mới được công bố (tháng 12/2023)
https://lifearchitect.ai/models-table/
Apple trông có vẻ im ắng trong mảng LLM, nhưng họ vẫn liên tục phát triển ngăn xếp AI phần cứng + phần mềm mà không quảng cáo rầm rộ
Tôi nghĩ nếu bản iOS mới đột nhiên khiến các cửa sổ chat OpenAI/Bard trông lỗi thời đến mức buồn cười, họ có thể áp đảo Microsoft/OpenAI và Google
Nếu phần lớn việc sử dụng AI chuyển sang phần cứng Apple thì đó cũng sẽ là mối đe dọa với Nvidia, còn Arm và TSMC nhiều khả năng sẽ hưởng lợi
Khả năng cao là họ sẽ “chỉ” dùng cùng công nghệ đó để cải tiến dần các sản phẩm như Siri hoặc tự động hoàn thành trên bàn phím, và tôi nghĩ đó là hướng tốt
Họ cũng không cố gọi vốn mạo hiểm, và mảng kinh doanh cốt lõi của họ không bị AI dưới dạng “sự tiến hóa của tìm kiếm” đe dọa
Về sản phẩm, đến giờ chỉ nghe thông điệp kiểu M3 Max phù hợp để chạy các mô hình học máy
Trước khi sản phẩm tiêu dùng thực sự sẵn sàng, chỉ cần nhắc đến một cách hình thức trong các cuộc họp tài chính để trấn an giới phân tích là đủ
Việc lấy lại niềm tin của nhà phát triển cũng sẽ mất nhiều thời gian, mà tôi không nghĩ chuyện đó sẽ xảy ra
Có thể định nghĩa “MLLM” nghĩa là gì không?
Tôi hy vọng sớm nhất là năm sau Apple sẽ ra iPhone có trợ lý LLM riêng tư chạy trên thiết bị thật tốt
Phần cứng có vẻ rất phù hợp cho việc này
Nếu vậy, có khi tôi sẽ phá vỡ chu kỳ đổi máy thường khoảng 4 năm của mình để mua điện thoại mới. Với tôi, Siri gần như không dùng được
Sẽ thú vị khi xem họ cung cấp các tính năng khác nhau tùy tình trạng online/offline, hay chỉ cung cấp hoàn toàn offline
Một bài viết để tham khảo bối cảnh: https://archive.is/en3VL
Nó gần với đúng thứ người ta kỳ vọng ở một công cụ giọng nói. Không phải kiểu phải nói to các lệnh cụ thể như với Siri, mà có thể nói chuyện như với một người bình thường
https://jackcook.com/2023/09/08/predictive-text.html
Tôi đang dùng iPhone đời mới, nhưng rất hiếm khi thấy nó thực sự hoạt động
Hiện tại có vẻ nó hoặc quá chậm để theo kịp tốc độ gõ của tôi, hoặc mô hình quá nhỏ để đưa ra nhiều gợi ý hữu ích
Hiện giờ vẫn có thể khiến ChatGPT nói những điều rất kinh khủng, và nếu Apple tung ra thứ gì đó chạy trên thiết bị thì cũng có thể biến nó thành robot xấu
Cá nhân tôi cho rằng LLM vẫn chưa an toàn cho mục đích production hướng tới đại chúng
“FERRET được huấn luyện trên 8 GPU A100 với bộ nhớ 80GB”, vậy có vẻ Apple cũng chưa thoát khỏi cái bẫy CUDA
Việc từng ở quan hệ đối địch về mặt đạo đức với Nvidia rồi lại phụ thuộc một phần vào họ cũng khá thú vị
Tuy nhiên nếu họ thật sự nhảy vào đủ sâu, họ cũng có thể chi tiền cho hạ tầng tính toán riêng
Nvidia hiện là vua của tính toán GPU, và việc phát triển phần cứng tương tự không phải chuyện nhỏ hay rẻ, nhưng Apple ở vị thế rất tốt để làm được nếu đã quyết định đầu tư
Tôi nghĩ dù có xung đột giữa các công ty, nếu một quy trình nào đó trở nên rẻ hơn hoặc dễ hơn thì các công ty vẫn sẵn sàng chấp nhận
Ngay cả Studio và Mac Pro cũng gần như là dạng ghép các chip laptop lại với nhau, và với tác vụ nặng thì phải dùng thiết bị hạng nặng
Tôi biết quan hệ với Nvidia đã xấu đi, nhưng hy vọng họ sẽ giúp củng cố hệ sinh thái AMD/ROCm
Tất nhiên khả năng cao Apple cũng đang tự làm thứ gì đó trong lĩnh vực này. Họ có hàng chục tỷ USD tài sản dạng tiền mặt, nên có lẽ đang dùng cho R&D đáng kể
Rốt cuộc những mô hình deep learning kiểu này chạy được trên bất kỳ phần cứng nào, và nếu chấp nhận một chút suy giảm hiệu năng thì có thể dễ dàng thay một loại phần cứng bằng loại khác
Về cơ bản chúng gần như là hàng hóa phổ dụng
Có ai biết mô hình mã nguồn mở tốt nhất có thể dùng thương mại và chạy cục bộ trên iPhone là gì không?
Nó là mã nguồn mở và chạy native trên các nền tảng chính. Tôi cũng đã chia sẻ video chạy trên iPad Mini, Pixel 7, iPhone 12, Surface Pro (Windows 10 & Ubuntu Jellyfish), Mac (kiến trúc Intel & M)
Đây hoàn toàn chưa phải một app hoàn chỉnh. Vì muốn dùng AI on-device trong Flutter nên tôi bắt đầu từ việc port llama.cpp, và sau này cũng định thử port các triển khai mới như whisper.cpp, bark.cpp
Kho lưu trữ: https://github.com/BrutalCoding/aub.ai
Trên thiết bị Apple thì dùng cái này: https://testflight.apple.com/join/XuTpIgyY
App tương thích với bất kỳ file GGUF nào, nhưng nên dùng định dạng prompt ChatML để UI chat/bong bóng thoại không bị kỳ lạ. Tôi chưa làm cho nó tùy biến được, vì suy cho cùng đây chỉ là app ví dụ của plugin. Dù vậy tôi đang tích cực hoàn thiện để đạt đúng hình dạng mong muốn
Tuy nhiên về tính hữu dụng thì app ChatGPT4 tốt hơn nhiều. Mô hình cũng tốt hơn, các tính năng đa phương thức gồm văn bản/thị giác/giọng nói và UI cũng tốt hơn
“Dữ liệu và mã chỉ được dự định và cấp phép cho mục đích nghiên cứu. Ngoài ra, việc sử dụng bị giới hạn ở những trường hợp tuân theo thỏa thuận cấp phép của LLaMA, Vicuna và GPT-4. Dataset thuộc CC BY NC 4.0, chỉ cho phép sử dụng phi thương mại, và các mô hình được huấn luyện bằng dataset này không được sử dụng ngoài mục đích nghiên cứu”
Khoan đã, GPT-4 chen vào đây như thế nào?