For the complete documentation index, see llms.txt. This page is also available as Markdown.

모델 모니터링 추론 집계기

추론 결과의 집계 샘플을 주기적으로 로보플로 모델 모니터링에 보고합니다.

주기적으로 메모리에서 추론 예측을 수집하고 클래스별로 그룹화한 뒤, 각 클래스에서 가장 높은 신뢰도의 예측을 선택하여 구성 가능한 간격으로 집계 결과를 전송함으로써, 효율적인 비디오 처리 모니터링, 프로덕션 분석, 최소한의 성능 오버헤드로 모델 성능 추적 워크플로를 가능하게 하도록 선별된 추론 예측 샘플을 Roboflow Model Monitoring에 집계 및 보고합니다.

이 블록의 작동 방식

이 블록은 시간이 지남에 따라 예측을 집계하고 정기적인 간격으로 대표 샘플을 Roboflow Model Monitoring에 전송하여 API 호출을 줄이고 비디오 처리 성능을 유지합니다. 이 블록은:

  1. 예측과 구성을 수신합니다:

    • 지원되는 모든 모델 유형(객체 탐지, 인스턴스 분할, 키포인트 탐지 또는 분류)에서 예측을 받습니다

    • Model Monitoring에서 식별하기 위한 모델 ID를 수신합니다

    • 보고 간격을 초 단위로 지정하는 frequency 매개변수를 받습니다

    • 실행 모드 플래그를 수신합니다(fire-and-forget)

  2. Roboflow API 키를 검증합니다:

    • 유효한 Roboflow API 키가 사용 가능한지 확인합니다(API 액세스에 필요함)

    • API 키가 없으면, API 키를 가져오는 방법에 대한 안내와 함께 오류를 발생시킵니다

  3. 메모리에서 예측을 수집합니다:

    • 모델 ID별로 구성된 인메모리 집계기에 예측을 저장합니다

    • 보고 간격 사이에 예측을 누적합니다

    • 워크플로 실행 세션 동안 상태를 유지합니다

  4. 보고 간격을 확인합니다:

    • 고유한 집계기 키를 기준으로 마지막 보고 시간을 추적하기 위해 캐시를 사용합니다

    • 마지막 보고 이후 경과 시간을 계산합니다

    • 경과 시간을 구성된 frequency 임계값과 비교합니다

    • 간격에 도달하지 않으면 보고를 건너뜁니다(상태 메시지를 반환함)

  5. 보고 시 예측을 통합합니다:

    • Model Monitoring을 위해 수집된 모든 예측을 형식화합니다

    • 수집된 모든 데이터에서 클래스 이름별로 예측을 그룹화합니다

    • 각 클래스에 대해 신뢰도(높은 순)로 예측을 정렬합니다

    • 대표 샘플로 각 클래스에서 가장 높은 신뢰도의 예측을 선택합니다

    • 선별된 예측 세트를 만듭니다(클래스별로 가장 높은 신뢰도의 1개씩)

  6. 워크스페이스 정보를 가져옵니다:

    • 제공된 API 키를 사용하여 Roboflow API에서 워크스페이스 ID를 가져옵니다

    • 반복 API 호출을 피하기 위해 캐싱(15분 만료)을 사용합니다

    • API 키의 MD5 해시를 캐시 키로 사용해 워크스페이스 이름을 캐시합니다

  7. 집계된 데이터를 Model Monitoring에 전송합니다:

    • 타임스탬프, 소스 정보, 디바이스 ID, 서버 버전을 포함한 추론 데이터 페이로드를 구성합니다

    • 모니터링 컨텍스트를 위해 시스템 정보(사용 가능한 경우)를 포함합니다

    • 집계된 예측(클래스당 1개씩)을 Roboflow Model Monitoring API로 전송합니다

    • 전송 후 인메모리 집계기를 비웁니다(새로 수집 시작)

    • 캐시에서 마지막 보고 시간을 업데이트합니다

  8. 동기 또는 비동기로 실행합니다:

    • 비동기 모드(fire_and_forget=True): 작업을 백그라운드 스레드 풀 또는 FastAPI 백그라운드 작업에 제출하여 API 호출 완료를 기다리지 않고 워크플로가 계속 진행되도록 합니다

    • 동기 모드(fire_and_forget=False): API 호출이 완료될 때까지 기다린 뒤 즉시 상태를 반환하며, 디버깅과 오류 처리에 유용합니다

  9. 상태 정보를 반환합니다:

    • 성공(False) 또는 실패(True)를 나타내는 error_status를 출력합니다

    • 보고 상태 또는 오류 세부 정보를 담은 message를 출력합니다

    • 집계가 전송되었는지 건너뛰어졌는지에 대한 피드백을 제공합니다

이 블록은 모든 예측을 전송하면 과도한 API 호출이 발생하고 성능에 영향을 줄 수 있는 비디오 처리 워크플로에 최적화되어 있습니다. 예측을 집계하고 대표 샘플(클래스별로 가장 높은 신뢰도의 예측)을 선택함으로써, 이 블록은 오버헤드를 최소화하면서도 의미 있는 모니터링 데이터를 제공합니다. 간격 기반 보고는 지속적인 API 호출 없이 Model Monitoring에 정기적인 업데이트를 보장합니다.

일반적인 사용 사례

🔍 왜 이 블록을 사용하나요?

이 블록은 Workflows에서 비디오 처리에 의존하는 프로젝트에 혁신적입니다. 집계 프로세스를 통해 클래스 전반에서 가장 높은 신뢰도의 예측을 식별하고, 이를 작은 메시지로 정기적으로 Roboflow 백엔드에 전송하여 비디오 처리 성능에 미치는 영향을 최소화합니다.

다음에 적합합니다:

  • 실시간으로 생산 라인 성능을 모니터링합니다 🏭.

  • 시간 경과에 따른 모델 성능을 디버깅하고 검증합니다 ⏱️.

  • 최소한의 오버헤드로 추론 워크플로에서 실행 가능한 인사이트를 제공합니다 🔧.

🚨 제한 사항

  • 이 블록은 워크플로를 실행할 때는 inference 서버 또는 Roboflow 호스팅 플랫폼으로의 HTTP 요청을 통해 실행할 때는 내부 상태가 서버의 모든 요청에서 액세스 가능한 메모리에 유지되지 않으므로, 집계가 단일 요청 범위만 갖게 됩니다. 이 문제가 클라이언트에게 심각한 제한 사항으로 확인되면 향후 릴리스에서 해결할 예정입니다.

다른 블록에 연결하기

이 블록은 예측을 수신하고 상태 정보를 출력합니다:

  • 모델 블록 뒤에 (객체 탐지 모델, 인스턴스 분할 모델, 분류 모델, 키포인트 탐지 모델)에서 예측을 집계하고 Model Monitoring에 보고하기 위해 (예: 탐지 결과 집계, 분류 출력 보고, 모델 예측 모니터링), 모델-모니터링 워크플로를 가능하게 함

  • 필터링 또는 분석 블록 뒤에 (DetectionsFilter, ContinueIf, OverlapFilter)에서 필터링되거나 분석된 결과를 모니터링용으로 집계하기 위해 (예: 필터링된 탐지 집계, 분석 결과 보고, 처리된 예측 모니터링), 분석-모니터링 워크플로를 가능하게 함

  • 비디오 처리 워크플로에서 비디오 분석을 최소한의 성능 영향으로 효율적으로 모니터링하기 위해 (예: 비디오 프레임 탐지 집계, 비디오 처리 결과 보고, 비디오 분석 성능 모니터링), 비디오 모니터링 워크플로를 가능하게 함

  • 전처리 또는 변환 블록 뒤에 변환된 예측을 모니터링하기 위해 (예: 변환된 탐지 집계, 처리 결과 보고, 변환 출력 모니터링), 변환-모니터링 워크플로를 가능하게 함

  • 프로덕션 배포 워크플로에서 프로덕션 환경에서 모델 성능을 추적하기 위해 (예: 프로덕션 추론 모니터링, 배포 성능 추적, 프로덕션 메트릭 보고), 프로덕션 모니터링 워크플로를 가능하게 함

  • 싱크 블록으로 워크플로 실행을 차단하지 않고 집계된 모니터링 데이터를 전송하기 위해 (예: 백그라운드 모니터링 보고, 비차단 분석, 효율적인 데이터 수집), 싱크-모니터링 워크플로를 가능하게 함

요구 사항

이 블록은 환경 또는 워크플로 구성에 유효한 Roboflow API 키가 설정되어 있어야 합니다. API 키는 Roboflow API와 인증하고 Model Monitoring 기능에 액세스하는 데 필요합니다. API 키를 가져오는 방법은 https://docs.roboflow.com/reference/authentication/authentication/find-your-roboflow-api-key 를 방문하세요. 이 블록은 집계를 위한 인메모리 상태를 유지하므로, 장기 실행 워크플로(예: 지속적인 WebRTC 세션에서의 비디오 처리)에서 가장 잘 작동합니다. 추론 서버에서 워크플로를 실행하거나 Roboflow 호스팅 플랫폼으로 HTTP 요청을 통해 실행할 때는 내부 상태가 단일 요청에만 접근 가능하고 집계 범위가 단일 요청 실행으로 제한되므로, 이 블록에 의존해서는 안 됩니다. 이 블록은 단일 비디오 워커 프로세스에 연결된 모든 비디오 피드의 데이터를 집계합니다(비디오 피드별로 집계를 분리할 수 없음). frequency 매개변수는 최소 1초 이상이어야 합니다. Roboflow의 Model Monitoring에 대한 자세한 내용은 https://docs.roboflow.com/deploy/model-monitoring 를 참조하세요.

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/model_monitoring_inference_aggregator@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

frequency

정수

초 단위 보고 빈도입니다. 집계된 예측이 Roboflow Model Monitoring으로 얼마나 자주 전송되는지를 지정합니다. 예를 들어 5로 설정하면, 이 블록은 5초 동안 예측을 수집한 다음 집계된 샘플(클래스별로 가장 높은 신뢰도의 예측 1개)을 Model Monitoring으로 전송합니다. 최소 1초 이상이어야 합니다. 더 낮은 값은 더 자주 업데이트를 제공하지만 API 호출 수가 증가합니다. 더 높은 값은 API 호출을 줄이지만 업데이트 빈도는 낮아집니다. 기본값: 5초. 정기적이지만 과도하지 않은 보고가 필요한 비디오 처리에 적합합니다..

unique_aggregator_key

str

집계 세션을 추적하고 마지막 보고 시간을 캐시하는 데 내부적으로 사용되는 고유 키입니다. 이 키는 워크플로 내 이 블록의 각 인스턴스마다 고유해야 합니다. 이 키는 마지막 보고가 언제 전송되었는지를 추적하는 캐시 항목을 생성하는 데 사용되며, 간격 기반 보고를 가능하게 합니다. 이 필드는 자동으로 생성되며 UI에서 숨겨집니다..

fire_and_forget

bool

실행 모드 플래그입니다. True(기본값)일 때 이 블록은 백그라운드에서 비동기적으로 실행되어, API 호출이 완료될 때까지 기다리지 않고 워크플로가 계속 처리되도록 합니다. 이는 더 빠른 워크플로 실행을 제공하지만 오류가 즉시 표시되지는 않습니다. False일 때 이 블록은 동기적으로 실행되어 API 호출이 완료될 때까지 기다린 뒤 즉시 상태와 오류 정보를 반환합니다. 디버깅과 오류 처리에는 False를, 성능이 우선인 프로덕션 워크플로에는 True를 사용하세요..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

런타임 호환성

인터넷 필요 - 에어갭 / 오프라인 배포 : 이 블록은 완전히 오프라인 / 에어갭된 배포에서는 접근할 수 없는 서비스에 의존합니다.

소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격; 입력 비디오 : 집계 버퍼는 프로세스 메모리에 저장되고 보고 간격은 캐시에 추적됩니다. 상태 비저장 또는 다중 복제 HTTP 런타임에서 원격 단계 실행을 사용하면 예측이 서로 다른 워커 프로세스에서 수집될 수 있으므로, 보고가 덜 수집되거나 부분적인 집계 창이 비워질 수 있습니다. 안정적인 비디오 집계를 위해 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용하세요.

소프트 - 입력 이미지 : 이 블록은 비디오나 반복 프레임 워크플로의 시간적 문맥에 의존합니다. 정지 이미지/사진에는 추적, 비교, 집계 또는 시각화할 의미 있는 히스토리가 없으므로 이 블록은 거의 또는 전혀 이점을 제공하지 않습니다.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 모델 모니터링 추론 집계기 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 예측 (Union[object_detection_prediction, classification_prediction, instance_segmentation_prediction, keypoint_detection_prediction]): Roboflow Model Monitoring에 집계하고 보고할 모델 예측(객체 탐지, 인스턴스 분할, 키포인트 탐지 또는 분류). 예측은 메모리에서 수집되어 클래스 이름별로 그룹화되고, 각 클래스에서 가장 높은 신뢰도의 예측이 대표 샘플로 선택됩니다. 예측은 frequency 설정에 따라 보고 간격 사이에 누적됩니다. 지원되는 예측 유형: supervision Detections 객체 또는 분류 예측 딕셔너리..

    • model_id (roboflow_model_id): Model Monitoring에서 예측과 연결할 Roboflow 모델 ID(형식: 'project/version'). 이는 보고되는 예측을 생성한 모델이 무엇인지 식별합니다. 모델 ID는 Roboflow로 전송되는 모니터링 데이터에 포함되어 Model Monitoring 대시보드에서 모델별 성능을 추적할 수 있게 합니다..

    • frequency (string): 초 단위 보고 빈도입니다. 집계된 예측이 Roboflow Model Monitoring으로 얼마나 자주 전송되는지를 지정합니다. 예를 들어 5로 설정하면, 이 블록은 5초 동안 예측을 수집한 다음 집계된 샘플(클래스별로 가장 높은 신뢰도의 예측 1개)을 Model Monitoring으로 전송합니다. 최소 1초 이상이어야 합니다. 더 낮은 값은 더 자주 업데이트를 제공하지만 API 호출 수가 증가합니다. 더 높은 값은 API 호출을 줄이지만 업데이트 빈도는 낮아집니다. 기본값: 5초. 정기적이지만 과도하지 않은 보고가 필요한 비디오 처리에 적합합니다..

    • fire_and_forget (boolean): 실행 모드 플래그입니다. True(기본값)일 때 이 블록은 백그라운드에서 비동기적으로 실행되어, API 호출이 완료될 때까지 기다리지 않고 워크플로가 계속 처리되도록 합니다. 이는 더 빠른 워크플로 실행을 제공하지만 오류가 즉시 표시되지는 않습니다. False일 때 이 블록은 동기적으로 실행되어 API 호출이 완료될 때까지 기다린 뒤 즉시 상태와 오류 정보를 반환합니다. 디버깅과 오류 처리에는 False를, 성능이 우선인 프로덕션 워크플로에는 True를 사용하세요..

  • 출력

    • error_status (boolean): 불리언 플래그.

    • message (string): 문자열 값.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?