このラボは2つのパートに分かれています。パート1では、カスタマーサービスのシナリオ向けに様々なツールコールを持つDatabricksエージェントを構築・テストします。パート2では、製品に関する質問に答えるよりシンプルなエージェントを作成し、その性能評価に注力します。
以下のノートブックはサーバレスコンピュートで実行してください。
- SQL関数
- カスタマーサービスの返品ワークフローを処理するために重要なデータへアクセスするクエリを作成します。
- これらのSQL関数はノートブックやエージェントから簡単に呼び出せます。
- シンプルなPython関数
- 言語モデルの一般的な制限に対処するPython関数を作成します。
- これを「ツール」として登録し、エージェントが必要に応じて呼び出せるようにします。
- ツールとLLMの組み合わせ
- Databricks AI PlaygroundでSQL/Pythonツールと大規模言語モデル(LLM)を組み合わせます。
- モデル: Claude 3.7 Sonnet
- システムプロンプト: すべての会社方針が満たされるまでツールを呼び出してください。
- 質問例: 当社の方針に基づき、キュー内の最新の返品を受け付けるべきですか?
- エージェントの段階的な推論と最終回答を観察しましょう。
- MLflowトレースの確認
- MLflowでエージェントの実行を確認し、各ツールの呼び出し方法を理解します。
- ベクター検索
- 関連する製品ドキュメントを取得するためのベクター検索インデックスを事前に用意しています。
- このVSインデックスは agents_lab.product.product_docs_index にあります。
- リトリーバー関数の作成
- このベクター検索インデックスを関数でラップし、LLMが製品情報を検索できるようにします。
- 最終回答にも同じLLMを使用します。
- 提供データセットの利用
- サンプル評価データセットを活用し、エージェントが製品の質問に答える能力をテストします。
- (オプション)合成データ生成も試してみましょう。
MLflow.evaluate()の実行- MLflowがエージェントの回答と正解データセットを比較します。
- LLMベースの判定者が各回答をスコア付けし、フィードバックを収集します。
- リトリーバーの改善
- 評価フィードバックに基づき、リトリーバー設定(k=5→k=1)を調整します。
- 再評価の実施
- 新しいMLflowランを開始
- 再度
MLflow.evaluate()を実行し、結果を比較します。 - MLflow評価UIでパフォーマンス向上を確認しましょう
- さらなるツールの活用: API、高度なPython関数、追加のSQLエンドポイントでエージェントを拡張しましょう。
- 本番展開: 継続的インテグレーション/デリバリー(CI/CD)を導入し、MLflowでパフォーマンスを監視、モデルバージョンを管理しましょう。
Databricksでエージェントシステムを構築・評価できたこと、おめでとうございます!