다음을 통해 공유


API를 사용하여 엔드포인트를 제공하는 모델에서 유추 테이블 사용

Important

이 기능은 공개 미리 보기 상태입니다.

Important

이 문서에서는 사용자 지정 모델유추 테이블에 적용되는 항목을 설명합니다. 외부 모델 또는 프로비전된 처리량 워크로드의 경우AI Gateway 지원 유추 테이블을 사용합니다.

이 문서에서는 Databricks API를 사용하여 엔드포인트제공하는 모델에 대한 유추 테이블을 사용하도록 설정하는 방법을 설명합니다. Databricks UI를 사용하여 유추 테이블을 사용하도록 설정하는 방법을 포함하여 유추 테이블을 사용하는 방법에 대한 일반적인 내용은모델 모니터링 및 디버깅에 대한 유추 테이블을 참조하세요.

새 엔드포인트를 만들 때 또는 기존 엔드포인트에서 유추 테이블을 사용하도록 설정할 수 있습니다. Databricks는 엔드포인트를 만든 사용자가 작업 영역에서 제거되는 경우 유추 테이블이 영향을 받지 않도록 서비스 주체를 사용하여 엔드포인트를 만드는 것이 좋습니다.

유추 테이블의 소유자는 엔드포인트를 만든 사용자입니다. 테이블의 모든 ACL(액세스 제어 목록)은 표준 Unity 카탈로그 사용 권한을 따르며 테이블 소유자가 수정할 수 있습니다.

요구 사항

  • 작업 영역에 Unity 카탈로그가 활성화되어 있어야 합니다.
  • 엔드포인트의 작성자와 한정자 모두 엔드포인트에 대한 Can Manage 권한이 있어야 합니다. 액세스 제어 목록을 참조하세요.
  • 엔드포인트의 작성자와 수정자는 모두 Unity 카탈로그에 권한이 있어야 합니다.
    • 지정된 카탈로그에 대한 USE CATALOG 사용 권한.
    • 지정된 스키마에 대한 USE SCHEMA 사용 권한이 있습니다.
    • 스키마 내의 권한 CREATE TABLE 설정.

API를 사용하여 엔드포인트를 만들 때 유추 테이블 사용

API를 사용하여 엔드포인트를 만드는 동안 엔드포인트에 대한 유추 테이블을 사용하도록 설정할 수 있습니다. 엔드포인트를 만드는 방법에 대한 지침은 엔드포인트를 제공하는 사용자 지정 모델 만들기를 참조 하세요.

API에서 요청 본문에는 다음을 auto_capture_config 지정할 수 있습니다.

  • Unity Catalog: 테이블을 저장할 카탈로그를 나타내는 문자열
  • Unity 카탈로그 스키마: 테이블을 저장할 스키마를 나타내는 문자열
  • (선택 사항) 테이블 접두사: 유추 테이블 이름의 접두사로 사용되는 문자열입니다. 이 이름을 지정하지 않으면 엔드포인트 이름이 사용됩니다.
  • (선택 사항) 사용: 유추 테이블을 사용하거나 사용하지 않도록 설정하는 데 사용되는 부울 값입니다. 기본적으로 이 true입니다.

카탈로그, 스키마 및 선택적으로 테이블 접두사를 지정한 후 <catalog>.<schema>.<table_prefix>_payload에 테이블이 생성됩니다. 이 표는 Unity 카탈로그에 의해 관리되는 테이블을 자동으로 생성합니다. 테이블의 소유자는 엔드포인트를 만드는 사용자입니다.

참고 항목

엔드포인트 만들기 또는 엔드포인트 업데이트 시 유추 테이블이 항상 자동으로 생성되므로 기존 테이블 지정은 지원되지 않습니다.

Warning

다음 중 한 가지 작업을 수행하면 유추 테이블이 손상될 수 있습니다.

  • 테이블 스키마를 변경합니다.
  • 테이블 이름을 변경합니다.
  • 테이블을 삭제합니다.
  • Unity 카탈로그 또는 스키마에 대한 사용 권한을 잃게 됩니다.

이 경우 엔드포인트 상태의 auto_capture_config 페이로드 테이블에 대한 FAILED 상태를 표시합니다. 이 경우 유추 테이블을 계속 사용하려면 새 엔드포인트를 만들어야 합니다.

다음 예제에서는 엔드포인트를 만드는 동안 유추 테이블을 사용하도록 설정하는 방법을 보여 줍니다.

POST /api/2.0/serving-endpoints

{
  "name": "feed-ads",
  "config":
  {
    "served_entities": [
      {
       "entity_name": "ads1",
       "entity_version": "1",
       "workload_size": "Small",
       "scale_to_zero_enabled": true
      }
    ],
    "auto_capture_config":
    {
       "catalog_name": "ml",
       "schema_name": "ads",
       "table_name_prefix": "feed-ads-prod"
    }
  }
}

응답은 다음과 같습니다.

{
  "name": "feed-ads",
  "creator": "customer@example.com",
  "creation_timestamp": 1666829055000,
  "last_updated_timestamp": 1666829055000,
  "state": {
    "ready": "NOT_READY",
    "config_update": "IN_PROGRESS"
  },
  "pending_config": {
    "start_time": 1666718879000,
    "served_entities": [
      {
        "name": "ads1-1",
        "entity_name": "ads1",
        "entity_version": "1",
        "workload_size": "Small",
        "scale_to_zero_enabled": true,
        "state": {
          "deployment": "DEPLOYMENT_CREATING",
          "deployment_state_message": "Creating"
        },
        "creator": "customer@example.com",
        "creation_timestamp": 1666829055000
    }
   ],
   "config_version": 1,
   "traffic_config": {
     "routes": [
       {
         "served_model_name": "ads1-1",
         "traffic_percentage": 100
       }
      ]
   },
   "auto_capture_config": {
     "catalog_name": "ml",
     "schema_name": "ads",
     "table_name_prefix": "feed-ads-prod",
     "state": {
       "payload_table": {
         "name": "feed-ads-prod_payload"
       }
     },
     "enabled": true
   }
  },
  "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "permission_level": "CAN_MANAGE"
}

유추 테이블에 대한 로깅이 사용하도록 설정되면 엔드포인트가 준비될 때까지 기다립니다. 그런 다음 호출을 시작할 수 있습니다.

유추 테이블을 만든 후에는 시스템에서 스키마 진화 및 데이터 추가를 처리해야 합니다.

다음 작업은 테이블의 무결성에 영향을 주지 않습니다.

  • 테이블에 대해 OPTIMIZE, 분석 및 VACUUM 실행합니다.
  • 사용되지 않은 이전 데이터를 삭제합니다.

지정 auto_capture_config하지 않으면 기본적으로 이전 구성 버전의 설정 구성이 다시 사용됩니다. 예를 들어 유추 테이블이 이미 사용하도록 설정된 경우 다음 엔드포인트 업데이트에서 동일한 설정이 사용되거나 유추 테이블이 비활성화된 경우 계속 사용하지 않도록 설정됩니다.

{
  "served_entities": [
    {
      "name":"current",
      "entity_name":"model-A",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    }
  ],
  "auto_capture_config": {
    "enabled": false
  }
}

API를 사용하여 기존 엔드포인트에서 유추 테이블 사용

API를 사용하여 기존 엔드포인트에서 유추 테이블을 사용하도록 설정할 수도 있습니다. 유추 테이블을 사용하도록 설정한 후 이후 업데이트 엔드포인트 API 호출에서 동일한 auto_capture_config 본문을 계속 지정하여 유추 테이블을 계속 사용합니다.

참고 항목

유추 테이블을 사용하도록 설정한 후 테이블 위치를 변경하는 것은 지원되지 않습니다.

PUT /api/2.0/serving-endpoints/{name}/config

{
  "served_entities": [
    {
      "name":"current",
      "entity_name":"model-A",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    },
    {
      "name":"challenger",
      "entity_name":"model-B",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    }
  ],
  "traffic_config":{
    "routes": [
      {
        "served_model_name":"current",
        "traffic_percentage":"50"
      },
      {
        "served_model_name":"challenger",
        "traffic_percentage":"50"
      }
    ]
  },
  "auto_capture_config":{
   "catalog_name": "catalog",
   "schema_name": "schema",
   "table_name_prefix": "my-endpoint"
  }
}

유추 테이블 사용 안 함

유추 테이블을 사용하지 않도록 설정하는 경우 카탈로그, 스키마 또는 테이블 접두사를 지정할 필요가 없습니다. 유일한 필수 필드는 .입니다 enabled: false.

POST /api/2.0/serving-endpoints

{
  "name": "feed-ads",
  "config":{
    "served_entities": [
      {
       "entity_name": "ads1",
       "entity_version": "1",
       "workload_size": "Small",
       "scale_to_zero_enabled": true
      }
    ],
    "auto_capture_config":{
       "enabled": false
    }
  }
}

비활성화된 유추 테이블을 재활성화하려면 기존 엔드포인트에서 유추 테이블 사용의 지침을 따르세요. 동일한 테이블을 사용하거나 새 테이블을 지정할 수 있습니다.

다음 단계

유추 테이블을 사용하도록 설정한 후에는 Databricks Lakehouse 모니터링을 사용하여 엔드포인트를 제공하는 모델에서 제공된 모델을 모니터링할 수 있습니다. 자세한 내용은 워크플로:유추 테이블을 사용하여 모델 성능 모니터링을 참조하세요.