Sdílet prostřednictvím


Vytvoření základního modelu obsluhující koncové body

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

Rozhraní AI Model Obsluha architektury AI 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, Claude od Anthropicu a další.

  • Nejmodernější otevřené základní modely, které zpřístupnilo 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 základního modelu zřízené propustnosti. Viz Vytvoření zřízeného koncového bodu propustnosti pomocí rozhraní REST API.

U základních modelů, které jsou dostupné pomocí rozhraní API pro základní modely s platbami za token, 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, select kartu Obsluha na levém bočním panelu pracovního prostoru. Rozhraní API základního modelu se nacházejí v horní části zobrazení koncových bodů list.

Dotazování na tyto koncové body najdete v tématu základní modely dotazů.

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ář Select obsluhované entity.
    2. Select externí model.
    3. Select poskytovatele modelu, kterého chcete použít.
    4. Klikněte na Potvrdit.
    5. Zadejte název externího modelu, který chcete použít. Formulář se dynamicky aktualizuje na základě vašeho výběru. Podívejte se na dostupné externí modely.
    6. Select typ úkolu. Dostupné úkoly jsou chat, dokončení a vkládání.
    7. Zadejte podrobnosti konfigurace pro přístup k vybranému poskytovateli modelu. Obvykle se jedná o tajný kód, který odkazuje na token patu , který má koncový bod použít pro přístup k tomuto modelu.
  3. Klikněte na Vytvořit. Stránka Obslužné koncové body se zobrazí se stavemobsluhy koncového bodu, který je zobrazený jako Nepřipravený.

Vytvoření koncového bodu obsluhy modelu

REST API

Důležité

Rozhraní REST API parameters pro vytváření koncových bodů obsluhy, které obsluhují externí modely, je ve verzi Public Preview.

Následující příklad vytvoří koncový bod, který obsluhuje první verzi text-embedding-ada-002 modelu, který poskytuje OpenAI.

Viz POST /api/2.0/serving-endpoints pro konfiguraci koncových bodů parameters.

{
  "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 žádostech a odpovědích najdete v tématu schema 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 koncové body pro dokončení a úlohy chatu podle task pole v external_model části konfigurace. Informace o podporovaných modelech najdete v části Externí modely v modelové službě Mosaic AI pro modely a providers pro jednotlivé úlohy.


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",
}

Update model obsluhující koncové body

Po povolení koncového bodu modelu můžete konfiguraci výpočetních prostředků upravit podle potřeby set. 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á update, nelze provést další update. V uživatelském rozhraní obsluhy můžete zrušit probíhající konfiguraci update výběrem Zrušit update 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, obsluhované entity list mohou mít pouze jeden served_entity objekt. Stávající koncové body s existujícími external_model koncovými body nelze aktualizovat, aby již neměly .external_model Pokud je koncový bod vytvořen bez external_model, nemůžete jej update, abyste přidali external_model.

REST API

Chcete-li update váš koncový bod, podívejte se do dokumentace ke konfiguraci rozhraní REST API update pro podrobnosti o požadavku a odpovědi schema.

{
  "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

Chcete-li update váš koncový bod, podívejte se do dokumentace ke konfiguraci rozhraní REST API update pro podrobnosti o požadavku a odpovědi schema.

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