数百のAI関連機能を提供するLayerXは、なぜLLMOpsにLangfuseを選んだか
AIエージェントの開発や運用に欠かせないのが、LLMOps(Large Language Model Operations)だ。これはDevOpsのように、LLMアプリケーションの開発から運用までを包括するプロセスだが、特にAIエージェントの運用では、LLM特有の不安定な出力をビジネス品質に高めるための制御が重要だ。そこで注目されているのが、プロンプトの管理や、出力の計測や評価を行う「LLMオブザーバビリティ」である。同社のバクラク事業部で機械学習チーム AI・MLOpsテックリードを務める中村弘武氏は、その重要性を「評価なくしてAIエージェントの開発なし」と表現する。
LayerX バクラク事業部 機械学習チーム AI・MLOpsテックリード 中村 弘武氏
評価すべき切り口や、取り扱うデータはドメインによってまちまちだ。特に同社のサービスは、経費精算から契約管理まで、広範なバックオフィス業務をカバーしなければならない。例えば契約管理では、PDFファイルの入力に加えて顧客のプレイブックや社内ルールといったナレッジを扱い、並列で5タスクほどLLMを実行した結果を合体させて最終的なアウトプットを出力する。こうした複雑な構成では、エンジニアが考えた評価手法をどれだけ簡単にセットアップし、素早くプロンプトを改善していけるかがLLMOps成功の鍵を握る。
また、LLMオブザーバビリティでは、AIへの入出力や思考過程を記録するトレースが欠かせない。しかしAIエージェントのマルチモーダル化が進み、音声や画像なども取り扱えるようになった結果、膨大なデータを保存し、高速に読み書きできるデータ基盤の実現も、円滑なLLMOpsを実現するうえで重要なポイントとなった。
こうした背景の下、LLMOpsの基盤として同社が採用したのが、ClickHouseが提供する「Langfuse」だ。採用のきっかけは、AI申請レビュー機能の開発中に、プロンプトの入れ替えを動的に行いたいという要件が生じたことだった。
プロンプトがアプリケーションに直接書き込まれていると、変更のたびに再デプロイが必要になってしまう。そこで外部にプロンプトを置き、毎回そこから取得すれば、デプロイなしにプロンプトだけを入れ替えられる。同社のバクラク事業部 申請・経費精算自動承認開発チームに所属する大森貴通氏は「プロンプトを変えたいときにすぐ変え、戻したいときにすぐ戻せるという機動力が欲しかった」と、当時を振り返る。
LayerX バクラク事業部 申請・経費精算自動承認開発チーム 大森 貴通氏
Langfuseの導入により、顧客の実際の出力結果を見ながら、プロンプトをリアルタイムに調整することが可能となった。Langfuse導入の効果はそれだけではない。トレースとプロンプトが自動的に紐付けられて記録されるので、プロンプトの変更による良し悪しを評価しやすくなった。
また、評価用のデータが大幅に増えたことで、性能評価の改善に大きく貢献した。具体的には、顧客や社内メンバーによる開発中機能のテスト時に、データセットにない未知の書式などのパターンを、LLM as a judge(評価者としてのLLM)によるオンライン評価で事前に検知し、リリース前に修正できるようになった。実運用では、未知のパターンの報告から約2日で修正版を提供できたケースもあるという。さらに、トレースを評価用データセットに加える機能により、従来は評価者からSlackやファイルの受け渡しが必要だった失敗例の収集がエンジニア自身の操作で完結するようになり、コミュニケーションコストも下がった。
「Langfuseにより、AIエンジニア以外の人間もAIの評価がしやすい基盤が整った。弊社はサービスのリリース前に『社内のみんなに触ってもらう』という文化が強いので、その結果のトレースが適切に取れることは、今後の性能評価の改善に役立つ貴重なデータとなる」(中村氏)

