OCRはもう不要？視覚的特徴とテキストを高精度に捉える！次世代マルチモーダルAIモデル『MPLUG-DOCOWL2』登場！


株式会社ulusageの技術ブログ生成AIです！今回は、PDF解析とドキュメントインテリジェンスの最先端技術 ***「MPLUG-DOCOWL2」*** について、解説していきます。このモデルは、高解像度のマルチページドキュメントを効率的かつ正確に解析する技術として注目されています。特に、従来のOCR（光学文字認識）ベースの解析手法が抱える課題を解決し、従来のOCR技術を必要とせず、新しい水準の性能と効率を実現しました。

この記事では、**技術的な背景**、**MPLUG-DOCOWL2の構造と革新性**、**他の技術との比較**、そして**具体的なデモンストレーション**を交えながら、可能な限り包括的に説明します。最後には、今後の課題と展望にも触れるので、どうぞ最後までお付き合いください。


## 1. 背景: ドキュメント理解の重要性と課題

デジタル化が進む現代では、文書の理解や解析は多くの分野で不可欠です。契約書、科学論文、技術マニュアルなどのマルチページドキュメントは、正確な情報を素早く把握する必要があります。しかし、従来の技術にはいくつかの課題が存在します。

### 課題1: OCR技術の非効率性
OCRベースの手法では、ドキュメント画像を文字単位で解析するため、処理に膨大な時間がかかります。1ページあたり数千ものビジュアルトークンを生成するため、計算コストが非常に高いのです。

### 課題2: 多ページドキュメントの解析限界
複数ページにわたる情報の整合性を保ちながら解析するのは困難です。ページごとに処理する手法では、全体的な文脈や構造を把握することが難しくなります。

### 課題3: 高解像度画像の処理負荷
高解像度の画像を処理する際、GPUメモリや推論速度に負荷がかかります。特に、大規模な契約書や図表を含むドキュメントでは、この負荷が実用化の障壁となります。

これらの課題に対し、MPLUG-DOCOWL2は革新的なアプローチを提案し、効率性と精度を両立したソリューションを提供しています。

---

## 2. MPLUG-DOCOWL2の概要

https://github.com/X-PLUG/mPLUG-DocOwl

https://huggingface.co/mPLUG/DocOwl2

MPLUG-DOCOWL2は、マルチページドキュメント解析における次世代のソリューションです。このモデルは、ドキュメント全体のレイアウトとテキスト情報を効率的に保持しながら、解析のスピードと精度を大幅に向上させます。以下のような特徴があります。

- **効率的なビジュアルトークンの圧縮**: 1ページあたり324トークンという効率性を実現。
- **高解像度画像の解析**: クロッピングや圧縮技術により、計算コストを削減。
- **マルチページ対応**: ページ間の文脈を把握し、総合的な理解を可能に。

これにより、従来モデルに比べて大幅に優れた性能を発揮します。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770896/3746c71a-b91b-ef4d-537f-d9de24f79165.png)

---

## 3. 技術の詳細と構成

MPLUG-DOCOWL2の構成は以下の3つの主要コンポーネントから成り立っています。

### 3.1 高解像度ドキュメントコンプレッサー
高解像度画像を効率的に圧縮し、少ないトークン数で重要な情報を保持します。この技術の中核は「クロスアテンション」にあります。グローバルな視覚的特徴とローカルな視覚的特徴を結びつけることで、視覚レイアウトを損なうことなく、効果的な圧縮を実現します。

従来のOCRでは1ページに数千トークンを必要としましたが、この圧縮技術により、大幅に計算コストを削減できます。例えば、大量の契約書を一括解析する場面で、この効率性が特に活きます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770896/94b51783-3458-a59e-fe50-7e1434cbe52a.png)

>OCR を使用しない文書理解のためのさまざまな圧縮方法の図。出典: MPLUG-DOCOWL2 。

---

### 3.2 形状適応型クロッピングモジュール
画像を分割する際、ドキュメントのレイアウトを解析して重要な部分を抽出します。これにより、無駄な情報を排除しながらも、文書の構造を保持します。

このモジュールは、科学論文や特許文書のように複雑な構造を持つドキュメントにおいて、特に有効です。異なるフォーマットに対する柔軟な対応が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770896/f00bf4aa-9ab9-a02d-be60-b256c756af49.png)


> DocOwl2 のアーキテクチャ。各画像は、形状適応型クロッピング、高解像度ビジュアル エンコーディング、高解像度 DocCompressor のパイプラインによって個別にエンコードされます。出典: MPLUG-DOCOWL2。

---

### 3.3 マルチイメージモデリング
複数ページにわたる解析結果を統合し、文書全体の文脈を理解します。このプロセスは、大規模言語モデル（LLM）を活用して、質問応答や要約などのタスクに応用されます。

ページごとの情報を統合できるため、複数の章にまたがる質問にも対応可能です。例えば、複雑なマニュアルの中で特定のプロセスを特定する際に、この技術が役立ちます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770896/46ed011c-14d5-4886-8eae-996a891fa264.png)


## 4. 他のソリューションとの比較

MPLUG-DOCOWL2は、他の技術と比較して以下の点で優れています。


| **モデル**              | **説明**                                                                                   | **強み**                                                 | **弱み**                                                                                       |
|-------------------------|-------------------------------------------------------------------------------------------|---------------------------------------------------------|----------------------------------------------------------------------------------------------|
| **InternVL 2**          | シングルページ文書の理解のために約3,000の視覚トークンを生成。                                 | シングルページ文書の理解で優れたパフォーマンスを発揮。   | トークン数が多すぎるため、推論速度が遅くなり、計算リソースの消費が大きい。                     |
| **TokenPacker**         | 視覚トークンを圧縮するが、全体的なレイアウトの保持が効果的ではない。                        | トークン数を削減することが可能。                        | 文書レイアウトの保持が不十分で、高解像度文書の理解ではMPLUG-DOCOWL2に劣る。                  |
| **TextMonkey**          | 効率性のために視覚トークンを圧縮。                                                         | トークン効率を向上させる。                              | テキスト圧縮やレイアウト保持の面でMPLUG-DOCOWL2に劣る。                                       |
| **UReader**             | 高解像度画像を低解像度のサブイメージに分割する適応型クロッピングを使用。                    | 複数ページの文書を処理可能。                           | パフォーマンスと効率の両面でMPLUG-DOCOWL2に劣る。                                            |
| **DocOwl 1.5**          | MPLUG-DOCOWL2の前身で、推論に時間がかかる。                                                 | 文書理解パフォーマンスが強力。                          | 視覚トークン数が多く、推論時間がMPLUG-DOCOWL2より長い。                                       |
| **CogAgent, DocPedia, Monkey** | OCRを必要としない文書理解に適用。                                                        | 複数ページ文書のOCR不要な理解に有用。                   | トークン数が多すぎて、計算コストが高くなり、効率がMPLUG-DOCOWL2より劣る。                     |


## 5. ベンチマークと評価

MPLUG-DOCOWL2は、DocVQAなどのベンチマークで優れた成績を収めています。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770896/b13bf4d5-2bdd-a234-0d7f-cd574af70d64.png)

>単一画像文書理解タスクにおける OCR を使用しない方法との比較。「∗」は、LLM を使用せず、各下流タスクで個別に微調整されたモデルを示します。「TokenV」は、単一画像の視覚トークンの平均数を意味します。「太字」はグループ内の SOTA パフォーマンスを意味し、「下線」はすべてのベースラインの中で 80% の SOTA パフォーマンスを達成することを意味します。出典: MPLUG-DOCOWL2。

トークンの削減も目的としたTokenPackerやTextMonkeyなどの従来のソリューションと比較すると、MPLUG-DOCOWL2 はグローバルな視覚的特徴を圧縮ガイドとして活用する点で優れています。このレイアウトを考慮したアプローチにより、関連する視覚情報とテキスト情報が保持されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770896/97cabcf2-5de7-1996-7e33-434cac23f4ee.png)

>単一画像文書理解ベンチマークにおける OCR フリーのマルチモーダル大規模言語モデルとの比較。「FTL(s)」は最初のトークンの待ち時間 (秒) を示します。出典: MPLUG-DOCOWL2 。

- **ANLSスコア**: 80.7（他モデルを上回る精度）。
- **First Token Latency**: 0.26秒（従来モデルの約半分）。

DocVQAでは、MPLUG-DOCOWL2 はANLS スコア 80.7 を達成しており、これは最もパフォーマンスの高いモデルと競合できるスコアです。しかも、使用するビジュアル トークンははるかに少なくなっています。つまり、MPLUG-DOCOWL2 は高速で正確なドキュメント理解を提供します。

さらに、最初の応答トークンを生成する時間の尺度であるファースト トークン レイテンシ (FTL) は、MPLUG-DOCOWL2 では大幅に短く (0.26 秒)、以前のモデルと比較して 50% 以上もレイテンシが削減されています。これは、リアルタイム アプリケーションにおけるシステムの効率性を強調しています。

---

## 6. 擬似デモンストレーション

以下に、MPLUG-DOCOWL2の動作を再現したコード例を示します。

```python
import torch
from transformers import AutoTokenizer, AutoModel, BitsAndBytesConfig
import gc
import os
from icecream import ic

class DocOwlInfer():
    def __init__(self, ckpt_path):
        self.tokenizer = AutoTokenizer.from_pretrained(ckpt_path, use_fast=False)
        self.model = AutoModel.from_pretrained(
            ckpt_path,
            trust_remote_code=True,
            low_cpu_mem_usage=True,
            torch_dtype=torch.float16,
            device_map='auto'
        )
        self.model.init_processor(
            tokenizer=self.tokenizer,
            basic_image_size=504,
            crop_anchors='grid_12'
        )

    def inference(self, images, query):
        messages = [{'role': 'USER', 'content': '
'*len(images)+query}]
        answer = self.model.chat(messages=messages, images=images, tokenizer=self.tokenizer)
        return answer


# モデルの初期化
docowl = DocOwlInfer(ckpt_path='mPLUG/DocOwl2')

# ドキュメント解析
images = [
    './DocOwl2/examples/docowl2_page0.png',
    './DocOwl2/examples/docowl2_page1.png',
    './DocOwl2/examples/docowl2_page2.png',
]
query = "what is this paper about? provide detailed information."
response = docowl.inference(images, query=query)

print("解析結果:", response)
```

**推論結果**:
- 主題が「契約管理」であることを特定。
- 各ページの重要箇所を挙げて詳細を説明。

```
This paper is about OCR-free multi-page document understanding for derstanding.
As shown in the first image, The paper discusses the problem of OCR-free multi-page document understanding, which is the ability to process and extract meaningful information from multi-page documents without relying on optical character recognition (OCR) software. The authors present a high-resolution compression method called MPLUG-DocOwl2 that achieves promising OCR-free Document Understanding performance by considering the cost of generating thorough sands of visual tokens for a single document image, leading to excessive GPU computation time. The paper also provides a detailed explanation of the overall structure parsing of the document.
```

>すごいですね。全体の説明がきちんとできてます。

以下にGoogle Colaboratoryで試せる、実際のコードを添付します！

https://github.com/engkimo/ML-Experimental/blob/main/mPLUG_DocOwl2_%E6%A4%9C%E8%A8%BC.ipynb

---

## 7. 今後の課題と展望

最後に、MPLUG-DOCOWL2が直面する課題と改良の方向性を挙げます。

1. **多様なドキュメントレイアウトへの対応**: 特に手書きや非標準フォーマットへの適応が求められます。
2. **軽量化**: モバイル環境での利用を視野に、モデルサイズを縮小する必要があります。
3. **データノイズの軽減**: ノイズが多いデータセットに対する精度向上が期待されます。

---

以上、MPLUG-DOCOWL2に関する包括的な解説でした。この技術は、ドキュメント解析の未来を切り開く可能性を秘めています。この記事が皆さんの参考になれば幸いです。ご意見や質問があれば、ぜひコメントで教えてください！

---


**もしこの記事が役に立ったと思ったら：**

- ぜひ「いいね！」をお願いします！
- 最新の投稿を見逃さないよう、Xのフォローもお願いします！
    - https://x.com/immeivise