Aracılığıyla paylaş


Uç noktaları sunan üretken yapay zeka modeli oluşturma

Bu makalede, üretken yapay zeka modellerine hizmet veren model sunum uç noktaları oluşturmayı öğreneceksiniz.

Mozaik AI Model Sunma , aşağıdaki temel modelleri destekler:

  • Temel Model API'leri tarafından kullanıma sunulan en yeni açık temel modeller. Bu modeller, iyileştirilmiş çıkarımları destekleyen, seçilmiş temel model mimarileridir. Llama-2-70B-chat, BGE-Large ve Mistral-7B gibi temel modeller, belirteç başına ödeme fiyatlandırmasıyla anında kullanılabilir. Temel veya hassas modeller kullanılarak üretim iş yükleri, sağlanan aktarım hızı kullanılarak performans garantileri ile dağıtılabilir.
  • Dış modeller. Bunlar Databricks dışında barındırılan modellerdir. Dış modellere hizmet veren uç noktalar merkezi olarak yönetilebilir ve müşteriler bunlar için hız sınırları ve erişim denetimi oluşturabilir. Örnek olarak OpenAI GPT-4, Anthropic'in Claude ve diğerleri gibi temel modeller verilebilir.

Model Sunma, uç nokta oluşturmaya hizmet eden model için aşağıdaki seçenekleri sağlar:

  • Sunum Kullanıcı Arabirimi
  • REST API
  • MLflow Dağıtımları SDK'sı

Geleneksel ML veya Python modellerine hizmet veren uç noktalar oluşturmak için bkz . Uç noktaları sunan özel model oluşturma.

Gereksinim -leri

  • Desteklenen bir bölgedeki Databricks çalışma alanı.
  • MLflow Dağıtımları SDK'sını kullanarak uç noktalar oluşturmak için MLflow Dağıtım istemcisini yüklemeniz gerekir. Yüklemek için şunu çalıştırın:
import mlflow.deployments

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

Uç nokta sunan bir temel model oluşturma

Temel Model API'leri tarafından sağlanan aktarım hızı kullanılarak kullanıma sunulan temel modellerin ince ayarlı varyantlarına hizmet veren bir uç nokta oluşturabilirsiniz. Bkz . REST API kullanarak sağlanan aktarım hızı uç noktanızı oluşturma.

Temel Model API'leri belirteç başına ödeme kullanılarak kullanıma sunulan temel modeller için Databricks, Databricks çalışma alanınızda desteklenen modellere erişmek için otomatik olarak belirli uç noktalar sağlar. Bunlara erişmek için çalışma alanının sol kenar çubuğundaki Sunum sekmesini seçin. Temel Model API'leri Uç Noktalar liste görünümünün en üstünde bulunur.

Bu uç noktaları sorgulamak için bkz . Sorgu temeli modelleri.

Uç nokta sunan dış model oluşturma

Aşağıda, Databricks dış modelleri kullanılarak kullanılabilir hale getirici bir yapay zeka modeli sunan bir uç noktanın nasıl oluşturulacağı açıklanmaktadır.

Kullanıcı arabirimi sunma

  1. Ad alanında uç noktanız için bir ad girin.
  2. Sunulan varlıklar bölümünde
    1. Sunulan varlığı seçin formunu açmak için Varlık alanına tıklayın.
    2. Dış model'i seçin.
    3. Kullanmak istediğiniz model sağlayıcısını seçin.
    4. Onayla'ya tıklayın
    5. Kullanmak istediğiniz dış modelin adını belirtin. Form, seçiminize göre dinamik olarak güncelleştirilir. Kullanılabilir dış modellere bakın.
    6. Görev türünü seçin. Kullanılabilir görevler sohbet, tamamlamalar ve eklemelerdir.
    7. Seçili model sağlayıcısına erişmek için yapılandırma ayrıntılarını sağlayın. Bu genellikle uç noktanın bu modele erişmek için kullanmasını istediğiniz kişisel erişim belirtecine başvuran gizli dizidir.
  3. Oluştur’a tıklayın. Sunum uç noktaları sayfası, Sunum uç noktası durumu Hazır Değil olarak gösterilir.

Uç nokta sunan bir model oluşturma

REST API

Önemli

Dış modellere hizmet veren sunum uç noktaları oluşturmaya yönelik REST API parametreleri Genel Önizleme aşamasındadır.

Aşağıdaki örnek, OpenAI tarafından sağlanan modelin ilk sürümüne text-embedding-ada-002 hizmet veren bir uç nokta oluşturur.

Uç nokta yapılandırma parametreleri için bkz . 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"
    }
  ]
}

Aşağıda örnek bir yanıt verilmiştir.

{
  "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 Dağıtımları SDK'sı

Aşağıda, OpenAI text-embedding-ada-002ile eklemeler için bir uç nokta oluşturulur.

Dış model uç noktaları için, kullanmak istediğiniz model sağlayıcısı için API anahtarları sağlamanız gerekir. İstek ve yanıt şeması ayrıntıları için REST API'de POST /api/2.0/serving-endpoints bölümüne bakın. Adım adım kılavuz için bkz . Öğretici: OpenAI modellerini sorgulamak için dış model uç noktaları oluşturma.

Ayrıca, yapılandırmanın bölümündeki alan external_model tarafından task belirtildiği gibi tamamlamalar ve sohbet görevleri için uç noktalar oluşturabilirsiniz. Her görev için desteklenen modeller ve sağlayıcılar için bkz . Mozaik AI Modeli Sunma'daki Dış modeller.


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

Temel model uç noktasını güncelleştirme

Model uç noktasını etkinleştirdikten sonra işlem yapılandırmasını istediğiniz gibi ayarlayabilirsiniz. Modeliniz için ek kaynaklara ihtiyacınız varsa bu yapılandırma özellikle yararlıdır. İş yükü boyutu ve işlem yapılandırması, modelinize hizmet etmek için hangi kaynakların ayrıldığında önemli bir rol oynar.

Yeni yapılandırma hazır olana kadar eski yapılandırma, tahmin trafiği sunmaya devam eder. Devam eden bir güncelleştirme olsa da başka bir güncelleştirme yapılamaz. Sunum kullanıcı arabiriminde, uç noktanın ayrıntılar sayfasının sağ üst kısmındaki güncelleştirmeyi iptal et'i seçerek devam eden bir yapılandırma güncelleştirmesini iptal edebilirsiniz. Bu işlev yalnızca Sunum Kullanıcı Arabirimi'nde kullanılabilir.

bir external_model uç nokta yapılandırmasında mevcut olduğunda, sunulan varlıklar listesinde yalnızca bir served_entity nesnesi olabilir. ile external_model var olan uç noktalar artık ' external_modela sahip olmayacak şekilde güncelleştirilemez. Uç nokta olmadan external_modeloluşturulduysa, bunu bir external_modeleklemek için güncelleştiremezsiniz.

REST API

Temel model uç noktanızı güncelleştirmek için istek ve yanıt şeması ayrıntıları için REST API güncelleştirme yapılandırma belgelerine bakın.

{
  "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 Dağıtımları SDK'sı

Temel model uç noktanızı güncelleştirmek için istek ve yanıt şeması ayrıntıları için REST API güncelleştirme yapılandırma belgelerine bakın.

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

Ek kaynaklar