Aracılığıyla paylaş


Model sunum uç noktalarındaki kaynaklara erişimi yapılandırma

Bu makalede, uç noktaları sunan modelden dış ve özel kaynaklara erişimin nasıl yapılandırıldığı açıklanır. Model Sunma, Databricks gizli dizilerini kullanan düz metin ortamı değişkenlerini ve gizli dizi tabanlı ortam değişkenlerini destekler.

Gereksinimler

Gizli dizi tabanlı ortam değişkenleri için,

  • Uç nokta oluşturucusunun yapılandırmalarda başvurulmakta olan Databricks gizli dizilerine OKUMA erişimi olmalıdır.
  • API anahtarınız veya diğer belirteçler gibi kimlik bilgilerini Databricks gizli dizisi olarak depolamanız gerekir.

Düz metin ortamı değişkenleri ekleme

Gizli olması gerekmeyen değişkenleri ayarlamak için düz metin ortam değişkenlerini kullanın. Uç nokta oluştururken veya güncelleştirirken Hizmet Kullanıcı Arabiriminde, REST API'de veya SDK'da değişkenler ayarlayabilirsiniz.

Kullanıcı Arayüzü Sunma

Sunum Kullanıcı Arabirimi'nden Gelişmiş yapılandırmalar'a bir ortam değişkeni ekleyebilirsiniz:

Uç nokta sunan bir model oluşturma

REST API

Aşağıda, REST API'yi ve POST /api/2.0/serving-endpoints ortam değişkeninizi yapılandırma alanını kullanarak environment_vars bir sunum uç noktası oluşturmaya yönelik bir örnek verilmiştir.

{
  "name": "endpoint-name",
  "config": {
    "served_entities": [
      {
        "entity_name": "model-name",
        "entity_version": "1",
        "workload_size": "Small",
        "scale_to_zero_enabled": "true",
        "environment_vars": {
          "TEXT_ENV_VAR_NAME": "plain-text-env-value"
        }
      }
    ]
  }
}

WorkspaceClient SDK'sı

Aşağıda WorkspaceClient SDK'sını ve environment_vars ortam değişkeninizi yapılandırma alanını kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek verilmiştir.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType

w = WorkspaceClient()

endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name = model_name,
                entity_version = "2",
                workload_type = ServingModelWorkloadType("CPU"),
                workload_size = "Small",
                scale_to_zero_enabled = False,
                environment_vars = {
                    "MY_ENV_VAR": "value_to_be_injected",
                    "ADS_TOKEN": "abcdefg-1234"
                }
            )
        ]
    )
)

MLflow Dağıtım SDK'sı

Mlflow Dağıtımları SDK'sını ve environment_vars ortam değişkeninizi yapılandırma alanını kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek aşağıda verilmiştir.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="unity-catalog-model-endpoint",
    config={
        "served_entities": [
            {
                "name": "ads-entity"
                "entity_name": "catalog.schema.my-ads-model",
                "entity_version": "3",
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "MY_ENV_VAR": "value_to_be_injected",
                    "ADS_TOKEN": "abcdefg-1234"
                }
            }
        ]
    }
)

Doğrulama tablolarındaki özellik arama DataFrame'lerini kaydetme

Uç noktanızda çıkarım tabloları etkinleştirildiyse, kullanarak ENABLE_FEATURE_TRACING bu çıkarım tablosuna kaydedebilirsiniz. Bunun için MLflow 2.14.0 veya üzeri gerekir.

Uç nokta oluşturduğunuzda veya güncelleştirdiğinizde, Sunum Kullanıcı Arabiriminde, REST API'de veya SDK'da ortam değişkeni olarak ayarlayın ENABLE_FEATURE_TRACING .

Kullanıcı Arayüzü Sunma

  1. Gelişmiş yapılandırmalar'da ** + Ortam değişkenleri ekle**'yi seçin.
  2. Ortam adı olarak yazın ENABLE_FEATURE_TRACING .
  3. Sağdaki alana true yazın.

Uç nokta sunan bir model oluşturma

REST API

Aşağıda, REST API'yi ve ortam değişkenini POST /api/2.0/serving-endpointsenvironment_vars yapılandırma ENABLE_FEATURE_TRACING alanını kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek verilmiştir.

{
  "name": "endpoint-name",
  "config": {
    "served_entities": [
      {
        "entity_name": "model-name",
        "entity_version": "1",
        "workload_size": "Small",
        "scale_to_zero_enabled": "true",
        "environment_vars": {
          "ENABLE_FEATURE_TRACING": "true"
        }
      }
    ]
  }
}

WorkspaceClient SDK'sı

Aşağıda WorkspaceClient SDK'sını ve ortam değişkenini environment_vars yapılandırma ENABLE_FEATURE_TRACING alanını kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek verilmiştir.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType

w = WorkspaceClient()

endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name = model_name,
                entity_version = "2",
                workload_type = ServingModelWorkloadType("CPU"),
                workload_size = "Small",
                scale_to_zero_enabled = False,
                environment_vars = {
                    "ENABLE_FEATURE_TRACING": "true"
                }
            )
        ]
    )
)

MLflow Dağıtım SDK'sı

Aşağıda, Mlflow Dağıtımları SDK'sını ve environment_vars alanını kullanarak ENABLE_FEATURE_TRACING ortam değişkenini yapılandırarak bir servis uç noktası oluşturma örneği verilmiştir.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="unity-catalog-model-endpoint",
    config={
        "served_entities": [
            {
                "name": "ads-entity"
                "entity_name": "catalog.schema.my-ads-model",
                "entity_version": "3",
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "ENABLE_FEATURE_TRACING": "true"
                }
            }
        ]
    }
)

Gizli dizi tabanlı ortam değişkenleri ekleme

Databricks gizli dizilerini kullanarak kimlik bilgilerini güvenli bir şekilde depolayabilir ve gizli dizi tabanlı ortam değişkenleri kullanarak modelde bu gizli dizilere başvurabilirsiniz. Bu, kimlik bilgilerinin hizmet verme zamanında uç noktalara hizmet veren modelden alınmasına olanak tanır.

Örneğin, OpenAI ve diğer dış model uç noktalarını çağırmak için kimlik bilgilerini geçirebilir veya dış veri depolama konumlarına doğrudan model sunumundan erişebilirsiniz.

Databricks, OpenAI ve LangChain MLflow modeli tatlarını kullanıma dağıtmak için bu özelliği önerir. Ayrıca, erişim deseninin ortam değişkenlerini, API anahtarlarını ve belirteçlerini kullanmayı temel alarak kimlik bilgileri gerektiren diğer SaaS modelleri için de geçerlidir.

1. Adım: Gizli dizi kapsamı oluşturma

Model sunma sırasında gizli diziler, gizli dizi kapsamı ve anahtarı tarafından Databricks gizli dizilerinden alınır. Bunlar, modelin içinde kullanılabilecek gizli ortam değişken adlarına atanır.

İlk olarak bir gizli dizi kapsamı oluşturun. Bkz. Gizli dizi kapsamlarını yönetme.

CLI komutları şunlardır:


databricks secrets create-scope my_secret_scope

Ardından gizli dizinizi aşağıda gösterildiği gibi istediğiniz gizli dizi kapsamına ve anahtarına ekleyebilirsiniz:


databricks secrets put-secret my_secret_scope my_secret_key

Gizli dizi bilgileri ve ortam değişkeninin adı, uç nokta oluşturma sırasında veya mevcut bir uç nokta yapılandırmasının güncelleştirmesi olarak uç nokta yapılandırmanıza geçirilebilir.

2. Adım: Uç nokta yapılandırmasına gizli dizi kapsamları ekleme

Gizli dizi kapsamını bir ortam değişkenine ekleyebilir ve uç nokta oluşturma veya yapılandırma güncelleştirmeleri sırasında bu değişkeni uç noktanıza geçirebilirsiniz. Bkz . Uç noktaları sunan özel model oluşturma.

Kullanıcı Arayüzü Sunma

Sunum Kullanıcı Arabirimi'nden Gelişmiş yapılandırmalar'a bir ortam değişkeni ekleyebilirsiniz. Gizli dizi tabanlı ortam değişkeni aşağıdaki söz dizimi kullanılarak sağlanmalıdır: {{secrets/scope/key}}. Aksi takdirde ortam değişkeni düz metin ortam değişkeni olarak kabul edilir.

Uç nokta sunan bir model oluşturma

REST API

Aşağıda REST API kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek verilmiştir. Uç nokta oluşturma ve yapılandırma güncelleştirmelerine hizmet veren model sırasında, alanı kullanarak environment_vars API isteği içinde sunulan her model için gizli ortam değişkeni belirtimlerinin listesini sağlayabilirsiniz.

Aşağıdaki örnek, sağlanan kodda oluşturulan gizli dizideki değeri ortam değişkenine OPENAI_API_KEYatar.

{
  "name": "endpoint-name",
  "config": {
    "served_entities": [
      {
        "entity_name": "model-name",
        "entity_version": "1",
        "workload_size": "Small",
        "scale_to_zero_enabled": "true",
        "environment_vars": {
          "OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
        }
      }
    ]
  }
}

Aşağıdaki PUT /api/2.0/serving-endpoints/{name}/config REST API örneğinde olduğu gibi bir sunum uç noktasını da güncelleştirebilirsiniz:

{
  "served_entities": [
    {
      "entity_name": "model-name",
      "entity_version": "2",
      "workload_size": "Small",
      "scale_to_zero_enabled": "true",
      "environment_vars": {
        "OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
      }
    }
  ]
}

WorkspaceClient SDK'sı

Aşağıda WorkspaceClient SDK'sını kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek verilmiştir. Uç nokta oluşturma ve yapılandırma güncelleştirmelerine hizmet veren model sırasında, alanı kullanarak environment_vars API isteği içinde sunulan her model için gizli ortam değişkeni belirtimlerinin listesini sağlayabilirsiniz.

Aşağıdaki örnek, sağlanan kodda oluşturulan gizli dizideki değeri ortam değişkenine OPENAI_API_KEYatar.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType

w = WorkspaceClient()

endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name = model_name,
                entity_version = "2",
                workload_type = ServingModelWorkloadType("CPU"),
                workload_size = "Small",
                scale_to_zero_enabled = False,
                environment_vars = {
                    "OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
                }
            )
        ]
    )
)

MLflow Dağıtım SDK'sı

Mlflow Dağıtımları SDK'sını kullanarak bir sunum uç noktası oluşturmaya yönelik bir örnek aşağıda verilmiştir. Uç nokta oluşturma ve yapılandırma güncelleştirmelerine hizmet veren model sırasında, alanı kullanarak environment_vars API isteği içinde sunulan her model için gizli ortam değişkeni belirtimlerinin listesini sağlayabilirsiniz.

Aşağıdaki örnek, sağlanan kodda oluşturulan gizli dizideki değeri ortam değişkenine OPENAI_API_KEYatar.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="unity-catalog-model-endpoint",
    config={
        "served_entities": [
            {
                "name": "ads-entity"
                "entity_name": "catalog.schema.my-ads-model",
                "entity_version": "3",
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
                }
            }
        ]
    }
)

Uç nokta oluşturulduktan veya güncelleştirildikten sonra, model sunma özelliği Databricks gizli dizileri kapsamından gizli anahtarı otomatik olarak getirir ve model çıkarım kodunuzun kullanması için ortam değişkenini doldurur.

Not defteri örneği

Gizli dizi tabanlı ortam değişkenleriyle uç noktalara hizmet veren modelin arkasına dağıtılmış bir LangChain Alma Soru-Cevap Zinciri için OpenAI API anahtarını yapılandırma örneği için aşağıdaki not defterine bakın.

Uç noktalara hizmet veren model not defterinden kaynaklara erişimi yapılandırma

Dizüstü bilgisayar al