「教科書をOCRで検索可能にしたい」という個人的な課題から生まれた、たった40行のサーバーレスOCRスクリプトがHacker Newsで話題になっています。DeepSeekのオープンソースOCRモデルとModal(サーバーレスGPUプラットフォーム)を組み合わせた実装で、数学の数式も正確に読み取れるのが特徴です。

なぜ自前のOCRが必要だったのか

著者のChristopher Krapu氏は、統計学の教科書「Bayesian Data Analysis」をAIエージェントで検索可能にしたかったそうです。既存のOCRサービスは使用量制限があったり、大量ページの処理で費用がかさんだりする問題がありました。

手元のGPU(NVIDIA Titan Xp)は10年前のもので、最新のPyTorchが動かない。そこでクラウドGPUを使う方向にシフトしたという経緯があります。これは多くの個人開発者が直面する「GPUの壁」ですよね。

Modalとは何か

Modalは、サーバー管理なしでPythonコードをクラウドで実行できるプラットフォームです。特徴的なのはデコレータパターンで、普通のPython関数にデコレータを付けるだけでA100 GPUが使えるようになります。

課金は実際にコードが動いている秒単位なので、OCRのような「まとめて処理して終わり」のタスクには最適です。サーバーを立てっぱなしにする必要がないため、コストを最小限に抑えられるんですよね。

実装の仕組み

構成はシンプルで、FastAPIサーバーをModal上にデプロイして、画像を受け取ったらMarkdownテキストを返す仕組みです。DeepSeekのOCRモデルは数学的な記法の認識に強く、教科書のOCRには理想的なんですよね。

コンテナイメージの定義からAPIエンドポイントまで含めて約40行。この手軽さが魅力で、Python 3.14の新機能と組み合わせれば、さらに効率的なパイプラインが作れそうです。

コストはどれくらいか

著者によると、数百ページの教科書をOCRするのにかかったコストは数ドル程度だそうです。商用OCRサービスだと同じ量で数十ドル以上かかることを考えると、かなりコストパフォーマンスが良いと思います。

ただし、初回のモデルダウンロードとコンテナビルドには時間がかかるので、少量のOCRなら既存サービスの方が手っ取り早いかもしれません。大量処理が必要な場合に真価を発揮する方法ですね。

応用の可能性

このアプローチは教科書OCR以外にも使えます。たとえば、古い技術ドキュメントのデジタル化、論文のテキスト抽出、手書きノートの変換などが考えられます。MCPサーバーと組み合わせれば、OCR結果をAIエージェントに直接渡すパイプラインも構築できそうです。

サーバーレスGPUの料金は年々下がっていて、こうした「ちょっとしたAI処理」を個人で回す敷居はどんどん低くなっています。「40行で自前OCR」というのは、そのトレンドを象徴する良い例ではないでしょうか。

参考リンク: