私たちのお客様は、汎用モデルを用いた大規模プロンプトから、ROIを向上させるために必要な品質を達成する専門的なエージェントシステムへと移行し続けています。今年初め、私たちは Mosaic AI Agent Framework と Agent Evaluation をリリースしました。これらは現在、多くの企業で、企業データを活用した複雑な推論や、サポートチケットの作成、メール対応などのタスクを実行するエージェントシステムの構築に利用されています。
本日、Agent Evaluationにおける大幅な強化として、合成データ生成APIを発表します。合成データ生成とは、実世界のデータを模倣した人工的なデータセットを作成することを指しますが、これは「架空の情報」を作ることではありません。私たちのAPIは、顧客独自のデータを活用し、それに基づいて評価セットを生成します。この評価セットは、顧客のユースケースに特化したものであり、ソフトウェアエンジニアリングにおけるテストスイートや、従来の機械学習における検証データのような役割を果たし、エージェントの品質を評価し改善するための手段を提供します。
これにより、評価データの生成に要する数週間から数か月にわたる専門家(SME)によるラベル付け作業を省略できます。すでに多くの顧客がこの機能を活用し、生産投入までの時間を短縮すると同時に、エージェントの品質向上と開発コスト削減を実現しています。
「Mosaic AI Agent Evaluationの合成データ機能により、AIエージェントの応答品質向上プロセスが大幅に加速しました。高品質な合成の質問と回答を事前に生成することで、専門家が評価用データセットを一から作成する時間を最小限に抑え、検証や細かな修正に集中できるようになりました。このアプローチにより、専門家の介入を行う前の段階で、モデルの応答品質を60%向上させることができました。」— Lippertの人工知能部門ディレクター、Chris Nishnick
エージェントの品質を評価し、向上させることは、より良いビジネス成果を実現するために不可欠ですが、多くの組織がエージェントを測定・改善するための高品質な評価データセットを作成する際のボトルネックに苦労しています。ラベル付けに時間がかかるプロセスや専門家(SME)の不足、多様で有意義な質問を生成する難しさが、進捗を遅らせ、イノベーションを妨げる原因となっています。
Agent Evaluationの合成データ生成APIは、これらの課題を解決します。このAPIを利用すれば、開発者は独自のデータに基づいて高品質な評価データセットを数分で作成でき、SMEの入力を待つ必要なくエージェントの品質を評価し、向上させることが可能になります。評価データセットは、従来の機械学習における検証データやソフトウェアエンジニアリングにおけるテストスイートに似た役割を果たします。
この合成データ生成APIは、Agent Evaluation、MLflow、Mosaic AI、およびDatabricks Data Intelligence Platform全体と緊密に統合されており、エージェントの応答品質を迅速に評価し改善するためにデータを活用できます。利用を開始するには、クイックスタートノートブックをご覧ください。
このAPIはシンプルに利用できるよう設計されています。以下の入力を使用してAPIを呼び出します:
この入力に基づいて、APIはあなたのデータを元にAgent Evaluationのスキーマで <質問, 合成回答, ソースドキュメント>
を生成します。次に、この生成された評価セットを mlflow.evaluate(...)
に渡すことで、Agent Evaluationの独自のLLM判定機能がエージェントの品質を評価し、品質問題の根本原因を特定します。これにより、迅速な問題修正が可能になります。
品質分析の結果の確認
MLflow Evaluation UI を使用して品質分析の結果を確認し、エージェントの品質を向上させるための変更を加えます。その後、mlflow.evaluate(...)
を再実行することで、改善が正しく機能したかを検証できます。
SMEによるレビュー(オプション)
また、生成された合成データをSME(専門家)と共有し、質問や回答の正確性をレビューすることも可能です。重要なのは、生成された合成回答は質問に答えるために必要な事実のセットであり、LLMによって書かれた応答ではない点です。このアプローチにより、SMEがこれらの事実をレビュー・編集する時間が、完全な生成応答を確認するよりも大幅に短縮されます。
さらに詳しく知りたい方は、以下の手順でエージェントの品質を改善する方法を示したサンプルノートブックを参照してください:
これで、エージェントの性能向上プロセスを迅速かつ効率的に実現できます!
エージェントの評価を生成するために、開発者は generate_evals_df
メソッドを呼び出して、ドキュメントから代表的な評価データセットを作成できます。
from databricks.agents.evals import generate_evals_df
evals = generate_evals_df(
docs, # Delta Table or Pandas / Spark Dataframe with "content" and "doc_uri" columns.
num_evals=10,
agent_description="...", # Optional, describe the task of the Agent
question_guidelines = "..." # Optional, control style and type of questions.
)
results = mlflow.evaluate(
model=my_agent, # Agent's code, logged as an MLflow model
data=evals, # Synthetic evaluation data from the API
model_type="databricks-agent" # Activate Agent Evaluation's LLM judges
)
キャプション: 合成データ生成APIの使用例。
お客様との会話を通じて、開発者は単なるドキュメントのリストを提供するだけでなく、質問生成プロセスをより細かく制御したいと考えていることがわかりました。このニーズに応えるため、APIには以下のオプション機能を追加しました。これにより、特定のユースケースに合わせた高品質な質問を作成できるようになります。
agent_description = """
The Agent is a RAG chatbot that answers questions about Databricks.
"""
question_guidelines="""
# User personas
- A developer who is new to the Databricks platform
- An experienced, highly technical Data Scientist or Data Engineer
# Example questions
- what API lets me parallelize operations over rows of a delta table?
- Which cluster settings will give me the best performance when using Spark?
# Additional Guidelines
- Questions should be succinct, and human-like
"""
キャプション: 例 agent_description
と question_guidelines
Databricks RAGチャットボットのための。
APIの出力を説明するために、このブログ記事を入力ドキュメントとしてAPIに渡し、以下の質問ガイドラインを指定しました:
例:
合成データ生成APIの出力は、Agent Evaluationスキーマに従ったテーブル形式です。このデータセットの各行には1つのテストケースが含まれており、Agent Evaluationの回答正確性判定機能によって、エージェントが質問に対して期待される事実をすべて含む回答を生成できるかどうかが評価されます。
フィールド名 |
説明 |
このブログ投稿からの例 |
request |
|
合成データAPIで質問生成をどのようにカスタマイズできますか? |
|
リクエストとexpected_factsが合成されたソースドキュメントの具体的な文章 |
顧客との会話を通じて、開発者は単にドキュメントのリストを提供するだけでなく、質問生成プロセスに対するより大きなコントロールを求めていることがわかりました。このニーズに対応するため、私たちのAPIには、開発者が特定のユースケースに合わせた高品質な質問を作成することを可能にするオプション機能が含まれています。
|
|
expected_retrieved_contextから合成された、正しいエージェントの回答が含むべき事実のリスト |
- |
|
このテストケースの出典となったソースドキュメントの一意のID |
https://blog.databricks.com/blog/streamline-ai-agent-evaluation-with-new-synthetic-data-capabilities |
キャプション: 合成評価生成APIの出力フィールドと、このブログの内容に基づいてAPIが生成したサンプル行。
以下に、上記のコードによって生成された他のいくつかの requests
と expected_facts
のサンプルを含めています。
|
|
Mosaic AIエージェント評価の合成データ機能を使用することで、顧客はどのような利益を得ることができますか? |
- 生産までの時間を短縮 - エージェントの品質を向上 - 開発コストの削減 |
合成データ生成APIを使用するために必要な入力は何ですか? |
- SparkまたはPandasのデータフレームが必要です - データフレームにはドキュメントや企業の知識が含まれるべきです - 生成する質問の数を指定する必要があります。 |
伝統的な機械学習とソフトウェアエンジニアリングにおける評価セットとは何ですか? |
- 評価セットは、伝統的な機械学習における検証セットと比較されます - 評価セットは、ソフトウェアエンジニアリングのテストスイートと比較されます。 |
キャプション: このブログの内容に基づいてAPIが生成した追加行のサンプル。
生成された評価データセットは、mlflow.evaluate(..., model_type="databricks-agent")
と新しいMLflow Evaluation UIで直接利用できます。簡単に言えば、開発者は以下のプロセスを迅速に実行できます:
これにより、品質改善プロセスを効率的に進めることが可能です。
ビジネス要件である品質、コスト、遅延を満たすエージェントが完成したら、Agent Framework
の agents.deploy(...)
を使ったわずか1行のコードで、すぐに本番環境向けのスケーラブルなREST APIとWebベースのチャットUIをデプロイできます。
現在、評価データセットの管理やSME(専門家)からのフィードバック収集を支援するための新機能を複数開発中です。
SMEレビューUIは、新たに追加される機能で、専門家が合成的に生成された評価データの正確性を迅速に確認し、必要に応じて追加の質問を加えられるようにします。このUIは、ビジネスエキスパートが効率的にレビューを行えるよう設計されており、本来の業務から離れる時間を最小限に抑えることを目的としています。
マネージド評価データセットは、評価データのライフサイクル管理を支援するために設計されたサービスです。このサービスでは、バージョン管理されたDeltaテーブルを提供し、開発者やSMEが評価記録のバージョン履歴(質問、グラウンドトゥルース、タグなどのメタデータ)を追跡できるようになります。
具体的には、以下のような変更が管理可能です:
一部の顧客には、これらの機能のプレビュー版へのアクセスがすでに提供されています。この機能やその他のAgent EvaluationおよびAgent Frameworkのプレビュー版に登録するには、アカウントチームに相談するか、このフォームに記入してください。