2024-04-03WEELメディア事業部LLMライターのゆうやです。Ferretは、Appleが開発したマルチモーダル大規模言語モデルで、画像の領域を指定して解釈する能力があることが特徴です。shape」の3種類あり、以下の画像のようにテキストで「領域~には何がありますか?」と質問すると、その領域にある物体を認識して回答を出力します。920]」と回答しています。このモデルは2023年10月に公開されていましたが、12月14日にウェイト情報が公開されたので、モデルを学習できる環境がない方でもモデルを実装して使用できるようになりました。今回は、Ferretの概要や使ってみた感想をお伝えします。最後までご覧ください!目次Ferretの概要Ferretは、Appleが開発したマルチモーダル大規模言語モデルで、画像内の特定の領域を用いてクエリを実行する能力があることが特徴です。shape」の3種類あり、以下の画像のようにテキストで「領域~には何がありますか?」と質問すると、その領域にある物体を認識して回答を出力します。920]」と回答しています。Ferretは、Llama2をベースに構築された大規模言語モデル「Vicuna」をベースに開発されています。Appleは、Ferretの性能を評価するために、「Ferret-Bench」というベンチマークツールも開発し、公開しています。(MLLM)と比較したところ、Ferretは他のモデルと比較して20.4%程高い性能を示しました。Appleは、このFerretのウェイト情報を12月14日に公開しました。このウェイトのデータはCC-BY-NCライセンスでの提供となっており、研究目的でのみ利用可能です。今回公開されたウェイト情報はVicunaのウェイトからの差分データのみなので、実装する際はVicunaのウェイトとFerretの差分データを元にFerretのウェイトを作成する必要があります。今回は、このウェイト情報を用いてFerretを実行していようと思います。使い方から説明します。Ferretの使い方Ferretを実装して実行するためのスペック要件について、詳しい記載はなかったのですが、ベースLLMのVicunaが7Bの場合、約14GBのGPUメモリ、13Bの場合は28GBのGPUメモリ必要なので、同等かそれ以上のスペックが必要そうです。ProでA100GPUを使用して実装と実行を行っていきます。以下のコマンドを実行してリポジトリのクローンを行い、ml-ferretのディレクトリに移動します。ml-ferret次に、以下のコマンドで最新のpipをインストールします。pip次に、以下のコマンドで必要なパッケージをインストールします。.ここまで完了したら、以下のコードでVicuna-7b-v1.3のモデルをロードします。AutoModelForCausalLM.from_pretrained("lmsys/vicuna-7b-v1.3")次に、ferretの重みのオフセットをダウンロードして解凍します。ferret-7b-delta.zipここまで完了したら、以下のコマンドでオフセットをVicunaの重みに適用します。/content/ml-ferret/ferret-7b-deltaこれでFerretの重みの作成は完了です。UIを使用する方法が紹介されていました。UIで使用できるようになります。これで実装は完了です。Apple開発のマルチモーダルAI訓練用フレームワークである4Mについて詳しく知りたい方は、下記の記事を合わせてご確認ください。→【4M】Apple開発のマルチモーダルAI訓練用フレームワークの仕組みを徹底解説Ferretを実際に使ってみたまずはあらかじめ用意されていた以下のデモを実行してみます。response.ここを訪れる際に注意すべきことは?それに対する座標を教えてください。結果はこのようになりました。深かったり流れが強かったりする可能性があるので注意が必要だ。釣りの人気スポットだが、水面から魚が飛び出してくるかもしれないので注意が必要だ。492]には野生動物が生息していることがあるので、周囲に気を配り、地元の生態系を尊重しよう。画像を正確に認識して、注意すべきスポットとその理由を教えてくれていますが、座標は文章で示すのみで、画像内では示してくれなかったので、少しわかりにくいですね。ここからは複数のパターンの画像とプロンプトを入力して、どのような結果になるか検証します。Ferretの高い画像認識機能は本当なのか検証してみたまずは以下の画像で検証します。以下のように領域を指定します。これで以下のプロンプトを入力します。meerkat?[region3]と[region4]は同じミーアキャットですか?結果はこのようになりました。863]は同じミーアキャットではありません。863]のミーアキャットは座っている。両者は異なる姿勢をしており、同じ動物ではない。体がかぶって同一個体に見えるようなこの画像も、問題なく画像を認識して違う個体だとし、その座標と姿勢まで説明してくれました。次は、以下のプロンプトを入力してみます。food.画像に写っている動物の名前とその動物の主食を教えて結果はこのようになりました。behavior.画像の動物はミーアキャット。ミーアキャットは黒と白の毛並みと、警戒しながら後ろ足で立つ習性で知られている。アフリカの砂漠に生息し、そのユニークな外見と行動でよく知られている。ミーアキャットと正しく認識し、主食だけでなく習性や生息地といった情報まで出力してくれました。次に、以下のローストビーフの画像を入力します。以下のように領域を指定します。以下のプロンプトを入力します。it.[region1]の料理の名前と作り方を教えて結果はこのようになりました。作り方は、分厚いステーキを焼いて白い皿に並べる。トマトを添えてもよい。お皿をテーブルの上に置いて、料理を楽しんでください。結果は、ローストビーフだと認識できず、詳しい作り方も教えてくれませんでした。これは人間であれば一目でローストビーフだと認識できるので、間違って認識したのは意外でした。今回の検証の結果をまとめると、Ferretは高い認識能力を有しており、他のマルチモーダルLMMにはない領域指定機能で、自分が知りたい部分にフォーカスして質問することが容易だと感じました。画像認識能力は完璧ではなく、間違って認識することもあるので、今後さらに強化されていくことに期待します。CLIPについて詳しく知りたい方は、下記の記事を合わせてご確認ください。AI開発の日本語特化型マルチモーダルAIを使ってみた!まとめFerretは、Appleが開発したマルチモーダル大規模言語モデルで、画像内の特定の領域を用いてクエリを実行する能力があることが特徴です。shape」の3種類あり、テキストで「領域~には何がありますか?」と質問すると、その領域にある物体を認識して回答を出力してくれます。Ferret-Benchという専用のベンチマークツールも開発され、それを用いたベンチマークの結果、Ferretは他のモデルと比較して20.4%程高い性能を示しました。実際に使ってみた感想は、Ferretは完璧ではないものの高い認識能力を有しており、他のマルチモーダルLMMにはない領域指定機能で、自分が知りたい部分にフォーカスして質問することが容易だと感じました。・自社専用のAIチャットボットの開発などの開発実績がございます。「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。生成AIを社内で活用していきたい方へ「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。セミナー内容や料金については、ご相談ください。サービス紹介資料もご用意しておりますので、併せてご確認ください。無料で相談する資料をダウンロードする投稿者ゆうやロボット工学専攻。大学時代は、対話ロボットのための画像キャプションの自動生成について研究。趣味は、サウナとドライブ。集計期間:1週間まだデータがありません。高いAIプロフェッショナル集団」を目指して私たちは、AIに関わるすべての人に向けて、透明性の高い適切な情報発信と開発を行います。「WEELは、一番地に足ついたAI情報を教えてくれる」と思っていただけるよう、透明性高い事業運営を行なって参ります。透明性の高い適切な情報発信と開発を行います。透明性高い事業運営を行なって参ります。