
AIツール個人開発2024-05
Langfuseで評価データセット自動生成
Langfuse評価データセット
## Langfuse実行ログから評価データセットを自動生成
### プロジェクト概要
Langfuseで評価データセット自動生成は、本番環境で収集されたLLMの実行ログを活用して、評価用データセットを自動的に作成するツールです。実際のユーザー入力と期待される出力のペアを効率的に収集し、LLMの評価・改善に活用します。
### 背景と課題
LLMアプリケーションの品質管理には、評価データセットが不可欠ですが、以下の課題がありました。
**データセット作成の工数**:評価用のインプット・アウトプットペアを手動で作成するには、膨大な時間と労力が必要でした。
**本番との乖離**:合成データや想定シナリオで作成したデータセットは、実際のユーザー利用パターンと乖離していることが多くありました。
**継続的な更新**:ユーザーの利用パターンは変化するため、データセットも定期的に更新する必要がありますが、手動では困難でした。
### ソリューションの詳細
**1. 自動サンプリング**
Langfuseのトレースログから、評価に適したサンプルを自動抽出します。多様性を確保するために、入力パターン、出力カテゴリ、ユーザーセグメントなどで層化サンプリングを行います。
**2. 期待出力の自動判定**
ユーザーのフィードバック(いいね/悪いね、修正操作、再試行など)を分析し、どの出力が「良い回答」だったかを自動判定します。明示的なフィードバックがない場合も、行動データから推定します。
**3. アノテーション支援**
自動判定で確信度が低いサンプルには、人間によるレビューを依頼します。効率的なアノテーションUIを提供し、最小限の労力で高品質なデータセットを構築します。
**4. 難易度・カテゴリ分類**
各サンプルの難易度(LLMが正解しやすいか)やカテゴリを自動分類します。評価時に「難しいケースの正答率」「特定カテゴリの品質」など、詳細な分析が可能になります。
**5. バージョン管理・差分分析**
データセットのバージョン管理機能により、時間経過による変化を追跡できます。「新しいユーザーパターンが増えている」「特定カテゴリの難易度が上がっている」といった傾向を把握できます。
### 技術的特徴
プライバシーに配慮し、個人情報を含むサンプルは自動検出・除外または匿名化処理を行います。GDPR等のデータ保護規制に準拠した形でデータセットを構築できます。
生成されたデータセットは、Langfuse、Weights & Biases、MLflowなど主要なMLOpsツールと連携可能です。CI/CDパイプラインに組み込んで、デプロイ前の自動評価に活用することもできます。
### 導入効果
導入チームでは、評価データセットの構築時間が1ヶ月から1週間に短縮されました。本番データに基づくデータセットにより、評価の信頼性が向上し、リリース後の品質問題が50%減少しています。継続的な評価サイクルにより、LLMアプリの品質が安定的に向上しています。