Özel model hizmetleri

Model hizmeti, çıkarım isteklerini bir veya daha fazla modele çeviren ve yönlendiren, trafik bölünmesi ve geri dönüş sağlayan bir uç noktadır. Gerçek zamanlı istekler ve toplu çıkarım desteği sağlar.

Aşağıdaki gibi kullanım durumları için özel bir model hizmeti oluşturun:

  • Bir uygulama için modelden bağımsız bir uç nokta. Bir müşteri destek asistanına adında production.ai.support-assistantbir hizmet verin. Uygulamanın çağırdığı adı değiştirmeden altta yatan modeli değiştirin.
  • Özel yönlendirme ve yedek önlemler. Daha geniş çaplı bir kullanıma alma öncesinde trafiğin %10’unu yeni bir modele yönlendirmek için trafik bölme özelliğini kullanın veya başarısız istekler için yedek bir hedef yapılandırın.
  • Bir iş yükü için bir bütçe. Bir hizmeti project=support-assistant etiketleyin ve o etikete aylık bir bütçe tanımlayın; harcama 1.000 ABD dolarına ulaştığında bir uyarı alın.
  • Bir takım için erişim kontrolleri. Hukuk ekibine ve başvuru hizmeti yöneticilerine bir legal-review hizmete erişim izni verin ve diğer ekipler için ayrı hizmetler kullanın.
  • Bir iş yükü için hız sınırları. Hizmet hızı sınırlarını kullanarak dakikada 100 istek için bir test servisi ve dakikada 1.000 istek için bir üretim hizmeti yapılandırın.
  • İzleme ve kayıtları ayrı yapın. Destek asistanının taleplerini ve yanıtlarını, trafiğinin kodlama ajanı trafiğinden ayrı incelenebilmesi için özel bir çıkarım tablosuna gönderin.

Azure Databricks tarafından hizmet verilen bir temel modeli hizmet oluşturmadan sorgulamak için, içinde sistem tarafından sağlanan model servisisystem.aikullanın.

Bir servis, Azure Databricks tarafından sunulan modellere kullandıkça öde veya ayrılmış aktarım hızı kullanarak ya da harici modellere bir model sağlayıcısı aracılığıyla yönlendirebilir. Bu destinasyonları tek bir hizmette karıştırabilirsiniz.

Özel model hizmetleri, Unity Catalog içinde güvenliği sağlanabilen nesnelerdir. Çağıranlar, bunları çalışma alanları arasında veya Azure Databricks dışından, tam nitelikli adlarıyla, catalog.schema.name, çağırır. Bkz . Yönetim ve ayrıcalıklar.

Gereksinimler

Note

Unity Gateway, Azure Kamu'ta desteklenmemektedir.

  • Unity Gateway’in desteklendiği bir bölgede bir Azure Databricks çalışma alanı.
  • Çalışma alanınız için Unity Kataloğu etkinleştirildi. Bkz. Unity Kataloğu için bir çalışma alanını etkinleştirme.
  • Bir model hizmeti oluşturmak için şunlara sahip olmalısınız:
    • USE CATALOG, USE SCHEMAve CREATE SERVICE model hizmetini oluşturduğunuz katalog ve şemada.
    • EXECUTE model hizmetinin hedef olarak başvurduğu her modelde.
    • EXECUTE, USE CATALOG ve USE SCHEMA, model hizmetinin hedef olarak referans verdiği her model sağlayıcısında.
    • USE CATALOG, USE SCHEMAve CREATE TABLE çıkarım günlüğünü etkinleştirirseniz çıkarım tablosunun oluşturulduğu katalog ve şemada.

Özel bir model hizmeti oluştur

Unity Gateway UI veya Catalog Explorer'da bir model hizmeti oluşturun. Programatik olarak bir tane oluşturmak için REST API, Azure Databricks SDK'ları, Azure Databricks CLI, Terraform veya Declarative Automation Bundles (DAB) kullanın.

Model hizmetleri ve model sağlayıcılar , Unity Kataloğu şeması içinde tek bir isim alanını paylaşır. Şemada bir model sağlayıcı bu adı zaten kullanıyorsa, bir model hizmeti için bu adı kullanamazsınız; tersi de geçerlidir.

Kullanıcı Arayüzü (UI)

  1. Aşağıdakilerden birini yapın:
    • Çalışma alanı kenar çubuğunda AI Ağ Geçidi'ne ve ardından Oluştur'a tıklayın.
    • Katalog Gezgini'nde, model hizmetini oluşturmak istediğiniz şemaya gidin veHizmet>Modeli hizmeti> tıklayın.
  2. Model hizmeti için bir ad girin ve içinde oluşturulacak kataloğu ve şemayı seçin. Katalog Gezgini'nden başlarsanız, Katalog Gezgini kataloğu ve şemayı önceden doldurur.
  3. Hizmet vereceğiniz ana varış noktasını seçin. Bu hedef, üzerinde EXECUTE bulunduğunuz ve Unity Gateway’in sunabildiği Azure Databricks tarafından sunulan bir model ya da üzerinde , EXECUTE ve USE CATALOG bulunduğunuz bir USE SCHEMA olabilir.
  4. Oluştur'utıklayın.

Model hizmetini oluşturduktan sonra, Azure Databricks başlangıç yapabileceğiniz veya çıkarım günlüğü gibi ek özellikleri yapılandırabileceğiniz genel bakış sayfasını açar.

REST API

öğesini POST adresine gönderin; parent ve model_service_id öğelerini sorgu parametreleri olarak iletin. Rota yapılandırmasının en az bir hedefi olmalıdır:

databricks api post \
  "/api/2.1/unity-catalog/model-services?parent=schemas/main.default&model_service_id=my_model_service" \
  --json '{
  "comment": "Routes chat traffic to a foundation model",
  "config": {
    "routing": {
      "destinations": [
        {
          "name": "primary",
          "destination_type": "DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL",
          "pay_per_token_config": { "model": "models/system.ai.databricks-gpt-5" },
          "traffic_percentage": 100
        }
      ]
    }
  }
}'

CLI

Üst şemayı ve bir yaprak adını geçirin, ardından yapılandırmayı --json ile sağlayın. Rota yapılandırmasının en az bir hedefi olmalıdır. CLI'yı kurmak için Databricks CLI'yı Kurulum veya Güncelleme bölümüne bakınız.

databricks ai-gateway create-model-service schemas/main.default my_model_service --json '{
  "comment": "Routes chat traffic to a foundation model",
  "config": {
    "routing": {
      "destinations": [
        {
          "name": "primary",
          "destination_type": "DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL",
          "pay_per_token_config": { "model": "models/system.ai.databricks-gpt-5" },
          "traffic_percentage": 100
        }
      ]
    }
  }
}'

Terraform

Databricks Terraform sağlayıcısı ve databricks_ai_gateway_model_service kaynağı ile bir model hizmeti oluşturun ve yönetin:

resource "databricks_ai_gateway_model_service" "example" {
  parent           = "schemas/main.default"
  model_service_id = "my_model_service"
  comment          = "Routes chat traffic to a foundation model"

  config = {
    routing = {
      destinations = [{
        name                 = "primary"
        destination_type     = "DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL"
        pay_per_token_config = { model = "models/system.ai.databricks-gpt-5" }
        traffic_percentage   = 100
      }]
    }
  }
}

DAB'lar (Beta)

Model servisini bir pakette tanımlayıp dağıtın.databricks bundle deploy Rota yapılandırmasının en az bir hedefi olmalıdır:

resources:
  model_services:
    my_model_service:
      parent: schemas/main.default
      model_service_id: my_model_service
      comment: Routes chat traffic to a foundation model
      config:
        routing:
          destinations:
            - name: primary
              destination_type: DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL
              pay_per_token_config:
                model: models/system.ai.databricks-gpt-5
              traffic_percentage: 100

Python SDK'sı

Databricks SDK for Python ile bir model hizmeti oluşturun ve yönetin:

from databricks.sdk.service import catalog as c

model_service = w.ai_gateway.create_model_service(
    parent="schemas/main.default",
    model_service_id="my_model_service",
    model_service=c.ModelService(
        comment="Routes chat traffic to a foundation model",
        config=c.ModelServiceConfig(
            routing=c.ModelServiceConfigRoutingConfig(
                destinations=[
                    c.ModelServiceConfigDestinationConfig(
                        name="primary",
                        destination_type=(
                            c.ModelServiceConfigDestinationConfigDestinationType
                            .DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL
                        ),
                        pay_per_token_config=c.ModelServiceConfigPayPerTokenConfig(
                            model="models/system.ai.databricks-gpt-5"
                        ),
                        traffic_percentage=100,
                    )
                ]
            )
        ),
    ),
)

Go SDK'sı

Go için Databricks SDK ile bir model hizmeti oluşturun ve yönetin:

modelService, err := w.AiGateway.CreateModelService(ctx, catalog.CreateModelServiceRequest{
	Parent:         "schemas/main.default",
	ModelServiceId: "my_model_service",
	ModelService: catalog.ModelService{
		Comment: "Routes chat traffic to a foundation model",
		Config: &catalog.ModelServiceConfig{
			Routing: &catalog.ModelServiceConfigRoutingConfig{
				Destinations: []catalog.ModelServiceConfigDestinationConfig{{
					Name:            "primary",
					DestinationType: catalog.ModelServiceConfigDestinationConfigDestinationTypeDestinationTypePayPerTokenFoundationModel,
					PayPerTokenConfig: &catalog.ModelServiceConfigPayPerTokenConfig{
						Model: "models/system.ai.databricks-gpt-5",
					},
					TrafficPercentage: 100,
				}},
			},
		},
	},
})

Java SDK'sı

Java için Databricks SDK ile bir model hizmeti oluşturun ve yönetin:

ModelServiceConfig config =
    new ModelServiceConfig()
        .setRouting(
            new ModelServiceConfigRoutingConfig()
                .setDestinations(
                    Collections.singletonList(
                        new ModelServiceConfigDestinationConfig()
                            .setName("primary")
                            .setDestinationType(
                                ModelServiceConfigDestinationConfigDestinationType
                                    .DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL)
                            .setPayPerTokenConfig(
                                new ModelServiceConfigPayPerTokenConfig()
                                    .setModel("models/system.ai.databricks-gpt-5"))
                            .setTrafficPercentage(100L))));

ModelService modelService =
    w.aiGateway()
        .createModelService(
            new CreateModelServiceRequest()
                .setParent("schemas/main.default")
                .setModelServiceId("my_model_service")
                .setModelService(
                    new ModelService()
                        .setComment("Routes chat traffic to a foundation model")
                        .setConfig(config)));

JS SDK

JavaScript için Databricks AI Gateway SDK ile bir model hizmeti oluşturun ve yönetin:

import { ModelServiceConfig_DestinationConfig_DestinationType as DestType } from '@databricks/sdk-aigateway/v1';

const created = await client.createModelService({
  parent: 'schemas/main.default',
  modelServiceId: 'my_model_service',
  modelService: {
    comment: 'Routes chat traffic to a foundation model',
    config: {
      routing: {
        destinations: [
          {
            name: 'primary',
            destinationType: DestType.DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL,
            typeConfig: {
              $case: 'payPerTokenConfig',
              payPerTokenConfig: { model: 'models/system.ai.databricks-gpt-5' },
            },
            trafficPercentage: 100,
          },
        ],
      },
    },
  },
});

Model hizmete erişim izni

Varsayılan olarak, sadece model servis sahibi sorgulayabilir. Başkalarının bir model hizmetini sorgulamasına izin vermek için, onlara bu hizmet üzerinde USE CATALOG, ayrıca kataloğu ve şeması üzerinde USE SCHEMA ve EXECUTE verin. Model hizmeti bir çıkarım tablosuna günlük kaydı yazıyorsa, günlüğe kaydedilen istekleri ve yanıtları okuyabilmeleri için tabloda SELECT izni verin.

Kullanıcı Arayüzü (UI)

  1. Model servisini Katalog Gezgin'de açın veya AI Gateway'e gidip hizmeti seçin.
  2. İzinler sekmesine gidin.
  3. İzin ver düğmesine tıklayın.
  4. Erişim vermek için kullanıcıları, grupları veya hizmet sorumlularını seçin.
  5. EXECUTE ayrıcalığını seçin.
  6. İzin ver düğmesine tıklayın.

REST API

databricks api patch \
  "/api/2.1/unity-catalog/permissions/model_service/main.default.my_model_service" \
  --json '{
    "changes": [
      { "principal": "data-team", "add": ["EXECUTE"] }
    ]
  }'

CLI

Databricks CLI ile EXECUTE için yetki verin. CLI'yı kurmak için Databricks CLI'yı Kurulum veya Güncelleme bölümüne bakınız.

databricks grants update model_service main.default.my_model_service \
  --json '{"changes": [{"principal": "data-team", "add": ["EXECUTE"]}]}'

Terraform

databricks_grant ve EXECUTE kaynağı ile yetki verin:

resource "databricks_grant" "example" {
  model_service = "main.default.my_model_service"
  principal     = "data-team"
  privileges    = ["EXECUTE"]
}

DAB'lar (Beta)

Paketinizdeki model servis kaynağına bir grants blok ekleyin ve erişim için yeniden dağıtın.

resources:
  model_services:
    my_model_service:
      parent: schemas/main.default
      model_service_id: my_model_service
      comment: Routes chat traffic to a foundation model
      config:
        routing:
          destinations:
            - name: primary
              destination_type: DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL
              pay_per_token_config:
                model: models/system.ai.databricks-gpt-5
              traffic_percentage: 100
      grants:
        - principal: data-team
          privileges: [EXECUTE]

Python SDK'sı

Python için Databricks SDK ile hibeEXECUTE:

from databricks.sdk.service import catalog as c

w.grants.update(
    securable_type="model_service",
    full_name="main.default.my_model_service",
    changes=[c.PermissionsChange(principal="data-team", add=[c.Privilege.EXECUTE])],
)

Go SDK'sı

Grant ile EXECUTE:

_, err := w.Grants.Update(ctx, catalog.UpdatePermissions{
	SecurableType: "model_service",
	FullName:      "main.default.my_model_service",
	Changes: []catalog.PermissionsChange{{
		Principal: "data-team",
		Add:       []catalog.Privilege{catalog.PrivilegeExecute},
	}},
})

Java SDK'sı

Java için Databricks SDK ile hibeEXECUTE:

w.grants().update(
    new UpdatePermissions()
        .setSecurableType("model_service")
        .setFullName("main.default.my_model_service")
        .setChanges(Arrays.asList(
            new PermissionsChange().setPrincipal("data-team").setAdd(Arrays.asList(Privilege.EXECUTE)))));

Erişim hakkı ve keşfi hakkında daha fazla bilgi için Model hizmetlerine erişim ve yönetme bölümünü inceleyin .

Bir model hizmetinde özellikleri yapılandırma

Unity Gateway arayüzünden model hizmetinde hizmet politikalarıyla uygulanan hız sınırlarını, çıkarım kaydını ve koruma korkuluklarını yapılandırın. See:

Çıkarım kaydı

Çıkarım günlüğünü etkinleştirdiğinizde, Azure Databricks belirttiğiniz konumda önceden tanımlanmış bir şemayla yeni, boş bir Unity Kataloğu tablosu oluşturur. Aşağıdakilere dikkat edin:

  • Hedef katalog ve şema üzerinde USE CATALOG, USE SCHEMA ve CREATE TABLE öğelerine sahip olmanız gerekir.
  • Model hizmetinin oluşturucusu çıkarım tablosunun sahibidir. Siz vermediğiniz sürece başka hiçbir kullanıcı erişemez.
  • Belirtilen konumda bir tablo zaten varsa, model hizmeti oluşturma işlemi başarısız olur.
  • Çıkarım tablosunun model hizmetinden bağımsız bir yaşam döngüsü vardır. Tabloyu silerseniz, model hizmeti çalışmaya devam eder ancak günlük kaydı tutmayı durdurur.

Çıkarım tabloları hakkında daha fazla bilgi için Çıkarım tablolarına yönelik istekleri ve yanıtları günlüğe kaydetme bölümüne bakın.

Bir model hizmetini güncelle

Sahibi olmalı veya MANAGE sahip olmalısınız.

Kullanıcı Arayüzü (UI)

Model servisinin yapılandırmasını Unity Gateway UI veya Catalog Explorer'dan düzenleyin. Değişiklikler yerinde uygulanıyor.

REST API

databricks api patch \
  "/api/2.1/unity-catalog/model-services/main.default.my_model_service?update_mask=comment" \
  --json '{"comment": "Updated: routes chat traffic"}'

CLI

databricks ai-gateway update-model-service model-services/main.default.my_model_service comment \
  --json '{"comment": "Updated: routes chat traffic"}'

Terraform

databricks_ai_gateway_model_service kaynağındaki comment alanını (veya başka herhangi bir değiştirilebilir alanı) düzenleyin ve yeniden uygulayın. Değişiklikler yerinde uygulanıyor.

DAB'lar (Beta)

Bundle kaynağındaki comment’ı (veya başka bir değiştirilebilir alanı) düzenleyin ve databricks bundle deploy çalıştırın. Değişiklikler yerinde uygulanıyor.

Python SDK'sı

from databricks.sdk.service import catalog as c
from google.protobuf.field_mask_pb2 import FieldMask

updated = w.ai_gateway.update_model_service(
    name="model-services/main.default.my_model_service",
    update_mask=FieldMask(paths=["comment"]),
    model_service=c.ModelService(comment="Updated: routes chat traffic"),
)

Go SDK'sı

updated, err := w.AiGateway.UpdateModelService(ctx, catalog.UpdateModelServiceRequest{
	Name:         "model-services/main.default.my_model_service",
	UpdateMask:   *fieldmask.New([]string{"comment"}),
	ModelService: catalog.ModelService{Comment: "Updated: routes chat traffic"},
})

Java SDK'sı

ModelService updated =
    w.aiGateway()
        .updateModelService(
            new UpdateModelServiceRequest()
                .setName("model-services/main.default.my_model_service")
                .setUpdateMask(FieldMask.newBuilder().addPaths("comment").build())
                .setModelService(
                    new ModelService().setComment("Updated: routes chat traffic")));

JS SDK

import { modelServiceFieldMask } from '@databricks/sdk-aigateway/v1';

const updated = await client.updateModelService({
  modelService: {
    name: 'model-services/main.default.my_model_service',
    comment: 'Updated: routes chat traffic',
  },
  updateMask: modelServiceFieldMask('comment'),
});

Bir model servisini sil

Sahibi olmalı veya MANAGE sahip olmalısınız. system.ai içindeki sistem tarafından sağlanan model hizmetleri silinemez.

Kullanıcı Arayüzü (UI)

Model servisini Unity Gateway UI veya Katalog Explorer'da açın ve kebap menüsünden Sil'i seçin.

REST API

databricks api delete "/api/2.1/unity-catalog/model-services/main.default.my_model_service"

CLI

databricks ai-gateway delete-model-service model-services/main.default.my_model_service

Terraform

Çalıştırın terraform destroyya da kaynak bloğunu kaldırıp tekrar uygulayın.

DAB'lar (Beta)

Kaynağı paketten çıkarın ve silmek için databricks bundle deploy çalıştırın. databricks bundle destroy de çalışır, ancak yalnızca bu kaynağı değil, paketin yönettiği tüm kaynakları kaldırır.

Python SDK'sı

w.ai_gateway.delete_model_service(name="model-services/main.default.my_model_service")

Go SDK'sı

err := w.AiGateway.DeleteModelService(ctx, catalog.DeleteModelServiceRequest{
	Name: "model-services/main.default.my_model_service",
})

Java SDK'sı

w.aiGateway()
    .deleteModelService(
        new DeleteModelServiceRequest().setName("model-services/main.default.my_model_service"));

JS SDK

await client.deleteModelService({ name: 'model-services/main.default.my_model_service' });

Yönetim ve ayrıcalıklar

Unity Catalog'da güvenliği sağlanabilen bir nesne olarak model servisi:

  • Çalışma alanı bağlamaları gibi şema ayarlarını devraldığı bir katalog ve şemada bulunur.
  • Ad, sahip, açıklama ve etiketler gibi standart Unity Kataloğu meta verilerini taşır.
  • Unity Catalog yetkilerine tabidir; bu nedenle erişim iznini, tablolar, işlevler ve modeller için kullandığınız aynı GRANT ve REVOKE ifadelerini kullanarak verirsiniz.
  • Unity Kataloğu varlıklarınızın geri kalanıyla birlikte Katalog Gezgini'nde bulunabilir.

Aşağıdaki ayrıcalıklar geçerlidir:

Privilege Description
USE CATALOG, USE SCHEMA Model hizmetini içeren kataloğa ve şemaya erişin. Tüm işlemler için gereklidir.
CREATE SERVICE Bir şemada model hizmetleri oluşturun. Katalogda veya şemada verilir.
EXECUTE Bir model hizmetini sorgulayın.
MANAGE Model hizmetini değiştirin veya silin ve bu hizmetin onaylarını yönetin. Sahibi, MANAGE'nin bir üst kümesine sahiptir.

Model hizmetleri tanımlayıcı ayrıcalıklarını kullanır. Azure Databricks, bir sorguyu sahibin ayrıcalıklarına göre değerlendirir, arayanınkinden ziyade. Bir kullanıcı bir model hizmetine sorgu gönderdiğinde Azure Databricks, sahibinin başvurulan hedefler üzerinde sahip olduğunu denetler; buna temel alınan modeller ve varsa EXECUTE dahildir. Arayan kişinin bu varış noktalarına doğrudan erişimi yoktur.

Limitations

Aşağıdaki yetenekler desteklenmemektedir:

  • SQL ile model hizmetleri oluşturmak ve yönetmek.
  • Yalnızca BROWSE ayrıcalığıyla model hizmetlerini keşfetme.
  • Model hizmetleri için genel arama.

Ek kaynaklar