Configurare l’accesso alle risorse dagli endpoint di gestione dei modelli

Questo articolo descrive come configurare l’accesso alle risorse esterne e private dagli endpoint di gestione dei modelli. Model Serving supporta variabili di ambiente di testo normale e variabili di ambiente basate su segreti utilizzando i segreti di Databricks.

Requisiti

Per le variabili di ambiente basate su segreti,

  • L’autore dell'endpoint deve avere accesso in lettura ai segreti di Databricks a cui si fa riferimento nelle configurazioni.
  • È necessario archiviare credenziali come la chiave API o altri token come segreto databricks.

Aggiungere variabili di ambiente di testo normale

Utilizzare le variabili di ambiente di testo normale per impostare le variabili che non devono essere nascoste. È possibile impostare le variabili nell’interfaccia utente di servizio o nell’API REST quando si crea o si aggiorna un endpoint.

Dall'interfaccia utente di servizio è possibile aggiungere una variabile di ambiente nelle configurazioni avanzate:

Creare e gestire gli endpoint di servizio dei modelli.

Di seguito è riportato un esempio per la creazione di un endpoint di gestione utilizzando l’API POST /api/2.0/serving-endpoints REST e il environment_vars campo per configurare la variabile di ambiente.


{
  "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"
      }
    }]
  }
}

Aggiungere variabili di ambiente basate su segreti

È possibile archiviare in modo sicuro le credenziali utilizzando i segreti di Databricks e fare riferimento a tali segreti nel modello che gestisce utilizzando variabili di ambiente basate su segreti. In questo modo le credenziali possono essere recuperate dal modello che gestisce gli endpoint in fase di gestione.

Ad esempio, è possibile passare le credenziali per chiamare OpenAI e altri endpoint del modello esterno o accedere ai percorsi di archiviazione dei dati esterni direttamente dalla gestione del modello.

Databricks consiglia questa funzionalità per la distribuzione delle versioni del modello OpenAI e LangChain MLflow. È applicabile anche ad altri modelli SaaS che richiedono credenziali per comprendere che il modello di accesso si basa sull’utilizzo di variabili di ambiente e chiavi e token API.

Passaggio 1: Creare un ambito segreto

Durante la gestione del modello, i segreti vengono recuperati dai segreti di Databricks dall’ambito e dalla chiave del segreto. Questi vengono assegnati ai nomi delle variabili di ambiente segrete che possono essere utilizzati all’interno del modello.

Creare un ambito dei segreti: . Vedere Ambiti dei segreti.

Eseguire i comandi seguenti dell’interfaccia della riga di comando di Azure:


databricks secrets create-scope my_secret_scope

È quindi possibile aggiungere il segreto a un ambito e una chiave segreti desiderati, come illustrato di seguito:


databricks secrets put-secret my_secret_scope my_secret_key

Le informazioni segrete e il nome della variabile di ambiente possono quindi essere passati alla configurazione dell’endpoint durante la creazione dell’endpoint o come aggiornamento alla configurazione di un endpoint esistente.

Passaggio 2: Aggiungere ambiti segreti alla configurazione dell’endpoint

È possibile aggiungere l'ambito segreto a una variabile di ambiente e passare tale variabile all’endpoint durante la creazione o gli aggiornamenti della configurazione dell’endpoint. Vedere Creare endpoint di gestione di modelli personalizzati.

Dall’interfaccia utente di servizio è possibile aggiungere una variabile di ambiente in Configurazioni avanzate. La variabile di ambiente basata sui segreti deve essere fornita utilizzando la sintassi seguente: {{secrets/scope/key}}. In caso contrario, la variabile di ambiente viene considerata una variabile di ambiente di testo normale.

Creare e gestire gli endpoint di servizio dei modelli.

Di seguito è riportato un esempio per la creazione di un endpoint di gestione tramite l’API REST. Durante la gestione dei modelli per la creazione e gli aggiornamenti della configurazione degli endpoint, è possibile fornire un elenco di specifiche di variabili di ambiente segrete per ogni modello servito all’interno della richiesta API utilizzando environment_vars il campo .

Nell’esempio seguente viene assegnato il valore del segreto creato nel codice fornito alla variabile OPENAI_API_KEYdi ambiente .

{
  "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}}"
      }
    }]
   }
}

È anche possibile aggiornare un endpoint di gestione, come nell’esempio di API REST seguente PUT /api/2.0/serving-endpoints/{name}/config :


{
  "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}}"
     }
   }]
}

Dopo aver creato o aggiornato l’endpoint, il modello che gestisce recupera automaticamente la chiave privata dall’ambito dei segreti di Databricks e popola la variabile di ambiente per il codice di inferenza del modello da utilizzare.

Esempio di Notebook

Vedere il notebook seguente per un esempio di come configurare una chiave API OpenAI per una catena di controllo di recupero LangChain distribuita dietro il modello che gestisce gli endpoint con variabili di ambiente basate su segreti.

Configurare l’accesso alle risorse dagli endpoint dei notebook di gestione dei modelli

Ottenere il notebook