Sdílet prostřednictvím


Vytvořte koncové body pro obsluhu základního modelu

V tomto článku se dozvíte, jak vytvořit model obsluhující koncové body, které nasazují a obsluhují základní modely.

Mosaic AI Model nasazení podporuje následující modely:

  • Externí modely. Jedná se o základní 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 od OpenAI a Claude od Anthropicu.
  • Špičkové otevřené základní modely zpřístupněné prostřednictvím 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 Meta-Llama-3.1-70B-Instruct, GTE-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.

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

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

Vytvoření základního modelu obsluhujícího koncový bod

Můžete vytvořit koncový bod, který obsluhuje jemně vyladěné varianty základních modelů zpřístupněných pomocí rozhraní API modelu Foundation zřízenou propustnost. Viz Vytvoření zřízeného koncového bodu propustnosti pomocí rozhraní REST API.

Pro základní modely, které jsou zpřístupněny pomocí rozhraní API pro základní modely průběžných plateb , Databricks automaticky poskytuje konkrétní koncové body pro přístup k podporovaným modelům v pracovním prostoru Databricks. Pokud k nim chcete získat přístup, vyberte kartu Obsluha v levém bočním panelu pracovního prostoru. Rozhraní API základního modelu se nacházejí v horní části zobrazení seznamu koncových bodů.

Dotazy na tyto koncové body najdete v tématu Použití základních modelů.

Vytvoření externího modelu obsluhujícího koncový bod

Následující článek popisuje, jak vytvořit koncový bod, který se dotazuje na základní model zpřístupněný pomocí externích modelů Databricks.

Obsluha uživatelského rozhraní

  1. Do pole Název zadejte název vašeho koncového bodu.
  2. V části Obsluhované entity
    1. Kliknutím do pole Entita otevřete formulář Výběr obsluhované entity.
    2. Vyberte základní modely.
    3. V poli Vyberte základní model vyberte zprostředkovatele modelu, kterého chcete použít, z těch uvedených v části Externí poskytovatelé modelů. Formulář se dynamicky aktualizuje na základě výběru zprostředkovatele modelu.
    4. Klikněte na tlačítko Potvrdit.
    5. Zadejte podrobnosti konfigurace pro přístup k vybranému poskytovateli modelu. Obvykle se jedná o tajný kód, který odkazuje na osobní přístupový token, který chcete použít pro to, aby k tomuto modelu přistupoval koncový bod.
    6. Vyberte úkol. Dostupné úkoly jsou chat, dokončení a vkládání.
    7. Vyberte název externího modelu, který chcete použít. Seznam modelů se dynamicky aktualizuje na základě výběru úkolu. Podívejte se na dostupné externí modely.
  3. Klikněte na Vytvořit. Stránka Obslužné koncové body se zobrazí se stavem Obsluhy koncového bodu, který je zobrazený jako Není připravený.

Vytvořte koncový bod pro obsluhu modelu

REST API

Důležité

Parametry rozhraní REST API pro vytváření koncových bodů obsluhy, které obsluhují externí 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 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ů externí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. Podrobný průvodce najdete v tématu Kurz: Vytvoření koncových bodů externího modelu pro dotazování modelů OpenAI.

Můžete také vytvořit end pointy pro dokončovací a chatovací úlohy, jak je uvedeno task v poli external_model části konfigurace. Informace o podporovaných modelech a poskytovatelích pro jednotlivé úlohy najdete v tématu Externí modely v rámci obsluhy modelů Mosaic AI.


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 modelu obsluhující koncové body

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.

Pokud je external_model v konfiguraci koncového bodu, seznam obsluhovaných entit může mít pouze jeden served_entity objekt. Stávající koncové body s external_model nelze aktualizovat, aby už neměly external_model. Pokud je koncový bod vytvořen bez external_model, nemůžete ho aktualizovat a přidat external_model.

REST API

Informace o aktualizaci vašeho koncového bodu naleznete v dokumentaci k aktualizaci konfigurace REST API , kde jsou podrobnosti o 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 vašeho koncového bodu naleznete v dokumentaci k aktualizaci konfigurace REST API , kde jsou podrobnosti o 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