Basismodel maken voor eindpunten
In dit artikel leert u hoe u een model maakt dat eindpunten biedt die basismodellen implementeren en bedienen.
Mosaic AI Model Serving ondersteunt de volgende modellen:
- Externe modellen. Dit zijn basismodellen die buiten Databricks worden gehost. Eindpunten die externe modellen dienen, kunnen centraal worden beheerd en klanten kunnen frequentielimieten en toegangsbeheer voor hen vaststellen. Voorbeelden hiervan zijn basismodellen zoals GPT-4 van OpenAI en Tropic's Claude.
- Geavanceerde open basismodellen die beschikbaar worden gesteld door de Foundation Model-API's. Deze modellen zijn gecureerde basismodelarchitecturen die geoptimaliseerde deductie ondersteunen. Basismodellen, zoals Meta-Llama-3.1-70B-Instruct, GTE-Large en Mistral-7B, zijn beschikbaar voor direct gebruik met prijzen voor betalen per token . Productieworkloads, met behulp van basis- of nauwkeurig afgestemde modellen, kunnen met prestatiegaranties worden geïmplementeerd dankzij geconfigureerde doorvoer.
Model serving biedt de volgende opties voor het maken van een eindpunt voor het model:
- De dienstverlenende gebruikersinterface
- REST-API
- MLflow Deployments SDK
Zie Aangepaste modelserve-eindpunten maken voor traditionele machine learning- of Python-modellen.
Eisen
- Een Databricks-werkruimte in een ondersteunde regio.
- Voor het maken van eindpunten met behulp van de MLflow Deployments SDK moet u de MLflow Deployment-client installeren. Voer de volgende opdracht uit om deze te installeren:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Een basismodel maken voor eindpunt
U kunt een eindpunt maken dat afgesteld is voor het bedienen van verfijnde varianten van foundation-modellen die beschikbaar worden gesteld via Foundation Model-API's geprovisioneerde doorvoer. Zie Uw ingerichte doorvoereindpunt maken met behulp van de REST API.
Voor basismodellen die beschikbaar worden gesteld met behulp van Foundation Model-API's betalen per token, biedt Databricks automatisch specifieke eindpunten voor toegang tot de ondersteunde modellen in uw Databricks-werkruimte. Als u deze wilt openen, selecteert u het tabblad Serveren in de linkerzijbalk van de werkruimte. De Foundation Model API's bevinden zich bovenaan in de lijstweergave van eindpunten.
Zie Query Foundation-modellenvoor het uitvoeren van query's op deze eindpunten.
Een extern model maken voor eindpunt
Hieronder wordt beschreven hoe u een eindpunt maakt dat een query uitvoert op een basismodel dat beschikbaar is gemaakt met behulp van externe Databricks-modellen.
Gebruikersinterface leveren
- Geef in het veld Naam een naam op voor uw eindpunt.
- In de sectie Geserveerde entiteiten
- Klik in het veld Entiteit om het formulier Geselecteerde entiteit selecteren te openen.
- Selecteer Foundation-modellen.
- In het veld Selecteer een basismodel selecteert u de modelprovider die u wilt gebruiken uit de lijst met Externe modelproviders. Het formulier wordt dynamisch bijgewerkt op basis van de selectie van uw modelprovider.
- Klik op Bevestigen.
- Geef de configuratiedetails op voor toegang tot de geselecteerde modelprovider. Dit is meestal het geheim dat verwijst naar het persoonlijke toegangstoken dat u wilt dat het eindpunt gebruikt om toegang te krijgen tot dit model.
- Selecteer de taak. Beschikbare taken zijn chat, tekstaanvulling en embeddingstaken.
- Selecteer de naam van het externe model dat u wilt gebruiken. De lijst met modellen wordt dynamisch bijgewerkt op basis van uw taakselectie. Bekijk de beschikbare externe modellen.
- Klik op Create. De pagina Eindpunten voor het serveren verschijnt met de status van het servereindpunt als Niet klaar.
REST-API
Belangrijk
De REST API-parameters voor het maken van eindpunten voor het aanbieden van externe modellen bevinden zich in Openbare Preview.
In het volgende voorbeeld wordt een eindpunt gemaakt dat de eerste versie van het text-embedding-ada-002
model van OpenAI gebruikt.
Zie POST /api/2.0/serving-endpoints voor eindpuntconfiguratieparameters.
{
"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"
}
]
}
Hier volgt een voorbeeld van een antwoord.
{
"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
}
MLflow Deployments SDK
Hieronder wordt een eindpunt gemaakt voor insluitingen met OpenAI text-embedding-ada-002
.
Voor eindpunten van externe modellen moet u API-sleutels opgeven voor de modelprovider die u wilt gebruiken. Zie POST /api/2.0/serving-endpoints in de REST API voor details van het aanvraag- en antwoordschema. Zie Zelfstudie: Externe modeleindpunten maken om query's uit te voeren op OpenAI-modellen voor een stapsgewijze handleiding.
U kunt ook eindpunten maken voor voltooiingen en chattaken, zoals opgegeven in het task
veld in de external_model
sectie van de configuratie. Zie Externe modellen in Mozaïek AI-model met voor ondersteunde modellen en providers voor elke taak.
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",
}
model bijwerken voor eindpunten
Nadat u een modeleindpunt hebt ingeschakeld, kunt u de rekenconfiguratie naar wens instellen. Deze configuratie is met name handig als u aanvullende resources nodig hebt voor uw model. Workloadgrootte en rekenconfiguratie spelen een belangrijke rol in de resources die worden toegewezen voor het leveren van uw model.
Totdat de nieuwe configuratie gereed is, blijft de oude configuratie voorspellingsverkeer leveren. Hoewel er een update wordt uitgevoerd, kan er geen andere update worden uitgevoerd. In de gebruikersinterface kunt u een lopende configuratie-update annuleren door Update annuleren te selecteren rechtsboven op de detailpagina van het eindpunt. Deze functionaliteit is alleen beschikbaar in de Serving UI.
Wanneer een external_model
aanwezig is in een eindpuntconfiguratie, kan de lijst met weergegeven entiteiten slechts één served_entity object hebben. Bestaande eindpunten met een external_model
kunnen niet worden bijgewerkt zodat ze niet langer een external_model
hebben. Als het eindpunt wordt gemaakt zonder een external_model
, kunt u het niet bijwerken om een external_model
toe te voegen.
REST-API
Als u uw eindpunt wilt bijwerken, raadpleegt u de REST API-documentatie updateconfiguratiedocumentatie voor details van het aanvraag- en antwoordschema.
{
"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}}"
}
}
}
]
}
MLflow Deployments SDK
Als u uw eindpunt wilt bijwerken, raadpleegt u de REST API-documentatie updateconfiguratiedocumentatie voor details van het aanvraag- en antwoordschema.
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,
}
],
}