00:00:00私たちはAIアプリの開発そのものよりも、文書の処理に多くの時間を費やしています。
00:00:05複数のライブラリを接続して、ようやくPDFをパイプラインに取り込んでも、LLMはひどい回答を返してきます。
00:00:11モデルが悪いのではなく、マークダウンが悪いからです。
00:00:14これがMarkdownです。
00:00:16GitHubで11万以上のスターを獲得し、爆発的に普及したMicrosoft製のツールで、
00:00:21実質1行のコードでパイプライン全体を修正してくれます。
00:00:24この仕組みについて、数分で解説します。
00:00:30[音楽]
00:00:33さて、基本的にどんなAIプロジェクトも同じように始まります。
00:00:36Word文書、スライド、スプレッドシート、PDFのスクリーンショット、あるいは音声ファイルまで、至るところにファイルが散乱しています。
00:00:43そして、開発者が大好きな「クールな部分」がやってきます。
00:00:46ツールをスタック(積み重ね)し始めるのです。
00:00:49PDF用、Excel用、Word用といったツールを準備しますよね?
00:00:54これらのライブラリをすべて連携させて、パイプラインを構築していくわけです。
00:00:59最初はうまくいくように感じます。
00:01:02ところが、次第に壊れ始めます。
00:01:04表の構造は崩れ、見出しは消え、トークン消費量は明らかに激増していきます。
00:01:10そうなるとRAGパイプラインはゴミを拾うだけになり、エージェントはひどい回答しか出せなくなります。
00:01:16結局、リリース作業ではなく、データの取り込みに関するデバッグに追われることになるのです。
00:01:19本当、これって何をしているのでしょうか?
00:01:21ただの時間の無駄です。
00:01:22ほんの数分ではなく、毎週何時間も浪費しています。
00:01:25ですから、モデルを修正するのではなく、入力データを修正する必要があります。
00:01:29実際どんな感じかお見せしましょう。
00:01:31ワークフローを高速化するツールに興味がある方は、ぜひチャンネル登録をお願いします。
00:01:35今後も動画をどんどん公開していきます。
00:01:37それでは、さっそくやってみます。
00:01:39すべてPythonなので、とてもシンプルです。
00:01:42まず、仮想環境でpipインストールします。
00:01:45ここにdoc.pdfというPDFファイルがあります。
00:01:48これをターミナルで実行するだけです。
00:01:50「markitdown doc.pdf output.md」を実行します。
00:01:55これだけです。
00:01:56自動的にファイルを作成してくれます。
00:01:58そのファイルを開いてみると、期待通りの結果になっています。
00:02:03見出しはきれいに整い、表はちゃんと表らしく、構造もしっかり残っています。
00:02:08これをPythonでコーディングすれば、さらに多くのことが可能になります。
00:02:13インポートしてOpenAIを使い、クライアントを作成してマークダウンオブジェクトを作ります。
00:02:20APIキーと実行したいモデルを渡します。
00:02:25コードを実行すると、ターミナルに結果が生成されるので非常にクリーンです。
00:02:29さらにすごいのは、PNG画像も扱える点です。
00:02:33今回はNVIDIAのチャート画像を用意しました。
00:02:35データが記載された画像がありますね。
00:02:39今度はこのチャートをマークダウンに変換してみます。
00:02:42再びconvert関数を使うだけで、markitdownに処理させることができます。
00:02:47今回はPNGファイルを指定します。
00:02:50これで、チャートの要約やRAGで使える抽出データが得られました。
00:02:56これは画期的です。コード内で必要な情報をすぐに抽出できるので、
00:03:01ウィンドウを行き来することなく作業を続けられます。
00:03:05では、マークダウンとは一体何でしょうか?
00:03:07Microsoft Researchが開発したオープンソースのPythonツールです。
00:03:11MITライセンスで、LLMワークフロー向けに特別に設計されています。
00:03:16乱雑なファイルを整理されたマークダウンに変換し、
00:03:19モデルが確実に理解できるようにするのが目的です。
00:03:22サポートしている形式は想像以上に豊富です。
00:03:25Word、PowerPoint、Excel、PDF、音声、画像、リンクなど、何でも扱えます。
00:03:32MCPサーバーにも対応したので、Claude Desktopや独自のエージェントに直接組み込むことも可能です。
00:03:40さらにプラグインもあります。
00:03:41 ingestion(取り込み)パイプラインを自作する代わりに、このツールを呼び出すだけになりました。
00:03:47開発者が苦労していたのはモデルのせいではなく、入力データのせいだったのです。
00:03:51「より良いモデルを使えばいい」というのがこれまでの期待でしたが、
00:03:55真実は「入力の質を上げれば、出力の質も上がる」ということです。
00:04:00壊れやすいスクリプトを書く代わりに、今は「markitdown」というツールを何にでも使っています。
00:04:06RAGパイプライン、エージェント、ファインチューニングのデータセット、ナレッジベース、文書解析など、これまで行ってきたすべてにおいてです。
00:04:13多くの人が見落としている重要な点は、これが「構造化された、トークン効率の良いマークダウン」を生成するということです。
00:04:20ノイズが減り、より良い回答、つまり良い出力が得られるようになります。
00:04:24ただ、完璧というわけではありません。
00:04:26既存のツールと比較してみましょう。
00:04:31Pandocというツールがありますが、こちらが勝つと思うかもしれません。
00:04:36しかし、解決しようとしている問題がmarkitdownとは異なります。
00:04:40Pandocは人間用、つまり出版やフォーマット、LaTeX向けです。
00:04:44markitdownは機械用、つまりLLM、パイプライン、自動化向けです。
00:04:48似たようなアイデアですが、目的が違います。
00:04:51また、unstructuredやdoclingのようなツールもあります。
00:04:55これらも素晴らしいですが、非常に重量級です。
00:04:58機械学習モデルを使用するためセットアップに時間がかかり、極めて複雑な文書には向いています。
00:05:03markitdownはそれらとは正反対のアプローチを取っています。
00:05:05セットアップが簡単で、素早く結果を出せ、ほとんどのファイルで十分な性能を発揮します。
00:05:11これが本当のトレードオフです。
00:05:12完璧な抽出が必要か、それとも高速かつ確実に動作するものが良いか。
00:05:18ほとんどの人にとっては、スピードが重要でしょう。
00:05:20もちろん欠点もあり、複雑なPDFはやはり読み込めないことがあります。
00:05:24特に高密度の表や、特殊なレイアウトですね。
00:05:27毎日そのような複雑な文書を扱うなら、doclingやunstructuredの方がはるかに優れています。
00:05:32ただし、画像の説明が必要なら、結局LLMを組み合わせる必要があります。
00:05:36完璧ではありませんが、現実的な問題を解決してくれる非常にクールなツールです。
00:05:41では、使う価値はあるのでしょうか?
00:05:43はい、ほとんどの人にとって間違いなく価値があります。
00:05:45もし現在AIアプリを開発しているなら、これが本来あるべき取り込み層の姿でしょう。
00:05:50Markdownをぜひ試してみてください。
00:05:52RAGやエージェントのためにクリーンな入力を求めているなら、試す価値があります。
00:05:56多様なファイル形式を扱う場合、
00:05:58このツールは非常に役に立ちます。
00:05:59すぐに壊れてしまう脆いスクリプトをメンテナンスしたくないですよね?
00:06:03もし毎日非常に複雑なPDFばかり扱っているなら、このツールはスキップするか、別のツールと組み合わせると良いでしょう。
00:06:08他にも選択肢はあります。
00:06:09オープンソースのツールやコーディングのヒントに興味がある方は、ぜひBetter Stackチャンネルの登録をお願いします。
00:06:15また次の動画でお会いしましょう。