チャット モデルのクエリ
この記事では、チャット タスク用に最適化された基盤モデルのクエリ要求を作成し、モデルサービング エンドポイントに送信する方法について説明します。
この記事の例は、次のいずれかを使用して使用可能になる基盤モデルのクエリに適用されます。
必要条件
- 要件を参照してください。
- 選択したクエリ クライアント オプションに基づいて、適切なパッケージをクラスターにインストールします。
クエリの例
このセクションの例では、さまざまなクライアントオプションを使用して 、基盤APIのトークン単位の従量課金エンドポイントdatabricks-meta-llama-3-3-70b-instruct
で利用できる Meta Llama 3.3 70B Instructモデルをクエリする方法を示します。
バッチ推論の例については、 Databricks AI Functionsを使用してデータにAIを適用する」を参照してください。
- OpenAI client
- SQL
- REST API
- MLflow Deployments SDK
- Databricks Python SDK
- LangChain
OpenAI クライアントを使用するには、 model
入力としてモデルサービングエンドポイント名を指定します。
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
openai_client = w.serving_endpoints.get_open_ai_client()
response = openai_client.chat.completions.create(
model="databricks-meta-llama-3-3-70b-instruct",
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_tokens=256
)
ワークスペースの外部で基盤モデルをクエリするには、OpenAI クライアントを直接使用する必要があります。また、OpenAI クライアントを Databricks に接続するには、Databricks ワークスペース インスタンスも必要です。次の例では、 Databricks API トークンと openai
がコンピュートにインストールされていることを前提としています。
import os
import openai
from openai import OpenAI
client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)
response = client.chat.completions.create(
model="databricks-meta-llama-3-3-70b-instruct",
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_tokens=256
)
次の例では、組み込み SQL 関数 ai_query を使用しています。この機能は パブリック プレビュー 段階であり、定義は変更される可能性があります。
SELECT ai_query(
"databricks-meta-llama-3-3-70b-instruct",
"Can you explain AI in ten words?"
)
次の例では REST API 基盤モデルを提供する提供エンドポイントをクエリするために パラメーターを使用します。 これらのパラメーターは パブリック プレビュー 段階であり、定義は変更される可能性があります。POST /serving-endpoints/{name}/invocationsを参照してください。
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": " What is a mixture of experts model?"
}
]
}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-meta-llama-3-3-70b-instruct/invocations \
次の例では、MLflow Deployments SDK の predict()
API を使用しています。
import mlflow.deployments
# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"
client = mlflow.deployments.get_deploy_client("databricks")
chat_response = client.predict(
endpoint="databricks-meta-llama-3-3-70b-instruct",
inputs={
"messages": [
{
"role": "user",
"content": "Hello!"
},
{
"role": "assistant",
"content": "Hello! How can I assist you today?"
},
{
"role": "user",
"content": "What is a mixture of experts model??"
}
],
"temperature": 0.1,
"max_tokens": 20
}
)
このコードは、ワークスペース内のノートブックで実行する必要があります。Databricks ノートブックから Databricks SDK for Python を使用するを参照してください。
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="databricks-meta-llama-3-3-70b-instruct",
messages=[
ChatMessage(
role=ChatMessageRole.SYSTEM, content="You are a helpful assistant."
),
ChatMessage(
role=ChatMessageRole.USER, content="What is a mixture of experts model?"
),
],
max_tokens=128,
)
print(f"RESPONSE:\n{response.choices[0].message.content}")
LangChain を使用して基盤モデルのエンドポイントをクエリするには、ChatDatabricks ChatModel クラスを使用し、endpoint
を指定できます。
%pip install databricks-langchain
from langchain_core.messages import HumanMessage, SystemMessage
from databricks_langchain import ChatDatabricks
messages = [
SystemMessage(content="You're a helpful assistant"),
HumanMessage(content="What is a mixture of experts model?"),
]
llm = ChatDatabricks(model="databricks-meta-llama-3-3-70b-instruct")
llm.invoke(messages)
例として、REST API を使用する場合のチャットモデルの想定されるリクエスト形式を次に示します。外部モデルの場合、特定のプロバイダーとエンドポイント構成に有効な追加のパラメーターを含めることができます。追加のクエリ・パラメーターを参照してください。
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
以下は、REST API を使用して行われたリクエストに対して想定されるレスポンス形式です。
{
"model": "databricks-meta-llama-3-3-70b-instruct",
"choices": [
{
"message": {},
"index": 0,
"finish_reason": null
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 74,
"total_tokens": 81
},
"object": "chat.completion",
"id": null,
"created": 1698824353
}
サポートされているモデル
サポートされているチャットモデル については、基盤モデルタイプ を参照してください。