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 Sunumu, Databricks secrets kullanarak düz metin ortam değişkenlerini ve gizli anahtar tabanlı ortam değişkenlerini destekler.

Gereksinimler

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

  • Uç noktayı oluşturan kullanıcının, yapılandırmalarda başvurulan Databricks gizli anahtarlarına READ 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 anahtarlarını kullanarak kimlik bilgilerini güvenli bir şekilde depolayabilir ve model sunumunda gizli anahtar tabanlı ortam değişkenlerini kullanarak bu gizli anahtarlara başvurabilirsiniz. Bu, kimlik bilgilerinin sunum sırasında model sunum uç noktalarından alınabilmesini sağlar.

Ö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 model varyantlarını servise 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 kapsam oluşturun

Model sunumu sırasında gizli anahtarlar, gizli anahtar kapsamı ve anahtar kullanılarak Databricks secrets'tan alınır. Bunlar, modelin içinde kullanılabilecek gizli ortam değişken adlarına atanır.

Öncelikle bir secret scope oluşturun. Bkz. Gizli kapsamları 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 kapsamlar ekleyin

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. Özel model sunma uç noktaları 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 bilgilere dayalı ortam değişkenleri kullanarak, model sunum uç noktalarının arkasına dağıtılmış bir LangChain Retrieval QA Zinciri için OpenAI API anahtarının nasıl yapılandırılacağını gösteren bir örnek 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