Vytvoření základního modelu obsluhující koncové body
V tomto článku se dozvíte, jak vytvořit model obsluhující koncové body, které obsluhují základní modely.
Služba Databricks Model Serving podporuje následující základní modely:
- Nejmodernější otevřené modely, které zpřístupnilo rozhraní API základních modelů. Tyto modely jsou kurátorované základní architektury modelů, které podporují optimalizované odvozování. Základní modely, jako je Llama-2-70B-chat, BGE-Large a Mistral-7B, jsou k dispozici pro okamžité použití s cenami plateb za token . Produkční úlohy, které používají základní nebo jemně vyladěné modely, je možné nasadit s zárukami výkonu pomocí zřízené propustnosti.
- Externí modely. Jedná se o modely hostované mimo Databricks. Koncové body, které obsluhují externí modely, se dají centrálně řídit a zákazníci pro ně můžou stanovit omezení rychlosti a řízení přístupu. Mezi příklady patří základní modely, jako je GPT-4 OpenAI, Anthropic Clauda a další.
Obsluha modelu poskytuje následující možnosti pro vytváření koncových bodů obsluhy modelu:
- Uživatelské rozhraní obsluhy
- REST API
- Sada SDK pro nasazení MLflow
Vytváření koncových bodů, které obsluhují tradiční modely ML nebo Pythonu, najdete v tématu Vytvoření vlastního modelu obsluhující koncové body.
Požadavky
- Pracovní prostor Databricks v podporované oblasti
- Pokud chcete vytvářet koncové body pomocí sady SDK pro nasazení MLflow, musíte nainstalovat klienta nasazení MLflow. Pokud ho chcete nainstalovat, spusťte:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Vytvoření základního modelu obsluhujícího koncový bod
Následující článek popisuje, jak vytvořit koncový bod, který obsluhuje základní model zpřístupněný pomocí externích modelů Databricks. Koncové body, které obsluhují jemně vyladěné varianty modelů zpřístupněných pomocí rozhraní API pro základní modely, najdete v tématu Vytvoření zřízeného koncového bodu propustnosti pomocí rozhraní REST API.
Obsluha uživatelského rozhraní
- Do pole Název zadejte název vašeho koncového bodu.
- V části Obsluhované entity
- Kliknutím do pole Entita otevřete formulář obsluhované entity Select.
- Vyberte Externí model.
- Vyberte poskytovatele modelu, kterého chcete použít.
- Klikněte na Potvrdit.
- Zadejte název externího modelu, který chcete použít. Formulář se dynamicky aktualizuje na základě vašeho výběru. Podívejte se na dostupné externí modely.
- Vyberte typ úkolu. Dostupné úkoly jsou chat, dokončení a vkládání.
- Zadejte podrobnosti konfigurace pro přístup k vybranému poskytovateli modelu. Obvykle se jedná o tajný kód, který odkazuje na token patu , který má koncový bod použít pro přístup k tomuto modelu.
- Klikněte na Vytvořit. Stránka Obslužné koncové body se zobrazí se stavemobsluhy koncového bodu, který je zobrazený jako Nepřipravený.
Rozhraní REST API
Důležité
Parametry rozhraní REST API pro vytváření koncových bodů obsluhy, které obsluhují základní modely, jsou ve verzi Public Preview.
Následující příklad vytvoří koncový bod, který obsluhuje první verzi text-embedding-ada-002
modelu, který poskytuje OpenAI.
Parametry konfigurace koncového bodu najdete v tématu POST /api/2.0/serving-endpoints .
{
"name": "openai_endpoint",
"config":{
"served_entities": [
{
"name": "openai_embeddings",
"external_model":{
"name": "text-embedding-ada-002",
"provider": "openai",
"task": "llm/v1/embeddings",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
},
"rate_limits": [
{
"calls": 100,
"key": "user",
"renewal_period": "minute"
}
],
"tags": [
{
"key": "team",
"value": "gen-ai"
}
]
}
Následuje příklad odpovědi.
{
"name": "openai_endpoint",
"creator": "user@email.com",
"creation_timestamp": 1699617587000,
"last_updated_timestamp": 1699617587000,
"state": {
"ready": "READY"
},
"config": {
"served_entities": [
{
"name": "openai_embeddings",
"external_model": {
"provider": "openai",
"name": "text-embedding-ada-002",
"task": "llm/v1/embeddings",
"openai_config": {
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
},
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1699617587000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "openai_embeddings",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "gen-ai"
}
],
"id": "69962db6b9db47c4a8a222d2ac79d7f8",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
Sada SDK pro nasazení Mlflow
Následující kód vytvoří koncový bod pro vkládání pomocí OpenAI text-embedding-ada-002
.
U koncových bodů základního modelu musíte zadat klíče rozhraní API pro poskytovatele modelu, kterého chcete použít. Podrobnosti o schématu požadavků a odpovědí najdete v tématu POST /api/2.0/serving-endpoints v rozhraní REST API.
Můžete také vytvořit koncové body pro dokončení a úlohy chatu podle task
pole v external_model
části konfigurace. Podívejte se na externí modely v Databricks Model Obsluha podporovaných modelů a poskytovatelů pro jednotlivé úlohy.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="chat",
config={
"served_entities": [
{
"name": "completions",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chat",
"creator": "alice@company.com",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
Aktualizace koncového bodu základního modelu
Po povolení koncového bodu modelu můžete podle potřeby nastavit konfiguraci výpočetních prostředků. Tato konfigurace je užitečná zejména v případě, že potřebujete další prostředky pro váš model. Velikost úloh a konfigurace výpočetních prostředků hrají klíčovou roli v tom, jaké prostředky se přidělují pro poskytování modelu.
Dokud nebude nová konfigurace připravená, stará konfigurace bude dál obsluhovat predikční provoz. Zatímco probíhá aktualizace, nelze provést jinou aktualizaci. V uživatelském rozhraní obsluhy můžete probíhající aktualizaci konfigurace zrušit výběrem možnosti Zrušit aktualizaci v pravém horním rohu stránky podrobností koncového bodu. Tato funkce je k dispozici pouze v uživatelském rozhraní obsluhy.
external_model
Pokud se nachází v konfiguraci koncového bodu, seznam obsluhovaných entit může mít pouze jeden served_entity objekt. Stávající koncové body s existujícími external_model
koncovými body nelze aktualizovat, aby již neměly .external_model
Pokud je koncový bod vytvořen bez an external_model
, nemůžete ho aktualizovat a přidat .external_model
Rozhraní REST API
Informace o aktualizaci koncového bodu základního modelu najdete v dokumentaci ke konfiguraci aktualizace rozhraní REST API pro podrobnosti schématu požadavků a odpovědí.
{
"name": "openai_endpoint",
"served_entities":[
{
"name": "openai_chat",
"external_model":{
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
}
Sada SDK pro nasazení Mlflow
Informace o aktualizaci koncového bodu základního modelu najdete v dokumentaci ke konfiguraci aktualizace rozhraní REST API pro podrobnosti schématu požadavků a odpovědí.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.update_endpoint(
endpoint="chat",
config={
"served_entities": [
{
"name": "chats",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chats",
"creator": "alice@company.com",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
rate_limits = client.update_endpoint(
endpoint="chat",
config={
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
},
)
assert rate_limits == {
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
}
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