top of page

150億パラメータ規模の視覚言語モデルNABLA-VL

  • 4 日前
  • 読了時間: 4分

こんにちは。NABLAS R&D事業部です。

弊社では2024年の10月から2025年の4月末までの約6ヶ月間の間、視覚言語モデルとそれを活用したサービスの開発に取り組んできました。本ブログでは、視覚言語モデルに焦点を当て、やったことおよび得られた結果を簡易的に説明します。


補足① :本モデルの開発は、経済産業省とNEDOが実施する、国内の生成AIの開発力強化を目的としたプロジェクト「GENIAC(Generative AI Accelerator Challenge)」の支援を受けて実施したものです。
補足② :技術的な詳細やより細かい分析は現在執筆中の技術報告書内に記載します。

アーキテクチャなど

公開したNABLA-VLは150億規模のパラメータを持つ視覚言語モデルです。

画像エンコーダにはNaViT、LLMにはPhi-4を使用しました。また、それらの間にはランダムに初期化した2層のMLPを入れ、画像エンコーダ → MLP → LLMというシンプルな構成を採用しました。

Pixel UnshuffleやAverage Poolingなどのトークン圧縮は行わず、最大視覚トークン数を決めてバイリニア補完で対応しました。また、独自の点としては、2D RoPEや固定長のトークンを使用せずに、複数画像や動画を入力する際、画像やフレームをグリッド状に並べて各タイルの左上に連番を振る処理を入れました。

これにより、新しい学習可能なパラメータを追加せずに、最小限の変更で複数画像と動画を単一画像として取り扱うことができます。


データセット

学習データにはオープンなものだけを使っており、単一画像データセットだけでなく、複数画像データセットや動画データセットも使用しました。

弊社のユースケースを考えると日本語だけでなく、英語も処理できるようにする必要があったので、日本語データセットと英語データセットを織り交ぜて全体のデータセットを構築しました。この点は後述のベンチマークのスコアにも反映されています。


学習パイプライン

学習パイプラインは全3ステージで構成され、それぞれのステージでは以下のことを行います。Zero RLやDPOは使用していません。

ステージ1:MLPだけ更新 - 短い画像キャプション - 約500kサンプル
ステージ2:全部更新 - より長い画像キャプションやOCRなど - 約2Mサンプル
ステージ3:全部更新 - 一般的な質問応答や数学などより多様なタスク - 約11Mサンプル

ステージ1とステージ2では、複数画像データセットと動画データセットは使用しなかったほか、ステージ2とステージ3ではテキストのみからなるデータセットを使用しました。また、必要な場合にはプロンプトをLLaVA形式に書き換えました。

さらに、ステージ1で使ったデータセットに関して、言語判定モジュールを使って言語が判定できないサンプルを除外しました。このようなサンプルは同じフレーズの反復など不適切なものが含まれる傾向があることが判明したためです。そのほか、ステージ3で使用した動画データセットは最大フレーム数が32になるように前処理を行いました。


学習はH200のノードを3つ(H200 24枚)使用して、だいたい1ヶ月ほどで完了しました。


評価

ここではllm-jp-eval-mmを用いて評価した、英語含むベンチマーク結果を載せます。

この結果は5月19日時点のものです。
LLM-as-a-Judgeに関して、`gpt-4o-2024-11-20`を判定モデルとして使用しました。

スコアから判断すると、英語と日本語の処理能力のバランスをとるという意味ではうまくいっているように見えます。特に、図表を含んだ文書に関するベンチマーク(JDocQA)や複数画像ベンチマーク(MulIm-VQA)では同規模帯のモデルと比較してスコアが高くなっています。

一方、日本の文化など「日本っぽさ」がより強く反映されたJapanese-Heron-Benchmark(Heron_LLM)などではスコアが落ちているように見えます。

一因として、日本語OCRデータや日本の文化に関する質問応答データが不足していることが考えられます。この辺りに関しては現在執筆中の技術報告書内でより詳細に分析することとします。


トークン圧縮

別の話題として、(視覚)トークン圧縮の有意性についても検証を進めています。VLMが抱えている問題の一つとして、視覚トークンの数がテキストトークンの数と比較して多くなりすぎる傾向があるという問題点があります。

トークン圧縮を行うと「重要な」トークンのみを残してLLMに入力することで、精度の低下を最小限に抑えたまま総トークン数を大幅に削減できます。

より現実的な利用を考えてワークステーション向けのA6000を1台だけ積んだマシンで行った実験では、全体の87.5%の視覚トークンを削減した上で学習を行うと、精度の低下を数%に抑えたまま、学習時間を約2倍程度短縮できました。

実験にはPyramidDropを再実装して使用しました。公開したコードベースにも学習・推論時のオプションとして追加予定となっています。

bottom of page