데이터 과학 모델 모니터링


Red Hat OpenShift AI Cloud Service 1

OpenShift AI 모델에 대한 공정성 모니터링

초록

OpenShift AI에서 머신 러닝 모델을 모니터링하여 투명하고 공정하며 신뢰할 수 있는지 확인합니다.

1장. 모델 모니터링 개요

머신 러닝 모델이 투명하고 공정하며 신뢰할 수 있도록 데이터 과학자는 OpenShift AI에서 TrustyAI를 사용하여 데이터 사이언스 모델을 모니터링할 수 있습니다.

데이터 과학자는 다음 메트릭을 위해 OpenShift AI에서 데이터 사이언스 모델을 모니터링할 수 있습니다.

무례한
모델 결정이 바람직하지 않은지 확인하기 위해 데이터 및 모델 예측의 불분명한 패턴이나 무관한 패턴을 확인하십시오.
데이터 드리프트
최신 실제 데이터를 원래 교육 데이터와 비교하여 시간이 지남에 따라 입력 데이터 배포의 변경 사항을 감지합니다. 데이터를 비교하면 모델 성능에 영향을 줄 수 있는 전환 또는 편차를 확인하여 모델이 정확하고 안정적으로 유지됩니다.

2장. TrustyAI 구성

OpenShift AI에서 데이터 과학자가 사용할 수 있도록 TrustyAI를 사용하여 모델 모니터링을 구성하려면 클러스터 관리자가 다음 작업을 수행합니다.

  • 모델 제공 플랫폼에 대한 모니터링 구성
  • Red Hat OpenShift AI 애드온에서 TrustyAI 구성 요소 활성화
  • TrustyAI의 스토리지에 PVC 대신 데이터베이스를 사용하려면 TrustyAI를 구성하십시오.
  • 데이터 과학자가 모니터링하려는 모델이 포함된 각 데이터 사이언스 프로젝트에 TrustyAI 서비스를 설치합니다.

2.1. 모델 서비스 플랫폼에 대한 모니터링 구성

OpenShift AI는 다음과 같은 모델 서비스 플랫폼을 제공합니다.

단일 모델 제공 플랫폼
대용량 언어 모델(LLM)과 같은 대규모 모델을 배포하기 위해 OpenShift AI에는 KServe 구성 요소를 기반으로 하는 단일 모델 제공 플랫폼이 포함되어 있습니다. 각 모델은 자체 모델 서버에서 배포됩니다. 증가된 리소스가 필요한 대규모 모델을 배포, 모니터링, 확장 및 유지 관리해야 하는 경우 단일 모델 서비스 플랫폼을 사용하십시오.
다중 모델 서비스 플랫폼
소규모 및 중간 규모의 모델을 배포하기 위해 OpenShift AI에는 ModelMesh 구성 요소를 기반으로 하는 다중 모델 제공 플랫폼이 포함되어 있습니다. 다중 모델 제공 플랫폼에서는 동일한 모델 서버에 여러 모델을 배포할 수 있습니다. 배포된 각 모델은 서버 리소스를 공유합니다. 이 방법은 제한된 컴퓨팅 리소스 또는 Pod가 있는 OpenShift AI 클러스터에서 유용할 수 있습니다.

단일(KServe) 또는 다중 모델(ModelMesh) 서비스 플랫폼에 대한 모니터링을 구성하는 프로세스는 동일합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • OpenShift CLI(명령줄 인터페이스)를 다운로드하여 설치했습니다. OpenShift CLI 설치를 참조하십시오.
  • 사용자 정의 워크플로우를 모니터링하기 위한 구성 맵을 생성하는 방법을 알고 있습니다. 이 절차에서는 유사한 단계를 수행합니다.
  • OpenShift에서 사용자 정의 프로젝트에 대한 모니터링을 활성화하는 방법을 알고 있습니다. 이 절차에서는 유사한 단계를 수행합니다.
  • 메트릭을 모니터링할 사용자에게 monitoring-rules-view 역할을 할당 했습니다.

프로세스

  1. 터미널 창에서 클러스터 관리자로 OpenShift 클러스터에 로그인하지 않은 경우 다음 예와 같이 OpenShift CLI에 로그인합니다.

    $ oc login <openshift_cluster_url> -u <admin_username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. 다음 콘텐츠를 사용하여 uwm-cm-conf.yaml 이라는 YAML 파일에 ConfigMap 오브젝트를 정의합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: user-workload-monitoring-config
      namespace: openshift-user-workload-monitoring
    data:
      config.yaml: |
        prometheus:
          logLevel: debug
          retention: 15d
    Copy to Clipboard Toggle word wrap

    user-workload-monitoring-config 오브젝트는 사용자 정의 프로젝트를 모니터링하는 구성 요소를 구성합니다. 보존 시간이 권장 15일의 값으로 설정되어 있는지 확인합니다.

  3. 구성을 적용하여 user-workload-monitoring-config 오브젝트를 생성합니다.

    $ oc apply -f uwm-cm-conf.yaml
    Copy to Clipboard Toggle word wrap
  4. 다음 콘텐츠를 사용하여 uwm-cm-enable.yaml 이라는 YAML 파일에 다른 ConfigMap 오브젝트를 정의합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
        enableUserWorkload: true
    Copy to Clipboard Toggle word wrap

    cluster-monitoring-config 오브젝트를 사용하면 사용자 정의 프로젝트를 모니터링할 수 있습니다.

  5. 구성을 적용하여 cluster-monitoring-config 오브젝트를 생성합니다.

    $ oc apply -f uwm-cm-enable.yaml
    Copy to Clipboard Toggle word wrap

2.2. TrustyAI 구성 요소 활성화

데이터 과학자가 TrustyAI에서 모델 모니터링을 사용하도록 하려면 OpenShift AI에서 TrustyAI 구성 요소를 활성화해야 합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • 데이터 사이언스 클러스터에 액세스할 수 있습니다.
  • Red Hat OpenShift AI를 설치했습니다.

프로세스

  1. OpenShift 콘솔에서 Operator → 설치된 Operator 를 클릭합니다.
  2. Red Hat OpenShift AI Operator를 검색한 다음 Operator 이름을 클릭하여 Operator 세부 정보 페이지를 엽니다.
  3. Data Science Cluster 탭을 클릭합니다.
  4. 기본 인스턴스 이름(예: default-dsc)을 클릭하여 인스턴스 세부 정보 페이지를 엽니다.
  5. YAML 탭을 클릭하여 인스턴스 사양을 표시합니다.
  6. spec:components 섹션에서 trustyai 구성 요소의 managementState 필드를 Managed 로 설정합니다.

     trustyai:
        managementState: Managed
    Copy to Clipboard Toggle word wrap
  7. 저장을 클릭합니다.

검증

trustyai-service-operator Pod의 상태를 확인합니다.

  1. OpenShift 콘솔의 프로젝트 목록에서 redhat-ods-applications 를 선택합니다.
  2. 워크로드배포를 클릭합니다.
  3. trustyai-service-operator-contoller-manager 배포를 검색합니다. 상태를 확인합니다.

    1. 배포 이름을 클릭하여 배포 세부 정보 페이지를 엽니다.
    2. 포드 탭을 클릭합니다.
    3. Pod 상태를 확인합니다.

      trustyai-service-operator-controller-manager- <pod-id > Pod의 상태가 Running 이면 Pod를 사용할 준비가 된 것입니다.

2.3. 데이터베이스를 사용하여 TrustyAI 구성

MySQL 또는 MariaDB와 같은 OpenShift 클러스터에 관계형 데이터베이스가 있는 경우 PVC(영구 볼륨 클레임) 대신 데이터베이스를 사용하도록 TrustyAI를 구성할 수 있습니다. 스토리지에 PVC 대신 데이터베이스를 사용하면 TrustyAI의 확장성, 성능 및 데이터 관리를 향상시킬 수 있습니다. 배포 전에 TrustyAI에 데이터베이스 구성 시크릿을 제공합니다. 시크릿을 생성하거나 프로젝트 내에서 기존 Kubernetes 시크릿의 이름을 지정할 수 있습니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • OpenShift CLI(명령줄 인터페이스)를 다운로드하여 설치했습니다. OpenShift CLI 설치를 참조하십시오.
  • TrustyAI 구성 요소 활성화에 설명된 대로 TrustyAI 구성 요소를 활성화했습니다.
  • 데이터 가치는 데이터 사이언스 프로젝트를 만드는 데 설명된 대로 데이터 사이언스 프로젝트를 만들었으며, 여기에는 데이터 과학자가 모니터링하려는 모델이 포함되어 있습니다.
  • 외부 MySQL 데이터베이스를 사용하여 TrustyAI 서비스를 구성하는 경우 데이터베이스가 이미 클러스터에 있어야 하며 최소 MySQL 버전 5.x를 사용해야 합니다. 그러나 Red Hat은 MySQL 버전 8.x를 사용하는 것이 좋습니다.
  • MariaDB 데이터베이스를 사용하여 TrustyAI 서비스를 구성하는 경우 데이터베이스가 이미 클러스터에 있고 MariaDB 버전 10.3 이상을 사용해야 합니다. 그러나 Red Hat은 최소 MariaDB 버전 10.5를 사용하는 것이 좋습니다.
참고

TLS(Transport security layer) 프로토콜은 MariaDB operator 0.29 이상 버전에서 작동하지 않습니다.

프로세스

  1. 터미널 창에서 클러스터 관리자로 OpenShift 클러스터에 로그인하지 않은 경우 다음 예와 같이 OpenShift CLI에 로그인합니다.

    $ oc login <openshift_cluster_url> -u <admin_username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: TrustyAI와 데이터베이스 간에 TLS 연결을 사용하려면 데이터베이스에 사용하려는 것과 동일한 인증서를 사용하는 TrustyAI 서비스 데이터베이스 TLS 시크릿을 만듭니다.

    1. TLS 시크릿을 포함할 YAML 파일을 생성하고 다음 코드를 추가합니다.

      apiVersion: v1
      kind: Secret
      metadata:
        name: <service_name>-db-tls
      type: kubernetes.io/tls
      data:
        tls.crt: |
          <TLS CERTIFICATE>
      
        tls.key: |
          <TLS KEY>
      Copy to Clipboard Toggle word wrap
    2. 파일 이름 < service_name> -db-tls.yaml 을 사용하여 파일을 저장합니다. 예를 들어 서비스 이름이 trustyai-service 인 경우 파일을 trustyai-service-db-tls.yaml 로 저장합니다.
    3. 데이터 분석 프로젝트에서 모니터링하려는 모델이 포함된 YAML 파일을 적용합니다.

      $ oc apply -f <service_name>-db-tls.yaml -n <project_name>
      Copy to Clipboard Toggle word wrap
  3. 데이터베이스 인증 정보가 있는 시크릿을 생성하거나 기존 보안을 지정합니다.

    1. 보안을 포함할 YAML 파일을 생성하고 다음 코드를 추가합니다.

      apiVersion: v1
      kind: Secret
      metadata:
        name: db-credentials
      type: Opaque
      stringData:
        databaseKind: <mariadb> 
      1
      
        databaseUsername: <TrustyAI_username> 
      2
      
        databasePassword: <TrustyAI_password> 
      3
      
        databaseService: mariadb-service 
      4
      
        databasePort: 3306 
      5
      
        databaseGeneration: update 
      6
      
        databaseName: trustyai_service 
      7
      Copy to Clipboard Toggle word wrap
      1
      현재 지원되는 유일한 databaseKind 값은 mariadb 입니다.
      2
      TrustyAI가 데이터베이스와 상호 작용할 때 사용할 사용자 이름입니다.
      3
      데이터베이스에 연결할 때 TrustyAI에서 사용해야 하는 암호입니다.
      4
      데이터베이스에 연결할 때 TrustyAI가 사용해야 하는 Kubernetes(K8s) 서비스(기본 mariadb)입니다.
      5
      TrustyAI가 데이터베이스에 연결할 때 사용해야 하는 포트입니다(기본값은 3306임).
      6
      TrustyAI에서 사용할 데이터베이스 스키마 생성 전략입니다. 이는 trustyAI가 초기 연결에서 데이터베이스와 상호 작용하는 방식을 결정하는 quarkus.hibernate-orm.database.generation 인수의 설정입니다. none,create,drop-and-create,drop,update 또는 validate 로 설정합니다.
      7
      사용자 이름과 암호가 인증하는 데이터베이스 서비스 내 개별 데이터베이스의 이름과 TrustyAI가 데이터베이스 서버에서 읽고 써야 하는 특정 데이터베이스 이름입니다.
    2. 파일 이름 db-credentials.yaml 을 사용하여 파일을 저장합니다. 나중에 TrustyAI 서비스를 설치하거나 변경할 때 이 이름이 필요합니다.
    3. 데이터 분석 프로젝트에서 모니터링하려는 모델이 포함된 YAML 파일을 적용합니다.

      $ oc apply -f db-credentials.yaml -n <project_name>
      Copy to Clipboard Toggle word wrap
  4. If you are installing TrustyAI for the first time on a project, continue to Installing the TrustyAI service for a project.

    이미 프로젝트에 TrustyAI를 설치한 경우 기존 TrustyAI 서비스를 PVC를 사용하여 데이터베이스를 사용하여 마이그레이션할 수 있습니다.

    1. YAML 파일을 생성하여 TrustyAI 서비스 CR(사용자 정의 리소스)을 업데이트하고 다음 코드를 추가합니다.

      apiVersion: trustyai.opendatahub.io/v1alpha1
      kind: TrustyAIService
      metadata:
        annotations:
          trustyai.opendatahub.io/db-migration: "true" 
      1
      
        name: trustyai-service 
      2
      
      spec:
        storage:
          format: "DATABASE" 
      3
      
          folder: "/inputs" 
      4
      
            size: "1Gi" 
      5
      
          databaseConfigurations: <database_secret_credentials> 
      6
      
        data:
          filename: "data.csv" 
      7
      
        metrics:
          schedule: "5s" 
      8
      Copy to Clipboard Toggle word wrap
      1
      PVC에서 데이터베이스 스토리지로 마이그레이션을 요청하려면 true 로 설정합니다.
      2
      TrustyAI 서비스 인스턴스의 이름입니다.
      3
      데이터의 스토리지 형식입니다. 이 필드를 DATABASE 로 설정합니다.
      4
      데이터를 저장한 PVC 내의 위치입니다. 기존 CR에 지정된 값과 일치해야 합니다.
      5
      요청할 데이터의 크기입니다.
      6
      이전 단계에서 생성한 데이터베이스 인증 정보가 있는 시크릿의 이름입니다. 예를 들면 db-credentials 입니다.
      7
      저장된 기존 데이터 파일의 접미사입니다. 기존 CR에 지정된 값과 일치해야 합니다.
      8
      메트릭을 계산하는 간격입니다. 기본값은 5s입니다. 기간은 ISO-8601 형식으로 지정됩니다. 예를 들어 5 초 동안 5초, 5분 동안 5m, 5시간 동안 5 시간은 5시간입니다.
    2. 파일을 저장합니다. 예를 들면 trustyai_crd.yaml 입니다.
    3. 새로운 TrustyAI 서비스 CR을 데이터 가 모니터링하려는 모델이 포함된 데이터 사이언스 프로젝트에 적용합니다.

      $ oc apply -f trustyai_crd.yaml -n <project_name>
      Copy to Clipboard Toggle word wrap

2.4. 프로젝트를 위한 TrustyAI 서비스 설치

데이터 과학 프로젝트에 TrustyAI 서비스를 설치하여 해당 프로젝트 내에 배포된 모든 모델의 기능에 액세스할 수 있도록 합니다. 각 데이터 사이언스 프로젝트 또는 네임 스페이스에는 데이터 과학자가 모니터링하려는 모델이 포함된 TrustyAI 서비스의 인스턴스가 필요합니다.

참고

프로젝트에 TrustyAI 서비스의 인스턴스 하나만 설치합니다. 동일한 프로젝트의 여러 인스턴스가 예기치 않은 동작이 발생할 수 있습니다.

2.4.1. CLI를 사용하여 TrustyAI 서비스 설치

OpenShift CLI(명령줄 인터페이스)를 사용하여 TrustyAI 서비스의 인스턴스를 설치할 수 있습니다.

사전 요구 사항

프로세스

  1. 새 터미널 창을 엽니다.
  2. 다음 단계에 따라 클러스터 관리자로 OpenShift 클러스터에 로그인합니다.

    1. OpenShift 웹 콘솔에서 사용자 이름을 클릭하고 로그인 복사 명령을 선택합니다.
    2. 로그인한 후 토큰 표시를 클릭합니다.
    3. 이 토큰 명령으로 로그인을 복사하여 OpenShift CLI(명령줄 인터페이스)에 붙여넣습니다.

      $ oc login --token=<token> --server=<openshift_cluster_url>
      Copy to Clipboard Toggle word wrap
  3. 데이터 센터가 모니터링하려는 모델이 포함된 데이터 사이언스 프로젝트로 이동합니다.

    oc project <project_name>
    Copy to Clipboard Toggle word wrap

    예를 들면 다음과 같습니다.

    oc project my-project
    Copy to Clipboard Toggle word wrap
  4. TrustyAIService CR(사용자 정의 리소스) 파일을 생성합니다(예: trustyai_crd.yaml ):

    데이터베이스를 사용하는 TrustyAI의 CR 파일 예

    apiVersion: trustyai.opendatahub.io/v1alpha1
    kind: TrustyAIService
    metadata:
      name: trustyai-service 
    1
    
    spec:
      storage:
    	  format: "DATABASE" 
    2
    
    	  size: "1Gi" 
    3
    
    	  databaseConfigurations: <database_secret_credentials> 
    4
    
      metrics:
      	schedule: "5s" 
    5
    Copy to Clipboard Toggle word wrap

    1
    TrustyAI 서비스 인스턴스의 이름입니다.
    2
    데이터의 스토리지 형식( DATABASE 또는 PVC (영구 볼륨 클레임))입니다. TrustyAI의 확장성, 성능 및 데이터 관리를 개선하기 위해 데이터베이스 설정을 사용하는 것이 좋습니다.
    3
    요청할 데이터의 크기입니다.
    4
    데이터베이스를 사용하여 TrustyAI 구성에서 생성한 데이터베이스 인증 정보가 있는 시크릿의 이름입니다. 예를 들면 db-credentials 입니다.
    5
    메트릭을 계산하는 간격입니다. 기본값은 5s입니다. 기간은 ISO-8601 형식으로 지정됩니다. 예를 들어 5 초 동안 5초, 5분 동안 5m, 5시간 동안 5 시간은 5시간입니다.

    PVC를 사용하는 TrustyAI의 CR 파일 예

    apiVersion: trustyai.opendatahub.io/v1alpha1
    kind: TrustyAIService
    metadata:
      name: trustyai-service 
    1
    
    spec:
      storage:
    	  format: "PVC" 
    2
    
    	  folder: "/inputs" 
    3
    
    	  size: "1Gi" 
    4
    
      data:
    	  filename: "data.csv" 
    5
    
    	  format: "CSV" 
    6
    
      metrics:
      	schedule: "5s" 
    7
    
      	batchSize: 5000 
    8
    Copy to Clipboard Toggle word wrap

    1
    TrustyAI 서비스 인스턴스의 이름입니다.
    2
    데이터의 스토리지 형식( DATABASE 또는 PVC (영구 볼륨 클레임))입니다.
    3
    데이터를 저장하려는 PVC 내의 위치입니다.
    4
    요청할 PVC의 크기입니다.
    5
    저장된 데이터 파일의 접미사입니다.
    6
    데이터 형식입니다. 현재 쉼표로 구분된 값(CSV) 형식만 지원됩니다.
    7
    메트릭을 계산하는 간격입니다. 기본값은 5s입니다. 기간은 ISO-8601 형식으로 지정됩니다. 예를 들어 5 초 동안 5초, 5분 동안 5m, 5시간 동안 5 시간은 5시간입니다.
    8
    (선택 사항) 메트릭 계산에 사용할 관찰의 과거 창 크기입니다. 기본값은 5000 입니다. 즉, 5,000개의 최신 유추를 사용하여 메트릭이 계산됩니다.
  5. TrustyAI 서비스의 CR을 프로젝트에 추가합니다.

    oc apply -f trustyai_crd.yaml
    Copy to Clipboard Toggle word wrap

    이 명령은 다음과 유사한 출력을 반환합니다.

    trusty-service created
    Copy to Clipboard Toggle word wrap

검증

TrustyAI 서비스를 설치했는지 확인합니다.

oc get pods | grep trustyai
Copy to Clipboard Toggle word wrap

다음과 유사한 응답이 표시됩니다.

trustyai-service-5d45b5884f-96h5z             1/1     Running
Copy to Clipboard Toggle word wrap

3장. 프로젝트에 대한 TrustyAI 설정

데이터 사이언스 프로젝트에 대한 TrustyAI를 사용하여 모델 모니터링을 설정하기 위해 데이터 생성은 다음과 같은 작업을 수행합니다.

  • TrustyAI 서비스 인증
  • 탈취 또는 데이터 드리프트 모니터링을 위해 교육 데이터를 TrustyAI로 전송
  • 데이터 필드에 레이블을 지정 (선택 사항)

데이터 가맹점은 배포된 모델에 대한 의도와 데이터 드리프트 메트릭을 생성하고 볼 수 있습니다.

3.1. TrustyAI 서비스 인증

TrustyAI 서비스 외부 엔드포인트에 액세스하려면 OAuth 프록시(oauth-proxy) 인증을 제공해야 합니다. 충분한 권한이 있는 서비스 계정에서 사용자 토큰 또는 토큰을 가져온 다음 curl 명령을 사용할 때 TrustyAI 서비스에 토큰을 전달해야 합니다.

사전 요구 사항

프로세스

  1. 새 터미널 창을 엽니다.
  2. 다음 단계에 따라 OpenShift 클러스터에 로그인합니다.

    1. OpenShift 웹 콘솔의 오른쪽 상단에서 사용자 이름을 클릭하고 로그인 복사 명령을 선택합니다.
    2. 로그인한 후 토큰 표시를 클릭합니다.
    3. 이 토큰 명령으로 로그인을 복사하여 OpenShift CLI(명령줄 인터페이스)에 붙여넣습니다.

      $ oc login --token=<token> --server=<openshift_cluster_url>
      Copy to Clipboard Toggle word wrap
  3. 다음 명령을 입력하여 OpenShift에서 사용자 토큰 변수를 설정합니다.

    export TOKEN=$(oc whoami -t)
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 입력하여 사용자 토큰 변수를 확인합니다.

    echo $TOKEN
    Copy to Clipboard Toggle word wrap

다음 단계

curl 명령을 실행할 때 인증 헤더를 사용하여 토큰을 TrustyAI 서비스에 전달합니다. 예를 들면 다음과 같습니다.

curl -H "Authorization: Bearer $TOKEN" $TRUSTY_ROUTE
Copy to Clipboard Toggle word wrap

3.2. TrustyAI에 교육 데이터 전송

TrustyAI를 사용하여 준비 모니터링 또는 데이터 드리프트 감지를 위해서는 모델에 대한 교육 데이터를 TrustyAI에 보내야 합니다.

사전 요구 사항

  • OpenShift 클러스터 관리자는 OpenShift 클러스터에 사용자로 사용자를 추가하고 배포된 모델이 포함된 데이터 사이언스 프로젝트에 대한 TrustyAI 서비스를 설치했습니다.
  • TrustyAI 서비스 인증에 설명된 대로 TrustyAI 서비스를 인증 했습니다.
  • 배포된 모델은 TrustyAI에 등록되어 있습니다.

    다음과 같이 TrustyAI 서비스가 배포된 모델을 등록했는지 확인합니다.

    1. OpenShift 웹 콘솔에서 워크로드Pod 로 이동합니다.
    2. 프로젝트 목록에서 배포된 모델이 포함된 프로젝트를 선택합니다.
    3. 제공 플랫폼의 Pod를 선택합니다(예: modelmesh-serving-ovms-1.x-xxxxx).
    4. 환경 탭에서 MM_PAYLOAD_PROCESSORS 환경 변수가 설정되어 있는지 확인합니다.

프로세스

  1. TRUSTY_ROUTE 변수를 TrustyAI 서비스 pod의 외부 경로로 설정합니다.

    TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
    Copy to Clipboard Toggle word wrap
  2. 배포된 모델의 유추 끝점 액세스에 설명된 대로 배포된 모델 의 유추 끝점을 가져옵니다.
  3. 이 엔드포인트에 데이터를 보냅니다. 자세한 내용은 KServe v2 유추 프로토콜 설명서를 참조하십시오.

검증

다음 단계에 따라 클러스터 메트릭을 보고 TrustyAI가 데이터를 수신하고 있는지 확인합니다.

  1. OpenShift 웹 콘솔에 로그인합니다.
  2. 개발자 화면으로 전환합니다.
  3. 왼쪽 메뉴에서 모니터링 을 클릭합니다.
  4. 지표 페이지에서 쿼리 선택 목록을 클릭한 다음 사용자 지정 쿼리 를 선택합니다.
  5. Expression 필드에 trustyai_model_observations_total 을 입력하고 Enter를 누릅니다. 모델이 나열되고 관찰된 유추를 보고해야 합니다.
  6. 선택 사항: 그래프 위의 목록에서 시간 범위를 선택합니다. 예를 들어 5m 을 선택합니다.

3.3. 데이터 필드 레이블 지정

TrustyAI에 모델 교육 데이터를 보낸 후 필드 이름이 의미 있고 작업하기 쉽도록 이름 매핑 세트를 입력 및 출력에 적용할 수 있습니다.

사전 요구 사항

  • OpenShift 클러스터 관리자는 OpenShift 클러스터에 사용자로 사용자를 추가하고 배포된 모델이 포함된 데이터 사이언스 프로젝트에 대한 TrustyAI 서비스를 설치했습니다.
  • 교육 데이터를 TrustyAI에 전송하는 방법에 설명된 대로 TrustyAI에 전송 했습니다.

프로세스

  1. 새 터미널 창을 엽니다.
  2. 다음 단계에 따라 OpenShift 클러스터에 로그인합니다.

    1. OpenShift 웹 콘솔의 오른쪽 상단에서 사용자 이름을 클릭하고 로그인 복사 명령을 선택합니다.
    2. 로그인한 후 토큰 표시를 클릭합니다.
    3. 이 토큰 명령으로 로그인을 복사하여 OpenShift CLI(명령줄 인터페이스)에 붙여넣습니다.

      $ oc login --token=<token> --server=<openshift_cluster_url>
      Copy to Clipboard Toggle word wrap
  3. OpenShift CLI에서 TrustyAI 서비스로의 경로를 가져옵니다.

    TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
    Copy to Clipboard Toggle word wrap
  4. TrustyAI의 모델 메타데이터를 검사하려면 /info 끝점을 쿼리합니다.

    curl -H "Authorization: Bearer $TOKEN" $TRUSTY_ROUTE/info | jq ".[0].data"
    Copy to Clipboard Toggle word wrap

    이렇게 하면 각 모델에 대해 다음 정보가 포함된 JSON 파일이 출력됩니다.

    • 입력 필드 및 출력 필드의 이름, 데이터 유형 및 위치입니다.
    • 관찰된 필드 값입니다.
    • 관찰된 총 입력 출력 쌍 수입니다.
  5. POST /info/names 를 사용하여 다음 예제와 유사하게 이름 매핑을 필드에 적용합니다.

    model-name,original-namePrediction 값을 모델에 사용된 값으로 변경합니다. 새 이름 값을 사용하려는 레이블로 변경합니다.

    curl -sk -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE/info/names \
      -H "Content-Type: application/json"   \
      -d "{
        \"modelId\": \"model-name\",
        \"inputMapping\":
          {
            \"original-name-0\": \"New name 0\",
            \"original-name-1\": \"New name 1\",
            \"original-name-2\": \"New name 2\",
            \"original-name-3\": \"New name 3\",
          },
        \"outputMapping\": {
          \"predict-0\": \"Prediction 0\"
        }
      }"
    Copy to Clipboard Toggle word wrap

    다른 예제는 https://github.com/trustyai-explainability/odh-trustyai-demos/blob/main/2-BiasMonitoring/kserve-demo/scripts/apply_name_mapping.sh 을 참조하십시오.

검증

"Feature and output name mapping successfully applied" 메시지가 표시됩니다.

4장. 모니터링 모델 거부

데이터 파우더로서 머신러닝 모델을 모니터링해야 할 수 있습니다. 즉, 모델이 생성하는 결과 또는 결정에 영향을 미칠 수 있는 알고리즘적 결함에 대한 모니터링이 이루어집니다. 중요하게, 이러한 유형의 모니터링은 모델이 특정 보호 그룹 또는 기능에 대해 반대되지 않도록하는 데 도움이 됩니다.

Red Hat OpenShift AI는 모델을 모니터링하는 데 도움이 되는 일련의 메트릭을 제공합니다. OpenShift AI 인터페이스를 사용하여 사용 가능한 메트릭을 선택한 다음 보호된 속성, 권한이 부여된 그룹, 권한이 없는 그룹, 모니터링하려는 결과, 준비 임계값과 같은 모델별 세부 정보를 구성할 수 있습니다. 그런 다음 지정된 수의 모델 유추에 대해 계산된 값의 차트가 표시됩니다.

특정 비관적 지표에 대한 자세한 내용은 지원 대상 메트릭을 참조하십시오.

4.1. 유도 메트릭 생성

배포된 모델을 모니터링하려면 먼저 조정 메트릭을 생성해야 합니다. 의도적 지표를 생성할 때 보호되는 속성, 권한 및 권한이 없는 그룹, 모델 결과 및 모니터링하려는 값과 같은 모델 관련 세부 정보, 준비에 대한 허용 가능한 임계값을 지정합니다.

특정 비관적 지표에 대한 자세한 내용은 지원 대상 메트릭을 참조하십시오.

TrustyAI 메트릭의 전체 목록은 TrustyAI 서비스 API 를 참조하십시오.

OpenShift AI 대시보드를 사용하거나 OpenShift CLI(명령줄 인터페이스)를 사용하여 모델에 대한 무분별 메트릭을 생성할 수 있습니다.

4.1.1. 대시보드를 사용하여 유도 메트릭 생성

OpenShift AI 대시보드를 사용하여 모델에 대한 거부 메트릭을 생성할 수 있습니다.

사전 요구 사항

  • OpenShift AI가 지원하는 모호한 지표 와 해석 방법에 대해 잘 알고 있습니다.
  • 특정 데이터 세트 스키마에 익숙하고 입력 및 출력의 이름과 의미를 이해하고 있습니다.
  • OpenShift 클러스터 관리자는 OpenShift 클러스터에 사용자로 사용자를 추가하고 배포된 모델이 포함된 데이터 사이언스 프로젝트에 대한 TrustyAI 서비스를 설치했습니다.
  • 프로젝트에 대한 TrustyAI 설정에 설명된 대로 데이터 사이언스 프로젝트에 대한 TrustyAI를 설정합니다.

프로세스

  1. 선택 사항: TRUSTY_ROUTE 변수를 설정하려면 다음 단계를 따르십시오.

    1. 터미널 창에서 OpenShift AI가 배포된 OpenShift 클러스터에 로그인합니다.

      oc login
      Copy to Clipboard Toggle word wrap
    2. TRUSTY_ROUTE 변수를 TrustyAI 서비스 pod의 외부 경로로 설정합니다.

      TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
      Copy to Clipboard Toggle word wrap
  2. OpenShift AI 대시보드의 왼쪽 메뉴에서 Model Serving 을 클릭합니다.
  3. 배포 모델 페이지의 드롭다운 목록에서 프로젝트를 선택합니다.
  4. 무분별 메트릭을 구성할 모델의 이름을 클릭합니다.
  5. 모델의 메트릭 페이지에서 모델 편향 탭을 클릭합니다.
  6. 구성 을 클릭합니다.
  7. Configure density metrics dialog 에서 다음 단계를 완료하여 조정 메트릭을 구성합니다.

    1. Metric 이름 필드에 조정 메트릭에 대한 고유한 이름을 입력합니다. 나중에 이 메트릭의 이름을 변경할 수 없습니다.
    2. Metric 유형 목록에서 OpenShift AI에서 사용할 수 있는 지표 유형 중 하나를 선택합니다.
    3. protected 특성 필드에 무차별을 모니터링하려는 모델의 특성 이름을 입력합니다.In the Cryostated attribute field, type the name of an attribute in your model that you want to monitor for density.

      작은 정보

      curl 명령을 사용하여 메타데이터 엔드포인트를 쿼리하고 입력 특성 이름과 값을 볼 수 있습니다. 예: curl -H "Authorization: Bearer $TOKEN" $TRUSTY_ROUTE/info | jq ".[0].inputSchema"

    4. Privileged value 필드에 사용자가 지정한 보호된 속성의 권한 있는 그룹의 이름을 입력합니다.
    5. Unprivileged value 필드에 사용자가 지정한 보호된 속성의 권한이 없는 그룹의 이름을 입력합니다.
    6. 출력 필드에 편향을 모니터링할 모델 결과의 이름을 입력합니다.

      작은 정보

      curl 명령을 사용하여 메타데이터 엔드포인트를 쿼리하고 출력 특성 이름과 값을 볼 수 있습니다. 예: curl -H "Authorization: Bearer $TOKEN" $TRUSTY_ROUTE/info | jq ".[0].outputSchema"

    7. 출력 값 필드에 편향을 모니터링할 결과의 값을 입력합니다.
    8. Violation threshold 필드에 선택한 메트릭 유형에 대한 가정 임계값을 입력합니다. 이 임계값 값은 모델이 의도하지 않은 것으로 간주되기 전에 지정된 메트릭이 메트릭의 공정값에서 얼마나 멀리 떨어져 있는지 정의합니다.
    9. Metric 배치 크기 필드에 OpenShift AI가 메트릭을 계산할 때마다 모델 유추 수를 입력합니다.
  8. 입력한 값이 올바른지 확인합니다.

    참고

    모델 편향 메트릭 구성을 생성한 후에는 편집할 수 없습니다. 대신 지표를 복제한 다음 편집(구성)할 수 있지만 원래 메트릭의 기록은 복사에 적용되지 않습니다.

  9. 구성 을 클릭합니다.

검증

  • Bias 지표 구성 페이지에는 모델에 대해 구성한 평가 지표가 표시됩니다.

다음 단계

메트릭을 보려면 오른쪽 상단에 있는 지표 보기를 클릭합니다.

4.1.2. CLI를 사용하여 유도 메트릭 생성

OpenShift CLI(명령줄 인터페이스)를 사용하여 모델에 대한 조정 메트릭을 생성할 수 있습니다.

사전 요구 사항

  • OpenShift AI가 지원하는 모호한 지표 와 해석 방법에 대해 잘 알고 있습니다.
  • 특정 데이터 세트 스키마에 익숙하고 입력 및 출력의 이름과 의미를 이해하고 있습니다.
  • OpenShift 클러스터 관리자는 OpenShift 클러스터에 사용자로 사용자를 추가하고 배포된 모델이 포함된 데이터 사이언스 프로젝트에 대한 TrustyAI 서비스를 설치했습니다.
  • 프로젝트에 대한 TrustyAI 설정에 설명된 대로 데이터 사이언스 프로젝트에 대한 TrustyAI를 설정합니다.

프로세스

  1. 터미널 창에서 OpenShift AI가 배포된 OpenShift 클러스터에 로그인합니다.

    oc login
    Copy to Clipboard Toggle word wrap
  2. TRUSTY_ROUTE 변수를 TrustyAI 서비스 pod의 외부 경로로 설정합니다.

    TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
    Copy to Clipboard Toggle word wrap
  3. 선택적으로 TrustyAI 서비스 엔드 포인트 및 페이로드의 전체 목록을 가져옵니다.

    curl -H "Authorization: Bearer $TOKEN" --location $TRUSTY_ROUTE/q/openapi
    Copy to Clipboard Toggle word wrap
  4. POST /metrics/group/fairness/spd/request 를 사용하여 다음 구문 및 페이로드 구조를 사용하여 반복 반복적 모니터링 메트릭을 예약합니다.

    구문:

    curl -sk -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE/metrics/spd/request \
     --header 'Content-Type: application/json' \
     --data <payload>
    Copy to Clipboard Toggle word wrap

    페이로드 구조:

    modelId
    쿼리할 모델의 이름입니다.
    protectedAttribute
    공정성을 확인하는 그룹을 구분하는 기능의 이름입니다.
    privilegedAttribute
    의심되는 호의는 (아마도 반대되는) 클래스입니다.
    unprivilegedAttribute
    의심되는 unfavored (negatively actsed) 클래스입니다.
    outcomeName
    공정성을 검사하는 출력을 제공하는 출력의 이름입니다.
    favorableOutcome
    바람직한 모델 예측 또는 원하는 모델 예측을 설명하는 outcomeName 출력의 값입니다.
    batchSize
    계산에 포함할 이전 유추 수입니다.

예를 들면 다음과 같습니다.

curl -sk -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE/metrics/group/fairness/spd/ \
     --header 'Content-Type: application/json' \
     --data "{
                 \"modelId\": \"demo-loan-nn-onnx-alpha\",
                 \"protectedAttribute\": \"Is Male-Identifying?\",
                 \"privilegedAttribute\": 1.0,
                 \"unprivilegedAttribute\": 0.0,
                 \"outcomeName\": \"Will Default?\",
                 \"favorableOutcome\": 0,
                 \"batchSize\": 5000
             }"
Copy to Clipboard Toggle word wrap

검증

유도 메트릭 요청은 다음과 유사한 출력을 반환해야 합니다.

{
   "timestamp":"2023-10-24T12:06:04.586+00:00",
   "type":"metric",
   "value":-0.0029676404469311524,
   "namedValues":null,
   "specificDefinition":"The SPD of -0.002968 indicates that the likelihood of Group:Is Male-Identifying?=1.0 receiving Outcome:Will Default?=0 was -0.296764 percentage points lower than that of Group:Is Male-Identifying?=0.0.",
   "name":"SPD",
   "id":"d2707d5b-cae9-41aa-bcd3-d950176cbbaf",
   "thresholds":{"lowerBound":-0.1,"upperBound":0.1,"outsideBounds":false}
}
Copy to Clipboard Toggle word wrap

특정Definition 필드는 이러한 메트릭 값의 실제 해석을 이해하는 데 도움이 됩니다. 이 예에서 이 모델은 Is Male-Identifying? 필드에 공정하며 양의 결과는 약 -0.3%에 따라 다릅니다.

4.1.3. 무감각 메트릭 중복

기존 지표를 편집하려면 OpenShift AI 인터페이스에서 복제(복사)한 다음 복사본의 값을 편집할 수 있습니다. 그러나 원래 지표의 기록은 복사에 적용되지 않습니다.

사전 요구 사항

  • OpenShift AI가 지원하는 모호한 지표 와 해석 방법에 대해 잘 알고 있습니다.
  • 특정 데이터 세트 스키마에 익숙하고 입력 및 출력의 이름과 의미를 이해하고 있습니다.
  • 복제하려는 기존의 무분별 메트릭이 있습니다.

프로세스

  1. OpenShift AI 대시보드의 왼쪽 메뉴에서 Model Serving 을 클릭합니다.
  2. 배포 모델 페이지에서 복제하려는 조정 메트릭이 있는 모델의 이름을 클릭합니다.
  3. 모델의 메트릭 페이지에서 모델 편향 탭을 클릭합니다.
  4. 구성 을 클릭합니다.
  5. Bias 지표 구성 페이지에서 복사할 메트릭 옆에 있는 작업 메뉴( Cryostat)를 클릭한 다음 중복 을 클릭합니다.
  6. 조정 메트릭 구성 대화 상자에서 다음 단계를 따르십시오.

    1. Metric 이름 필드에 조정 메트릭에 대한 고유한 이름을 입력합니다. 나중에 이 메트릭의 이름을 변경할 수 없습니다.
    2. 필요에 따라 필드의 값을 변경합니다. 이러한 필드에 대한 설명은 대시보드를 사용하여 감시 메트릭 생성을 참조하십시오.
  7. 입력한 값이 올바른지 확인한 다음 Configure 를 클릭합니다.

검증

  • Bias 지표 구성 페이지에는 모델에 대해 구성한 평가 지표가 표시됩니다.

다음 단계

메트릭을 보려면 오른쪽 상단에 있는 지표 보기를 클릭합니다.

4.2. 유도 메트릭 삭제

OpenShift AI 대시보드를 사용하거나 OpenShift CLI(명령줄 인터페이스)를 사용하여 모델의 무분별 메트릭을 삭제할 수 있습니다.

4.2.1. 대시보드를 사용하여 유도 메트릭 삭제

OpenShift AI 대시보드를 사용하여 모델의 무분별 메트릭을 삭제할 수 있습니다.

사전 요구 사항

  • Red Hat OpenShift AI에 로그인했습니다.
  • 삭제하려는 기존 지표가 있습니다.

프로세스

  1. OpenShift AI 대시보드의 왼쪽 메뉴에서 Model Serving 을 클릭합니다.
  2. 배포 모델 페이지에서 삭제하려는 조정 메트릭이 있는 모델의 이름을 클릭합니다.
  3. 모델의 메트릭 페이지에서 모델 편향 탭을 클릭합니다.
  4. 구성 을 클릭합니다.
  5. 삭제할 메트릭 옆에 있는 작업 메뉴( Cryostat)를 클릭한 다음 삭제 를 클릭합니다.
  6. 드롭다운 삭제 지표 대화 상자에서 메트릭 이름을 입력하여 삭제를 확인합니다.

    참고

    의도하지 않은 메트릭 삭제는 취소할 수 없습니다.

  7. 의도하지 않은 메트릭 삭제를 클릭합니다.

검증

  • Bias 지표 구성 페이지에는 사용자가 삭제한 의도하지 않은 메트릭이 표시되지 않습니다.

4.2.2. CLI를 사용하여 유도 메트릭 삭제

OpenShift CLI(명령줄 인터페이스)를 사용하여 모델의 조정 메트릭을 삭제할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • TrustyAI 서비스 인증에 설명된 대로 인증을 위한 사용자 토큰이 있습니다.
  • 삭제하려는 기존 지표가 있습니다.

프로세스

  1. 새 터미널 창을 엽니다.
  2. 다음 단계에 따라 OpenShift 클러스터에 로그인합니다.

    1. OpenShift 웹 콘솔의 오른쪽 상단에서 사용자 이름을 클릭하고 로그인 복사 명령을 선택합니다.
    2. 로그인한 후 토큰 표시를 클릭합니다.
    3. 이 토큰 명령으로 로그인을 복사하여 OpenShift CLI(명령줄 인터페이스)에 붙여넣습니다.

      $ oc login --token=<token> --server=<openshift_cluster_url>
      Copy to Clipboard Toggle word wrap
  3. OpenShift CLI에서 TrustyAI 서비스로의 경로를 가져옵니다.

    TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 메트릭에 대한 현재 활성화된 모든 요청을 나열하려면 GET /metrics/{{metric}}/requests 를 사용합니다. 예를 들어 현재 예약된 모든 SPD 메트릭을 나열하려면 다음을 입력합니다.

    curl -H "Authorization: Bearer $TOKEN" -X GET --location "$TRUSTY_ROUTE/metrics/spd/requests"
    Copy to Clipboard Toggle word wrap

    또는 현재 예약된 모든 메트릭 요청을 나열하려면 GET /metrics/all/requests 를 사용합니다.

    curl -H "Authorization: Bearer $TOKEN" -X GET --location "$TRUSTY_ROUTE/metrics/all/requests"
    Copy to Clipboard Toggle word wrap
  5. 지표를 삭제하려면 페이로드에서 취소하려는 주기적인 작업의 id를 포함하여 정기적인 계산을 중지하도록 HTTP DELETE 요청을 /metrics/$METRIC/request 끝점에 보냅니다. 예를 들면 다음과 같습니다.

    curl -H "Authorization: Bearer $TOKEN" -X DELETE --location "$TRUSTY_ROUTE/metrics/spd/request" \
        -H "Content-Type: application/json" \
        -d "{
              \"requestId\": \"3281c891-e2a5-4eb3-b05d-7f3831acbb56\"
            }"
    Copy to Clipboard Toggle word wrap

검증

GET /metrics/{{metric}}/requests 를 사용하여 메트릭에 대한 현재 활성 요청을 모두 나열하고 삭제한 지표가 표시되지 않는지 확인합니다. 예를 들면 다음과 같습니다.

curl -H "Authorization: Bearer $TOKEN" -X GET --location "$TRUSTY_ROUTE/metrics/spd/requests"
Copy to Clipboard Toggle word wrap

4.3. 모델에 대한 유도 메트릭 보기

준비 모니터링 메트릭을 생성한 후 OpenShift AI 대시보드를 사용하여 구성한 메트릭을 보고 업데이트할 수 있습니다.

사전 요구 사항

프로세스

  1. OpenShift AI 대시보드에서 Model Serving 을 클릭합니다.
  2. 배포 모델 페이지에서 의도하지 않은 메트릭을 볼 모델의 이름을 클릭합니다.
  3. 모델의 메트릭 페이지에서 모델 편향 탭을 클릭합니다.
  4. 페이지에 표시된 메트릭을 업데이트하려면 다음 단계를 따르십시오.

    1. 표시할 메트릭 섹션에서 지표 선택 목록을 사용하여 페이지에 표시할 지표를 선택합니다.

      참고

      페이지에 표시할 메트릭을 선택할 때마다 추가 메트릭 선택 목록이 표시됩니다. 이를 통해 페이지에 여러 메트릭을 표시할 수 있습니다.

    2. 오른쪽 상단에 있는 시간 범위 목록에서 값을 선택합니다.
    3. 오른쪽 상단에 있는 Refresh interval 목록에서 값을 선택합니다.

      메트릭 페이지에는 선택한 지표가 표시됩니다.

  5. 선택 사항: 페이지에서 메트릭을 하나 이상 제거하려면 Metrics 섹션에서 다음 작업 중 하나를 수행합니다.

    • 개별 메트릭을 제거하려면 메트릭 이름 옆에 있는 취소 아이콘(임의)을 클릭합니다.
    • 모든 메트릭을 제거하려면 메트릭 선택 목록에서 취소 아이콘( Cryostat)을 클릭합니다.
  6. 선택 사항: 모델의 비합격 지표 구성으로 돌아가려면 메트릭 페이지에서 오른쪽 상단에서 구성 을 클릭합니다.

검증

  • 메트릭 페이지에는 수행한 지표 선택 사항이 표시됩니다.

4.4. 지원되는 준비 메트릭

Red Hat OpenShift AI는 다음과 같은 추론 메트릭을 지원합니다.

통계적 패리티 차이점

SPD( Statistic Parity difference)는 권한이 없는 그룹과 권한 있는 그룹 간의 호의적인 결과 예측 가능성의 차이입니다. SPD의 공식 정의는 다음과 같습니다.

  • 1 은 호의적인 결과입니다.
  • D Cryo stat 및 D Cryostat는 권한이 없는 권한 있는 그룹 데이터입니다.

다음과 같이 SPD 값을 해석할 수 있습니다.

  • 값이 0 이면 선택한 특성(예: 경합, 성별)에 대해 모델이 공정하게 작동하고 있음을 의미합니다.
  • -0.1 에서 0.1 사이의 값은 모델이 선택한 속성에 대해 합리적으로 공정하다는 것을 의미합니다. 대신 샘플 크기와 같은 다른 요인에 대한 확률의 차이를 특성화할 수 있습니다.
  • -0.1 ~ 0.1 범위를 벗어나는 값은 선택한 속성에 대해 모델이 불명확한임을 나타냅니다.
  • 음수 값은 모델에 권한이 없는 그룹에 대한 의도가 있음을 나타냅니다.
  • 양수 값은 모델에 권한이 있는 그룹에 대한 의도가 있음을 나타냅니다.
분산된 영향 Ratio

DIR(Distributed Impact Ratio )은 권한이 없는 그룹에 대해 권한이 없는 그룹에 대한 호의적인 결과 예측 확률의 비율입니다. DIR의 공식 정의는 다음과 같습니다.

  • 1 은 호의적인 결과입니다.
  • D Cryo stat 및 D Cryostat는 권한이 없는 권한 있는 그룹 데이터입니다.

편향을 식별하는 임계값은 자체 기준 및 특정 사용 사례에 따라 다릅니다.

예를 들어 의도를 식별하는 임계값이 0.8 또는 1.2 미만의 DIR 값으로 표시되는 경우 다음과 같이 DIR 값을 해석할 수 있습니다.

  • 1 은 선택한 특성에 대해 모델이 공정하다는 것을 의미합니다.
  • 0.81.2 사이의 값은 선택한 속성에 대해 모델이 합리적으로 공정하다는 것을 의미합니다.
  • 0.8 또는 1.2 미만의 값은 불신앙을 나타냅니다.

5장. 데이터 드리프트 모니터링

데이터 파우더로서 배포된 모델을 데이터 드리프트에 대해 모니터링해야 할 수 있습니다. 데이터 드리프트는 모델이 원래 교육을 받은 데이터와 크게 다른 수신 데이터의 배포 또는 속성 변경을 나타냅니다. 데이터 드리프트 감지는 모델이 예상대로 계속 수행되도록 하며 정확하고 신뢰할 수 있는 상태로 유지되도록 합니다.

Red Hat OpenShift AI에서 TrustyAI의 데이터 드리프트 모니터링 메트릭을 사용하여 교육 데이터와 추론 데이터 간의 정렬을 정량 측정하여 제공할 수 있습니다.

특정 데이터 드리프트 메트릭에 대한 자세한 내용은 지원되는 드리프트 메트릭 을 참조하십시오.

5.1. 드리프트 메트릭 생성

데이터 드리프트에 대해 배포된 모델을 모니터링하려면 먼저 드리프트 메트릭을 생성해야 합니다.

특정 데이터 드리프트 메트릭에 대한 자세한 내용은 지원되는 드리프트 메트릭 을 참조하십시오.

TrustyAI 메트릭의 전체 목록은 TrustyAI 서비스 API 를 참조하십시오.

5.1.1. CLI를 사용하여 드리프트 메트릭 생성

OpenShift CLI(명령줄 인터페이스)를 사용하여 모델에 대한 데이터 드리프트 메트릭을 생성할 수 있습니다.

사전 요구 사항

  • 특정 데이터 세트 스키마에 익숙하고 관련 입력 및 출력을 이해할 수 있습니다.
  • OpenShift 클러스터 관리자는 OpenShift 클러스터에 사용자로 사용자를 추가하고 배포된 모델이 포함된 데이터 사이언스 프로젝트에 대한 TrustyAI 서비스를 설치했습니다.
  • 프로젝트에 대한 TrustyAI 설정에 설명된 대로 데이터 사이언스 프로젝트에 대한 TrustyAI를 설정합니다.

프로세스

  1. 새 터미널 창을 엽니다.
  2. 다음 단계에 따라 OpenShift 클러스터에 로그인합니다.

    1. OpenShift 웹 콘솔의 오른쪽 상단에서 사용자 이름을 클릭하고 로그인 복사 명령을 선택합니다.
    2. 로그인한 후 토큰 표시를 클릭합니다.
    3. 이 토큰 명령으로 로그인을 복사하여 OpenShift CLI(명령줄 인터페이스)에 붙여넣습니다.

      $ oc login --token=<token> --server=<openshift_cluster_url>
      Copy to Clipboard Toggle word wrap
  3. TRUSTY_ROUTE 변수를 TrustyAI 서비스 pod의 외부 경로로 설정합니다.

    TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
    Copy to Clipboard Toggle word wrap
  4. 선택적으로 TrustyAI 서비스 엔드 포인트 및 페이로드의 전체 목록을 가져옵니다.

    curl -H "Authorization: Bearer $TOKEN" --location $TRUSTY_ROUTE/q/openapi
    Copy to Clipboard Toggle word wrap
  5. POST /metrics/drift/meanshift/request 를 사용하여 다음 구문 및 페이로드 구조를 사용하여 반복적인 드리프트 모니터링 메트릭을 예약합니다.

    구문:

    curl -k -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE/metrics/drift/meanshift/request \
     --header 'Content-Type: application/json' \
     --data <payload>
    Copy to Clipboard Toggle word wrap

    페이로드 구조:

    modelId
    모니터링할 모델의 이름입니다.
    referenceTag
    참조 배포로 사용할 데이터입니다.

예를 들면 다음과 같습니다.

curl -k -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE/metrics/drift/meanshift/request \
     --header 'Content-Type: application/json' \
     --data "{
                 \"modelId\": \"gaussian-credit-model\",
                 \"referenceTag\": \"TRAINING\"
             }"
Copy to Clipboard Toggle word wrap

5.2. CLI를 사용하여 드리프트 메트릭 삭제

OpenShift CLI(명령줄 인터페이스)를 사용하여 모델의 드리프트 지표를 삭제할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • TrustyAI 서비스 인증에 설명된 대로 인증을 위한 사용자 토큰이 있습니다.
  • 삭제할 기존 드리프트 메트릭이 있습니다.

프로세스

  1. 새 터미널 창을 엽니다.
  2. 다음 단계에 따라 OpenShift 클러스터에 로그인합니다.

    1. OpenShift 웹 콘솔에서 사용자 이름을 클릭하고 로그인 복사 명령을 선택합니다.
    2. 로그인한 후 토큰 표시를 클릭합니다.
    3. 이 토큰 명령으로 로그인을 복사하여 OpenShift CLI(명령줄 인터페이스)에 붙여넣습니다.

      $ oc login --token=<token> --server=<openshift_cluster_url>
      Copy to Clipboard Toggle word wrap
  3. OpenShift CLI에서 TrustyAI 서비스로의 경로를 가져옵니다.

    TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 메트릭에 대한 현재 활성화된 모든 요청을 나열하려면 GET /metrics/{{metric}}/requests 를 사용합니다. 예를 들어 현재 예약된 MeanShift 메트릭을 모두 나열하려면 다음을 입력합니다.

    curl -k -H "Authorization: Bearer $TOKEN" -X GET --location "$TRUSTY_ROUTE/metrics/drift/meanshift/requests"
    Copy to Clipboard Toggle word wrap

    또는 현재 예약된 모든 메트릭 요청을 나열하려면 GET /metrics/all/requests 를 사용합니다.

    curl -H "Authorization: Bearer $TOKEN" -X GET --location "$TRUSTY_ROUTE/metrics/all/requests"
    Copy to Clipboard Toggle word wrap
  5. 지표를 삭제하려면 페이로드에서 취소하려는 주기적인 작업의 id를 포함하여 정기적인 계산을 중지하도록 HTTP DELETE 요청을 /metrics/$METRIC/request 끝점에 보냅니다. 예를 들면 다음과 같습니다.

    curl -k -H "Authorization: Bearer $TOKEN" -X DELETE --location "$TRUSTY_ROUTE/metrics/drift/meanshift/request" \
        -H "Content-Type: application/json" \
        -d "{
              \"requestId\": \"$id\"
            }"
    Copy to Clipboard Toggle word wrap

검증

GET /metrics/{{metric}}/requests 를 사용하여 메트릭에 대한 현재 활성 요청을 모두 나열하고 삭제한 지표가 표시되지 않는지 확인합니다. 예를 들면 다음과 같습니다.

curl -H "Authorization: Bearer $TOKEN" -X GET --location "$TRUSTY_ROUTE/metrics/drift/meanshift/requests"
Copy to Clipboard Toggle word wrap

5.3. 모델의 데이터 드리프트 메트릭 보기

데이터 드리프트 모니터링 지표를 생성한 후 OpenShift 웹 콘솔을 사용하여 구성한 지표를 보고 업데이트합니다.

사전 요구 사항

프로세스

  1. OpenShift 웹 콘솔에 로그인합니다.
  2. 개발자 화면으로 전환합니다.
  3. 왼쪽 메뉴에서 모니터링 을 클릭합니다.
  4. Red Hat OpenShift Dedicated에서 프로젝트 메트릭 모니터링 또는 AWS의 Red Hat OpenShift Service의 프로젝트 메트릭 모니터링에 설명된 대로 웹 콘솔을 사용하여 trustyai_* 메트릭에 대한 쿼리를 실행합니다.

5.4. 지원되는 드리프트 메트릭

Red Hat OpenShift AI는 다음과 같은 데이터 드리프트 메트릭을 지원합니다.

MeanShift

MeanShift 메트릭은 테스트 데이터 세트의 데이터 값이 학습 데이터 세트의 데이터와 동일한 배포가 될 가능성을 계산합니다(값이 일반적으로 분산되어 있다고 가정). 이 메트릭은 두 데이터 세트 간의 특정 기능을 통해 차이를 측정합니다.

MeanShift는 전체 배포가 기능 축을 따라 왼쪽 또는 오른쪽으로 이동하는 경우와 같이 데이터 배포판의 간단한 변경 사항을 식별하는 데 유용합니다.

이 메트릭은 "현실 세계" 데이터에서 표시되는 배포가 참조 데이터와 동일한 배포에서 파생될 가능성을 반환합니다. 값이 0에 가까울수록 상당한 드리프트가 있을 가능성이 높습니다.

FourierMMD

FourierMMD 메트릭은 계산된 Maximum Mean Discrepancy(MMD) 값이 일반적으로 배포된다고 가정하면 테스트 데이터 세트의 데이터 값이 학습 데이터 세트 배포에서 변동될 가능성을 제공합니다. 이 메트릭은 Fourier 도메인에서 MMD 측정을 사용하여 데이터 세트의 실제 배포를 비교합니다.

FourierMMD는 간단한 통계 조치로 무시할 수 있는 데이터 배포판의 미묘한 전환을 감지하는 데 유용합니다.

이 메트릭은 "현실 세계" 데이터에서 표시되는 배포가 참조 데이터에서 변동될 가능성을 반환합니다. 값이 1에 가까울수록 상당한 드리프트가 있을 가능성이 높습니다.

KSTest

KSTest 메트릭은 각 열에 대해 두 개의 Kolmogorov-Smirnov 테스트를 계산하여 데이터 세트가 동일한 배포에서 파생되는지 여부를 결정합니다. 이 메트릭은 특정 기본 배포를 가정하지 않고 데이터 세트의 실험적 누적 배포 함수(CDF) 간의 최대 거리를 측정합니다.

KSTest는 배포 모양, 위치 및 스케일링의 변경 사항을 감지하는 데 유용합니다.

이 메트릭은 "현실 세계" 데이터에서 표시되는 배포가 참조 데이터와 동일한 배포에서 파생될 가능성을 반환합니다. 값이 0에 가까울수록 상당한 드리프트가 있을 가능성이 높습니다.

ApproxKSTest

ApproxKSTest 메트릭은 대략적인 Kolmogorov-Smirnov 테스트를 수행하여 최대 오류가 정확한 KSTest에 비해 6*epsilon 인지 확인합니다.

ApproxKSTest는 정확한 KSTest를 수행하는 대규모 데이터 세트의 배포 변경 사항을 탐지하는 데 유용합니다.

이 메트릭은 "현실 세계" 데이터에서 표시되는 배포가 참조 데이터와 동일한 배포에서 파생될 가능성을 반환합니다. 값이 0에 가까울수록 상당한 드리프트가 있을 가능성이 높습니다.

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동