다음을 통해 공유


모델 모니터링 및 디버깅을 위한 유추 테이블

Important

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

이 문서에서는 제공된 모델을 모니터링하기 위한 유추 테이블을 설명합니다. 다음 다이어그램은 유추 테이블이 있는 일반적인 워크플로를 보여 줍니다. 유추 테이블은 엔드포인트를 제공하는 모델에 대해 들어오는 요청 및 나가는 응답을 자동으로 캡처하고 Unity 카탈로그 델타 테이블로 기록합니다. 이 테이블의 데이터를 사용하여 ML 모델을 모니터링, 디버그 및 개선할 수 있습니다.

유추 테이블 워크플로

유추 테이블이란?

프로덕션 워크플로에서 모델의 성능을 모니터링하는 것은 AI 및 ML 모델 수명 주기의 중요한 측면입니다. 유추 테이블은 Mosaic AI 모델에서 엔드포인트를 제공하는 요청 입력 및 응답(예측)을 지속적으로 로깅하고 Unity 카탈로그의 델타 테이블에 저장하여 모델에 대한 모니터링 및 진단을 간소화합니다. 그런 다음 DBSQL 쿼리, Notebook 및 Lakehouse 모니터링과 같은 Databricks 플랫폼의 모든 기능을 사용하여 모델을 모니터링, 디버그 및 최적화할 수 있습니다.

엔드포인트를 제공하는 기존 또는 새로 만든 모델에서 유추 테이블을 사용하도록 설정할 수 있으며, 해당 엔드포인트에 대한 요청은 UC의 테이블에 자동으로 기록됩니다.

유추 테이블에 대한 몇 가지 일반적인 애플리케이션은 다음과 같습니다.

  • 데이터 및 모델 품질을 모니터링합니다. Lakehouse 모니터링을 사용하여 모델 성능 및 데이터 드리프트를 지속적으로 모니터링할 수 있습니다. Lakehouse 모니터링은 관련자와 공유할 수 있는 데이터 및 모델 품질 대시보드를 자동으로 생성합니다. 또한 들어오는 데이터의 변화 또는 모델 성능 감소에 따라 모델을 다시 학습해야 하는 경우 경고를 알 수 있습니다.
  • 프로덕션 문제를 디버그합니다. 유추 테이블은 HTTP 상태 코드, 모델 실행 시간, 요청 및 응답 JSON 코드와 같은 데이터를 기록합니다. 디버깅을 위해 이 성능 데이터를 사용할 수 있습니다. 유추 테이블의 기록 데이터를 사용하여 기록 요청의 모델 성능을 비교할 수도 있습니다.
  • 학습 모음을 만듭니다. 유추 테이블을 지상 진리 레이블과 조인하면 모델을 다시 학습하거나 미세 조정하고 개선하는 데 사용할 수 있는 학습 모음을 만들 수 있습니다. Databricks 워크플로를 사용하여 지속적인 피드백 루프를 설정하고 다시 학습을 자동화할 수 있습니다.

요구 사항

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

유추 테이블 사용 및 사용 안 함

이 섹션에서는 Databricks UI를 사용하여 유추 테이블을 사용하거나 사용하지 않도록 설정하는 방법을 보여 줍니다. API를 사용할 수도 있습니다. 지침은 API를 사용하여 엔드포인트를 제공하는 모델에서 유추 테이블 사용을 참조하세요.

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

Warning

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

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

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

엔드포인트를 만드는 동안 유추 테이블을 사용하도록 설정하려면 다음 단계를 사용합니다.

  1. Databricks Machine Learning UI에서 서비스(Serving)를 클릭합니다.

  2. 서비스 엔드포인트 만들기를 클릭합니다.

  3. 유추 테이블 사용을 선택합니다.

  4. 드롭다운 메뉴에서 원하는 카탈로그와 테이블을 배치할 스키마를 선택합니다.

    유추 테이블에 대한 카탈로그 및 스키마

  5. 기본 테이블 이름은 .입니다 <catalog>.<schema>.<endpoint-name>_payload. 원하는 경우 사용자 지정 테이블 접두사를 입력할 수 있습니다.

  6. 서비스 엔드포인트 만들기를 클릭합니다.

기존 엔드포인트에서 유추 테이블을 사용하도록 설정할 수도 있습니다. 기존 엔드포인트 구성을 편집하려면 다음을 수행합니다.

  1. 엔드포인트 페이지로 이동합니다.
  2. 구성 편집을 클릭합니다.
  3. 3단계부터 이전 지침을 따릅니다.
  4. 완료되면 서비스 엔드포인트 업데이트를 클릭합니다.

다음 지침에 따라 유추 테이블을 사용하지 않도록 설정합니다.

Important

엔드포인트에서 유추 테이블을 사용하지 않도록 설정하면 다시 사용하도록 설정할 수 없습니다. 유추 테이블을 계속 사용하려면 새 엔드포인트를 만들고 유추 테이블을 사용하도록 설정해야 합니다.

  1. 엔드포인트 페이지로 이동합니다.
  2. 구성 편집을 클릭합니다.
  3. 유추 테이블 사용을 클릭하여 확인 표시를 제거합니다.
  4. 엔드포인트 사양에 만족하면 업데이트를 클릭합니다.

워크플로: 유추 테이블을 사용하여 모델 성능 모니터링

유추 테이블을 사용하여 모델 성능을 모니터링하려면 다음 단계를 수행합니다.

  1. 엔드포인트를 만드는 동안 또는 나중에 업데이트하여 엔드포인트에서 유추 테이블을 사용하도록 설정합니다.
  2. 엔드포인트의 스키마에 따라 압축을 풀면 유추 테이블에서 JSON 페이로드를 처리하는 워크플로를 예약합니다.
  3. (선택 사항) 포장되지 않은 요청 및 응답을 근거리 레이블과 조인하여 모델 품질 메트릭을 계산할 수 있도록 합니다.
  4. 결과 델타 테이블을 통해 모니터를 만들고 메트릭을 새로 고칩니다.

시작 Notebook은 이 워크플로를 구현합니다.

유추 테이블을 모니터링하기 위한 시작 Notebook

다음 Notebook은 위에서 설명한 단계를 구현하여 Lakehouse 모니터링 유추 테이블의 요청 압축을 풉니다. Databricks 워크플로를 사용하여 주문형 또는 되풀이 일정에 따라 Notebook을 실행할 수 있습니다.

유추 테이블 Lakehouse 모니터링 시작 Notebook

전자 필기장 가져오기

LLM을 제공하는 엔드포인트에서 텍스트 품질을 모니터링하기 위한 시작 Notebook

다음 Notebook은 유추 테이블의 요청 압축을 풀고 텍스트 평가 메트릭 집합(예: 가독성 및 독성)을 계산하며 이러한 메트릭을 모니터링할 수 있도록 합니다. Databricks 워크플로를 사용하여 주문형 또는 되풀이 일정에 따라 Notebook을 실행할 수 있습니다.

LLM 유추 테이블 Lakehouse 모니터링 시작 Notebook

전자 필기장 가져오기

유추 테이블의 결과 쿼리 및 분석

제공된 모델이 준비되면 모델에 대한 모든 요청이 응답과 함께 유추 테이블에 자동으로 기록됩니다. UI에서 테이블을 보거나, DBSQL 또는 Notebook에서 테이블을 쿼리하거나, REST API를 사용하여 테이블을 쿼리할 수 있습니다.

UI에서 테이블을 보려면 엔드 포인트 페이지에서 유추 테이블의 이름을 클릭하여 카탈로그 탐색기에서 테이블을 엽니다.

엔드포인트 페이지의 유추 테이블 이름에 대한 링크

DBSQL 또는 Databricks Notebook 에서 테이블을 쿼리하려면 다음과 유사한 코드를 실행하여 유추 테이블을 쿼리할 수 있습니다.

SELECT * FROM <catalog>.<schema>.<payload_table>

UI payload_table 를 사용하여 유추 테이블을 사용하도록 설정한 경우 엔드포인트를 만들 때 할당한 테이블 이름입니다. API payload_table 를 사용하여 유추 테이블을 사용하도록 설정한 경우 응답 섹션에 state auto_capture_config 보고됩니다. 예를 들어 API를 사용하여 엔드포인트를 제공하는 모델에서 유추 테이블 사용을 참조하세요.

성능 참고 사항

엔드포인트를 호출한 후 점수 매기기 요청을 보낸 후 1시간 이내에 유추 테이블에 기록된 호출을 볼 수 있습니다. 또한 Azure Databricks는 로그 배달이 한 번 이상 수행되도록 보장하므로 중복 로그가 전송될 가능성은 낮지만 가능합니다.

Unity 카탈로그 유추 테이블 스키마

유추 테이블에 기록되는 각 요청 및 응답은 다음 스키마를 사용하여 델타 테이블에 기록됩니다.

참고 항목

입력 일괄 처리로 엔드포인트를 호출하면 전체 일괄 처리가 하나의 행으로 기록됩니다.

열 이름 설명 Type
databricks_request_id 요청을 제공하는 모든 모델에 연결된 Azure Databricks 생성 요청 식별자입니다. STRING
client_request_id 요청 본문을 제공하는 모델에 지정할 수 있는 선택적 클라이언트 생성 요청 식별자입니다. 자세한 내용은 지정 client_request_id 을 참조하세요. STRING
date 모델 제공 요청이 수신된 UTC 날짜입니다. DATE
timestamp_ms 모델 서비스 요청이 수신된 시점의 epoch 밀리초 단위 타임스탬프입니다. LONG
status_code 모델에서 반환된 HTTP 상태 코드입니다. INT
sampling_fraction 요청이 다운 샘플링된 경우에 사용된 샘플링 분수입니다. 이 값은 0에서 1 사이입니다. 여기서 1은 들어오는 요청의 100%가 포함되었음을 나타냅니다. DOUBLE
execution_time_ms 모델에서 유추를 수행한 실행 시간(밀리초)입니다. 여기에는 오버헤드 네트워크 대기 시간이 포함되지 않으며 모델이 예측을 생성하는 데 걸린 시간만 나타냅니다. LONG
request 엔드포인트를 제공하는 모델로 전송된 원시 요청 JSON 본문입니다. STRING
response 엔드포인트를 제공하는 모델에서 반환한 원시 응답 JSON 본문입니다. STRING
request_metadata 요청과 연결된 엔드포인트를 제공하는 모델과 관련된 메타데이터의 맵입니다. 이 맵에는 엔드포인트에 사용되는 엔드포인트 이름, 모델 이름 및 모델 버전이 포함됩니다. MAP<STRING, STRING>

지정 client_request_id

client_request_id 필드는 요청 본문을 제공하는 모델에서 사용자가 제공할 수 있는 선택적 값입니다. 이렇게 하면 사용자는 최종 유추 테이블에 client_request_id 표시되는 요청에 대한 고유 식별자를 제공할 수 있으며, 지상 진리 레이블 조인과 같이 요청을 사용하는 client_request_id다른 테이블과 조인하는 데 사용할 수 있습니다. 지정 client_request_id하려면 요청 페이로드의 최상위 키로 포함합니다. 지정하지 client_request_id 않으면 값이 요청에 해당하는 행에 null로 표시됩니다.

{
  "client_request_id": "<user-provided-id>",
  "dataframe_records": [
    {
      "sepal length (cm)": 5.1,
      "sepal width (cm)": 3.5,
      "petal length (cm)": 1.4,
      "petal width (cm)": 0.2
    },
    {
      "sepal length (cm)": 4.9,
      "sepal width (cm)": 3,
      "petal length (cm)": 1.4,
      "petal width (cm)": 0.2
    },
    {
      "sepal length (cm)": 4.7,
      "sepal width (cm)": 3.2,
      "petal length (cm)": 1.3,
      "petal width (cm)": 0.2
    }
  ]
}

client_request_id 레이블이 연결된 다른 테이블이 있는 경우 나중에 접지 진리 레이블 조인에 client_request_id사용할 수 있습니다.

제한 사항

  • 고객 관리형 키는 지원되지 않습니다.
  • 기본 모델을 호스트하는 엔드포인트의 경우 유추 테이블은 프로비전된 처리량 워크로드에서만 지원됩니다.
  • 외부 모델을 호스트하는 엔드포인트에서는 유추 테이블이 지원되지 않습니다.
  • Azure Firewall은 Unity 카탈로그 델타 테이블을 만들지 못할 수 있으므로 기본적으로 지원되지 않습니다. Databricks 계정 팀에 문의하여 사용하도록 설정합니다.
  • 유추 테이블을 사용하도록 설정하면 단일 엔드포인트의 모든 제공된 모델에 대한 총 최대 동시성 제한은 128입니다. 이 제한의 증가를 요청하려면 Azure Databricks 계정 팀에 문의하세요.
  • 유추 테이블에 500K 이상의 파일이 포함되어 있으면 추가 데이터가 기록되지 않습니다. 이 제한을 초과하지 않도록 하려면 이전 데이터를 삭제하여 OPTIMIZE를 실행하거나 테이블에 대한 보존을 설정합니다. 테이블의 파일 수를 확인하려면 다음을 실행 DESCRIBE DETAIL <catalog>.<schema>.<payload_table>합니다.

엔드포인트 제한 사항을 제공하는 일반 모델은 모델 서비스 제한 및 지역을 참조 하세요.