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


【エンジニア向け】RAGの常識を覆す!ストレージ97%削減のプライベート検索技術「LEANN」徹底解説

こんにちは!未来の技術を形にするソフトウェアエンジニアの皆さん、お疲れ様です。今回ご紹介するのは、まるで「どこでもドア」のように、皆さんの開発環境に革命をもたらすかもしれない、すごい道具(ライブラリ)、「LEANN」です。yichuan-wさんが開発されたこのライブラリは、皆さんが今注目している「RAG (Retrieval-Augmented Generation / 検索拡張生成)」という技術を、速く、正確に、そして何よりもプライベートに、個人のデバイスで実現するための画期的なアプローチを提供します。


エンジニア必見!数式OCRの決定版「pix2tex」でドキュメント作成を爆速化

今日は特にソフトウェアエンジニアの皆様にとって、「数式を画像からLaTeXコードに変換する」という、ちょっと雲行きが怪しい作業を一気に晴れにする、素晴らしい技術の「pix2tex」をご紹介します!「はぁ~、またこの資料の数式をLaTeXで打ち直しかぁ。積分記号


ソフトウェアエンジニアのためのDjango入門:締切を守る完璧主義者のためのフレームワーク

Djangoは、Python製のウェブフレームワークです。スピーディーな開発と、保守性の高いコードを書くための工夫が詰まっています。開発者が「締切のある完璧主義者」と自称するほど、生産性を高めることに特化しています。筋トレに例えると、Djangoは、フィットネスジムにある最新鋭のトレーニングマシンのようなものです。マシンが部位ごとのトレーニングを補助するように、Djangoもウェブ開発の様々なタスクを自動化・効率化してくれます。


オレオレ詐欺に注意...じゃない!GitHubDailyで良質な情報を安全に手に入れる方法

GitHubDaily/GitHubDaily は、その名の通り、GitHub上で見つけられた高品質で興味深い、実用的なオープンソースプロジェクトを毎日共有しているリポジトリです。新しいプログラミング言語、フレームワーク、開発ツール、面白い技術チュートリアルなど、多岐にわたるプロジェクトが紹介されています。


PythonとNode.jsの力を解き放つ。ByteDanceのオープンソース「Deer-flow」でエージェント開発を加速させる

エンジニアの視点で見ると、これって「ただのチャットAI」とは全然別物。まるで、一歩先を読んで複雑な家事(仕事)を全部片付けてくれる、すごく有能な執筆・開発パートナーって感じかな。「どれが一番似合うかな?」って水着選びで迷うみたいに、Deer-flowの可能性を一緒に探っていこう!


動画ファイルが賢くなる?NLPとOpenCVでテキスト検索を可能にする「memvid」とは

「memvid」は、Olow304/memvid というGitHubリポジトリで公開されている、Pythonで書かれたライブラリです。NLP(自然言語処理)とOpenCV(コンピュータービジョンライブラリ)を組み合わせて、テキスト情報を動画ファイル(MP4)の中に効率的に保存し、高速な意味検索を可能にします。


現場のボスになれ!Pythonで操る「InvenTree」在庫管理システム

お前、現場で部品や資材の管理、マジで大変だろ?Excelファイルとにらめっこしたり、棚卸しで汗だくになったり…。そんな泥臭い作業とは今日でおさらばだ!この「InvenTree」、一言で言うと「現場の在庫管理システムを最強にするオープンソースのツール」ってわけだ。


オースティン・パワーズ流!donnemartin/system-design-primerで学ぶシステム設計

さて、今日は君たちソフトウェアエンジニアの卵たちに、とっておきの情報を持ってきてやったぜ! オースティン・パワーズばりのキレッキレな解説で、システム設計の奥深さをとくとご覧あれ!皆さん、システム設計って聞いて「うっ…頭が…」ってなる人、いるんじゃないかな? 大規模なシステムって、まるで僕のモジョパワーみたいに複雑怪奇で、どこから手をつけていいか分からないって人も多いだろう。