엔드포인트 제공에 대한 경로 최적화 구성

이 문서에서는 모델 서비스 또는 기능 서비스 엔드포인트에서 경로 최적화를 구성하는 방법과 쿼리하는 방법을 설명합니다. 최적화된 서비스 엔드포인트를 라우팅하면 오버헤드 대기 시간이 크게 줄어들고 엔드포인트에서 지원하는 처리량이 크게 향상됩니다.

높은 처리량 또는 대기 시간에 중요한 워크로드에는 경로 최적화를 사용하는 것이 좋습니다.

요구 사항

  • 엔드포인트를 제공하는 모델에 대한 경로 최적화는 요구 사항을 참조하세요.
  • 엔드포인트를 제공하는 기능에 대한 경로 최적화는 요구 사항을 참조 하세요.

엔드포인트를 제공하는 모델에서 경로 최적화 사용

엔드포인트를 만드는 모델을 제공하는 동안 route_optimized 매개 변수를 지정하여 경로 최적화를 위해 엔드포인트를 구성합니다. 엔드포인트를 만드는 동안에만 이 매개 변수를 지정할 수 있으며, 경로 최적화를 위해 기존 엔드포인트를 업데이트할 수 없습니다.

POST /api/2.0/serving-endpoints

{
  "name": "my-endpoint",
  "config":{
    "served_entities": [{
      "entity_name": "ads1",
      "entity_version": "1",
      "workload_type": "CPU",
      "workload_size": "Small",
      "scale_to_zero_enabled": true,
    }],
  },
  "route_optimized": true
}

서비스 UI에서 엔드포인트에 대한 경로 최적화를 사용하도록 설정할 수 있습니다. Python을 사용하는 경우 다음 Notebook을 사용하여 경로 최적화 서비스 엔드포인트를 만들 수 있습니다.

Python Notebook을 사용하여 경로 최적화 서비스 엔드포인트 만들기

Notebook 가져오기

엔드포인트를 제공하는 기능에서 경로 최적화 사용

기능 및 함수 서비스에 대한 경로 최적화를 사용하려면 엔드포인트 만들기 요청을 제공하기 위해 entity_name 필드에서 기능 사양의 전체 이름을 지정합니다. entity_versionFeatureSpecs에 필요하지 않습니다.


POST /api/2.0/serving-endpoints

{
  "name": "my-endpoint",
  "config": {
    "served_entities": [
      {
        "entity_name": "catalog_name.schema_name.feature_spec_name",
        "workload_type": "CPU",
        "workload_size": "Small",
        "scale_to_zero_enabled": true
      }
    ]
  },
  "route_optimized": true
}

엔드포인트를 제공하는 쿼리 경로 최적화 모델

다음 단계에서는 엔드포인트를 제공하는 경로 최적화 모델 쿼리를 테스트하는 방법을 보여줍니다.

애플리케이션에서 경로 최적화 엔드포인트를 사용하는 것과 같은 프로덕션 용도의 경우 OAuth 토큰을 만들어야 합니다. 다음 단계에서는 서비스 UI에서 토큰을 가져오는 방법을 보여줍니다. 프로그래밍 방식 워크플로는 프로그래밍 방식으로 OAuth 토큰 가져오기를 참조하세요.

  1. 작업 영역의 서비스 UI에서 OAuth 토큰을 가져옵니다.
    1. 사이드바에서 서비스를 클릭하여 서비스 UI를 표시합니다.
    2. 서비스 엔드포인트 페이지에서 경로 최적화 엔드포인트를 선택하여 엔드포인트 세부 정보를 확인합니다.
    3. 엔드포인트 세부 정보 페이지에서 쿼리 엔드포인트 단추를 클릭합니다.
    4. 토큰 가져오기 탭을 선택합니다.
    5. OAuth 토큰 가져오기 단추를 선택합니다. 이 토큰은 1시간 동안 유효합니다. 현재 토큰이 만료되면 새 토큰을 가져옵니다.
  2. 서비스 UI의 엔드포인트 세부 정보 페이지에서 엔드포인트 URL을 제공하는 모델을 가져옵니다.
  3. 1단계의 OAuth 토큰과 2단계의 엔드포인트 URL을 사용하여 경로 최적화 엔드포인트를 쿼리하는 다음 예제 코드를 채웁니다.

url="your-endpoint-url"
OAUTH_TOKEN=xxxxxxx

curl -X POST -H 'Content-Type: application/json' -H "Authorization: Bearer $OAUTH_TOKEN" -d@data.json $url

Python SDK가 경로 최적화 엔드포인트를 쿼리하려면 Databricks 계정 팀에 문의하세요.

프로그래밍 방식으로 OAuth 토큰 가져오기

OAuth(OAuth M2M)를 사용하여 서비스 주체로 Azure Databricks에 대한 액세스 인증에서는 프로그래밍 방식으로 OAuth 토큰을 가져오는 방법에 대한 지침을 제공합니다. 이러한 단계 외에도 요청에 authorization_details을 지정해야 합니다.

  • <token-endpoint-URL>을 이전 토큰 엔드포인트 URL로 바꿉니다.
  • <client-id>을 애플리케이션 ID라고도 하는 서비스 주체의 클라이언트 ID로 바꿉 니다.
  • <client-secret>을 만든 서비스 주체의 OAuth 비밀로 바꿉니다.
  • <endpoint-id>을 경로 최적화 엔드포인트의 엔드포인트 ID로 바꿉니다. 엔드포인트 URL의 hostName에서 이 항목을 가져올 수 있습니다.
  • <action>을 서비스 주체에 지정된 작업 권한으로 바꿉니다. 작업은 query_inference_endpoint 또는 manage_inference_endpoint일 수 있습니다.

예시:

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      export ENDPOINT_ID=<endpoint-id>
      export ACTION=<action>

      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      --data-urlencode 'authorization_details=[{"type":"workspace_permission","object_type":"serving-endpoints","object_path":"'"/serving-endpoints/$ENDPOINT_ID"'","actions": ["'"$ACTION"'"]}]'

제한 사항

  • 경로 최적화는 엔드포인트 및 기능 서비스 엔드포인트를 제공하는 사용자 지정 모델에만 사용할 수 있습니다. 파운데이션 모델 API외부 모델은 지원되지 않습니다.
  • Databricks 사내 OAuth 토큰은 경로 최적화에 유일하게 지원되는 인증입니다. 개인 액세스 토큰은 지원되지 않습니다.
  • 경로 최적화는 Azure Databricks 작업 영역에서 구성한 Private Link 네트워크 제한을 적용하지 않습니다. 트래픽을 제공하는 모델이 해당 컨트롤에 의해 바인딩되어야 하는 경우 경로 최적화를 사용하도록 설정하지 마세요. 이러한 네트워크 요구 사항이 있고 경로 최적화 모델 서비스를 계속 시도하려는 경우 Databricks 계정 팀에 문의하세요.
  • 특정 지역에서는 경로 최적화를 사용할 수 없습니다. 서비스 UI에서 경로 최적화를 사용하도록 설정하는 옵션이 표시되지 않으면 Databricks 계정 팀에 문의하세요.