Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a lap részletes útmutatást nyújt egy külső modellvégpont konfigurálásához és lekérdezéséhez, amely OpenAI-modelleket szolgál ki a befejezésekhez, csevegésekhez és beágyazásokhoz. A végpontot az MLflow Deployments SDK-val hozza létre, és az OpenAI-ügyféllel kérdezi le. További információkért tekintse meg a külső modelleket.
Miután létrehozott egy végpontot, a Databricks azt javasolja, hogy konfigurálja a Unity AI Gatewayt, hogy olyan szabályozási funkciókat adjon hozzá, mint a használatkövetés, a hasznos adatok naplózása, a védőkorlátok és a sebességkorlátok. A Modellszolgáltatás szolgáltatással kiszolgált összes külső modell lekérdezhető az OpenAI-kompatibilis API használatával, így egyetlen ügyfelet használhat a szolgáltatók között. Lásd : AI-szabályozás a Unity AI Gateway használatával.
Tip
Mondja meg a Genie Code-nak (ügynök módnak), hogy tegye ezt Önért:
Create a new notebook that uses the MLflow Deployments SDK to create an external model endpoint named openai-completions-endpoint that serves OpenAI's gpt-3.5-turbo-instruct model for completions, reading my OpenAI API key from a Databricks secret scope. Then send a test completion request to the endpoint and display the response.
Ha a feladat elvégzéséhez a Kiszolgáló felhasználói felületét szeretné használni, tekintse meg a külső modell kiszolgálóvégpontjának létrehozását.
Requirements
- Databricks Runtime 13.0 ML vagy újabb.
- MLflow 2.9 vagy újabb.
- OpenAI API-kulcsok.
- Telepítse a Databricks CLI 0.205-ös vagy újabb verzióját.
(Nem kötelező) 0. lépés: Az OpenAI API-kulcs tárolása a Databricks Titkos kulcsok parancssori felületével
Az API-kulcsokat egyszerű szöveges sztringekként is megadhatja a 3. lépésben, vagy az Azure Databricks Titkos kulcsok használatával.
Az OpenAI API-kulcs titkos kulcsként való tárolásához használhatja a Databricks Titkos kulcsok parancssori felületét (0.205-ös vagy újabb verzió). A REST API-t titkos kódokhoz is használhatja.
Az alábbiakban létrejön a titkos hatókör neve, my_openai_secret_scope, majd ebben a hatókörben létrejön a titkos kulcs openai_api_key.
databricks secrets create-scope my_openai_secret_scope
databricks secrets put-secret my_openai_secret_scope openai_api_key
1. lépés: Az MLflow telepítése külső modellek támogatásával
Az alábbiak segítségével telepítsen egy MLflow-verziót külső modellek támogatásával:
%pip install mlflow[genai]>=2.9.0
2. lépés: Külső modellvégpont létrehozása és kezelése
Important
Az ebben a szakaszban szereplő kód példák a nyilvános előzetes verziójú MLflow deployments CRUD SDK használatát mutatják be.
Ha külső modellvégpontot szeretne létrehozni egy nagy nyelvi modellhez (LLM), használja az create_endpoint() MLflow Deployments SDK metódusát. Külső modellvégpontokat is létrehozhat a kiszolgáló felhasználói felületén.
Az alábbi kódrészlet létrehoz egy befejezési végpontot az OpenAI gpt-3.5-turbo-instructszámára, a served_entities konfiguráció szakaszában megadott módon. A végpont esetében mindenképpen töltse ki a name és openai_api_key az egyes mezők egyedi értékeivel.
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
name="openai-completions-endpoint",
config={
"served_entities": [{
"name": "openai-completions",
"external_model": {
"name": "gpt-3.5-turbo-instruct",
"provider": "openai",
"task": "llm/v1/completions",
"openai_config": {
"openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}"
}
}
}]
}
)
Az alábbi kódrészlet bemutatja, hogyan adhat meg az OpenAI API-kulcsot egyszerű szöveges sztringként, hogy alternatív módon hozza létre ugyanazt a befejezési végpontot, mint fent.
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
name="openai-completions-endpoint",
config={
"served_entities": [{
"name": "openai-completions",
"external_model": {
"name": "gpt-3.5-turbo-instruct",
"provider": "openai",
"task": "llm/v1/completions",
"openai_config": {
"openai_api_key_plaintext": "sk-yourApiKey"
}
}
}]
}
)
Ha Azure OpenAI-t használ, a konfiguráció szakaszában megadhatja az Azure OpenAI üzembehelyezési nevét, végpont openai_config URL-címét és API-verzióját is.
client.create_endpoint(
name="openai-completions-endpoint",
config={
"served_entities": [
{
"name": "openai-completions",
"external_model": {
"name": "gpt-3.5-turbo-instruct",
"provider": "openai",
"task": "llm/v1/completions",
"openai_config": {
"openai_api_type": "azure",
"openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}",
"openai_api_base": "https://my-azure-openai-endpoint.openai.azure.com",
"openai_deployment_name": "my-gpt-35-turbo-deployment",
"openai_api_version": "2023-05-15"
},
},
}
],
},
)
A sebességkorlátok, a használatkövetés, a hasznos adatok naplózása vagy a végponton lévő védőkorlátok konfigurálásához használja a Unity AI Gatewayt. A Sebességkorlátok Unity AI-átjárón keresztül történő konfigurálása támogatja a lekérdezésalapú (QPM) és a jogkivonatalapú (TPM) korlátokat is, és lehetővé teszi felhasználónkénti, csoportonkénti és végpontszintű korlátok beállítását.
Lásd: Configure governance on model service endpoints (legacy) című programozott példát, amely frissíti a végpontot a sebességkorlátok és más Unity AI Gateway funkciók hozzáadására.
Note
A korábban dokumentált client.update_endpoint() minta egy felső szintű rate_limits mezővel elavult. Használja inkább a Unity AI Gateway konfigurációját a végponton.
3. lépés: Kérések küldése külső modellvégpontra
A Databricks azt javasolja, hogy külső modellvégpontokat kérdezz le az OpenAI-ügyfél használatával. A Modellszolgáltatás egy egységes, OpenAI-kompatibilis API-t tesz elérhetővé a szolgáltatók között, így ugyanaz az ügyfélkód működik, függetlenül attól, hogy az alapul szolgáló modell OpenAI-ból, Anthropic, Cohere-ből, Amazon Bedrock-ból, Google Cloud Vertex AI-ből vagy egyéni szolgáltatóból származik- e.
Telepítse az OpenAI-klienst a számítási környezetére:
%pip install openai
Az alábbiakban egy csevegés befejezésére vonatkozó kérést küldünk egy OpenAI-csevegőmodellt kiszolgáló végpontnak. Cserélje le a base_url értéket a Azure Databricks munkaterület URL-címére, és adja meg a an Azure Databricks személyes hozzáférési jogkivonatot a api_key számára. Állítsa a paramétert model a végpontot kiszolgáló modell nevére.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DATABRICKS_TOKEN"),
base_url="https://<workspace-name>.cloud.databricks.com/serving-endpoints"
)
response = client.chat.completions.create(
model="openai-chat-endpoint",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
],
max_tokens=128,
temperature=0.1,
)
print(response.choices[0].message.content)
Ha befejezési kérelmet szeretne küldeni a feladathoz konfigurált végpontnak, használja a llm/v1/completions következőt client.completions.create():
response = client.completions.create(
model="openai-completions-endpoint",
prompt="What is the capital of France?",
max_tokens=10,
temperature=0.1,
n=2,
)
print(response)
Ha beágyazási kérelmet szeretne küldeni a llm/v1/embeddings feladatra konfigurált végpontnak, használja a következőt: client.embeddings.create()
response = client.embeddings.create(
model="openai-embeddings-endpoint",
input="Databricks is a unified analytics platform.",
)
print(response.data[0].embedding)
Ha egy Azure Databricks jegyzetfüzetből futtatja az OpenAI-ügyfelet, használhatja a databricks-openai segítőt, amely automatikusan konfigurálja a hitelesítést és a munkaterület alap URL-címét. Részletekért lásd: Alapmodellek használata .
4. lépés: Egy másik szolgáltató modelljeinek összehasonlítása
A modellszolgáltatás számos külső modellszolgáltatót támogat, többek között az Open AI-t, az antropikust, a cohere-t, az Amazon Bedrockot, a Google Cloud Vertex AI-t és sok mást. Összehasonlíthatja az LLM-eket a szolgáltatók között, így optimalizálhatja az alkalmazások pontosságát, sebességét és költségeit az AI Playgroundhasználatával.
Az alábbi példa létrehoz egy végpontot az antropikus claude-2 számára, és összehasonlítja annak válaszát egy OpenAI-t gpt-3.5-turbo-instructhasználó kérdéssel. Mindkét válasz formátuma ugyanaz, ami megkönnyíti az összehasonlítást.
Végpont létrehozása az Anthropic Claude-2 számára
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
name="anthropic-completions-endpoint",
config={
"served_entities": [
{
"name": "claude-completions",
"external_model": {
"name": "claude-2",
"provider": "anthropic",
"task": "llm/v1/completions",
"anthropic_config": {
"anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
},
},
}
],
},
)
Az egyes végpontok válaszainak összehasonlítása
Mivel minden külső modellvégpont egy OpenAI-kompatibilis API-t tesz elérhetővé, mindkét végpontot ugyanazzal az OpenAI-ügyféllel kérdezheti le, ha a paramétert a model megfelelő végpontnévre váltja.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DATABRICKS_TOKEN"),
base_url="https://<workspace-name>.cloud.databricks.com/serving-endpoints"
)
prompt = "How is Pi calculated? Be very concise."
openai_response = client.completions.create(
model="openai-completions-endpoint",
prompt=prompt,
)
anthropic_response = client.completions.create(
model="anthropic-completions-endpoint",
prompt=prompt,
)
print("OpenAI:", openai_response.choices[0].text)
print("Anthropic:", anthropic_response.choices[0].text)