Externí modely ve službě Databricks Model Serving
Důležité
Příklady kódu v tomto článku ukazují použití rozhraní CRUD API pro nasazení MLflow ve verzi Public Preview .
Tento článek popisuje externí modely ve službě Databricks Model Serving, včetně podporovaných poskytovatelů modelů a omezení.
Co jsou externí modely?
Externí modely jsou modely třetích stran hostované mimo Databricks. Podporované službou Model Obsluha, externí modely umožňují zjednodušit používání a správu různých poskytovatelů velkých jazykových modelů (LLM), jako jsou OpenAI a Anthropic, v rámci organizace. Model Databricks, který slouží jako poskytovatel, můžete použít také k poskytování vlastních modelů, které nabízejí omezení rychlosti pro tyto koncové body. V rámci této podpory nabízí služba Model Serving rozhraní vysoké úrovně, které zjednodušuje interakci s těmito službami tím, že poskytuje jednotný koncový bod pro zpracování konkrétních požadavků souvisejících s LLM.
Kromě toho podpora Azure Databricks pro externí modely poskytuje centralizovanou správu přihlašovacích údajů. Uložením klíčů rozhraní API do jednoho zabezpečeného umístění můžou organizace zlepšit stav zabezpečení minimalizací vystavení citlivých klíčů rozhraní API v celém systému. Pomáhá také zabránit zveřejnění těchto klíčů v kódu nebo vyžadovat, aby koncoví uživatelé mohli bezpečně spravovat klíče.
Viz kurz: Vytvoření koncových bodů externího modelu pro dotazování modelů OpenAI pro podrobné pokyny k vytvoření koncového bodu externího modelu a dotazování podporovaných modelů obsluhovaných těmito koncovými body pomocí sady SDK pro nasazení MLflow. Pokyny k používání uživatelského rozhraní obsluhy a rozhraní REST API najdete v následujících příručkách:
Požadavky
- Klíč rozhraní API pro zprostředkovatele modelu.
- Pracovní prostor Databricks v podporovaných oblastech externích modelů
Poskytovatelé modelů
Externí modely ve službě Model Serving jsou navržené tak, aby podporovaly různé poskytovatele modelů. Poskytovatel představuje zdroj modelů strojového učení, jako jsou OpenAI, Anthropic atd. Každý poskytovatel má své specifické vlastnosti a konfigurace, které jsou zapouzdřeny v external_model
poli konfigurace koncového bodu externího modelu.
Podporují se následující poskytovatelé:
- openai: Pro modely, které nabízí OpenAI a integrace Azure pro Azure OpenAI a Azure OpenAI s AAD.
- anthropic: Pro modely, které nabízí Anthropic.
- cohere: Pro modely nabízené Společností Cohere.
- amazon-bedrock: Pro modely nabízené Amazon Bedrock.
- ai21labs: Pro modely nabízené AI21Labs.
- google-cloud-vertex-ai: Pro modely, které nabízí Google Cloud Vertex AI.
- databricks-model-obsluha: Pro koncové body obsluhy modelu Databricks s kompatibilními schématy. Viz konfigurace koncového bodu.
Pokud chcete požádat o podporu poskytovatele, který tu není uvedený, obraťte se na svůj tým účtů Databricks.
Podporované modely
Model, který zvolíte, přímo ovlivňuje výsledky odpovědí, které získáte z volání rozhraní API. Proto zvolte model, který vyhovuje vašim požadavkům na případ použití. Například pro generování konverzačních odpovědí můžete zvolit model chatu. Naopak pro generování vkládání textu můžete zvolit model vkládání.
Následující tabulka obsahuje seznam podporovaných modelů a odpovídajících typů koncových bodů, které nejsou vyčerpávající. Přidružení modelů uvedená níže se dají použít jako užitečný průvodce při konfiguraci koncového bodu pro všechny nově vydané typy modelů, jakmile budou dostupné u daného poskytovatele. Zákazníci zodpovídají za zajištění dodržování předpisů s příslušnými licencemi modelu.
Poznámka:
Díky rychlému vývoji LLM není zaručeno, že je tento seznam neustále aktuální.
Zprostředkovatel modelů | llm/v1/completions | llm/v1/chat | llm/v1/embeddings |
---|---|---|---|
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** | *Příkaz * command-light-nightly * command-light * příkaz-noční |
* embed-english-v2.0 * embed-multilingual-v2.0 * embed-english-light-v2.0 * embed-english-v3.0 * embed-english-light-v3.0 * embed-multilingual-v3.0 * embed-multilingual-light-v3.0 |
|
Obsluha modelu Databricks | Koncový bod obsluhy Databricks | Koncový bod obsluhy Databricks | Koncový bod obsluhy Databricks |
Amazon Bedrock | Anthropic: * claude-instant-v1 * claude-v1 * claude-v2 Cohere: * command-text-v14 * command-text-v14:7:4k * command-light-text-v14 * command-light-text-v14:7:4k Testovací prostředí AI21: * j2-grande-instruct * j2-jumbo-instruct * j2-mid * j2-mid-v1 * j2-ultra j2-ultra-v1 |
Anthropic: * 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 |
Cvičení AI21† | * j2-mid * j2-light * j2-ultra |
||
Vrchol Google Cloud AI | text-bison | * chat-bison * gemini-pro |
textembedding-gecko |
**
Poskytovatel modelů podporuje jemně vyladěné dokončování a chatovací modely. Pokud chcete dotazovat jemně vyladěný model, vyplňte name
pole external model
konfigurace názvem jemně vyladěného modelu.
† Poskytovatel modelu podporuje vlastní modely dokončování.
Použití modelů obsluhujících koncové body Služby modelů Databricks
Koncové body služby Databricks Model Obsluhující jako poskytovatele jsou podporované pro llm/v1/completions
llm/v1/chat
typy koncových bodů a , a llm/v1/embeddings
to. Tyto koncové body musí přijmout standardní parametry dotazu označené jako povinné, zatímco jiné parametry se můžou ignorovat v závislosti na tom, jestli je koncový bod služby Databricks Model Serving podporuje.
Standardní parametry dotazu najdete v tématu POST /serving-endpoints/{name}/invocations v referenčních informacích k rozhraní API.
Tyto koncové body musí vytvářet odpovědi v následujícím formátu OpenAI.
Úkoly dokončení:
{
"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
}
}
Pro úkoly chatu:
{
"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
}
}
Úlohy vkládá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
}
}
Konfigurace koncového bodu
Pokud chcete obsluhovat a dotazovat externí modely, musíte nakonfigurovat koncový bod obsluhy. Viz Vytvoření vlastních modelů obsluhujících koncové body.
Pro externí model obsluhující koncový bod musíte zahrnout external_model
pole a jeho parametry v served_entities
části konfigurace koncového bodu.
Pole external_model
definuje model, do kterého tento koncový bod předává požadavky. Při zadávání modelu je důležité, aby poskytovatel podporoval požadovaný model. Například jako poskytovatel podporuje modely, openai
jako text-embedding-ada-002
je , ale jiní poskytovatelé nemusí. Pokud zprostředkovatel model nepodporuje, vrátí Databricks chybu HTTP 4xx při pokusu o směrování požadavků na tento model.
Následující tabulka shrnuje external_model
parametry pole. Parametry konfigurace koncového bodu najdete v tématu POST /api/2.0/serving-endpoints .
Parametr | Popisy |
---|---|
name |
Název modelu, který se má použít. Například gpt-3.5-turbo pro model OpenAI GPT-3.5-Turbo . |
provider |
Určuje název zprostředkovatele pro tento model. Tato hodnota řetězce musí odpovídat podporovanému externímu poskytovateli modelu. Například openai pro modely OpenAI GPT-3.5 . |
task |
Úkol odpovídá typu interakce jazykového modelu, kterou si přejete. Podporované úkoly jsou llm/v1/completions, llm/v1/chat, llm/v1/embeddings. |
<provider>_config |
Obsahuje všechny další podrobnosti konfigurace potřebné pro model. To zahrnuje zadání základní adresy URL rozhraní API a klíče rozhraní API. Viz Konfigurace zprostředkovatele pro koncový bod. |
Následuje příklad vytvoření koncového bodu externího modelu pomocí create_endpoint()
rozhraní API. V tomto příkladu se požadavek odeslaný do koncového bodu dokončení předá claude-2
do modelu, který anthropic
poskytuje .
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}}"
}
}
}
]
}
)
Konfigurace zprostředkovatele pro koncový bod
Při vytváření koncového bodu musíte zadat požadované konfigurace pro zadaného poskytovatele modelu. Následující části shrnují dostupné parametry konfigurace koncového bodu pro každého zprostředkovatele modelu.
OpenAI
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
openai_api_key |
Klíč rozhraní API pro službu OpenAI. | Ano | |
openai_api_type |
Volitelné pole pro zadání typu rozhraní OpenAI API, které se má použít. | No | |
openai_api_base |
Základní adresa URL rozhraní OpenAI API. | No | https://api.openai.com/v1 |
openai_api_version |
Volitelné pole pro zadání verze rozhraní API OpenAI. | No | |
openai_organization |
Volitelné pole pro zadání organizace v OpenAI. | No |
Cohere
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
cohere_api_key |
Klíč rozhraní API pro službu Cohere. | Ano |
Anthropic
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
anthropic_api_key |
Klíč rozhraní API pro službu Anthropic. | Ano |
Azure OpenAI
Azure OpenAI má v porovnání s přímou službou OpenAI jedinečné funkce. Přehled najdete v dokumentaci k porovnání.
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
openai_api_key |
Klíč rozhraní API pro službu Azure OpenAI. | Ano | |
openai_api_type |
Upravte tento parametr tak, aby představoval upřednostňovaný ověřovací protokol přístupu zabezpečení. Pro ověření přístupového tokenu použijte azure . Pro ověřování pomocí Azure Active Directory (Azure AD) použijte azuread . |
Ano | |
openai_api_base |
Základní adresa URL služby Azure OpenAI API, kterou poskytuje Azure. | Ano | |
openai_api_version |
Verze služby Azure OpenAI, která se má využít, určená datem. | Ano | |
openai_deployment_name |
Název prostředku nasazení pro službu Azure OpenAI. | Ano | |
openai_organization |
Volitelné pole pro zadání organizace v OpenAI. | No |
Následující příklad ukazuje, jak vytvořit koncový bod pomocí Azure OpenAI:
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"
}
}
}]
}
)
Vrchol Google Cloud AI
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
private_key |
Toto je privátní klíč pro účet služby, který má přístup ke službě Google Cloud Vertex AI. Přečtěte si osvědčené postupy pro správu klíčů účtu služby. | Ano | |
region |
Jedná se o oblast pro službu Google Cloud Vertex AI. Další podrobnosti najdete v podporovaných oblastech . Některé modely jsou dostupné jenom v konkrétních oblastech. | Ano | |
project_id |
Toto je ID projektu Google Cloud, ke kterému je účet služby přidružený. | Ano |
Amazon Bedrock
Pokud chcete jako externího poskytovatele modelů použít Amazon Bedrock, musí zákazníci zajistit, aby byl v zadané oblasti AWS povolený bedrock a zadaný pár klíčů AWS má příslušná oprávnění pro interakci se službami Bedrock. Další informace najdete v tématu AWS Identity and Access Management.
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
aws_region |
Oblast AWS, která se má použít. Bedrock tam musí být povolen. | Ano | |
aws_access_key_id |
ID přístupového klíče AWS s oprávněními pro interakci se službami Bedrock. | Ano | |
aws_secret_access_key |
Tajný přístupový klíč AWS spárovaný s ID přístupového klíče s oprávněními pro interakci se službami Bedrock. | Ano | |
bedrock_provider |
Základní poskytovatel v Amazon Bedrocku. Mezi podporované hodnoty (nerozlišující malá a velká písmena) patří: Anthropic, Cohere, AI21Labs, Amazon | Ano |
Následující příklad ukazuje, jak vytvořit koncový bod pomocí Amazon Bedrock.
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",
},
}
}
]
},
)
Pokud dojde k problémům s oprávněními AWS, databricks doporučuje ověřit přihlašovací údaje přímo pomocí rozhraní Amazon Bedrock API.
Testovací prostředí AI21
Parametr konfigurace | Popis | Požaduje se | Výchozí |
---|---|---|---|
ai21labs_api_key |
Toto je klíč rozhraní API pro službu AI21 Labs. | Ano |
Dotazování na koncový bod externího modelu
Po vytvoření koncového bodu externího modelu je připravený přijímat provoz od uživatelů.
Žádosti o bodování můžete do koncového bodu odesílat pomocí klienta OpenAI, rozhraní REST API nebo sady SDK pro nasazení MLflow.
- Podívejte se na standardní parametry dotazu pro bodovací požadavek v POST /serving-endpoints/{name}/invocations.
- Modely základu dotazů
Následující příklad dotazuje claude-2
model dokončení hostovaný Anthropic pomocí klienta OpenAI. Pokud chcete použít klienta OpenAI, vyplňte model
pole názvem koncového bodu obsluhujícího model, který je hostitelem modelu, který chcete dotazovat.
Tento příklad používá dříve vytvořený koncový bod nakonfigurovaný anthropic-completions-endpoint
pro přístup k externím modelům od poskytovatele modelu Anthropic. Podívejte se, jak vytvořit koncové body externího modelu.
Další modely, které můžete dotazovat a jejich poskytovatele, najdete v podporovaných modelech .
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)
Očekávaný formát výstupní odpovědi:
{
"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
}
}
Další parametry dotazu
V rámci dotazu můžete předat jakékoli další parametry podporované poskytovatelem koncového bodu.
Příklad:
logit_bias
(podporuje OpenAI, Cohere).top_k
(podporuje Anthropic, Cohere).frequency_penalty
(podporuje OpenAI, Cohere).presence_penalty
(podporuje OpenAI, Cohere).stream
(podporuje OpenAI, Anthropic, Cohere, Amazon Bedrock for Anthropic). Tato možnost je dostupná jenom pro žádosti o chat a dokončení.
Omezení
V závislosti na zvoleném externím modelu může vaše konfigurace způsobit zpracování dat mimo oblast, odkud vaše data pocházejí.
Viz Omezení a oblasti služby Model Serving.
Další materiály
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro