Sdílet prostřednictvím


Vytvoření generování modelů AI obsluhujících koncové body

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

Rozhraní AI Model Obsluha architektury AI podporuje následující modely:

  • Externí modely. Jedná se o generující 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ří generativní modely AI, jako jsou GPT-4 OpenAI, AnthropicŮv Clauda 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, vyberte 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í seznamu koncových bodů.

Dotazy na tyto koncové body najdete v tématu Dotazování generující modely AI.

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

Následující článek popisuje, jak vytvořit koncový bod, který obsluhuje model generující umělé inteligence 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ář obsluhované entity Select.
    2. Vyberte Externí model.
    3. Vyberte 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. Vyberte 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 stavem obsluhy koncového bodu, který je zobrazený jako Nepřipravený.

Vytvoření koncového bodu obsluhy 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 tématu 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 koncové body pro dokončení a úlohy chatu podle task pole v external_model části konfigurace. Podívejte se na externí modely ve službě Mosaic AI Model Obsluha podporovaných modelů a poskytovatelů 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",
}

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.

external_model Pokud se nachází v konfiguraci koncového bodu, seznam obsluhovaných entit může 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 an external_model, nemůžete ho aktualizovat a přidat .external_model

REST API

Informace o aktualizaci koncového bodu najdete v dokumentaci ke konfiguraci aktualizace rozhraní REST API pro podrobnosti 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 koncového bodu najdete v dokumentaci ke konfiguraci aktualizace rozhraní REST API pro podrobnosti 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