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, Claude van Antropic en andere.
State-of-the-art open basismodellen die beschikbaar worden gesteld door 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 basismodellen of nauwkeurig afgestemde modellen, kunnen worden geïmplementeerd met prestatiegaranties met behulp van ingerichte doorvoer.
Model serving biedt de volgende opties voor het maken van een eindpunt voor het model:
- De ondersteunende gebruikersinterface
- REST-API
- MLflow Deployments SDK
Zie Aangepaste modellen maken die eindpunten leveren voor eindpunten voor het maken van eindpunten voor traditionele ML- 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 een nauwkeurig afgestemde variant van basismodellen gebruikt die beschikbaar worden gemaakt met behulp van foundationmodel-API's die zijn ingericht voor doorvoer. Zie Uw ingerichte doorvoereindpunt maken met behulp van de REST API.
Voor basismodellen die beschikbaar worden gesteld met behulp van foundationmodel-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 boven aan de eindpuntenlijstweergave.
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 bedienen
- 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 extern model.
- Selecteer de modelprovider die u wilt gebruiken.
- Klik op Bevestigen
- Geef de naam op van het externe model dat u wilt gebruiken. Het formulier wordt dynamisch bijgewerkt op basis van uw selectie. Bekijk de beschikbare externe modellen.
- Selecteer het taaktype. Beschikbare taken zijn chat-, voltooiings- en insluitingen.
- Geef de configuratiedetails op voor toegang tot de geselecteerde modelprovider. Dit is meestal het geheim dat verwijst naar het persoonlijke toegangstoken dat u wilt gebruiken voor toegang tot dit model.
- Klik op Create. De pagina Eindpunten voor het serveren wordt weergegeven met de status Van het servereindpunt die wordt weergegeven als Niet gereed.
REST-API
Belangrijk
De REST API-parameters voor het maken van service-eindpunten voor het aanbieden van externe modellen zijn 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 serverinterface 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 gebruikersinterface van De server.
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 external_model
geen . 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,
}
],
}