Megosztás a következőn keresztül:


Generatív AI-modellek lekérdezése

Ebből a cikkből megtudhatja, hogyan formázhatja az alapmodellekhez és külső modellekhez tartozó lekérdezési kérelmeket, és hogyan küldheti el őket a modell végpontját kiszolgáló modellnek.

A hagyományos ML- vagy Python-modellek lekérdezési kéréseivel kapcsolatban lásd az egyéni modellek végpontjait kiszolgáló lekérdezést.

A Mozaik AI-modellkiszolgáló támogatja az alapmodellek API-kat és külső modelleket a generatív AI-modellek eléréséhez. A Modellkiszolgáló egységes OpenAI-kompatibilis API-t és SDK-t használ a lekérdezéshez. Ez lehetővé teszi a generatív AI-modellek kipróbálását és testreszabását az éles környezethez a támogatott felhők és szolgáltatók között.

A Mozaik AI-modellkiszolgálás a következő lehetőségeket kínálja a pontozási kérések alapmodelleket vagy külső modelleket kiszolgáló végpontokra való küldéséhez:

Metódus Részletek
OpenAI-ügyfél Egy Mozaik AI-modellszolgáltatás végpontja által üzemeltetett modell lekérdezése az OpenAI-ügyfél használatával. Adja meg bemenetként model a végpontnevet kiszolgáló modellt. Támogatja az Alapmodell API-k vagy külső modellek által elérhetővé tett csevegési, beágyazási és befejezési modelleket.
Felhasználói felület kiszolgálása Válassza a Lekérdezési végpont lehetőséget a Kiszolgáló végpont lapján. JSON formátummodell bemeneti adatainak beszúrása, majd a Kérés küldése gombra kattintva. Ha a modellhez egy bemeneti példa van naplózva, a Példa megjelenítése parancsot használva töltse be.
REST API A modell meghívása és lekérdezése a REST API használatával. Részletekért lásd: POST /serving-endpoints/{name}/invocations . A több modellt kiszolgáló végpontokra irányuló pontozási kérelmekről a végpont mögötti egyes modellek lekérdezése című témakörben olvashat.
MLflow Deployments SDK A modell lekérdezéséhez használja az MLflow Deployments SDK predict() függvényét.
Databricks Python SDK A Databricks Python SDK egy réteg a REST API tetején. Kezeli az alacsony szintű részleteket, például a hitelesítést, így könnyebben kezelhetők a modellek.
SQL-függvény Modellkövetkeztetés meghívása közvetlenül az SQL-ből az ai_query SQL-függvény használatával. Lásd: Kiszolgált modell lekérdezése ai_query()-val.

Követelmények

Fontos

A Databricks ajánlott biztonsági gyakorlatként az éles környezetekben a gépről gépre történő OAuth-jogkivonatok használatát javasolja a hitelesítéshez az éles környezetben.

Teszteléshez és fejlesztéshez a Databricks a munkaterület felhasználói helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonat használatát javasolja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.

Csomagok telepítése

Miután kiválasztott egy lekérdezési módszert, először telepítenie kell a megfelelő csomagot a fürtre.

OpenAI-ügyfél

Az OpenAI-ügyfél használatához a databricks-sdk[openai] csomagot telepíteni kell a fürtre. A Databricks SDK burkolót biztosít az OpenAI-ügyfél létrehozásához, amely automatikusan konfigurálva van a generatív AI-modellek lekérdezésére. Futtassa a következőket a jegyzetfüzetben vagy a helyi terminálban:

!pip install databricks-sdk[openai]

A következőre csak akkor van szükség, ha a csomagot Databricks-jegyzetfüzetbe telepíti

dbutils.library.restartPython()

REST API

A Kiszolgáló REST API-hoz való hozzáférés a Databricks Runtime for Machine Learningben érhető el.

MLflow Deployments SDK

!pip install mlflow

A következőre csak akkor van szükség, ha a csomagot Databricks-jegyzetfüzetbe telepíti

dbutils.library.restartPython()

Databricks Python SDK

A Pythonhoz készült Databricks SDK már telepítve van az összes Olyan Azure Databricks-fürtön, amely a Databricks Runtime 13.3 LTS-t vagy újabb verziót használja. A Databricks Runtime 12.2 LTS-t használó Azure Databricks-fürtök esetében először telepítenie kell a Pythonhoz készült Databricks SDK-t. Lásd: Databricks SDK for Python.

Csevegés-befejezési modell lekérdezése

Az alábbiakban példákat láthat egy csevegési modell lekérdezésére. A példa egy olyan csevegőmodell lekérdezésére vonatkozik, amely a Model Service egyik funkciójának használatával érhető el: Alapmodell API-k vagy külső modellek.

A kötegkövetkeztetési példa a Batch következtetését az Foundation Model API-k által kiosztott átviteli sebesség használatával ismerteti.

OpenAI-ügyfél

Az alábbiakban egy csevegési kérést küldünk a DBRX instruktúramodellhez, databricks-dbrx-instruct amelyet az Alapmodell API-k jogkivonatonkénti fizetéses végpontja tett elérhetővé a munkaterületen.

Az OpenAI-ügyfél használatához adja meg bemenetként model a végpont nevét kiszolgáló modellt.


from databricks.sdk import WorkspaceClient

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

response = openai_client.chat.completions.create(
    model="databricks-dbrx-instruct",
    messages=[
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "What is a mixture of experts model?",
      }
    ],
    max_tokens=256
)

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


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-dbrx-instruct",
    messages=[
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "What is a mixture of experts model?",
      }
    ],
    max_tokens=256
)

REST API

Fontos

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

Az alábbiakban egy csevegési kérést küldünk a DBRX instruktúramodellhez, databricks-dbrx-instruct amelyet az Alapmodell API-k jogkivonatonkénti fizetéses végpontja tett elérhetővé a munkaterületen.

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-dbrx-instruct/invocations \

MLflow Deployments SDK

Fontos

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

Az alábbiakban egy csevegési kérést küldünk a DBRX instruktúramodellhez, databricks-dbrx-instruct amelyet az Alapmodell API-k jogkivonatonkénti fizetéses végpontja tett elérhetővé a munkaterületen.


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-dbrx-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 Python SDK

Az alábbiakban egy csevegési kérést küldünk a DBRX instruktúramodellhez, databricks-dbrx-instruct amelyet az Alapmodell API-k jogkivonatonkénti fizetéses végpontja tett elérhetővé a munkaterületen.

Ezt a kódot a munkaterületen lévő jegyzetfüzetben kell futtatni. Lásd: A Pythonhoz készült Databricks SDK használata egy Azure Databricks-jegyzetfüzetből.

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

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="databricks-dbrx-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

Alapmodell végpontjának a LangChain használatával történő lekérdezéséhez használhatja a ChatDatabricks ChatModel osztályt, és megadhatja a endpoint.

Az alábbi példa a ChatDatabricks LangChain ChatModel osztályát használja az Foundation Model API-k tokenenkénti fizetéses végpontjának databricks-dbrx-instructlekérdezéséhez.

%pip install langchain-databricks
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_databricks import ChatDatabricks

messages = [
    SystemMessage(content="You're a helpful assistant"),
    HumanMessage(content="What is a mixture of experts model?"),
]

llm = ChatDatabricks(endpoint_name="databricks-dbrx-instruct")
llm.invoke(messages)

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ó , és a definíció változhat. Lásd: Kiszolgált modell lekérdezése ai_query()-val.

Az alábbiakban egy csevegési kérést meta-llama-3-1-70b-instruct jelenítünk meg, amelyet az Foundation Model API-k jogkivonatonkénti fizetéses végpontja databricks-meta-llama-3-1-70b-instruct tett elérhetővé a munkaterületen.

Feljegyzés

A ai_query() függvény nem támogatja a DBRX vagy a DBRX Instruct modellt kiszolgáló lekérdezési végpontokat.

SELECT ai_query(
    "databricks-meta-llama-3-1-70b-instruct",
    "Can you explain AI in ten words?"
  )

Példaként a következők a csevegési modell elvárt kérésformátumát jelzik a REST API használatakor. 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 a további lekérdezési paramétereket.

{
  "messages": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_tokens": 100,
  "temperature": 0.1
}

A REST API használatával küldött kérések várható válaszformátuma a következő:

{
  "model": "databricks-dbrx-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
}

Beágyazási modell lekérdezése

Az alábbiakban egy beágyazási kérést küldünk az gte-large-en Alapmodell API-k által elérhetővé tett modellhez. A példa egy olyan beágyazási modell lekérdezésére vonatkozik, amely a Model Serving egyik funkciójának használatával érhető el: Alapmodell API-k vagy külső modellek.

OpenAI-ügyfél

Az OpenAI-ügyfél használatához adja meg bemenetként model a végpont nevét kiszolgáló modellt.


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"
)

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-jogkivonattal, és openai van telepítve a számításra. 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/serving-endpoints"
)

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

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ójúak, é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  '{ "input": "Embed this sentence!"}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-gte-large-en/invocations

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="databricks-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="databricks-gte-large-en",
    input="Embed this sentence!"
)
print(response.data[0].embedding)

LangChain

A Databricks Foundation Model API-modell beágyazási modellként való használatához importálja az DatabricksEmbeddings osztályt, és adja meg a paramétert az endpoint alábbiak szerint:

%pip install langchain-databricks
from langchain_databricks import DatabricksEmbeddings

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

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ó , és a definíció változhat. Lásd: Kiszolgált modell lekérdezése ai_query()-val.


SELECT ai_query(
    "databricks-gte-large-en",
    "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 a további lekérdezési paramétereket.


{
  "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
  }
}

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

Szövegkiegészítési modell lekérdezése

OpenAI-ügyfél

Fontos

Az Alapmodell API-kban az OpenAI-ügyfél használatával elérhetővé tett szövegkiegészítési modellek lekérdezése nem támogatott. Csak az OpenAI-ügyféllel történő külső modellek lekérdezése támogatott, ahogyan az ebben a szakaszban is látható.

Az OpenAI-ügyfél használatához adja meg bemenetként model a végpont nevét kiszolgáló modellt. Az alábbi példa lekérdezi az claude-2 Anthropic által üzemeltetett befejezési modellt az OpenAI-ügyfél használatával. Az OpenAI-ügyfél használatához töltse ki a model mezőt a lekérdezni kívánt modellt futtató végpontot kiszolgáló modell nevével.

Ez a példa egy korábban létrehozott végpontot használ, anthropic-completions-endpointamely az antropikus modellszolgáltatótól származó külső modellek eléréséhez van konfigurálva. Tekintse meg, hogyan hozhat létre külső modellvégpontokat.

További lekérdezhető modellek és azok szolgáltatóinak támogatott modelljei .


from databricks.sdk import WorkspaceClient

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

completion = openai_client.completions.create(
model="anthropic-completions-endpoint",
prompt="what is databricks",
temperature=1.0
)
print(completion)

REST API

Az alábbiakban egy külső modellek használatával elérhetővé tett befejezési modell lekérdezésére vonatkozó befejezési kérést küldünk.

Fontos

Az alábbi példa REST API-paramétereket használ a külső modelleket kiszolgáló végpontok lekérdezéséhez. Ezek a paraméterek nyilvános előzetes verziójúak, é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 '{"prompt": "What is a quoll?", "max_tokens": 64}' \
https://<workspace_host>.databricks.com/serving-endpoints/<completions-model-endpoint>/invocations

MLflow Deployments SDK

Az alábbiakban egy külső modellek használatával elérhetővé tett befejezési modell lekérdezésére vonatkozó befejezési kérést küldünk.

Fontos

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


import os
import mlflow.deployments

# Only required when running this example outside of a Databricks Notebook

os.environ['DATABRICKS_HOST'] = "https://<workspace_host>.databricks.com"
os.environ['DATABRICKS_TOKEN'] = "dapi-your-databricks-token"

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

completions_response = client.predict(
    endpoint="<completions-model-endpoint>",
    inputs={
        "prompt": "What is the capital of France?",
        "temperature": 0.1,
        "max_tokens": 10,
        "n": 2
    }
)

# Print the response
print(completions_response)

Databricks Python SDK

TA következő egy befejezési kérelem egy külső modellek használatával elérhetővé tett befejezési modell lekérdezéséhez.

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

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="<completions-model-endpoint>",
    prompt="Write 3 reasons why you should train an AI model on domain specific data sets."
)
print(response.choices[0].text)

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ó , és a definíció változhat. Lásd: Kiszolgált modell lekérdezése ai_query()-val.

SELECT ai_query(
    "<completions-model-endpoint>",
    "Can you explain AI in ten words?"
  )

A befejezési modell várható kérésformátuma a következő. 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 a további lekérdezési paramétereket.

{
  "prompt": "What is mlflow?",
  "max_tokens": 100,
  "temperature": 0.1,
  "stop": [
    "Human:"
  ],
  "n": 1,
  "stream": false,
  "extra_params":
  {
    "top_p": 0.9
  }
}

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

{
  "id": "cmpl-8FwDGc22M13XMnRuessZ15dG622BH",
  "object": "text_completion",
  "created": 1698809382,
  "model": "gpt-3.5-turbo-instruct",
  "choices": [
    {
    "text": "MLflow is an open-source platform for managing the end-to-end machine learning lifecycle. It provides tools for tracking experiments, managing and deploying models, and collaborating on projects. MLflow also supports various machine learning frameworks and languages, making it easier to work with different tools and environments. It is designed to help data scientists and machine learning engineers streamline their workflows and improve the reproducibility and scalability of their models.",
    "index": 0,
    "logprobs": null,
    "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 83,
    "total_tokens": 88
  }
}

Csevegés támogatott LLM-ekkel az AI Playground használatával

A támogatott nagy nyelvi modelleket az AI Playground használatával használhatja. Az AI-játszótér egy csevegéshez hasonló környezet, ahol tesztelheti, kérheti és összehasonlíthatja az Azure Databricks-munkaterületről származó LLM-eket.

AI-játszótér

További erőforrások