Delen via


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

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

  1. Geef in het veld Naam een naam op voor uw eindpunt.
  2. In de sectie Geserveerde entiteiten
    1. Klik in het veld Entiteit om het formulier Geselecteerde entiteit selecteren te openen.
    2. Selecteer extern model.
    3. Selecteer de modelprovider die u wilt gebruiken.
    4. Klik op Bevestigen
    5. 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.
    6. Selecteer het taaktype. Beschikbare taken zijn chat-, voltooiings- en insluitingen.
    7. 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.
  3. Klik op Create. De pagina Eindpunten voor het serveren wordt weergegeven met de status Van het servereindpunt die wordt weergegeven als Niet gereed.

Een eindpunt voor het leveren van een model maken

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_modelgeen . Als het eindpunt wordt gemaakt zonder een external_model, kunt u het niet bijwerken om een external_modeltoe 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,
        }
    ],
}

Aanvullende bronnen