メインコンテンツまでスキップ

埋め込みモデルのクエリ

この記事では、エンべディング タスク用に最適化された基盤モデルのクエリ要求を記述し、それらをモデルサービング エンドポイントに送信する方法について説明します。

この記事の例は、次のいずれかを使用して使用可能になる基盤モデルのクエリに適用されます。

  • Databricksがホストする 基盤モデルAPI と呼ばれる 基盤モデル 。
  • Databricks の外部でホストされている基盤モデル と呼ばれる外部モデル

必要条件

クエリの例

以下は、さまざまな クライアントオプションを使用して、基盤モデルAPIトークン単位の従量課金によって利用可能になったgte-large-enモデルのエンべディング要求です。

OpenAI クライアントを使用するには、 model 入力としてモデルサービングエンドポイント名を指定します。

Python

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
openai_client = w.serving_endpoints.get_open_ai_client()

response = openai_client.embeddings.create(
model="databricks-gte-large-en",
input="what is databricks"
)

ワークスペースの外部で基盤モデルをクエリするには、以下に示すように、OpenAI クライアントを直接使用する必要があります。次の例では、 Databricks API トークンと openai がコンピュートにインストールされていることを前提としています。 また、OpenAI クライアントを Databricks に接続するには、Databricks ワークスペース インスタンスも必要です。

Python

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.embeddings.create(
model="databricks-gte-large-en",
input="what is databricks"
)

以下は、エンベディングモデルで想定される要求形式です。 外部モデルの場合、特定のプロバイダーとエンドポイント構成に有効な追加のパラメーターを含めることができます。 追加のクエリ・パラメーターを参照してください。

Bash

{
"input": [
"embedding text"
]
}

想定される応答形式は次のとおりです。

JSON
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}

サポートされているモデル

サポートされているエンべディングモデル については、 基盤モデル・タイプ を参照してください。

エンべディングが正規化されているかどうかを確認する

モデルによって生成されたエンべディングが正規化されているかどうかを確認するには、次を使用します。

Python

import numpy as np

def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol

追加のリソース