まず相談する
まず相談する

日本語特化のマルチモーダルAI「Asagi」とは?画像理解からOCR的活用まで解説

この記事のポイント

  • 東京大学が開発した日本語特化のオープンVLM「Asagi」の概要と、従来OCRとの立ち位置の違い
  • 2B〜14Bまでの4サイズ展開で、用途やマシンスペックに応じて選べる
  • Pythonコード付きで、画像を入力して日本語で説明を生成する手順を解説

はじめに

「画像に写っている日本語のテキストを、AIに読み取らせたい」と思ったとき、まず頭に浮かぶのはOCRでしょう。しかし、OCRは文字を1文字ずつ認識する技術であり、「画像全体の文脈を理解して説明する」ことは苦手です。

たとえば、ホワイトボードに書かれた会議メモの写真を見せたとき、OCRは文字をテキスト化してくれますが、「この会議で何が議論されたか」までは教えてくれません。

東京大学 原田・黒瀬・椋田研究室が開発した「Asagi」は、この課題に対する一つの答えです。日本語に特化したオープンなVision-Languageモデル(VLM)で、画像を見て日本語で説明や質問応答ができます。画像内の文字も含めて「理解」するため、従来のOCRとは異なるアプローチで画像中のテキスト情報を扱えます。


Asagiとは

Asagiは、東京大学が開発した日本語特化のオープンなVision-Languageモデル(VLM)です。画像とテキストを同時に処理し、画像の内容を日本語で説明したり、画像に関する質問に日本語で回答できます。

基本情報

項目内容
開発元東京大学 原田・黒瀬・椋田研究室
モデルサイズ2B / 4B / 8B / 14B の4種類
ライセンスApache-2.0(商用利用可)
公開先Hugging Face(MIL-UT)
学習データ規模約2,000万件の画像・テキストペア

モデル構成(Asagi-14Bの場合)

Asagiは3つのコンポーネントで構成されています。

コンポーネント使用モデルパラメータ数
ビジョンエンコーダGoogle SigLiP(siglip-so400m-patch14-384)4.28億
接続層(プロジェクタ)2層のMLP6,400万
LLM(言語モデル)llm-jp-3-13b-instruct130億

画像をビジョンエンコーダで特徴量に変換し、接続層を経由して日本語LLMに渡すことで、画像の内容を日本語で生成します。LLM部分にはNII(国立情報学研究所)が開発した日本語LLM「LLM-jp」が使われており、日本語の自然さに強みがあります。


日本語VLM開発の課題と合成データ戦略

なぜ日本語VLMが少なかったのか

VLMの学習には大量の「画像と説明文のペアデータ」が必要です。英語ではLAION-5Bなど数十億規模のデータセットが存在しますが、日本語ではこれに匹敵する規模のデータがありませんでした。

Asagiの解決策:合成データの活用

Asagiの開発チームは、以下の方法で約2,000万件のデータセットを構築しました。

データソース件数方法
Webクロール画像(ROIS)840万英語VLMで説明文を生成→日本語LLMで翻訳・合成
日本語画像テキストペア440万合成
Wikipedia画像250万合成
CommonCatalog CC-BY350万英語→日本語翻訳
LLaVA-Pretrain-JA55万既存データセット
STAIR Captions41万既存データセット
GQA / VQA v2 / JVG440万英語→日本語翻訳

重要なポイントとして、GPT-4など出力物の利用に制限のあるモデルは合成プロセスに使用していません。代わりにCALM3-22B-Chat(日本語LLM)とPhi3.5-vision-instruct(英語VLM)を利用しています。この方針により、ライセンス上のリスクなく商用利用が可能です。


従来OCRとの違い

Asagiは「OCRツール」ではありませんが、画像内のテキストを含めて理解できるため、OCR的な使い方も可能です。ただし、得意分野が異なります。

観点従来OCR(EasyOCRなど)Asagi(VLM)
目的文字を正確にテキスト化画像全体を理解して説明
出力認識した文字列自然な日本語文
テーブル認識構造を再現テーブルとして認識するが再現は苦手
文脈理解なしあり(画像全体を考慮)
手書き文字モデルによるある程度対応
正確性文字単位で高精度意味は正しいが一字一句の再現は不得意
活用シーン帳票・書類の正確なデジタル化画像の要約・説明・質問応答

つまり、「この請求書の金額はいくら?」→ 従来OCR向き、「この写真に何が写っている?」→ Asagi向き、という使い分けになります。


Asagiを動かしてみる

必要な環境

項目要件
Python3.9以上
GPU VRAM2Bモデル:約9GB / 8Bモデル:約21GB / 14Bモデル:約30GB
推奨環境Google Colab(L4 GPU以上)/ ローカルGPU搭載PC

GPU非搭載のマシン(MacBook Airなど)でもCPUモードで動作しますが、推論に非常に時間がかかります(2Bモデルでも数分〜十数分程度)。実用的に使うにはGPU環境を推奨します。

パッケージのインストール

pip install transformers==4.45.1 accelerate==0.34.2 torch==2.4.0 torchvision==0.19.0 Pillow huggingface_hub

Hugging Faceの認証設定

Asagiはゲート付きリポジトリ(利用条件への同意が必要なモデル)として公開されています。ダウンロードするには、以下の手順が必要です。

  1. Hugging Faceのモデルページ(https://huggingface.co/MIL-UT/Asagi-2B )にアクセスし、利用条件を確認して「Access request」を送信する
  2. マイページでアクセストークンを発行する

トークン発行時の注意点として、Fine-grained tokenを使う場合は「Access public gated repos」の権限を有効にしてください。シンプルに済ませたい場合は「Read」タイプのトークンを発行すればOKです。

発行したトークンは、環境変数に設定するか、コード内で直接指定して使います。

# 環境変数に設定する場合
export HF_TOKEN="hf_xxxxxxxxxxxxxxxxxxxxx"

アクセスリクエストが承認されると、モデルのダウンロードが可能になります。

基本的な使い方(Asagi-8B)

以下は実際に動作確認済みのコードです。8Bモデルを使って画像の内容を日本語で説明させます。

import os
import torch
import transformers
from PIL import Image
from transformers import AutoModel, AutoProcessor, GenerationConfig

transformers.set_seed(42)

# Hugging Faceトークン(環境変数 or 直接指定)
hf_token = os.environ.get("HF_TOKEN", "your_token_here")

# モデルの読み込み
model_path = "MIL-UT/Asagi-8B"
processor = AutoProcessor.from_pretrained(model_path, token=hf_token)
model = AutoModel.from_pretrained(
    model_path,
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    token=hf_token
)

# 生成設定
generation_config = GenerationConfig(
    do_sample=True,
    num_beams=5,
    max_new_tokens=2048,
    temperature=0.3,
    repetition_penalty=1.5
)

# プロンプトと画像の準備(<image>トークンが必須)
prompt = (
    "以下は、タスクを説明する指示です。"
    "要求を適切に満たす応答を書きなさい。\n\n"
    "### 指示:\n<image>\n"
    "この画像に書かれている日本語の文章をすべて書き起こしてください。"
    "省略せずに全文を出力してください。\n\n"
    "### 応答:\n"
)

# 画像の読み込み
image = Image.open("photo.jpg")

# 推論の実行
inputs = processor(text=prompt, images=image, return_tensors="pt")

for k, v in inputs.items():
    if v.dtype == torch.float32:
        inputs[k] = v.to(model.dtype)

inputs = {
    k: inputs[k].to(model.device)
    for k in inputs if k != "token_type_ids"
}

generate_ids = model.generate(**inputs, generation_config=generation_config)
result = processor.batch_decode(
    generate_ids, skip_special_tokens=True,
    clean_up_tokenization_spaces=False
)[0]

print(result)

プロンプト内の <image> トークンは画像の挿入位置を示す特殊トークンです。これがないとモデルが画像を認識できずエラーになるため、必ず含めてください。

プロンプトの書き方

Asagiは Alpaca 形式のプロンプトを使います。用途に応じて「### 指示:」の内容を変えることで、さまざまなタスクに対応できます。

# 画像の説明を求める場合
prompt = (
    "以下は、タスクを説明する指示です。"
    "要求を適切に満たす応答を書きなさい。\n\n"
    "### 指示:\n<image>\n"
    "この画像の内容を詳しく説明してください。\n\n"
    "### 応答:\n"
)

# 質問応答の場合
prompt = (
    "以下は、タスクを説明する指示です。"
    "要求を適切に満たす応答を書きなさい。\n\n"
    "### 指示:\n<image>\n"
    "この写真はどこで撮影されたものですか?\n\n"
    "### 応答:\n"
)

ホワイトボードのメモ、スライドのスクリーンショット、看板の写真など、日本語が含まれる画像で試してみると面白い結果が得られます。

MacBook Air(CPU)で動かす場合の注意

GPU非搭載のMacBook AirでもCPUモードで実行できますが、推論にかなりの時間がかかります。2Bモデルでも1回の推論に数分〜十数分、8Bモデルではさらに長くかかります。手軽に試したい場合はGoogle Colab(GPU付き)の利用を推奨します。


モデルサイズの選び方

モデルパラメータ数VRAM目安向いている用途
Asagi-2B20億約9GBお試し・軽量な用途・Colab無料枠
Asagi-4B40億約15GBバランス型・日常的な画像説明
Asagi-8B80億約21GBより詳細な説明・質問応答
Asagi-14B142億約30GB最高精度・研究用途

Google Colabで試す場合、無料枠のT4 GPU(VRAM 16GB)なら2Bまたは4Bモデルが動作します。L4 GPU以上なら8Bモデルも利用可能です。


ベンチマーク結果

日本語VLMの主要ベンチマークでの比較です。

モデルLMサイズHeron-BenchJA-VLM-Bench (ROUGE-L)JA-VG-VQA (ROUGE-L)
Asagi-14B13B55.850.856.8
VILA-jp13B57.252.316.2
Asagi-8B7.2B54.749.456.4
GPT-4o-87.637.612.1

Asagi-14Bは JA-VG-VQA(日本語の視覚的質問応答)で最高スコアを記録しており、日本語での画像理解に強みがあることがわかります。一方、Heron-BenchではGPT-4oに大きく差をつけられており、汎用的な画像理解ではまだ発展途上です。


他のマルチモーダルモデルとの比較

画像内の文字認識に使えるモデルは他にもあります。

モデル開発元特徴日本語対応
Asagi東京大学日本語特化・オープン・合成データ活用特化
Phi-4Microsoft軽量で高性能・画像内文字認識に強い多言語対応
Ovis2Alibaba画像理解全般に高精度多言語対応
GPT-4oOpenAI最高水準の汎用性能多言語対応
Sarashina2-VisionSB Intuitions日本語特化の視覚言語モデル特化
NABLA-VL日本発日本語大規模VLM特化

Asagiの独自のポジションは、「日本語に特化」かつ「オープンソース(Apache-2.0)」かつ「GPT-4の出力を使わずに学習」している点です。商用利用時のライセンスリスクがなく、自社環境でのローカル実行が可能です。


活用アイデア

1. 画像の日本語キャプション生成

商品写真やイベント写真を入力して、日本語の説明文を自動生成。WebサイトのALTテキストやSNS投稿文の下書きに活用できます。

2. スライド・資料の要約

プレゼン資料のスクリーンショットを入力して、内容の要約を生成。会議の振り返りや議事録の補助に使えます。

3. 従来OCRとの組み合わせ

Mistral OCRやNDLOCR-Liteで文字を正確に抽出した後、Asagiで画像全体の文脈を補足する、というパイプラインも考えられます。

画像 → OCR(正確なテキスト抽出)→ Asagi(文脈理解・要約)

4. 看板・標識の読み取りと説明

街中の看板や案内板の写真を入力して、「何が書いてあるか」だけでなく「何のための看板か」まで説明させることができます。


注意点と制限事項

  • Asagiは研究段階のモデルであり、安全性のチューニング(アラインメント)は行われていません
  • 画像内の文字の「正確な転記」は苦手です。1文字単位の精度が求められる場面では、専用のOCRツールを使いましょう
  • Hugging Faceでモデルをダウンロードするには、利用条件への同意が必要です
  • 14Bモデルの実行には30GB以上のVRAMが必要です

まとめ

ポイント内容
モデル名Asagi(2B / 4B / 8B / 14B)
開発元東京大学 原田・黒瀬・椋田研究室
特徴日本語特化のオープンVLM
ライセンスApache-2.0(商用利用可)
学習データ約2,000万件(合成データ中心、GPT-4不使用)
得意分野日本語での画像説明・質問応答
苦手分野1文字単位の正確なOCR
実行環境GPU必須(2BモデルならVRAM 9GBから)

Asagiは、「画像を見せたら日本語で説明してくれるAI」として、従来のOCRとは異なる価値を持つモデルです。オープンソースで商用利用可能なため、自社サービスへの組み込みや研究開発に活用しやすいのが大きな魅力です。まずは2Bモデルで手元の画像を試してみてください。

関連記事


AI導入でお困りですか?

「自社の画像データを日本語で分析したい」「OCRとマルチモーダルAIの使い分けがわからない」そんなお悩みはありませんか?

AI DARUMAでは、画像認識やOCRを活用した業務効率化のご相談を承っています。お気軽にお問い合わせください。

〒723-0062 広島県三原市本町 1丁目7-29 2階 コワーキングスペースarica内