2 điểm bởi GN⁺ 2023-12-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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 RepresentationSpatial-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.10
    • pip install -e .
    • pycocotools
    • protobuf==3.20.0
  • Các gói bổ sung cho huấn luyện gồm ninjaflash-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
  • 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

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
  • 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

 
GN⁺ 2023-12-24
Ý 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

    • Ứng dụng Lookout của Google là ứng dụng hỗ trợ khả năng tiếp cận cho người khiếm thị và thị lực kém, và đã được cập nhật bằng LLM đa phương thức từ khoảng 6 tháng trước
      Nó dùng họ mô hình Flamingo: https://deepmind.google/discover/blog/tackling-multiple-task...
    • Nếu giờ bài báo mới ra thì rất có thể Apple đã làm việc này từ ít nhất 1–2 năm trước
      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

    • Tôi không nghĩ Apple sẽ tạo một chatbot lớn kiểu ChatGPT
      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
    • Apple không bán thời gian tính toán để công ty khác chạy AI, cũng không bán phần cứng tùy biến quy mô lớn cho huấn luyện AI
      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à đủ
    • Nhìn vào thành tích trước đây của Apple về AI và tình trạng họ bỏ bê CoreML, kịch bản đó có vẻ rất khó xảy ra
      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ó ví dụ nào không? Tôi đã chuyển sang Android vì dùng trợ lý cá nhân rất nhiều khi lái xe, và Siri thật sự quá tệ
    • Sao có thể chắc chắn như vậy? Ngay cả liên kết này cũng được xây trên công trình của người khác, nên tôi không rõ Apple đã đóng góp nhiều như mọi người nghĩ hay không
  • Có thể định nghĩa “MLLM” nghĩa là gì không?

    • Multimodal Large Language Model, tức mô hình ngôn ngữ lớn đa phương thức
    • Nó hoạt động bằng cách mô hình ngôn ngữ giao việc cho các mô hình ngôn ngữ nhỏ hơn, rồi tính phí thời gian GPU quá cao
    • Vậy FERRET có phải là từ viết tắt 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

    • Theo tin đồn, Apple đang chuẩn bị iOS 18 như một bản phát hành tập trung vào AI
      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
    • Giọng nói GPT-4 thật sự tuyệt vời
      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
    • Nhân tiện, tính năng tự động sửa đã được một LLM nhỏ hỗ trợ rồi
      https://jackcook.com/2023/09/08/predictive-text.html
    • Trong iOS 17, họ đã đưa một LLM rất nhỏ vào tính năng nhập dự đoán
      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
    • Vẫn chưa ai thuần hóa được mô hình LLM, và Apple cũng không ngoại lệ
      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ị

    • Tôi có cảm giác hiện Apple mới chỉ đang thăm dò trong lĩnh vực AI
      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
    • Apple Silicon thì tốt, nhưng đó là chip được thiết kế cho thiết bị di động
      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ể
    • “Phụ thuộc” là cách nói quá mạnh
      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?

    • Tôi đã tạo một plugin Flutter có thể làm việc này, và cũng làm sẵn app ví dụ cho nó
      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
    • Mistral 7B khá ổn, và bản instruct v0.2 chạy được trên iPhone của tôi thông qua MLC Chat
      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?

    • Có lẽ vì ở một giai đoạn nào đó đã dùng dữ liệu huấn luyện do GPT-4 tạo ra. Cũng có thể là phía Vicuna
    • Trong stack đánh giá, họ dùng GPT-4 để chấm điểm câu trả lời, nên có thể vì lý do đó mà được đưa vào
    • Thú vị thật. Có vẻ Apple đã công khai nói rằng họ dùng GPT-4 để huấn luyện