ACL 2025発表の「Dolphin」がエンジニアにもたらす変革


ACL 2025発表の「Dolphin」がエンジニアにもたらす変革

bytedance/Dolphin

2025-09-26

おいおい、今日のバーベキュー、最高の肉が手に入ったぜ! あ、〇〇ちゃん、今日もお肉焼くの上手だね!

「いやぁ、そんなことないっすよ。この網の熱を均一にする技術、まるでドキュメントのレイアウトを完璧に読み取るAIみたいじゃないですか!」

え?なんだって?

「いえ、なんでもないです!それより、このドキュメントの話、ちょっと聞いてくれませんか?」

というわけで、僕が今回みんなに紹介したいのは、ACL 2025で発表されたばかりのすごいやつ、その名もbytedance/Dolphinです!

この「イルカ」ちゃん、何がすごいかっていうと、PDFや画像になったドキュメントの構造を、まるで僕らがBBQで肉の塊からスジや脂身を見分けるように、きっちり見分けてくれるんです。

「いやぁ、でもPDFって、ただの電子の紙っぺらでしょ?」

いやいや、それが違うんですよ!ソフトウェアエンジニアは、この「ただの電子の紙っぺら」をデータとして扱いたい場面が山ほどあるんです。

請求書の自動処理
毎月何百枚と届く請求書のPDFから、会社名、金額、日付を自動で抜き出して、経理システムにポンと放り込みたい!

契約書の監査
大量の契約書PDFの中から、特定の条項(例えば「機密保持」とか)が含まれているか、自動でチェックしたい!

論文のデータ抽出
研究開発で、PDFになった学術論文から図表や参考文献をサクッと抜き出して、データベースにまとめたい!

スキャンした書類のデジタル化
紙の書類をスキャンして画像になったものの、どこに何が書かれているか、全くわからん...。これを自動でテキスト化して、検索できるようにしたい!

こういうときに、普通のテキスト抽出ツールだと、レイアウトが崩れたり、表の中身がぐちゃぐちゃになったりして、もう「うわぁぁぁ...」ってなるんですよ。

でも、この「イルカ」ちゃんは、文書のレイアウト(表、リスト、段落、ヘッダー、フッターなど)をしっかり理解してくれるので、意味のあるデータとして綺麗に抽出してくれるんです!

まるで、みんなが手分けして焼いた肉を、誰がどのお皿に、どんな順番で盛り付けたか、全部覚えてくれる優秀な店員さんみたいだと思いませんか?

導入はとっても簡単!Pythonのライブラリとして提供されているので、みんなで協力してBBQの準備をするように、サクッと始められます。

網と炭を用意する(=仮想環境を作る) まずは、他のプロジェクトと混ざらないように、仮想環境を作ってあげましょう。

python -m venv dolphin_env
source dolphin_env/bin/activate  # Windowsの場合は dolphin_env\Scripts\activate

お肉と野菜を買いに行く(=Dolphinをインストールする) pipを使って、お肉屋さん(PyPI)からDolphinを連れてきます。

pip install bytedance-Dolphin

これで準備完了!あとは、火を起こして、美味しいお肉を焼くだけです。

ここからは、実際にコードを書いて、PDFからデータを抽出してみましょう。

例
PDFからテキストと構造を抽出する

例えば、こんなPDFがあるとします。

ヘッダーに「報告書」

段落で「2025年9月26日、晴れ、BBQ日和...」

表で「参加者」と「感想」がリストになっている

from dolphin import DolphinParser

# イルカちゃんを呼んでくる!
# モデルは、BBQのベテランシェフを雇うようなものです。
# (実際には、Hugging Face Hubなどからモデルをダウンロードする必要があります。
#  詳細は公式リポジトリを確認してくださいね!)
parser = DolphinParser.from_pretrained("bytedance/Dolphin-v1")

# BBQの材料(=PDFファイル)を準備
pdf_file = "my_report.pdf"

# さあ、焼いてみよう!(=解析を実行!)
results = parser.parse(pdf_file)

# 美味しく焼けたお肉をみんなで分けよう!
# 結果をjson形式で見てみましょう。
import json
print(json.dumps(results, indent=2, ensure_ascii=False))

# どんなデータが取れるかというと...
# こんな感じのデータが取れます(あくまでイメージです)
"""
{
  "pages": [
    {
      "page_number": 1,
      "blocks": [
        {
          "type": "header",
          "text": "報告書",
          "bbox": [100, 50, 200, 70]
        },
        {
          "type": "paragraph",
          "text": "2025年9月26日、晴れ、BBQ日和。今回は、新入社員歓迎BBQを開催しました。...",
          "bbox": [100, 100, 700, 200]
        },
        {
          "type": "table",
          "columns": ["参加者", "感想"],
          "rows": [
            ["〇〇太郎", "肉が美味しくて最高でした!"],
            ["△△花子", "野菜も新鮮で嬉しかったです。"],
            ...
          ],
          "bbox": [100, 250, 700, 400]
        }
      ]
    }
  ]
}
"""

# どうです?ただのテキストではなくて、「ヘッダー」「段落」「テーブル」という構造情報も一緒に取れているでしょう?
# これなら、後続の処理がものすごく楽になります!

### まとめ:BBQの締めくくり

「いやぁ、今日のBBQも、Dolphinのおかげで最高だったぜ!」

...いやいや、Dolphinは関係ないですから!でも、このDolphin、PDFや画像からデータを扱うことが多い僕たちソフトウェアエンジニアにとっては、本当に革命的なツールになるはずです。

みんなもぜひ、公式リポジトリをチェックして、あなたのプロジェクトにこの「賢いイルカ」を招き入れてみてください!きっと、面倒なドキュメント処理が、BBQのように楽しくなるはずですよ!

それでは、お肉が焦げる前に、今日はこの辺で!また次回!

bytedance/Dolphin




PDFの壁を打ち破る:数式・表・多段組対応のデータ抽出ツール MinerUの威力

ホテルのコンシェルジュのように、このツールをどのように活用できるか、導入方法、そしてサンプルコードまで、分かりやすく丁寧にご案内しますね。MinerUは、一言でいうと「複雑なPDFなどの非構造化データを、大規模言語モデル(LLM)がすぐに使える、構造化されたデータ(MarkdownやJSON)に魔法のように変換してくれる」Pythonライブラリです。


AIの知性を飛躍させる「MemoriLabs/Memori」入門:記憶の保存と検索のアーキテクチャ

ご提示いただいたオープンソースの記憶エンジン「MemoriLabs/Memori」について、ソフトウェアエンジニアの視点から、その有用性、導入方法、そしてサンプルコードの例を、コントのお化け屋敷のように面白おかしく、しかし技術的に分かりやすく解説しますね!


オフラインAWS開発を実現するLocalStack入門:サーバーレス時代のテスト戦略を革新せよ

LocalStack は、フル機能を持つローカルの AWS クラウドスタックです。つまり、Amazon Web Services (AWS) のサービス(S3、Lambda、DynamoDB、SQSなど)を、自分のPC上やCI/CD環境でオフラインで動作させることができるツールなんです。


新米エンジニアよ、AIの基礎を叩き込め!「ML-For-Beginners」で差をつけろ!

今日はな、テメーらみたいなピヨピヨの新入りでも、一丁前にAIとか機械学習とか言えるようになっちまう、とっておきのモンを紹介してやるぜ!それがこれだ、どーん!microsoft/ML-For-Beginners [python, education


血液型占い風解説!AIエージェントのチームマネジメントツール「agent-squad」とは?

今回は、ソフトウェアエンジニアの視点から、ちょっと面白いツール「agent-squad」について、血液型占いの運勢みたいに、楽しく分かりやすく解説していきますね。全体運最高潮!まるで優秀なチームを瞬時に結成できる魔法の杖を手に入れたかのよう。これまで一人で抱え込んでいた複雑なタスクも、チームで分担することでサクサクこなせるようになります。特に、複数のAIを組み合わせて、まるで人間同士が話し合っているかのように協調させたい場面で、その真価を発揮します。


CursorやLangChainを使いこなせ!エンジニアの価値を最大化するAI活用ロードマップ

今日は、中国のスーパーエンジニア「魚皮(Yupi)」さんが公開している最強のAIリソース集 「liyupi/ai-guide」 について解説しちゃうわね。「AIが多すぎて何から手をつければいいの!?」ってパニックになってるそこの君、落ち着いて。このリソースは、エンジニアにとっての「宝の地図」みたいなものなんだから!


PythonでAzureを料理する:SDKで始めるクラウド開発

このSDKは、Pythonのコードから直接Azureの様々なサービス(仮想マシン、ストレージ、データベースなど)を操作するためのライブラリ群です。まるで、ラーメンの具材(Azureのサービス)を自在に操るための、最高の調理器具セットのようなものです。


35の雑音をAIが「大吟醸」に精製!ソフトウェア開発者のための情報過多対策ツール最前線

さあ、今宵は情報過多を乗りこなすための特選ツールの飲み比べです!これが今回ご紹介する「TrendRadar」です!口に含むと、情報が雑味なく整理されて、まるでクリアな大吟醸のようにスッと入ってきます。味わい(機能) 35以上のプラットフォーム(ニュース、SNS、専門メディア)から熱点を集約し、AIが「これは重要だ!」という情報だけを厳選してくれます。さらに、AI対話分析でトレンド追跡、感情分析、相似検索など13種のディープな分析が可能。


モダンAIスタックの結晶:MoneyPrinterV2を活用した自動化パイプライン構築術

今回、我々が調査する伝説の秘宝は、GitHubに眠る FujiwaraChoki/MoneyPrinterV2 だ。名前からして「お金を刷る機械」なんて、ワクワクするじゃないか?さあ、松明を掲げて、エンジニアの視点からこのツールの正体を暴いていこう!


【Python Robotics】ロボットアルゴリズムを動かす!エンジニアのための学習・開発入門

この AtsushiSakai/PythonRobotics は、ソフトウェアエンジニアのお兄ちゃんにとって、ロボティクスや自律移動に関する知識を深め、すぐに使えるサンプルコードが満載のとっても頼りになる教材集だよ!このリポジトリは、ただコードがあるだけじゃなくて、ロボットを動かすためのコアな技術を学べるのがポイントだよ。