엔드포인트를 제공하는 모델에서 리소스에 대한 액세스 구성
이 문서에서는 엔드포인트를 제공하는 모델에서 외부 및 프라이빗 리소스에 대한 액세스를 구성하는 방법을 설명합니다. 모델 제공은 Databricks 비밀을 사용하여 일반 텍스트 환경 변수 및 비밀 기반 환경 변수를 지원합니다.
요구 사항
비밀 기반 환경 변수의 경우
- 엔드포인트 작성자는 구성에서 참조되는 Databricks 비밀에 대한 READ 액세스 권한이 있어야 합니다.
- API 키 또는 다른 토큰과 같은 자격 증명을 Databricks 비밀로 저장해야 합니다.
일반 텍스트 환경 변수 추가
일반 텍스트 환경 변수를 사용하여 숨길 필요가 없는 변수를 설정합니다. 엔드포인트를 만들거나 업데이트할 때 서비스 UI 또는 REST API에서 변수를 설정할 수 있습니다.
서비스 UI에서 고급 구성에 환경 변수를 추가할 수 있습니다.
다음은 REST API 및 environment_vars
필드를 사용하여 환경 변수를 POST /api/2.0/serving-endpoints
구성하는 서비스 엔드포인트를 만드는 예제입니다.
{
"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"
}
}]
}
}
비밀 기반 환경 변수 추가
Databricks 비밀을 사용하여 자격 증명을 안전하게 저장하고 비밀 기반 환경 변수를 사용하는 모델에서 해당 비밀을 참조할 수 있습니다. 이렇게 하면 서비스 시간에 엔드포인트를 제공하는 모델에서 자격 증명을 가져올 수 있습니다.
예를 들어 자격 증명을 전달하여 OpenAI 및 기타 외부 모델 엔드포인트를 호출하거나 모델 서비스에서 직접 외부 데이터 스토리지 위치에 액세스할 수 있습니다.
Databricks는 OpenAI 및 LangChain MLflow 모델 버전을 서비스용으로 배포하기 위해 이 기능을 권장합니다. 또한 액세스 패턴이 환경 변수 및 API 키 및 토큰을 사용하는 것을 기반으로 한다는 것을 이해하여 자격 증명이 필요한 다른 SaaS 모델에도 적용할 수 있습니다.
1단계: 비밀 범위 만들기
모델 제공 중에 비밀 범위 및 키를 통해 Databricks 비밀에서 비밀을 검색합니다. 모델 내에서 사용할 수 있는 비밀 환경 변수 이름에 할당됩니다.
먼저 비밀 범위를 만듭니다. 비밀 범위를 참조 하세요.
CLI 명령은 다음과 같습니다.
databricks secrets create-scope my_secret_scope
그런 다음 아래와 같이 원하는 비밀 범위 및 키에 비밀을 추가할 수 있습니다.
databricks secrets put-secret my_secret_scope my_secret_key
그런 다음, 엔드포인트를 만드는 동안 또는 기존 엔드포인트의 구성에 대한 업데이트로 비밀 정보 및 환경 변수의 이름을 엔드포인트 구성에 전달할 수 있습니다.
2단계: 엔드포인트 구성에 비밀 범위 추가
환경 변수에 비밀 범위를 추가하고 엔드포인트를 만들거나 구성 업데이트하는 동안 해당 변수를 엔드포인트에 전달할 수 있습니다. 엔드포인트를 제공하는 사용자 지정 모델 만들기를 참조 하세요.
서비스 UI에서 고급 구성에 환경 변수를 추가할 수 있습니다. 비밀 기반 환경 변수는 다음 구문을 {{secrets/scope/key}}
사용하여 제공해야 합니다. 그렇지 않으면 환경 변수는 일반 텍스트 환경 변수로 간주됩니다.
다음은 REST API를 사용하여 서비스 엔드포인트를 만드는 예제입니다. 엔드포인트 만들기 및 구성 업데이트를 제공하는 모델 중에 필드를 사용하여 environment_vars
API 요청 내에서 제공되는 각 모델에 대한 비밀 환경 변수 사양 목록을 제공할 수 있습니다.
다음 예제에서는 제공된 코드에서 만든 비밀의 값을 환경 변수 OPENAI_API_KEY
에 할당합니다.
{
"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}}"
}
}]
}
}
다음 PUT /api/2.0/serving-endpoints/{name}/config
REST API 예제와 같이 서비스 엔드포인트를 업데이트할 수도 있습니다.
{
"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}}"
}
}]
}
엔드포인트를 만들거나 업데이트한 후 서비스를 제공하는 모델은 Databricks 비밀 범위에서 비밀 키를 자동으로 가져오고 사용할 모델 유추 코드에 대한 환경 변수를 채웁니다.
Notebook 예제
비밀 기반 환경 변수를 사용하여 엔드포인트를 제공하는 모델 뒤에 배포된 LangChain 검색 QA 체인에 대해 OpenAI API 키를 구성하는 방법에 대한 예제는 다음 Notebook을 참조하세요.
엔드포인트 Notebook을 제공하는 모델에서 리소스에 대한 액세스 구성
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기