1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricks Mosaic AI Agent Framework & EvaluationがAWS東京リージョンにやってきました!

Posted at

@isanakamishiro2 さんはいつも週末にも投稿しているなーと読んでいたところ

加えて、いつの間にかAWS東京リージョンにMosaic AI Agent Framework & Evaluationが来ていました!
公式Docに記載されているので間違いないはず。

な、なんだってー!!!

確認します。

Screenshot 2025-03-30 at 17.35.36.png

本当だ。

Screenshot 2025-03-30 at 17.30.38.png

AI Playgroundにもエクスポートボタンが。なんのこっちゃと思われるかもしれませんが、このボタンがあることで、AI Playgroundで検証したエージェントをそのまま本番運用まで持っていくことができるのこのボタンなのです。詳しくはこちら

Mosaic AI Agent Framework & Evaluationとは

日本語で言えば、Mosaic AIエージェントフレームワークおよび評価となりますが、個人的には英語表記が好きです。

RAGを含む生成AIエージェントシステムの開発、運用をシンプルにしてくれるフレームワークです。エージェントシステムの開発には様々な要素が関わるので、このフレームワークがカバーする範囲も以下のように広範です。

  • エージェントのプロとタイピングと作成
  • エージェントのトレース
  • エージェントのサービング
  • エージェントの評価
  • エージェントの改善

動かしてみる

こちらを少し変えて動かします。

Mosaic AI Vector Searchのベクトル検索インデックスを作成しておきます。

Screenshot 2025-03-30 at 17.51.51.png

以前はコメントアウトしていた部分を設定します。

# TODO: ベクトル検索インデックスを追加
VECTOR_SEARCH_TOOLS.append(
     VectorSearchRetrieverTool(
         index_name="takaakiyayoi_catalog.vector_seach.vs_qiita"
     )
)

動作確認

ベクトルストアを検索するような質問をします。

AGENT.predict({"messages": [{"role": "user", "content": "DatabricksとJupyter notebookの違いをQiitaの記事から教えてください"}]})

ベクトルストアを検索して回答を返してくれてます!しかも、検索結果もわかりやすく確認できるようになってる。

Screenshot 2025-03-30 at 18.09.25.png

エージェントの評価

以降のステップを進めていくと、評価用データセットを用いたエージェントの評価も行えます。

import pandas as pd

eval_examples = [
    {
        "request": {"messages": [{"role": "user", "content": "LLMエージェントとは何ですか?"}]},
        "expected_response": None,
    }
]

eval_dataset = pd.DataFrame(eval_examples)
display(eval_dataset)
import mlflow

with mlflow.start_run(run_id=logged_agent_info.run_id):
    eval_results = mlflow.evaluate(
        f"runs:/{logged_agent_info.run_id}/agent",
        data=eval_dataset,  # 評価データセット
        model_type="databricks-agent",  # Mosaic AIエージェント評価を有効にする
    )

# MLflow UIで評価結果を確認するか、以下でアクセス:
display(eval_results.tables["eval_results"])

以下の結果を見ると、エージェント出現前の記事しか検索されていないので結果としてはいけてないということがわかります。このように評価のステップを含めることで、エージェント改善の糸口を見つけることができます。しかし、この辺のUIも前見た時から改善されてますね。

Screenshot 2025-03-30 at 18.11.45.png
Screenshot 2025-03-30 at 18.12.33.png

エージェントの登録

ここまで開発したエージェントは非常に大切なものです。Unity Catalogが提供するモデルレジストリを活用することで、エージェントのバージョン管理、共有、モデルサービングエンドポイントへのデプロイが可能となります。

mlflow.set_registry_uri("databricks-uc")

# TODO: UCモデルのカタログ、スキーマ、およびモデル名を定義する
catalog = "takaakiyayoi_catalog"
schema = "vector_seach"
model_name = "openai_responses_agent"
UC_MODEL_NAME = f"{catalog}.{schema}.{model_name}"

# モデルをUCに登録する
uc_registered_model_info = mlflow.register_model(model_uri=logged_agent_info.model_uri, name=UC_MODEL_NAME)

Screenshot 2025-03-30 at 18.16.36.png

エージェントのデプロイ

エージェントはユーザーが使ってなんぼです。モデルサービングエンドポイントにエージェントをデプロイすることで、REST API経由でさまざまなインタフェースから利用できるようになります。

以下を実行する際には、ベクトル検索インデックスやエンベディングモデルのサービングエンドポイントのアクセス権を設定するようにしてください。

from databricks import agents

agents.deploy(
    UC_MODEL_NAME,
    uc_registered_model_info.version,
    tags={"endpointSource": "docs"},
    environment_vars={
        "OPENAI_API_KEY": f"{{{{secrets/{secret_scope_name}/{secret_key_name}}}}}"
    },
)

これで、REST API経由でエージェントにアクセスできるようになります。

Screenshot 2025-03-30 at 19.28.01.png

AI Playgroundでも動作確認できます。

Screenshot 2025-03-30 at 19.34.06.png

そして、これらのデータやエージェントの関係性はリネージとして管理されます。

Screenshot 2025-03-30 at 18.36.53.png

エージェント開発に活用ください!

注意
サービングしたエージェントは、ベクトルストアの検索の際にエラーが起きて期待した通りに動作しなかったので後日動作確認します。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?