Databricks の Mosaic AI Playground に Agent Evaluation が統合されたみたいなので動かしてみる

# はじめに

株式会社NTTデータ [デジタルサクセスソリューション事業部](https://enterprise-aiiot.nttdata.com/) で Databricks や AWS を推進している [nttd-saitouyun](https://qiita.com/nttd-saitouyun) です。

これまで、Databricks の Mosaic AI Playground や MLflow によるLLMの評価などを記事として複数書いてきました。

https://qiita.com/nttd-saitouyun/items/11573744c81ff2ba16de#%E7%94%9F%E6%88%90ai%E3%81%A8llm

いつも通り、Playground を使っていたところ、UIがアップデートされて機能が追加されているようだったので記事にしてみます。9/30時点でまだ[リリースノート](https://docs.databricks.com/ja/release-notes/product/index.html)には載っていないようです。


# アップデートについて
いつも通り、Playground から LLM と会話していました。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/258c4120-60da-4098-8991-4c11ba7ff1dd.png)

いつも通り回答が返ってきたと思いきや・・・・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/8ceebab9-d44b-9b3e-69fe-48cc710d4bb9.png)

なんと、機能が追加されていました！




# AI Judge
下側の赤枠から見ていきます。表示項目を開いてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/2a5f7ac9-31d1-c1d0-ac81-3bef0b90ab1d.png)

Mosaic Agent Evaluation の LLM Judge 機能が統合されているようです。右下から無効にすることもできそうです。

QAに対する安全性と質問に対する回答の関連性を評価してくれるようです。




# Notebook へ Export
上側の赤枠を次に見てみます。Notebookアイコンをクリックしてみると、、、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/096f2f19-cc77-b2af-f0d8-3a833867b3b7.png)

クリックしたタイミングで、ノートブックが生成されました。

中身を見てみると Agent Evaluation を実行するノートブックのようです。このノートブックを元により高度な評価や MLflowエクスペリメントとして評価結果を記録することができそうです。

## 評価用ノートブックの内容
それでは、ノートブックの内容を見ていきます。コードの実行は「サーバレス」コンピュートで行います。

### ライブラリのインストール
Agent Evaluation に必要なライブラリをインストールしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/67b479dc-f762-bebb-64f2-811445fdac17.png)

日本語訳も載せておきます。
>これは、エージェント評価を使用してエージェントの品質を測定したプレイグラウンドセッションのノートブックバージョンです。以下が含まれています：
あなたが入力したリクエスト それらのリクエストに対してエージェント評価を実行するために使用されたコード このノートブックを使用して、評価データセットのリクエストを編集したり、エージェントの異なるバージョンで評価を実行したりすることができます。その際、mlflowを活用して計算された品質指標を追跡します。

### エージェントの定義
エージェントの定義を行なっています。エージェントとして動かす LLM は、Playground で指定したLLM（のエンドポイント）と同様のものが指定されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/b73065e6-554c-54c0-26c1-cb01f3dbbf6e.png)

日本語訳は以下の通りです。
>エージェントエンドポイント
以下で、endpointはプレイグラウンドで使用したモデルサービングエンドポイントです。agentは、レスポンスを取得するためにエンドポイントを呼び出す関数です。
>
>注意：これらのリクエストを別のエージェントに対して実行したい場合、agentはサービングエンドポイント（"endpoints:/..."）、UCモデル（"models:/..."）、MLflowに登録されたモデル（"runs:/..."）、または単にエージェントを呼び出す関数であることができます。これらのオプションについての詳細は、エージェント評価のドキュメントで確認できます。

### リクエストの仕方

こちらはコードはありません。説明のみです。リクエストの仕方は、シングルターンとマルチターンの２つあるようです。今回はシンプルな「シングルターン」で動かして見ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/f2932d1f-231a-918e-bf1d-7bf2d1b0d84e.png)

日本語訳は以下の通りです。
>リクエスト
エージェント評価は以下のいずれかの方法で使用できます：
>
>1. 会話の各ターンを個別に評価する
>2. 複数ターンの会話の最終ターンを評価する
>
>あなたのリクエストを使用して、以下で両方のオプションを示します。単一ターンと複数ターンの質問を混在させた評価データセットを作成することも可能です。リクエストのスキーマについては別途参照してください。
>
>注意：エージェント評価では、エージェントの回答を正解と比較することができます。これにより、エージェントの回答の正確性や関連性をより詳細に分析することが可能になります。
正解を提供しない場合でも、エージェント評価は依然として有用です。この場合、エージェントの応答の一貫性、明確さ、適切さなどの側面を評価することができます。
評価データセットを作成する際は、テストしたい様々なシナリオや質問タイプを含めることが重要です。これにより、エージェントの性能を幅広い状況で測定し、改善が必要な領域を特定することができます。
また、評価結果を定期的に確認し、エージェントの性能の変化や改善を追跡することをお勧めします。これは、エージェントの継続的な開発と最適化に役立ちます。


### シングルターン

Playground で質問した内容がリクエストとして記載されています。オプションで期待結果を追加することもできます。また、複数の質問をすることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/45dba2ea-6ce0-55c3-b900-c468e50b30ff.png)

日本語訳は以下の通りです。
>単一ターン
>以下のスニペットは、あなたのリクエストを単一ターンの質問を含む評価データセットに変換します。つまり、各質問は互いに独立してエージェントに送信されます。

「Databricks とは？」期待結果として、[マニュアル](https://docs.databricks.com/ja/introduction/index.html)の以下の記載を期待結果としておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/58dbfc37-60e8-b992-5b52-0a6f5f097a09.png)

最終的に以下のリクエストを定義しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/59285095-f282-8044-a865-a253777a45da.png)

### Agent Evaluation の実行

ここまでに設定してきた内容で評価を実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/bbe9f641-2ab8-be29-415e-7b67f2e34175.png)

問題なくコードが実行されました。

### マルチターン
シングルターンの下に以下のコードがありますが、リクエストの仕方が違うだけであるため割愛します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/776ceb43-1f4f-e23b-c079-37198e59315e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/cab99f44-d11f-7670-9095-93bafb1ecb28.png)

<br>
<br>

これで、評価用のノートブックは以上です。


## Agent Evaluation の確認

Agent Evaluation の実行はMLflowエクスペリメントとして記録されています。ノートブックの出力にもリンクがあるため直接結果に飛ぶこともできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/b5a54095-9ce2-c217-d4a2-8c7e48441fd5.png)

### 評価結果の確認
LLM Judge によって各回答が「合格」であると評価されていることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/4e96d868-690f-d046-8aa5-6436fa8337dd.png)

「Request」のリンクを開くとより詳細な内容を見ることができます。

### 評価結果の比較

各質問と回答、その評価結果、根拠を一覧で見ることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/0e198816-fbbe-c69c-263d-25c3d0aa3866.png)



# おわりに
これまで記事で書いてきたことが、簡単に実現できるようになって驚きました！

この機能により、**LLM の精度評価やプロンプトエンジニアリングが捗るのではないでしょうか**。また、QAのセットの部分だけ修正すればいいので**コーディング不要な点も響く人が多そうです**。

<br>

生成AIの活用は**QAとその「評価」までセットで行う必要がある**ので、このような機能はありがたいですし、LLMの活用基盤として「あるべき姿」ではないかと思います！

<br>


# 仲間募集
NTTデータ デザイン＆テクノロジーコンサルティング事業本部 では、以下の職種を募集しています。

<details><summary> 1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア) </summary>
クラウド／プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。

https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer

</details>

<details><summary> 2. データサイエンス領域（データサイエンティスト／データアナリスト） </summary>
データ活用／情報処理／AI／BI／統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX／デジタルサクセスを推進します。

https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist

</details>

<details><summary> 3.お客様のAI活用の成功を推進するAIサクセスマネージャー </summary>
DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています。

https://nttdata.jposting.net/u/job.phtml?job_code=804

</details>

<details><summary> 4.DX／デジタルサクセスを推進するデータサイエンティスト《管理職/管理職候補》 </summary>
データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。

https://nttdata.jposting.net/u/job.phtml?job_code=898

</details>

# ソリューション紹介
<details><summary> Trusted Data Foundationについて </summary>
～データ資産を分析活用するための環境をオールインワンで提供するソリューション～

https://enterprise-aiiot.nttdata.com/tdf/
最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ（Datalake+DWH+AI/BI）を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。

</details>

<details><summary> NTTデータとDatabricksについて </summary>
NTTデータは、お客様企業のデジタル変革・DXの成功に向けて、「databricks」のソリューションの提供に加え、情報活用戦略の立案から、AI技術の活用も含めたアナリティクス、分析基盤構築・運用、分析業務のアウトソースまで、ワンストップの支援を提供いたします。

 https://enterprise-aiiot.nttdata.com/service/databricks

</details>

<details><summary> TDF-AM（Trusted Data Foundation - Analytics Managed Service）について </summary>
～データ活用基盤の段階的な拡張支援（Quick Start) と保守運用のマネジメント（Analytics Managed）をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス～

https://enterprise-aiiot.nttdata.com/service/tdf/tdf_am
TDF-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。

</details>

</details>

<details><summary> NTTデータとSnowflakeについて </summary>
NTTデータでは、Snowflake Inc.とソリューションパートナー契約を締結し、クラウド・データプラットフォーム「Snowflake」の導入・構築、および活用支援を開始しています。
NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Snowflakeは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。

https://enterprise-aiiot.nttdata.com/service/snowflake

</details>

</details>

<details><summary> NTTデータとInformaticaについて </summary>
データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。

https://enterprise-aiiot.nttdata.com/service/informatica

</details>

</details>

<details><summary> NTTデータとTableauについて </summary>
ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。

これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。

https://enterprise-aiiot.nttdata.com/service/tableau

</details>

</details>

<details><summary> NTTデータとAlteryxについて </summary>
Alteryxは、業務ユーザーからIT部門まで誰でも使えるセルフサービス分析プラットフォームです。
Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。

導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。

https://enterprise-aiiot.nttdata.com/service/alteryx

</details>

</details>

<details><summary> NTTデータとDataRobotについて </summary>
DataRobotは、包括的なAIライフサイクルプラットフォームです。
NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。

https://enterprise-aiiot.nttdata.com/service/datarobot

</details>