DatabricksでLLMのクエリを使い始める
この記事では、基盤モデルAPIを使用してDatabricksでLLMを提供およびクエリする方法について説明します。
Databricks上でLLMモデルの提供やクエリを開始する最も簡単な方法は、基盤モデルAPIをトークン単位の従量課金で使用することです。APIは、DatabricksワークスペースのサービングUIで自動的に利用可能なトークン単位の従量課金のエンドポイントから、一般的な基盤モデルへのアクセスを提供します。「トークン単位の従量課金でサポートされるモデル」を参照してください。
また、 AI Playgroundを使用してトークン単位の従量課金モデルをテストしてチャットすることもできます。 「LLM とのチャット」および「AI Playground を使用した GenAI アプリのプロトタイプ作成」を参照してください。
本番運用ワークロード、特にファインチューニングされたモデルやパフォーマンス保証が必要なワークロードの場合、Databricksではプロビジョン済みスループットエンドポイントで基盤モデルAPIを使用することをお勧めします。
要件
基盤モデルAPIのトークン単位の従量課金がサポートされているリージョンの Databricksワークスペース。
OpenAIクライアントを用いて、Mosaic AI Model Servingエンドポイントにクエリー、アクセスするためのDatabricksパーソナルアクセストークン。
重要
運用シナリオにおけるセキュリティのベストプラクティスとして、Databricksでは本番環境での認証にマシン間OAuthトークンを使用することを推奨しています。
テストと開発の場合、Databricksでは、ワークスペースユーザーではなく、サービスプリンシパルに属する個人用アクセストークンを使用することをお勧めします。サービスプリンシパルのトークンを作成するには、「サービスプリンシパルのトークンの管理」を参照してください。
基盤モデルAPIの使用を開始する
次の例は、Databricks ノートブックで実行することを目的としています。 このコード例では、仮想単位の従量課金エンドポイント databricks-meta-llama-3-1-405b-instruct
で提供されるMeta Llama 3.1 405B Instructモデルをクエリします。
この例では、OpenAIクライアントを使用して、クエリー対象のモデルをホストするモデルサービング エンドポイントの名前をmodel
フィールドに入力することでモデルをクエリーします。個人用アクセストークンを使用してDATABRICKS_TOKEN
とDatabricksワークスペースのインスタンスを入力し、OpenAI クライアントをDatabricksに接続します。
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get("DATABRICKS_TOKEN")
client = OpenAI(
api_key=DATABRICKS_TOKEN, # your personal access token
base_url='https://<workspace_id>.databricks.com/serving-endpoints', # your Databricks workspace instance
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "You are an AI assistant",
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
model="databricks-meta-llama-3-1-405b-instruct",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
注:
メッセージ、 ImportError: cannot import name 'OpenAI' from 'openai'
が表示された場合は、 !pip install -U openai
を使用して openai
のバージョンをアップグレードします。 パッケージをインストールしたら、 dbutils.library.restartPython()
を実行します。
期待される出力:
{
"id": "xxxxxxxxxxxxx",
"object": "chat.completion",
"created": "xxxxxxxxx",
"model": "databricks-meta-llama-3-1-405b-instruct",
"choices": [
{
"index": 0,
"message":
{
"role": "assistant",
"content": "A Mixture of Experts (MoE) model is a machine learning technique that combines the predictions of multiple expert models to improve overall performance. Each expert model specializes in a specific subset of the data, and the MoE model uses a gating network to determine which expert to use for a given input."
},
"finish_reason": "stop"
}
],
"usage":
{
"prompt_tokens": 123,
"completion_tokens": 23,
"total_tokens": 146
}
}
次のステップ
AI Playgroundを使用して、使い慣れたチャットインターフェイスでさまざまなモデルを試してみてください。
外部モデルを使用して、Databricksの外部でホストされているモデルにアクセスします。
プロビジョニングされたスループットエンドポイントを使用して微調整されたモデルをデプロイする方法について説明します。