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ライブラリです。


22世紀のチャット運用術:AstrBotによるマルチプラットフォーム抽象化とエージェント基盤

のび太「ドラえも〜ん!LINEとかDiscordとか、いろんなSNSで動く自分専用のAI秘書を作りたいんだけど、設定が難しすぎて頭がパンクしそうだよ〜!」ドラえもん「やれやれ、のび太くんは相変わらずだね。でも安心しなよ!そんなときのために……(四次元ポケットをガサゴソ)……『AstrBot(アストラ・ボット)』!!」


Qlibで始めるAI投資:Gメン流データ分析と戦略構築の極意

「さて、今日の獲物…じゃなかった、今日ご紹介するツールは、巷で話題のMicrosoft Qlibだ!」(Gメン風に鋭い目つきで)「このQlib、ただのツールじゃないぜ。AIを使った投資プラットフォームで、俺たちソフトウェアエンジニアにとっても、まるで万引き犯を見つけるGメンのように、市場の怪しい動きをいち早く察知して、利益につなげるための強力な武器になるんだ!」


【エンジニア必見】面倒な認証はComposioに丸投げ!800以上のツールとAIを繋ぐ方法

AIに「何かやっといて」と言っても、「やり方は知っていますが、ボタンは押せません」なんて言われたら、喉ごしが悪いですからね。アサヒ(キレ担当) 「おい、最近のAIエージェント、頭ばっかり良くなって行動が伴ってないんじゃないか? 喉ごし(UX)がガツンと来ないんだよ!」


あなたのサービス品質向上に貢献:qeeqbox/social-analyzer導入とAPI連携の具体例

このツールは、指定されたユーザー名が、1000以上のソーシャルメディアやウェブサイトで利用されているかどうかを、効率的かつ広範囲にわたって調査・分析するためのものです。Node. js、JavaScript、Pythonに対応しており、API、CLI(コマンドラインインターフェース)、そしてウェブアプリとして利用できます。


脱・プログラミング迷子!Python入門者が学ぶべき30のステップ

「煽り運転に注意」って、まるでコントの導入みたいですね(笑)。でも、焦ってプログラムを学ぶと、まるで後ろから煽られているような気分になるかもしれません。この「30 Days Of Python」は、そんなプレッシャーを感じることなく、自分のペースでじっくりとPythonをマスターするための頼もしい相棒です。


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

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


【体験談】roboflow/supervisionが私のCVプロジェクトを変えた話

こんにちは!今回は、コンピュータービジョンのプロジェクトに取り組むソフトウェアエンジニアの皆さんにとって、まさに「痒い所に手が届く」ツールであるroboflow/supervisionについて、その魅力と使い方をたっぷりご紹介します。まるで、これまでバラバラだったパーツをピタッとつなぎ合わせてくれる接着剤のような存在で、開発効率がぐんとアップすること間違いなしですよ!


証拠物件(EPUB)を逃がすな。calibredbで実現する、エンジニア流・電子書籍取り調べ術

エンジニアの皆さん、お疲れ様です。今日は、電子書籍界の「巨大な証拠保管庫」こと calibre について、警察のガサ入れ…ではなく、技術的な「現場検証」をしていきましょう。電子書籍の管理ソフトとして有名な calibre ですが、中身は Python で書かれた超巨大なオープンソースプロジェクト です。エンジニアにとっては、ただの「本棚」以上の価値があります。


リンクも驚く情報収集術!Maigretで広がるエンジニアの視野

ハイラルを旅する勇敢なソフトウェアエンジニアの皆さん、ごきげんよう!今日は、まるでゼルダの伝説の壮大な冒険のように、私たちエンジニアが「情報収集」という試練に立ち向かうための、素晴らしい魔法のアイテムをご紹介しましょう。その名も「soxoj/maigret」!