- Ferretは自由形式の指示対象を入力として受け取り、応答内で位置を根拠づけるエンドツーエンドのMLLMであり、細粒度かつ位置に縛られない参照・グラウンディングを目指す
- 中核構成はHybrid Region RepresentationとSpatial-aware Visual Samplerであり、これによりMLLMで細かなopen-vocabulary参照とグラウンディングを支援する
- プロジェクトは約110万件のGRIT Dataset、Ferret-Bench、7B・13Bチェックポイントのdelta、学習・評価・デモ実行手順をあわせて提供する
- 学習は8×A100 80GB環境を基準としており、GPU数が少ない場合はグローバルバッチサイズを維持するよう
per_device_train_batch_size、gradient_accumulation_steps、num_gpusの組み合わせを調整する必要がある
- データとコードは研究目的専用であり、データセットはCC BY NC 4.0のため非商用利用のみ許可され、LLaMA、Vicuna、GPT-4のライセンス条件にも従う必要がある
Ferretの目標と構成
- Ferretは「Refer and Ground Anything Anywhere at Any Granularity」を掲げるエンドツーエンドMLLM
- 任意形式の参照入力を受け入れ、応答内で対象をグラウンディングする機能を目指している
- 主な貢献は3つに整理される
- Ferret Model: Hybrid Region RepresentationとSpatial-aware Visual Samplerを用い、細粒度のopen-vocabulary参照とグラウンディングを可能にする
- GRIT Dataset: 約110万件規模の大規模・階層的・堅牢なground-and-refer instruction tuningデータセット
- Ferret-Bench: 参照・グラウンディング、意味、知識、推論を同時に要求するマルチモーダル評価ベンチマーク
リリースとモデル状況
- 2024年10月8日にFerret-UIが公開
- UI中心のMLLMで、referring、grounding、reasoningタスクを効果的に実行できると紹介されている
- 2024年7月10日にFerret-v2がCOLM 2024に採択
- 2024年2月15日にFerretがICLR 2024 Spotlightに採択
- 2023年12月14日にFerretチェックポイント 7B・13Bが公開
- 2023年10月30日にFERRETモデルコードとFerret-Benchが公開
インストールと学習条件
- インストールはリポジトリをクローンした後、
python=3.10のConda環境でパッケージを導入する流れ
pip install -e .
pycocotools
protobuf==3.20.0
- 学習用の追加パッケージとしてninjaと
flash-attn --no-build-isolationのインストールが必要
- FERRET学習の基準環境はA100 GPU 8基、各80GBメモリ
- より少ないGPUで学習する場合はグローバルバッチサイズを維持する必要がある
- グローバルバッチサイズ =
per_device_train_batch_size × gradient_accumulation_steps × num_gpus
- ファインチューニングのハイパーパラメータは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
ベースモデルとチェックポイントの利用
- 学習前にVicuna v1.3ベースモデルの重みを準備する必要がある
- LLaVAの第1段階事前学習projector重みも必要
- 7B projector
- 13B projector
- 公開チェックポイントは事前学習済みモデル全体ではなく、Vicunaとの差分であるdelta形式で提供される
- 利用者はまずVicuna重みを取得し、その後Ferretの7Bまたは13B deltaをダウンロードして、
ferret.model.apply_deltaスクリプトでVicuna重みにoffsetを適用する必要がある
- Appleが提供するweight differentialsにはCC-BY-NCライセンスが適用され、LLaMAやその他のサードパーティソフトウェアはそれぞれの条件に従う
評価とデモ実行
- 評価の詳細手順は別文書
EVAL.mdで扱われている
- ローカルデモはGradio Web UIを使用し、FERRETの学習済みチェックポイントのローカル利用が必要
- デモ実行の流れは3段階
- controller起動:
ferret.serve.controller
- Gradio Webサーバー起動:
ferret.serve.gradio_web_server
- GPU上で推論を行うmodel worker起動:
ferret.serve.model_worker
- model workerは
--model-pathで指定された単一モデルを担当する
- モデルの読み込みが完了し、「Uvicorn running on ...」と表示されたら、Gradio Web UIをリフレッシュして実行中のモデルを一覧で確認できる
利用制限と出典
- データとコードは研究目的のみに意図され、その条件でライセンスされている
- LLaMA、Vicuna、GPT-4のライセンス契約に従った利用に制限される
- データセットはCC BY NC 4.0で、非商用利用のみ許可される
- データセットで学習したモデルは研究目的以外で使用してはならない
- プロジェクトはLLaVAのコードベースとVicunaのLLMコードベースに基づいている
1件のコメント
Hacker Newsのコメント
もうマルチモーダルへ進むのか? Googleがこの領域のアクセシビリティで、画像説明を「会社のロゴ」レベルよりましにできないなら、Appleに戻るつもり
Appleもバグを減らして、VoiceOverが少し触っただけで崩れそうな感じをなくす必要はあるけど、LLMなしでも画像説明はすでにきれいで明確
例えば「黒い背景に緑色のロゴ」に近いのに対して、Googleは前述のように「会社のロゴ」に近い。AIが質の高い良いデータで学習されるのではなく、クラウドソーシングされるとこうなる、という結果のように見える
Flamingoモデル系列を使っている: https://deepmind.google/discover/blog/tackling-multiple-task...
来年のmacOS / iOSリリースにLLM機能が入るという噂もある
関連して見る価値があるもの: “LLM in a flash: Efficient Large Language Model Inference with Limited Memory”
AppleはこうしたLLMを使って、オンデバイス推論で大きな進展を準備しているように見える
https://arxiv.org/abs/2312.11514
論文は古いが(2023年10月)、重みは新しく公開された(2023年12月)
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が早ければ来年、優れたオンデバイスのプライベートLLMアシスタントを搭載したiPhoneを出してくれたらうれしい
ハードウェアはそれにかなり向いているように見える
そうなれば、普段は4年くらい使う買い替えサイクルを破って新しい携帯を買うかもしれない。自分にとってSiriはほとんど使い物にならない
オンライン/オフラインの状況に応じて異なる機能を提供するのか、それとも完全にオフラインだけで提供するのか興味深い
背景を知るための記事が1本ある: https://archive.is/en3VL
音声ツールなら期待するまさにその姿に近い。Siriのように特定のコマンドを大声で言うのではなく、普通の人と会話するように話せる
https://jackcook.com/2023/09/08/predictive-text.html
最新のiPhoneを使っているが、実際に動作しているのを見ることは非常にまれ
今のところ自分のタイピング速度についていくには遅すぎるか、有用な提案を多く出すにはモデルが小さすぎるように思う
今でもChatGPTに非常にひどいことを言わせることはできるし、Appleがオンデバイスで何かを出せば、それも悪いロボットに仕立てることができるはず
個人的には、LLMはまだ一般向けの本番用途には安全ではないと思う
「FERRETは80GBメモリのA100 GPU 8基で学習された」って、AppleもCUDAの罠からは抜け出せなかったみたいだね
Nvidiaとは道徳的に敵対関係にありながら、部分的に依存することになったのが面白い
ただ、十分に本腰を入れることになれば、自社の計算インフラに資金を投じる可能性もある
Nvidiaは今GPU計算の王者で、同等のハードウェアを開発するのは小さくも安くもない仕事だけど、Appleは投資すると決めれば実現できる非常に有利な立場にいる
企業間の対立があっても、あるプロセスがより安く、または簡単になるなら、企業は喜んで受け入れると思う
StudioやMac Proでさえ、ノートPC用チップをつなぎ合わせた形に近く、重い作業には重い機材を使うべきだ
Nvidiaとの関係が悪化したのは分かるが、AMD/ROCmエコシステムを強化してくれたらと思う
もちろんAppleもこの領域で独自の何かを作っている可能性は高い。現金性資産が数十億ドルもあるので、相当な研究開発に使っているのだろう
結局こうしたディープラーニングモデルはどんなハードウェアでも動くし、多少の性能低下を受け入れれば、ある種類のハードウェアを別のものに簡単に置き換えられる
基本的にはコモディティに近い
商用利用できて、iPhone上でローカルに動かせる最高のオープンソースモデルを知っている人はいる?
オープンソースで、主要プラットフォーム上でネイティブに実行される。iPad Mini、Pixel 7、iPhone 12、Surface Pro(Windows 10 & Ubuntu Jellyfish)、Mac(Intel & Mアーキテクチャ)で動いている動画も共有した
完成したアプリではまったくない。FlutterでオンデバイスAIを使いたくて、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はどう関わってくるんだ?