Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du distribuerar modeller med Foundation Model API:er och tilldelad genomströmning. Databricks rekommenderar etablerat dataflöde för produktionsarbetsbelastningar och ger optimerad slutsatsdragning för grundmodeller med prestandagarantier.
Vad är tilldelad överföringskapacitet?
När du skapar en etablerad dataflödesmodell som betjänar slutpunkten på Databricks allokerar du dedikerad slutsatsdragningskapacitet för att säkerställa konsekvent dataflöde för den grundmodell som du vill hantera. Modellbetjäningens slutpunkter som betjänar basmodeller kan provisioneras i segment av modellenheter. Med antalet modellenheter som du allokerar kan du köpa exakt det dataflöde som krävs för att på ett tillförlitligt sätt stödja ditt GenAI-produktionsprogram.
Obs
Modell som betjänar slutpunkter som hanterar modeller från följande modellfamiljer etablerar slutsatsdragningskapacitet baserat på token per sekund-band:
- Meta Llama 3.3
- Meta Llama 3.2 3B
- Meta Llama 3.2 1B
- Meta Llama 3.1
- GTE v1.5 (engelska)
- BGE v1.5 (engelska)
- DeepSeek R1 (inte tillgängligt i Unity Catalog)
- Meta Llama 3
- Meta Llama 2
- DBRX
- Mistral
- Mixtral
- MPT
- Se Grundmodeller som stöds i Mosaic AI Model Serving för en lista över modellarkitekturer som stöds för etablerade dataflödesslutpunkter.
Modellenheter i etablerat dataflöde
Modellenheter är en dataflödesenhet som avgör hur mycket arbete slutpunkten kan hantera per minut. När du skapar en ny etablerad dataflödesslutpunkt anger du hur många modellenheter som ska etableras för varje modell som hanteras.
Hur mycket arbete som krävs för att bearbeta varje begäran till slutpunkten beror på storleken på både indata och genererade utdata. När antalet in- och utdatatoken ökar ökar också mängden arbete som krävs för att bearbeta en begäran. Det är mer resurskrävande att generera utdatatoken än att bearbeta indatatoken. Det arbete som krävs för varje begäran växer på ett icke-linjärt sätt när antalet indata- eller utdatatoken ökar, vilket innebär att slutpunkten kan hantera antingen för en viss mängd modellenheter:
- Flera små begäranden i taget.
- Färre begäranden med lång kontext vid tidpunkten innan kapaciteten tar slut.
Eller ett mer konkret exempel för en medelstor arbetsbelastning med 3 500 indatatoken och 300 utdatatoken kan du uppskatta token per sekund-dataflöde för ett visst antal modellenheter:
| Modell | Modellenheter | Uppskattade token per sekund |
|---|---|---|
| Llama 4 Maverick | 50 | 3250 |
Följande modeller använder modellenheter för att etablera slutsatsdragningskapacitet:
- OpenAI GPT OSS 120B
- OpenAI GPT OSS 20B
- Google Gemma 3 12B
- Meta Llama 4 Maverick
Krav
Se krav. Information om hur du distribuerar finjusterade grundmodeller finns i Distribuera finjusterade grundmodeller.
[Rekommenderas] Distribuera grundmodeller från Unity Catalog
Viktig
Den här funktionen finns i offentlig förhandsversion.
Databricks rekommenderar att du använder grundmodellerna som är förinstallerade i Unity Catalog. Du hittar dessa modeller under katalogen system i schemat ai (system.ai).
För att implementera en grundmodell:
- Gå till
system.aii Katalogutforskaren. - Klicka på namnet på modellen som ska distribueras.
- På modellsidan klickar du på knappen Servera den här modellen.
- Sidan Skapa tjänstslutpunkt visas. Se Skapa din etablerade dataflödesslutpunkt med hjälp av användargränssnittet.
Obs
Om du vill distribuera en Meta Llama-modell från system.ai i Unity Catalog måste du välja tillämplig Instruera version. Basversioner av Meta Llama-modeller stöds inte för distribution från system.ai i Unity Catalog. Se Foundation-modeller som finns på Meta Llama-modellvarianter som stöds av Databricks.
Distribuera grundmodeller från Databricks Marketplace
Du kan också installera grundmodeller i Unity Catalog från Databricks Marketplace.
Du kan söka efter en modellfamilj och från modellsidan kan du välja Få åtkomst och ange inloggningsuppgifter för att installera modellen i Unity Catalog.
När modellen har installerats i Unity Catalog kan du skapa en modell som betjänar slutpunkten med hjälp av användargränssnittet för servering.
Distribuera finjusterade grundmodeller
Om du inte kan använda modellerna i system.ai-schemat eller installera modeller från Databricks Marketplace kan du distribuera en finjusterad grundmodell genom att logga den till Unity Catalog. Det här avsnittet och följande avsnitt visar hur du konfigurerar koden för att logga en MLflow-modell till Unity Catalog och skapa din etablerade dataflödesslutpunkt med hjälp av antingen användargränssnittet eller REST-API:et.
Se Foundation-modeller som finns på Databricks för meta llama 3.1, 3.2 och 3.3 finjusterade modeller och deras regiontillgänglighet.
Krav
- Distribution av finjusterade grundmodeller stöds endast av MLflow 2.11 eller senare. Databricks Runtime 15.0 ML och senare förinstallerar den kompatibla MLflow-versionen.
- Databricks rekommenderar att du använder modeller i Unity Catalog för snabbare uppladdning och nedladdning av stora modeller.
Definiera katalog-, schema- och modellnamn
Om du vill distribuera en finjusterad grundmodell definierar du målkatalogen för Unity Catalog, schemat och det modellnamn du väljer.
mlflow.set_registry_uri('databricks-uc')
CATALOG = "catalog"
SCHEMA = "schema"
MODEL_NAME = "model_name"
registered_model_name = f"{CATALOG}.{SCHEMA}.{MODEL_NAME}"
Logga din modell
För att aktivera förberedd genomströmning för din modellslutpunkt måste du logga din modell med hjälp av MLflow transformers flavor och ange argumentet task med lämpligt modelltypgränssnitt från följande alternativ:
"llm/v1/completions""llm/v1/chat""llm/v1/embeddings"
Dessa argument anger API-signaturen som används för modellens serverdelsslutpunkt. Mer information om dessa uppgifter och motsvarande indata-/utdatascheman finns i MLflow-dokumentationen.
Följande är ett exempel på hur du loggar en textkompletteringsspråkmodell som loggats med MLflow:
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.3-70B-Instruct", torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.3-70B-Instruct")
with mlflow.start_run():
components = {
"model": model,
"tokenizer": tokenizer,
}
mlflow.transformers.log_model(
transformers_model=components,
artifact_path="model",
# Specify the llm/v1/xxx task that is compatible with the model being logged
task="llm/v1/completions",
# Specify an input example that conforms to the input schema for the task.
input_example={"prompt": np.array(["Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\nWhat is Apache Spark?\n\n### Response:\n"])},
# By passing the model name, MLflow automatically registers the Transformers model to Unity Catalog with the given catalog/schema/model_name.
registered_model_name=registered_model_name
# Optionally, you can set save_pretrained to False to avoid unnecessary copy of model weight and gain more efficiency.
save_pretrained=False
)
Obs
Om du använder MLflow tidigare än 2.12 måste du ange uppgiften i metadata parametern för samma mlflow.transformer.log_model() funktion i stället.
metadata = {"task": "llm/v1/completions"}metadata = {"task": "llm/v1/chat"}metadata = {"task": "llm/v1/embeddings"}
Etablerat dataflöde stöder även både bas- och stora GTE-inbäddningsmodeller. Följande är ett exempel på hur du loggar modellen Alibaba-NLP/gte-large-en-v1.5 så att den kan hanteras med etablerat dataflöde:
model = AutoModel.from_pretrained("Alibaba-NLP/gte-large-en-v1.5")
tokenizer = AutoTokenizer.from_pretrained("Alibaba-NLP/gte-large-en-v1.5")
with mlflow.start_run():
components = {
"model": model,
"tokenizer": tokenizer,
}
mlflow.transformers.log_model(
transformers_model=components,
artifact_path="model",
task="llm/v1/embeddings",
registered_model_name=registered_model_name,
# model_type is required for logging a fine-tuned BGE models.
metadata={
"model_type": "gte-large"
}
)
När modellen har loggats i Unity Catalog fortsätter du på Skapa din etablerade dataflödesslutpunkt med hjälp av användargränssnittet för att skapa en modell som betjänar slutpunkten med etablerat dataflöde.
Skapa din etablerade dataflödesslutpunkt med hjälp av användargränssnittet
När den loggade modellen finns i Unity Catalog skapar du en etablerad dataflödesserverslutpunkt med följande steg:
- Gå till servicegränssnittet i din arbetsyta.
- Välj Skapa tjänsteslutpunkt.
- I fältet Entitet väljer du din modell från Unity Catalog. För berättigade modeller visar användargränssnittet för den betjänade entiteten skärmen Konfigurerad Genomströmning.
- I listrutan Upp till kan du konfigurera det maximala dataflödet för token per sekund för slutpunkten.
- Tilldelade dataflödesslutpunkter skalas automatiskt, så att du kan välja Ändra för att visa det minsta antalet tokens per sekund som slutpunkten kan minskas till.
Skapa din provisionerade genomströmningsslutpunkt med REST API
Om du vill distribuera din modell i etablerat dataflödesläge med hjälp av REST-API:et måste du ange min_provisioned_throughput och max_provisioned_throughput fält i din begäran. Om du föredrar Python kan du också skapa en slutpunkt med MLflow Deployment SDK.
Information om hur du identifierar lämpligt intervall med etablerat dataflöde för din modell finns i Hämta etablerat dataflöde i steg.
import requests
import json
# Set the name of the MLflow endpoint
endpoint_name = "prov-throughput-endpoint"
# Name of the registered MLflow model
model_name = "ml.llm-catalog.foundation-model"
# Get the latest version of the MLflow model
model_version = 3
# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"
headers = {"Context-Type": "text/json", "Authorization": f"Bearer {API_TOKEN}"}
optimizable_info = requests.get(
url=f"{API_ROOT}/api/2.0/serving-endpoints/get-model-optimization-info/{model_name}/{model_version}",
headers=headers)
.json()
if 'optimizable' not in optimizable_info or not optimizable_info['optimizable']:
raise ValueError("Model is not eligible for provisioned throughput")
chunk_size = optimizable_info['throughput_chunk_size']
# Minimum desired provisioned throughput
min_provisioned_throughput = 2 * chunk_size
# Maximum desired provisioned throughput
max_provisioned_throughput = 3 * chunk_size
# Send the POST request to create the serving endpoint
data = {
"name": endpoint_name,
"config": {
"served_entities": [
{
"entity_name": model_name,
"entity_version": model_version,
"min_provisioned_throughput": min_provisioned_throughput,
"max_provisioned_throughput": max_provisioned_throughput,
}
]
},
}
response = requests.post(
url=f"{API_ROOT}/api/2.0/serving-endpoints", json=data, headers=headers
)
print(json.dumps(response.json(), indent=4))
Logaritmisk sannolikhet för chattkompletteringsuppgifter
För uppgifter om chattens slutförande kan du använda parametern logprobs för att ange den logaritmiska sannolikheten för att en token samplas som en del av processen för att generera stora språkmodeller. Du kan använda logprobs för en mängd olika scenarier, till exempel klassificering, utvärdering av modellosäkerhet och körning av utvärderingsmått. Mer information om parametern finns i Chattaktivitet.
Hämta allokerad genomströmning i steg
Tilldelad genomströmning är tillgänglig i steg om token per sekund, där specifika steg varierar beroende på modell. För att identifiera det lämpliga intervallet för dina behov rekommenderar Databricks att du använder API:et för modelloptimeringsinformation på plattformen.
GET api/2.0/serving-endpoints/get-model-optimization-info/{registered_model_name}/{version}
Följande är ett exempelsvar från API:et:
{
"optimizable": true,
"model_type": "llama",
"throughput_chunk_size": 1580
}
Anteckningsboksexempel
Följande anteckningsböcker visar exempel på hur man skapar ett API för allokerad genomströmning för Foundation Model.
Etablerad dataflödesserver för GTE-modellanteckningsbok
Reserverad genomströmning för BGE-modellens bärbara dator
Följande notebook-fil visar hur du kan ladda ned och registrera DeepSeek R1 destillerad Llama-modell i Unity Catalog, så att du kan distribuera den genom Foundation Model API:er via en slutpunkt för tilldelad bandbredd.
Tilldelad datakapacitet för användning med DeepSeek R1-destillerad Llama-modellnotebook
Begränsningar
- Modellutplaceringen kan misslyckas på grund av problem med GPU-kapaciteten, vilket resulterar i en timeout när slutpunkten skapas eller uppdateras. Kontakta ditt Databricks-kontoteam för att lösa problemet.
- Automatisk skalning för Foundation Models API:er är långsammare än modellbetjäning med processor. Databricks rekommenderar överprovisionering för att undvika begärandetidsgränser.
- GTE v1.5 (engelska) genererar inte normaliserade inbäddningar.