【LangChain Interrupt参加レポート】データ処理エージェントの信頼性向上には「失敗モードの把握」が鍵となる

2025年5月13日から5月14日にかけてサンフランシスコで開催されたAIエージェント開発のテックイベント「LangChain Interrupt」。

Day 2では、UC Berkeleyで博士課程の研究を進めるShreya Shankar氏が登壇し、「Building Reliable Agents: データ処理エージェント向けIDE構築からの教訓」と題して、LLM(大規模言語モデル)を用いたパイプラインの信頼性向上に関する研究成果を共有しました。

データ処理エージェントとその課題

Shankar氏はまず、自身の研究対象である「データ処理エージェント」について説明しました。これは、組織が抱える大量の非構造化データやドキュメントから洞察を抽出し、分析し、理解することを目的とするエージェントです。

「例えば、カスタマーサービスのレビューからテーマを抽出し、それらを要約し、実行可能な次のステップを把握したいかもしれません。あるいは、営業担当者がメールを調べて、どのクライアントが契約に至った可能性があったのか、なぜ至らなかったのか、そこからどのように前進すべきかを把握したいかもしれません。」 (So for example, maybe in customer service reviews, they want to extract themes, summarize them figuring out actionable next steps. Maybe they want to look through their emails to figure out, for a sales agent, which clients could have gotten closed. Why didn't they? How do we move forward from that.)

交通安全や航空安全における事故原因の究明など、その応用範囲は多岐にわたります。しかし、LLMを使ってこれらの問題を解決しようとすると、多くの開発者が「これは本当に難しい。うまくいかない (This is really hard. It doesn't work.)」という壁に直面するとShankar氏は指摘します。

Shankar氏は不動産業者の例を挙げ、この困難さを具体的に説明しました。顧客のニーズ(例:ペット可物件、特に犬を飼っている顧客向け)に合う物件を探すため、多数の不動産賃貸契約書を処理するLLMパイプラインを構築する場合を考えます。このパイプラインは、各ドキュメントから情報を抽出するmap操作、条項を分類するmap操作、そしてそれらの情報を集約(aggregate)してレポートを作成する、といった一連のLLM操作で構成されるでしょう。

LLMパイプラインにおけるイテレーションの難しさ

このようなパイプラインを構築する際、開発者が直面する最大の問題は「プロンプトが機能しない」ということです。そして、一般的なアドバイスは「プロンプトをイテレート(反復改善)すればいい」というものですが、Shankar氏はこのイテレーションプロセスが実際には何を伴い、なぜ難しいのかを深く掘り下げました。

UC BerkeleyでのHCI(ヒューマン・コンピュータ・インタラクション)の視点を取り入れた研究から、Shankar氏はいくつかの重要な観察結果を提示しました。

第一に、開発者は「正しい問い」が何であるかさえ知らないことが多いと言います。先の不動産業者の例では、最初は「全てのペットポリシー条項」を抽出しようとしたものが、データや出力結果を見て初めて「犬と猫に関するペットポリシー条項のみ」が必要だったと気づく、といった具合です。

次に、「正しい問い」を把握できたとしても、今度はその問いをLLMにどのように具体的に指定するかという課題が生じます。LLMには非常に明確で曖昧さのないプロンプトが必要ですが、人間が曖昧でないと考えることでも、LLMにとっては曖昧な場合が多くあります。例えば、単に「犬と猫のポリシー条項」と言うだけでは不十分で、体重制限、品種制限、頭数制限などを具体的に指定することで、LLMのパフォーマンスが向上します。

研究アプローチ:ギャップの特定と解消

Shankar氏の研究は、LLMパイプライン構築における「ユーザー(開発者)」「データ」「パイプライン」間のギャップを埋めることを目指しています。LLMの精度向上に関するツールは、パイプラインが非常によく指定されている場合には豊富に存在しますが、「データ理解 (Data Understanding)」と「インテント仕様化 (Intent Specification)」の段階、つまりパイプラインの初期段階におけるギャップを埋めるツールは実質的に存在しない、というのがShankar氏の問題提起です。

課題1:データ理解 (Data Understanding)

データ理解における核心的な課題は、「データにはどのような種類のドキュメントがあるのか」、そして「それぞれの種類のドキュメントで発生する特有の失敗モードは何か」を把握することです。不動産賃貸契約の例では、品種制限、ペットの頭数制限、介助動物の例外規定など、様々な種類のペット条項が存在し、開発者はデータを見るまでこれらの存在に気づかないこともあります。

さらに、失敗モードには「非常に長い尾 (a really, really long tail of failure modes)」があるとShankar氏は指摘します。これは、LLMが通常とは異なる言い回しの条項を見逃したり、特定のキーワードに過剰適合して無関係な情報を抽出したりするなど、多種多様な失敗モードが存在することを意味します。1000件のドキュメントコレクションで、数百もの問題点が指摘されることも珍しくありません。

この課題に対処するため、Shankar氏の研究チームは、ユーザーが出力のクラスターを自動的に確認し、その場で注釈を付けられるようにすることで、失敗モードの整理を助けるツールをプロトタイプ開発しています。これにより、各失敗モードに対応した評価 (Evals) 用のデータセットを効率的に作成し、LLMによる代替的な言い回しの生成や、キーワード検索とLLMを組み合わせたハイブリッドアプローチなどの戦略を検討できるようになります。

課題2:インテント仕様化 (Intent Specification)

データ内に多数の失敗モードが存在することが明らかになった後、次に問題となるのは、どのようにしてパイプラインを改善していくか、つまり「インテント(意図)をどう仕様化するか」です。この多くは、クエリやプロンプトの曖昧さを減らすことを中心に展開されます。

「プロンプトエンジニアリングをすべきでしょうか?新しい操作を追加すべきでしょうか?タスク分解を行うべきでしょうか?ドキュメントのサブセクションを見て結果を統合しようとすべきでしょうか?人々はしばしばそこで非常に迷ってしまいます。」 (Do we prompt engineer? Do we add new operations? Do we do task decomposition? Do we try to look at subsections of the document and unify the results? People often get very lost at that.)

この課題に対し、Shankar氏のチームが開発中のdocutl projectでは、ユーザーが提供したメモを自動的にプロンプトの改善に変換する機能を研究しています。このインターフェースでは、ユーザーがインタラクティブにフィードバックを与え、編集し、改訂履歴を維持できるため、より操作性の高い改善プロセスが期待されます。

研究からの学び (Takeaways)

Shankar氏は、データ処理エージェントに限らず、LLMを用いた開発全般に役立つ2つの重要なポイントを「学び (Takeaways)」として共有しました。

1. LLMを使ったデータ処理は非常に曖昧で、決して終わりがない (very, very fuzzy, and they're never done)

評価に関しては、パイプラインを実行するにつれて常に新しい失敗モードが発見され、将来の評価のための新しいドキュメントのサブセットや具体例のトレースが継続的に作成されます。失敗モードは、この「ロングテール」に隠れており、常に10や20といった異なる種類の失敗モードをチェックし続ける必要があるとShankar氏は述べました。

2. イテレーションのサイクルを明確な段階に分解することが非常に役立つ

多くの人が、明確に指定されたパイプラインを一般化可能なものにするために、クエリ分解やプロンプト最適化といった戦略を試みますが、Shankar氏は、その前にパイプラインをどのように指定するかを理解する必要があると強調しました。

  • まず、データを理解する (Understand your data)。 精度の良し悪しは気にせず、失敗モードで何が起こっているかを把握することに集中します。
  • 次に、プロンプトを可能な限り明確に指定する方法を見つける (figure out how to get your prompts as well specified as possible)。 曖昧さがないことを確認し、人間が見ても誤解しないレベルを目指します。
  • そして、その後に初めて (only then)、 よく知られた精度最適化戦略を適用することで、本当に大きな成果を得られるのです。

まとめ

Shreya Shankar氏の講演は、LLMを実世界の複雑なデータ処理タスクに適用しようとする開発者が直面する、信頼性の課題に対して、「失敗モードに着目する」という具体的な分析手法を示唆するものでした。特に、データ理解とインテント仕様化の重要性、そしてイテレーションプロセスを段階的に進めるという提案は、多くの開発者にとって日々の業務に活かせる知見だと感じました。