Külső modellek a Databricks-modellkiszolgálóban
Fontos
A cikkben szereplő kód példák a nyilvános előzetes verziójú MLflow deployments CRUD API használatát mutatják be.
Ez a cikk a Databricks modellkiszolgáló külső modelljeit ismerteti, beleértve a támogatott modellszolgáltatókat és korlátozásokat.
Mik azok a külső modellek?
A külső modellek a Databricksen kívül üzemeltetett külső modellek. A Model Serving által támogatott külső modellek lehetővé teszik a különböző nagy nyelvi modellek (LLM) szolgáltatók, például az OpenAI és az antropikus használatának és felügyeletének egyszerűsítését egy szervezeten belül. A Databricks Model Serve szolgáltatóként is használható egyéni modellek kiszolgálására, amelyek sebességkorlátokat kínálnak ezekre a végpontokra. Ennek a támogatásnak a részeként a Modellszolgáltatás egy magas szintű felületet kínál, amely leegyszerűsíti a szolgáltatásokkal való interakciót azáltal, hogy egységes végpontot biztosít az adott LLM-hez kapcsolódó kérések kezeléséhez.
Emellett a külső modellek Azure Databricks-támogatása központosított hitelesítő adatok kezelését is biztosítja. Az API-kulcsok biztonságos helyen való tárolásával a szervezetek növelhetik a biztonsági helyzetüket azáltal, hogy minimalizálják a rendszer bizalmas API-kulcsainak kitettségét. Emellett segít megelőzni ezeknek a kulcsoknak a kódban való felfedését, vagy azt, hogy a végfelhasználók biztonságosan kezeljék a kulcsokat.
Tekintse meg az oktatóanyagot: Külső modellvégpontok létrehozása OpenAI-modellek lekérdezéséhez részletes útmutatást nyújt a külső modellvégpontok létrehozásához és a végpontok által az MLflow Deployments SDK használatával kiszolgált támogatott modellek lekérdezéséhez. A kiszolgáló felhasználói felület és a REST API használatára vonatkozó útmutatásért tekintse meg az alábbi útmutatókat:
Követelmények
- API-kulcs a modellszolgáltatóhoz.
- A Databricks-munkaterület a külső modellek által támogatott régiókban.
Modellszolgáltatók
A Modellkiszolgáló külső modelljei számos modellszolgáltatót támogatnak. A szolgáltató képviseli a gépi tanulási modellek forrását, például az OpenAI-t, az antropikust stb. Minden szolgáltató rendelkezik a külső modell végpontkonfigurációjának mezőjébe ágyazott external_model
sajátos tulajdonságokkal és konfigurációkkal.
A következő szolgáltatók támogatottak:
- openai: Az OpenAI által kínált modellekhez, valamint az Azure OpenAI és az Azure OpenAI azure-integrációihoz az AAD-vel.
- antropikus: Az antropikus által kínált modellekhez.
- cohere: A Cohere által kínált modellekhez.
- amazon-bedrock: Az Amazon Bedrock által kínált modellekhez.
- ai21labs: Az AI21Labs által kínált modellekhez.
- google-cloud-vertex-ai: A Google Cloud Vertex AI által kínált modellekhez.
- databricks-model-service: Kompatibilis sémákkal rendelkező Databricks-modell végpontjaihoz. Lásd: Végpontkonfiguráció.
Ha támogatást szeretne kérni az itt nem szereplő szolgáltatóhoz, forduljon a Databricks-fiók csapatához.
Támogatott modellek
A választott modell közvetlenül befolyásolja az API-hívásokból kapott válaszok eredményeit. Ezért válasszon egy olyan modellt, amely megfelel a használati eset követelményeinek. A beszélgetési válaszok létrehozásához például kiválaszthatja a csevegési modellt. Ezzel szemben a szövegbeágyazások létrehozásához kiválaszthatja a beágyazási modellt.
Az alábbi táblázat a támogatott modellek és a kapcsolódó végponttípusok nem teljes listáját mutatja be. Az alább felsorolt modelltársítások hasznos útmutatóként használhatók az újonnan kiadott modelltípusok végpontjának konfigurálásához, amint elérhetővé válnak egy adott szolgáltatónál. Az ügyfelek felelősek az alkalmazandó modelllicencek megfelelőségének biztosításáért.
Feljegyzés
Az LLM-ek gyors fejlődésével nincs garancia arra, hogy ez a lista mindig naprakész.
Modellszolgáltató | llm/v1/completions | llm/v1/chat | llm/v1/beágyazások |
---|---|---|---|
OpenAI** | * gpt-3.5-turbo-instruct * babbage-002 * davinci-002 |
* gpt-3.5-turbo * gpt-4 * gpt-3.5-turbo-0125 * gpt-3.5-turbo-1106 * gpt-4-0125-preview * gpt-4-turbo-preview * gpt-4-1106-preview * gpt-4-vision-preview * gpt-4-1106-vision-preview |
* text-embedding-ada-002 * text-embedding-3-large * text-embedding-3-small |
Azure OpenAI** | * text-davinci-003 * gpt-35-turbo-instruct |
* gpt-35-turbo * gpt-35-turbo-16k * gpt-4 * gpt-4-32k |
* text-embedding-ada-002 * text-embedding-3-large * text-embedding-3-small |
Anthropic | * claude-1 * claude-1.3-100k * claude-2 * claude-2.1 * claude-2.0 * claude-instant-1.2 |
* claude-3-opus-20240229 * claude-3-sonnet-20240229 * claude-2.1 * claude-2.0 * claude-instant-1.2 |
|
Cohere** | *Parancs * parancs-light-nightly * parancs-light * parancs-éjszakai |
* beágyazás-angol-v2.0 * beágyazás-többnyelvű-v2.0 * embed-english-light-v2.0 * beágyazás-angol-v3.0 * embed-english-light-v3.0 * beágyazás-többnyelvű-v3.0 * beágyazás-többnyelvű-light-v3.0 |
|
Databricks-modell kiszolgálása | Végpontot kiszolgáló Databricks | Végpontot kiszolgáló Databricks | Végpontot kiszolgáló Databricks |
Amazon Bedrock | Antropikus: * claude-instant-v1 * claude-v1 * claude-v2 Közösen: * command-text-v14 * command-text-v14:7:4k * command-light-text-v14 * command-light-text-v14:7:4k AI21 Labs: * j2-grande-instruct * j2-jumbo-utasítás * j2-mid * j2-mid-v1 * j2-ultra j2-ultra-v1 |
Antropikus: * claude-instant-v1:2:100k * claude-v2 * claude-v2:0:18k * claude-v2:0:100k * claude-v2:1 * claude-v2:1:18k * claude-v2:1:200k * claude-3-sonnet-20240229-v1:0 |
Amazon: * titan-embed-text-v1 * titan-embed-g1-text-02 * titan-embed-text-v1:2:8k |
AI21 Labs† | * j2-mid * j2-light * j2-ultra |
||
Google Cloud Vertex AI | text-bison | * chat-bölény * gemini-pro |
textembedding-gecko |
**
A modellszolgáltató támogatja a finomhangolt befejezési és csevegési modelleket. Egy finomhangolt modell lekérdezéséhez töltse ki a name
external model
konfiguráció mezőjét a finomhangolt modell nevével.
† modellszolgáltató támogatja az egyéni befejezési modelleket.
Databricks-modellkiszolgáló végpontokon kiszolgált modellek használata
A Databricks-modell a végpontokat szolgáltatóként szolgálja ki, és llm/v1/embeddings
a llm/v1/completions
végponttípusok llm/v1/chat
is támogatottak. Ezeknek a végpontoknak el kell fogadniuk a kötelezőként megjelölt szabványos lekérdezési paramétereket, míg más paraméterek figyelmen kívül hagyhatók attól függően, hogy a Databricks modellszolgáltatás végpontja támogatja-e őket.
A szabványos lekérdezési paramétereket az API-referencia post /serving-endpoints/{name}/invocations című témakörében tekintheti meg.
Ezeknek a végpontoknak a következő OpenAI formátumban kell válaszokat előállítaniuk.
Befejezési feladatok esetén:
{
"id": "123", # Not Required
"model": "test_databricks_model",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
Csevegési feladatok esetén:
{
"id": "123", # Not Required
"model": "test_chat_model",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?",
},
"finish_reason": "stop"
},
{
"index": 1,
"message": {
"role": "human",
"content": "\n\nWhat is the weather in San Francisco?",
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
Beágyazási feladatok esetén:
{
"data": [
{
"embedding": [
0.0023064255,
-0.009327292,
.... # (1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
},
{
"embedding": [
0.0023064255,
-0.009327292,
.... #(1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
}
],
"model": "test_embedding_model",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
Végpontkonfiguráció
Külső modellek kiszolgálásához és lekérdezéséhez konfigurálnia kell egy kiszolgálóvégpontot. Lásd: Végpontokat kiszolgáló egyéni modell létrehozása
A végpontot kiszolgáló külső modell esetében a végpontkonfiguráció szakaszában meg kell adnia a external_model
mezőt és annak served_entities
paramétereit.
A external_model
mező határozza meg azt a modellt, amelyre a végpont továbbítja a kéréseket. A modell megadásakor kritikus fontosságú, hogy a szolgáltató támogatja a kért modellt. Például, openai
mivel a szolgáltató támogatja az olyan modelleket, mint text-embedding-ada-002
a , de más szolgáltatók nem. Ha a modellt a szolgáltató nem támogatja, a Databricks HTTP 4xx-es hibát ad vissza a kérések adott modellhez való átirányításakor.
Az alábbi táblázat összefoglalja a external_model
mezőparamétereket. A végpontkonfigurációs paraméterekről lásd: POST /api/2.0/serving-endpoints.
Paraméter | Leírások |
---|---|
name |
A használni kívánt modell neve. Például az gpt-3.5-turbo OpenAI GPT-3.5-Turbo modelljéhez. |
provider |
Megadja a modell szolgáltatójának nevét. Ennek a sztringértéknek egy támogatott külső modellszolgáltatónak kell lennie. Például az openai OpenAI modelljeihez GPT-3.5 . |
task |
A feladat megfelel a kívánt nyelvmodell-interakció típusának. A támogatott tevékenységek a következők: "llm/v1/completions", "llm/v1/chat", "llm/v1/embeddings". |
<provider>_config |
A modellhez szükséges további konfigurációs adatokat tartalmazza. Ez magában foglalja az API-alap URL-címének és az API-kulcsnak a megadását. Lásd: A szolgáltató konfigurálása végponthoz. |
Az alábbi példa egy külső modellvégpont API-val történő létrehozására create_endpoint()
mutat be példát. Ebben a példában a rendszer a befejezési végpontnak küldött kérést továbbítja a claude-2
megadott modellnek anthropic
.
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
name="anthropic-completions-endpoint",
config={
"served_entities": [
{
"name": "test",
"external_model": {
"name": "claude-2",
"provider": "anthropic",
"task": "llm/v1/completions",
"anthropic_config": {
"anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
}
}
}
]
}
)
A szolgáltató konfigurálása végponthoz
Végpont létrehozásakor meg kell adnia a megadott modellszolgáltatóhoz szükséges konfigurációkat. Az alábbi szakaszok összefoglalják az egyes modellszolgáltatókhoz elérhető végpontkonfigurációs paramétereket.
OpenAI
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
openai_api_key |
Az OpenAI szolgáltatás API-kulcsa. | Igen | |
openai_api_type |
Nem kötelező mező a használni kívánt OpenAI API típusának megadásához. | Nem | |
openai_api_base |
Az OpenAI API alap URL-címe. | Nem | https://api.openai.com/v1 |
openai_api_version |
Nem kötelező mező az OpenAI API-verzió megadásához. | Nem | |
openai_organization |
Nem kötelező mező a szervezet OpenAI-ban való megadásához. | Nem |
Összetartó
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
cohere_api_key |
A Cohere szolgáltatás API-kulcsa. | Igen |
Anthropic
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
anthropic_api_key |
Az antropikus szolgáltatás API-kulcsa. | Igen |
Azure OpenAI
Az Azure OpenAI a közvetlen OpenAI szolgáltatáshoz képest eltérő funkciókkal rendelkezik. Áttekintésért tekintse meg az összehasonlító dokumentációt.
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
openai_api_key |
Az Azure OpenAI szolgáltatás API-kulcsa. | Igen | |
openai_api_type |
Módosítsa ezt a paramétert az előnyben részesített biztonsági hozzáférés érvényesítési protokolljának megfelelően. A hozzáférési jogkivonat érvényesítéséhez használja a következőt azure : . Az Azure Active Directory (Azure AD) használatával történő hitelesítéshez használja a azuread következőt: . |
Igen | |
openai_api_base |
Az Azure által biztosított Azure OpenAI API szolgáltatás alap URL-címe. | Igen | |
openai_api_version |
Az Azure OpenAI szolgáltatás kihasználandó verziója, dátum szerint megadva. | Igen | |
openai_deployment_name |
Az Azure OpenAI szolgáltatás üzembehelyezési erőforrásának neve. | Igen | |
openai_organization |
Nem kötelező mező a szervezet OpenAI-ban való megadásához. | Nem |
Az alábbi példa bemutatja, hogyan hozhat létre végpontot az Azure OpenAI-val:
client.create_endpoint(
name="openai-chat-endpoint",
config={
"served_entities": [{
"external_model": {
"name": "gpt-3.5-turbo",
"provider": "openai",
"task": "llm/v1/chat",
"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"
}
}
}]
}
)
Google Cloud Vertex AI
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
private_key |
Ez annak a szolgáltatásfióknak a titkos kulcsa, amely hozzáfér a Google Cloud Vertex AI szolgáltatáshoz. Tekintse meg a szolgáltatásfiókkulcsok kezelésének ajánlott eljárásait. | Igen | |
region |
Ez a Google Cloud Vertex AI szolgáltatás régiója. További részletekért tekintse meg a támogatott régiókat . Egyes modellek csak bizonyos régiókban érhetők el. | Igen | |
project_id |
Ez a Google Cloud-projektazonosító, amelyhez a szolgáltatásfiók társítva van. | Igen |
Amazon Bedrock
Az Amazon Bedrock külső modellszolgáltatóként való használatához az ügyfeleknek meg kell győződni arról, hogy a Bedrock engedélyezve van a megadott AWS-régióban, és a megadott AWS-kulcspár megfelelő engedélyekkel rendelkezik a Bedrock-szolgáltatások használatához. További információ: AWS Identity and Access Management.
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
aws_region |
A használni kívánt AWS-régió. A bedrockot ott kell engedélyezni. | Igen | |
aws_access_key_id |
Az AWS hozzáférési kulcsazonosítója a Bedrock-szolgáltatások használatához szükséges engedélyekkel. | Igen | |
aws_secret_access_key |
A hozzáférési kulcs azonosítójával párosított AWS titkos hozzáférési kulcs, amely a Bedrock-szolgáltatásokkal való interakcióra vonatkozó engedélyekkel rendelkezik. | Igen | |
bedrock_provider |
Az Amazon Bedrock mögöttes szolgáltatója. Támogatott értékek (a kis- és nagybetűk nem érzékenyek) közé tartoznak: Antropikus, Cohere, AI21Labs, Amazon | Igen |
Az alábbi példa bemutatja, hogyan hozhat létre végpontot az Amazon Bedrock használatával.
client.create_endpoint(
name="bedrock-anthropic-completions-endpoint",
config={
"served_entities": [
{
"external_model": {
"name": "claude-v2",
"provider": "amazon-bedrock",
"task": "llm/v1/completions",
"amazon_bedrock_config": {
"aws_region": "<YOUR_AWS_REGION>",
"aws_access_key_id": "{{secrets/my_amazon_bedrock_secret_scope/aws_access_key_id}}",
"aws_secret_access_key": "{{secrets/my_amazon_bedrock_secret_scope/aws_secret_access_key}}",
"bedrock_provider": "anthropic",
},
}
}
]
},
)
Ha AWS-engedélyekkel kapcsolatos problémák merülnek fel, a Databricks azt javasolja, hogy közvetlenül az Amazon Bedrock API-val ellenőrizze a hitelesítő adatokat.
AI21 Labs
Konfigurációs paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
ai21labs_api_key |
Ez az AI21 Labs szolgáltatás API-kulcsa. | Igen |
Külső modellvégpont lekérdezése
Miután létrehozott egy külső modellvégpontot, készen áll a felhasználóktól érkező forgalom fogadására.
Pontozási kéréseket küldhet a végpontnak az OpenAI-ügyfél, a REST API vagy az MLflow Deployments SDK használatával.
- Tekintse meg a pontozási kérelmek szabványos lekérdezési paramétereit a POST /serving-endpoints/{name}/invocations fájlban.
- Alapmodellek lekérdezése
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-endpoint
amely 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 .
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"
)
completion = client.completions.create(
model="anthropic-completions-endpoint",
prompt="what is databricks",
temperature=1.0
)
print(completion)
Várt kimeneti válaszformátum:
{
"id": "123", # Not Required
"model": "anthropic-completions-endpoint",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
További lekérdezési paraméterek
A lekérdezés részeként átadhat minden további paramétert, amelyet a végpont szolgáltatója támogat.
Példa:
logit_bias
(az OpenAI és a Cohere támogatja).top_k
(támogatja az antropikus, Cohere).frequency_penalty
(az OpenAI és a Cohere támogatja).presence_penalty
(az OpenAI és a Cohere támogatja).stream
(támogatja: OpenAI, Anthropic, Cohere, Amazon Bedrock for Anthropic). Ez csak csevegési és befejezési kérelmek esetén érhető el.
Korlátozások
A választott külső modelltől függően előfordulhat, hogy a konfiguráció miatt az adatok feldolgozása azon a régión kívül történik, ahonnan az adatok származnak.
Lásd: Modellmegjelenítési korlátok és régiók.
További erőforrások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: