SmolDoclingによるエンドツーエンドのマルチモーダル文書変換
紹介
私たちの世界はますますデジタル化しています。個人コンピューティングの初期から、電子メール、ソーシャルメディア、eコマースの普及、リモートワークへのシフト、さらには大規模言語モデルやエージェンティックAIの採用に至るまで、デジタル革新の変革の弧は、情報をデジタル化し抽出する前例のない必要性を引き起こしています。ここで、効果的な文書処理は物理世界とデジタル世界の橋渡しを行い、印刷されたテキストの本質を捉え、それをデジタル領域で生き生きとさせます。これは、あなたの電話が外国のメニュー項目を翻訳できるようにし、歴史家が古代の文学を保存する手助けをし、手動でのデータ入力にかかる膨大な時間を節約する技術です。
文書処理の本質は、テキストの画像を機械可読形式に変換することにあり、これにより文書変換や理解といったユースケースが促進されます。文書変換は、スキャンしたテキストをMarkdown、Word、PDFなどの形式に変換することを含み、文書理解は単なるテキスト認識を超えて、コンテンツから意味のある洞察や構造を抽出することを目指します。
SmolDocling
SmolDoclingの登場です。これは、効率的な文書処理のために設計されたコンパクトなマルチモーダルビジョン言語モデルです。わずか2億5600万のパラメータで、文書のレイアウト、構造、空間配置を維持しながらフルページ変換を提供します。その小さなサイズは、計算能力とメモリをあまり必要としないため、文書処理のコスト効率の良い選択肢を提供し、迅速なプロトタイピングやエッジデバイスに最適です。
前提条件
最適なパフォーマンスを得るために、SmolDoclingはCUDAサポートのあるNVIDIA GPUを必要とします。H100 GPUを搭載したDigitalOceanのGPUドロップレットは、生産規模での効率的な処理に必要な計算能力を提供します。
機能と能力
SmolDoclingは、文脈とレイアウト情報をキャプチャするマークアップ形式であるDocTagsを使用して文書を処理します。バウンディングボックス検出によりフォーマットが保持され、コード、数式、チャート、表、図に対する特別な認識をサポートしています。このモデルは、リストのグループ化とキャプションのリンク処理を行うことで、文書の構造を維持します。
DocTags形式は、テキスト、テーブル、画像、コードなどの要素のタイプ、位置、およびコンテンツを特定します。DocTagsは、要素間の関係を保持するためにネストされたタグを使用しています - 画像内のキャプション、リスト内のアイテム、テーブル構造のための特別な最適化されたテーブル構造言語(OTSL)表記。このアプローチは、複雑な文書の視覚的組織と意味的構造の両方を維持し、SmolDoclingをエンドツーエンドの文書変換タスクに効果的にしています。
| タグタイプ | 説明 |
|---|---|
| XMLに似た構文 | テキストブロックには開閉タグを使用し、指示用にはスタンドアロンタグを使用します(例:<text>こんにちは世界</text>, <page_break>) |
| 文書構造 | 完全な DocTags スニペットは <doctag>…</doctag> に囲まれており、<page_break> タグで区切られた単一または複数のページを表すことができます。 |
| ブロックタイプタグ | <テキスト>, <キャプション>, <脚注>, <数式>, <タイトル>, <ページフッター>, <ページヘッダー>, <画像>, <セクションヘッダー>, <ドキュメントインデックス>, , |
| 位置エンコーディング | 要素には、境界ボックス座標を指定するネストされた位置タグが含まれる場合があります: |
| テーブル構造 | OTS用語を取り入れたテーブルには、<fcel>(フルセル)、<ecel>(空セル)、<ched>(列ヘッダー)、<rhed>(行ヘッダー)、<srow>(テーブルセクション)が含まれます。 |
| リストの扱い | |
| キャプション | |
| コード処理 | 要素はフォーマットを保持し、<_programming-language_>分類タグ(57言語に対応)を含みます。 |
| 画像分類 | |
| 均一な表現 | 切り取られたページ要素は、フルページの対応物と同じDocTags表現を維持します。 |
SmolDoclingの追加機能は以下にまとめられています:
| 機能 | 説明 |
|---|---|
| OCRとレイアウトの保持 | 空間構造を維持しながらテキストを抽出する |
| 専門的な認識 | コードブロック、数式、表、およびチャートをサポートしています。 |
| フルページ変換 | すべての要素を同時に処理します |
| 迅速な推論 | A100 GPUでページあたり0.35秒 |
| ドキュメントタグマークアップ | 文書の内容とレイアウトを構造化された形式でキャプチャします。 |
SmolDoclingはDoclingと統合して、インポートおよびエクスポートの柔軟性を提供します。ロードマップには、ワンショットの複数ページ推論、強化されたチャート認識、化学構造検出が含まれています。
モデルアーキテクチャ
SmolDoclingは、HuggingFaceのSmolVLMに基づいています。SmolDoclingがドキュメントページの画像をDocTagsのシーケンスに変換するプロセスを説明しましょう。まず、入力された画像は視覚エンコーダーを通じて処理され、その後、投影とプーリング技術を使用して再形成されます。次に、これらの処理された画像エンベディングは、ユーザーのプロンプトから得られたテキストエンベディングと結合され、相互に組み合わされます。最後に、この結合されたシーケンスがLLMに入力され、自動回帰的にDocTagsのシーケンスが生成されます。
データ
異なる能力に対してモデルを改善するために、さまざまなデータセットのコレクションが使用されました。文書理解と画像キャプショニングを強調するために使用されたデータセットには、The Cauldron、Docmatix、およびMathWritingが含まれています。
競争力のあるパフォーマンス
SmolDoclingは、27倍まで大きいモデルと競合しながら、計算要件を削減します。ビジネス文書、学術論文、技術報告書、特許、フォームなどで良好なパフォーマンスを発揮します。科学論文に焦点を当てる多くのOCRモデルとは異なり、SmolDoclingは幅広い種類の文書に対応するように設計されています。
モデルは現在利用可能であり、チャート、表、方程式、コード認識用の追加データセットは近日中にリリースされる予定です。
DigitalOceanのGPUドロップレットを使用してSmolDoclingを実装する
SmolDoclingを実行するには、DigitalOceanのGPUドロップレットをセットアップし、AI/MLを選択してNVIDIA H100オプションを選んでください。
ウェブコンソールでvLLMを使用してモデルを起動します:
Install pip:
apt install python3-pip
Install vLLM from pip:
pip install vllm
Load and run the model:
vllm serve "ds4sd/SmolDocling-256M-preview"
この画像をOCR用に渡します。
# Call the server using curl:
#replace url with your image
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "ds4sd/SmolDocling-256M-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Describe this image in one sentence."
},
{
"type": "image_url",
"image_url": {
"url": "https://i.sstatic.net/IvV2y.png"
}
}
]
}
]
}'
このスクリプトは画像やPDFファイルを処理し、構造化された文書データをJSON形式で出力します。
結論
このチュートリアルでは、文書変換タスク専用に設計されたコンパクトかつ強力なビジョン言語モデルであるSmolDoclingを探りました。その統一DocTags出力フォーマットを活用することで、SmolDoclingが標準テキストから複雑なフォーム、さらにはコードリストに至るまで、さまざまな文書タイプを効率的に処理できる様子を見てきました。また、大きな代替品に比べて必要とする計算リソースが大幅に少ないことが特徴です。このモデルは、効率と精度のバランスの取れたアプローチを持っているため、文書理解機能を実装しようとする開発者や組織にとって優れた選択肢となります。
参考文献
論文: SmolDocling: エンドツーエンドのマルチモーダル文書変換のための超コンパクトなビジョン・ランゲージモデル
ペーパーズ・エクスプレインド 333: スモールドクリング





