Beágyazási modell lekérdezése

Ebből a cikkből megtudhatja, hogyan írhat lekérdezési kéréseket olyan alapmodellekhez, amelyek beágyazási feladatokhoz vannak optimalizálva, és amelyeket a Unity AI Gateway szolgál ki.

A cikkben szereplő példák az alapmodellek lekérdezésére vonatkoznak, amelyek a következők használatával érhetők el:

Követelmények

Lekérdezési példák

Megjegyzés:

Az alábbi példák a Unity AI Gatewayen és a modellszolgáltatásokon alapulnak. Ha modellszolgáltatások helyett végpontokat kiszolgáló modellt használ, cserélje le a modellszolgáltatás nevét egy végpontnévre. A rendelkezésre álló alapmodellek, valamint azok modellszolgáltatásainak és végpontneveinek listáját a Foundation Model API-kban elérhető Databricks által üzemeltetett alapmodellek között találja.

Tip

Genie Code (ügynöki módban) meg tudja tenni ezt Ön helyett. Próbálja ki ezt a példaüzenetet:

Show query examples that send embedding requests to the databricks-gte-large-en model using the DatabricksOpenAI helper, the plain OpenAI client, and a curl REST API call.

Az alábbiakban egy beágyazási kérést küldünk az gte-large-en Alapmodell API-k által jogkivonatonkénti fizetéssel elérhetővé tett modellhez a különböző ügyfélbeállítások használatával.

OpenAI-ügyfél

Az OpenAI ügyfél használatához adja meg a modell kiszolgáló végpontjának nevét bemenetként model.

from databricks_openai import DatabricksOpenAI

client = DatabricksOpenAI()

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

A munkaterületen kívüli alapmodellek lekérdezéséhez közvetlenül az OpenAI-ügyfelet kell használnia az alábbiak szerint. Az alábbi példa feltételezi, hogy rendelkezik egy Databricks API-tokennel, és openai telepítve van a számítógépére. Az OpenAI-ügyfelet a Databrickshez való csatlakoztatásához a Databricks-munkaterületpéldányra is szüksége van.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/ai-gateway/mlflow/v1"
)

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

SQL

Fontos

Az alábbi példa a beépített SQL-függvényt használja, ai_query. Ez a függvény nyilvános előzetes verzióban érhető el , és a definíció változhat.


SELECT ai_query(
    "system.ai.gte-large-en",
    "Can you explain AI in ten words?"
  )

REST API

Fontos

Az alábbi példa REST API-paramétereket használ az alapmodelleket vagy külső modelleket kiszolgáló végpontok lekérdezéséhez. Ezek a paraméterek nyilvános előzetes verzióban érhetők el, és a definíció változhat. Lásd: POST /serving-endpoints/{name}/invocations.


curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d  '{
  "model": "system.ai.gte-large-en",
  "input": "Embed this sentence!"
}' \
https://<workspace_host>.databricks.com/ai-gateway/mlflow/v1/embeddings

MLflow Deployments SDK

Fontos

Az alábbi példa az predict()MLflow Deployments SDK API-t használja.


import mlflow.deployments

export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

client = mlflow.deployments.get_deploy_client("databricks")

embeddings_response = client.predict(
    endpoint="system.ai.gte-large-en",
    inputs={
        "input": "Here is some text to embed"
    }
)

Databricks Python SDK


from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="system.ai.gte-large-en",
    input="Embed this sentence!"
)
print(response.data[0].embedding)

LangChain

Ha a Databricks Foundation Model APIs egyik modelljét beágyazási modellként szeretné használni a LangChainben, importálja a(z) DatabricksEmbeddings osztályt, és adja meg a endpoint paramétert az alábbiak szerint:

%pip install databricks-langchain
from databricks_langchain import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(endpoint="system.ai.gte-large-en")
embeddings.embed_query("Can you explain AI in ten words?")

A következő a beágyazási modell várt kérésformátuma. Külső modellek esetén további paramétereket is megadhat, amelyek érvényesek egy adott szolgáltatóra és végpontkonfigurációra. Lásd: További lekérdezési paraméterek.


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

A várt válaszformátum a következő:

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

Támogatott modellek

A támogatott beágyazási modellekhez tekintse meg az Alapmodell-típusokat .

Ellenőrizze, hogy a beágyazások normalizáltak-e

Az alábbiakban ellenőrizheti, hogy a modell által létrehozott beágyazások normalizálva vannak-e.


  import numpy as np

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

További erőforrások