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

배치 처리

귀하를 위해 프로비저닝된 클라우드 인프라로 대규모 이미지 배치와 저장된 비디오에서 Workflows를 실행하세요.

소개

배치 처리는 실행하는 데 비용 효율적인 방법입니다 워크플로 이미지 배치와 저장된 비디오에 대해. 대량의 데이터를 비동기적으로 처리하는 데 이상적입니다.

배치 처리는 대규모 배치를 실행하는 데 필요한 인프라를 자동으로 프로비저닝합니다.

배치 처리는 Growth 및 Enterprise 요금제에서 사용할 수 있습니다. "배치 처리" 탭에서 작업을 시작하거나, 자산 라이브러리의 선택 항목에서 워크플로를 실행할 수 있습니다. 자산 라이브러리.

Roboflow 웹 인터페이스 또는 API(클라이를 통해)를 통해 배치 처리 작업을 구성할 수 있습니다.

작업을 시작하면, 데이터를 처리하기 위해 클라우드에 머신이 프로비저닝됩니다. 그런 다음 선택한 워크플로를 데이터에 대해 실행한 결과가 담긴 JSON 파일을 받게 됩니다.

다음 비디오에서는 배치 처리를 자세히 설명합니다:

웹 앱

배치 처리 작업 만들기

배치 처리 작업을 만들려면 Roboflow 대시보드 왼쪽 사이드바에서 Deployments를 클릭하세요. 그런 다음 "배치 처리" 탭을 클릭합니다:

"새 배치 작업"을 클릭하여 배치 처리 작업을 만드세요.

작업을 구성할 수 있는 창이 열립니다:

워크플로 선택

작업 구성을 시작하려면 먼저 워크플로를 선택하세요. 아직 워크플로가 없다면 시작하기 위해 워크플로 문서를 참조하세요.

이미지 또는 비디오 업로드

다음으로, 워크플로를 실행할 이미지나 비디오를 업로드해야 합니다.

하드웨어 구성

배치 처리 작업은 CPU 또는 GPU에서 실행할 수 있습니다. GPU 작업은 더 빠르지만 더 비쌉니다.

가격 정보는 Roboflow 가격 문서를 참조하세요.

작업에 사용할 CPU 또는 GPU를 선택하세요:

고급 구성 옵션은 "고급 옵션" 탭에서도 사용할 수 있습니다. 이러한 옵션은 기본값으로 두는 것을 권장합니다.

작업 시작

"배치 작업 만들기"를 클릭하여 배치 처리 작업을 시작하세요.

작업에 대한 인프라가 프로비저닝되고 처리가 시작됩니다.

작업 진행 상황 모니터링

작업을 시작하면, 처리가 구성 중인지, 배치 데이터가 처리 중인지, 작업이 완료되었는지를 나타내는 상태 표시기가 나타납니다.

배치의 처리 완료 정도를 실시간으로 모니터링할 수 있습니다.

데이터를 처리하는 데 걸리는 시간은 처리하는 이미지나 비디오 수, 워크플로의 복잡성, CPU 또는 GPU 하드웨어를 선택했는지에 따라 달라집니다.

작업을 열어 세부 정보를 확인할 수 있습니다. 여기에는 작업이 어떤 이미지에서 실행되었는지를 보여주는 "입력 소스"가 포함됩니다: 자산 라이브러리 이들을 선택하는 데 사용된 검색 쿼리(해당 선택을 다시 여는 링크 포함) 또는 수동으로 선택한 이미지 수입니다.

앱에서 워크플로 실행

외에도 APICLI, Roboflow 앱에서 직접 배치 처리 작업을 시작하여 워크플로 대규모 저장 이미지 세트에 대해 워크플로를 실행할 수 있습니다. 이를 수행하는 방법은 두 가지입니다:

  • 필요할 때, 자산 라이브러리에서.

  • 데이터 소스 가 클라우드 버킷의 새 이미지를 미러링할 때 자동으로.

자산 라이브러리에서

다음 자산 라이브러리 를 사용하면 선택한 이미지에서 필요할 때 워크플로를 실행할 수 있습니다.

이미지를 수동으로 선택하거나 현재 검색과 일치하는 모든 이미지를 선택한 다음 "워크플로 실행"을 클릭하세요. 결과를 이미지에 다시 쓰는 방법을 포함한 전체 흐름은 워크플로 실행.

데이터 소스가 미러링할 때 자동으로

하나의 데이터 소스 클라우드 버킷의 이미지와 메타데이터를 워크스페이스로 미러링합니다. 각 미러 가져오기마다 새 이미지에 대해 워크플로를 자동으로 실행할 수 있습니다. 이렇게 하면 새 데이터가 도착할 때 수동 단계 없이 태깅, 품질 점수 매기기, 사전 라벨링과 같은 보강이 최신 상태로 유지됩니다.

이러한 자동화는 데이터 소스 페이지의 "워크플로 실행" 섹션에서 구성합니다.

워크플로 실행을 관리하려면 배치 자동화를 관리할 권한이 있는 워크스페이스 역할이 필요합니다. "워크플로 실행" 섹션이 보이지 않으면 워크스페이스 관리자에게 문의하세요.

자동화를 추가하려면:

  1. "워크플로 실행" 섹션에서 "워크플로 실행 추가"를 클릭합니다.

  2. 자동화의 이름을 입력합니다.

  3. "실행 시"에서 "동기화 시"를 선택하고 데이터 소스 을 선택하여 이를 트리거해야 합니다.

  4. 실행할 워크플로를 선택합니다. 이 워크플로는 정확히 하나의 image 입력

  5. 을 가져야 합니다.

  6. "만들기"를 클릭합니다.

선택한 데이터 소스 중 하나가 미러링할 때마다, 자동화는 해당 미러가 가져온 이미지에 대해 배치 처리 작업으로 워크플로를 실행합니다. 진행 상황은 Activity Center와 Deployments 아래의 "배치 처리" 탭에서 다른 배치 처리 작업과 동일하게 추적할 수 있습니다.

워크플로가 결과를 이미지에 다시 써서 자산 라이브러리에서 검색할 수 있게 하려면, 결과를 자산 라이브러리에 다시 쓰기.

API 또는 CLI로 작업 실행

프로그래밍 방식으로 배치 처리 작업을 생성하고 실행하려면 아래의 HTTP APICLI 섹션을 참조하세요. 일반적인 문제를 디버깅하려면 문제 해결.

HTTP API

빠른 링크:

데이터 수집

비디오 업로드

Upload a video

post

Request a signed URL to upload a video file. After receiving the response, PUT the video to the uploadURL with the provided extensionHeaders.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

fileNamestringRequired

Name of the video file (e.g. my_video.mp4).

Responses
200

Signed URL details for uploading the video.

application/json
statusstringOptionalExample: ok
post/data-staging/v1/external/{workspace}/batches/{batch_id}/upload/video
POST /data-staging/v1/external/{workspace}/batches/{batch_id}/upload/video?api_key=text&fileName=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Signed URL details for uploading the video.

{
  "status": "ok",
  "signedURLDetails": {
    "uploadURL": "text",
    "method": "PUT",
    "extensionHeaders": {
      "Content-Type": "application/octet-stream",
      "x-goog-content-length-range": "1,1073741824"
    },
    "maxFileSize": 1073741824
  }
}

이미지 업로드

Upload a single image

post

Upload a single image via multipart form data. Best for batches up to 5,000 images.

Note: Single-image and bulk uploads cannot be combined for the same batch.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

fileNamestringRequired

Name of the image file.

Body
filestring · binaryOptional

The image file to upload.

Responses
200

Image uploaded successfully.

application/json
statusstringOptionalExample: ok
post/data-staging/v1/external/{workspace}/batches/{batch_id}/upload/image
POST /data-staging/v1/external/{workspace}/batches/{batch_id}/upload/image?api_key=text&fileName=text HTTP/1.1
Host: api.roboflow.com
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17

{
  "file": "binary"
}
200

Image uploaded successfully.

{
  "status": "ok"
}

이미지 대량 업로드

Bulk upload images

post

Request a signed URL for uploading a .tar archive of images. Recommended for batches exceeding 5,000 images. Bundle up to 500 images per archive.

The response contains a signed URL and extension headers. Pack images into a .tar archive and PUT it to the signed URL.

Note: Bulk and single-image uploads cannot be combined for the same batch.

When performing bulk ingestion, data is indexed in the background. There may be a short delay before all data is available.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

Responses
200

Signed URL details for uploading a tar archive.

application/json
statusstringOptionalExample: ok
post/data-staging/v1/external/{workspace}/batches/{batch_id}/bulk-upload/image-files
POST /data-staging/v1/external/{workspace}/batches/{batch_id}/bulk-upload/image-files?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Signed URL details for uploading a tar archive.

{
  "status": "ok",
  "signedURLDetails": {
    "shardId": "123e4567-e89b-12d3-a456-426614174000",
    "uploadURL": "text",
    "method": "PUT",
    "extensionHeaders": {
      "Content-Type": "application/x-tar",
      "x-goog-content-length-range": "1,536870912"
    },
    "maxNumberOfImages": 500,
    "maxShardSize": 536870912
  }
}

배치 상태 확인

Get batch item count

get

Returns the count of ingested items in a batch. Use this to verify all data has been ingested before starting a job.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

Responses
200

Batch item count.

application/json
statusstringOptionalExample: ok
countintegerOptional

Number of items in the batch.

Example: 42
get/data-staging/v1/external/{workspace}/batches/{batch_id}/count
GET /data-staging/v1/external/{workspace}/batches/{batch_id}/count?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Batch item count.

{
  "status": "ok",
  "count": 42
}

샤드 업로드 세부 정보 확인

List batch shards

get

Returns shard details for a bulk-upload batch. Paginated — use nextPageToken from the response to fetch subsequent pages.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

nextPageTokenstringOptional

Pagination token from a previous response.

Responses
200

Paginated list of batch shards.

application/json
statusstringOptionalExample: ok
shardsobject[]Optional

List of shard objects.

nextPageTokenstring · nullableOptional

Token for fetching the next page of results. null if no more pages.

get/data-staging/v1/external/{workspace}/batches/{batch_id}/shards
GET /data-staging/v1/external/{workspace}/batches/{batch_id}/shards?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Paginated list of batch shards.

{
  "status": "ok",
  "shards": [
    {}
  ],
  "nextPageToken": "text"
}

작업 시작

Start a batch processing job

post

Start a batch processing job that runs a Workflow against staged data.

Job ID constraints: Lowercase letters, digits, hyphens, and underscores only. Maximum 20 characters.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

job_idstring · max: 20Required

Job identifier. Lowercase, max 20 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

Body
typestring · enumRequired

Job type.

Possible values:
processingTimeoutSecondsintegerOptional

Maximum cumulative machine runtime in seconds across all parallel workers.

Default: 3600
notificationsURLstring · uriOptional

Webhook URL for job completion notifications. Custom webhook headers are not yet supported. The only header sent is Authorization: Bearer rf_{workspace_id}.

Responses
200

Job started successfully.

application/json
statusstringOptionalExample: ok
post/batch-processing/v1/external/{workspace}/jobs/{job_id}
POST /batch-processing/v1/external/{workspace}/jobs/{job_id}?api_key=text HTTP/1.1
Host: api.roboflow.com
Content-Type: application/json
Accept: */*
Content-Length: 415

{
  "type": "simple-image-processing-v1",
  "jobInput": {
    "type": "staging-batch-input-v1",
    "batchId": "text"
  },
  "computeConfiguration": {
    "type": "compute-configuration-v2",
    "machineType": "cpu",
    "workersPerMachine": 4
  },
  "processingTimeoutSeconds": 3600,
  "processingSpecification": {
    "type": "workflows-processing-specification-v1",
    "workspace": "text",
    "workflowId": "text",
    "aggregationFormat": "jsonl"
  },
  "notificationsURL": "https://example.com"
}
200

Job started successfully.

{
  "status": "ok"
}

작업 진행 상황 모니터링

작업 상태 가져오기

Get job status

get

Returns the current status of a batch processing job.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

job_idstring · max: 20Required

Job identifier. Lowercase, max 20 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

Responses
200

Job status details.

application/json
statusstringOptionalExample: ok
jobStatusstringOptional

Current job status (e.g. pending, processing, completed, failed).

progressnumberOptional

Processing progress as a fraction between 0 and 1.

get/batch-processing/v1/external/{workspace}/jobs/{job_id}
GET /batch-processing/v1/external/{workspace}/jobs/{job_id}?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Job status details.

{
  "status": "ok",
  "jobStatus": "text",
  "progress": 1
}

작업 단계 목록

List job stages

get

Returns the list of stages for a job. Each job typically has processing and export stages, each producing an output batch.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

job_idstring · max: 20Required

Job identifier. Lowercase, max 20 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

Responses
200

List of job stages.

application/json
statusstringOptionalExample: ok
stagesobject[]Optional

List of stage objects. Each stage has an ID and an output batch ID.

get/batch-processing/v1/external/{workspace}/jobs/{job_id}/stages
GET /batch-processing/v1/external/{workspace}/jobs/{job_id}/stages?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

List of job stages.

{
  "status": "ok",
  "stages": [
    {}
  ]
}

단계 작업 목록

List tasks for a stage

get

Returns the list of tasks for a specific job stage. Paginated — use nextPageToken from the response to fetch subsequent pages.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

job_idstring · max: 20Required

Job identifier. Lowercase, max 20 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
stage_idstringRequired

The stage identifier.

Query parameters
api_keystringRequired

Your Roboflow API key.

nextPageTokenstringOptional

Pagination token from a previous response.

Responses
200

Paginated list of tasks.

application/json
statusstringOptionalExample: ok
tasksobject[]Optional

List of task objects.

nextPageTokenstring · nullableOptional

Token for fetching the next page of results. null if no more pages.

get/batch-processing/v1/external/{workspace}/jobs/{job_id}/stages/{stage_id}/tasks
GET /batch-processing/v1/external/{workspace}/jobs/{job_id}/stages/{stage_id}/tasks?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Paginated list of tasks.

{
  "status": "ok",
  "tasks": [
    {}
  ],
  "nextPageToken": "text"
}

결과 내보내기

출력 파트 목록

List output batch parts

get

Lists the parts of an output batch. Use the export stage output batch for compressed results.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

Responses
200

List of batch parts.

application/json
statusstringOptionalExample: ok
get/data-staging/v1/external/{workspace}/batches/{batch_id}/parts
GET /data-staging/v1/external/{workspace}/batches/{batch_id}/parts?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

List of batch parts.

{
  "status": "ok",
  "parts": [
    {
      "partName": "text"
    }
  ]
}

다운로드 URL 목록

List download URLs

get

Returns paginated download URLs for files in a batch part.

Path parameters
workspacestringRequired

Your Roboflow workspace identifier.

batch_idstring · max: 64Required

Batch identifier. Lowercase, max 64 chars: letters, digits, hyphens, underscores.

Pattern: ^[a-z0-9_-]+$
Query parameters
api_keystringRequired

Your Roboflow API key.

nextPageTokenstringOptional

Pagination token from a previous response.

partNamestringOptional

Filter by part name (from the list parts response).

Responses
200

Paginated list of download URLs.

application/json
statusstringOptionalExample: ok
nextPageTokenstring · nullableOptional

Token for fetching the next page of results. null if no more pages.

get/data-staging/v1/external/{workspace}/batches/{batch_id}/list
GET /data-staging/v1/external/{workspace}/batches/{batch_id}/list?api_key=text HTTP/1.1
Host: api.roboflow.com
Accept: */*
200

Paginated list of download URLs.

{
  "status": "ok",
  "filesMetadata": [
    {
      "downloadURL": "text",
      "fileName": "text",
      "partName": "text",
      "shardId": "text",
      "contentType": "text",
      "nestedContentType": "text"
    }
  ],
  "nextPageToken": "text"
}

웹훅 알림

상태를 폴링하는 대신, 수집이나 처리가 완료되면 알림을 받도록 웹훅을 사용할 수 있습니다. 참조하세요 CLI 사용법 웹훅 구성 및 페이로드 형식은

CLI

를 설치하면 inference-cli 를 사용할 수 있게 됩니다 inference rf-cloud 명령을 통해 배치 처리 및 데이터 스테이징과 상호작용할 수 있습니다. 이는 Roboflow 배치 처리의 핵심 구성 요소입니다.

설정

클라우드 스토리지 지원의 경우:

API 키를 찾는 데 도움이 필요하면 인증 가이드.

데이터 수집

이미지

비디오

배치 ID 형식: 소문자여야 하며, 최대 64자까지 가능하고, 문자, 숫자, 하이픈(-), 밑줄(_).

클라우드 스토리지

데이터가 이미 클라우드 스토리지(S3, Google Cloud Storage, Azure)에 있다면, 파일을 로컬로 다운로드하지 않고 직접 처리할 수 있습니다.

이미지의 경우:

비디오의 경우:

다음 --bucket-path 매개변수는 다음 공급자를 지원합니다. Glob 패턴은 수집할 파일을 필터링합니다:

공급자
경로 형식
Glob 예시

S3

s3://bucket-name/path/

s3://my-bucket/training-data/**/*.jpg - 모든 JPG를 재귀적으로

Google Cloud Storage

gs://bucket-name/path/

gs://my-bucket/videos/2024-*/*.mp4 - 폴더 내 MP4 2024-*

Azure Blob Storage

az://container-name/path/

az://container/images/*.png - 이미지 폴더의 PNG

클라우드 스토리지 자격 증명은 CLI에서만 사전 서명된 URL을 생성하는 데 사용됩니다. 이러한 자격 증명은 절대 업로드되지 않습니다 Roboflow 서버로.

대규모 데이터셋의 경우, 시스템은 이미지를 자동으로 각각 20,000개 파일씩 청크로 분할합니다. 비디오는 1,000개 미만의 배치에서 가장 잘 작동합니다.

서명된 URL 수집

고급 자동화의 경우, 로컬 파일 대신 서명된 URL을 통해 데이터를 수집할 수 있습니다:

플래그
설명

--data-source references-file

서명된 URL로 참조된 파일을 처리합니다.

--references <path_or_url>

파일 URL이 포함된 JSONL 파일의 경로 또는 그런 파일을 가리키는 서명된 URL.

참조 파일 형식(JSONL):

서명된 URL 수집은 Growth Plan 및 Enterprise 고객에게 제공됩니다.

스테이징된 데이터 검사

작업 시작

이미지 처리

비디오 처리

워크플로 ID 찾기: Roboflow 앱에서 워크플로 편집기를 열고 "배포"를 클릭한 다음 코드 스니펫에서 식별자를 찾으세요.

기본적으로 처리는 CPU에서 실행됩니다. --machine-type gpu 여러 개의 크거나 큰 모델이 있는 워크플로에는

작업 진행 상황 모니터링

시작 명령은 작업 ID를 출력합니다. 상태를 확인하는 데 사용하세요:

결과 내보내기

작업 세부 정보에는 출력 배치 ID가 포함됩니다. 결과를 내보내는 데 사용하세요:

웹훅 자동화

상태를 폴링하는 대신, 수집이나 처리가 완료되면 알림을 받도록 웹훅을 사용할 수 있습니다.

데이터 수집 웹훅

CLI 명령 create-batch-of-imagescreate-batch-of-videos 는 다음을 지원합니다:

플래그
설명

--notifications-url <webhook_url>

알림을 위한 웹훅 엔드포인트.

--notification-category ingest-status

전체 수집 프로세스 상태. 기본값.

--notification-category files-status

개별 파일 처리 상태.

알림은 다음을 포함한 Authorization 헤더가 있는 HTTP POST를 통해 전달됩니다. 헤더에는 Roboflow Publishable Key가 포함됩니다.

수집 상태 알림

파일 상태 알림

작업 완료 웹훅

추가 --notifications-url 를 작업 시작 시:

작업 완료 알림

클라우드 스토리지 인증

AWS S3 및 S3 호환 스토리지

자격 증명은 다음에서 자동으로 감지됩니다:

  1. 환경 변수:

  1. AWS 자격 증명 파일 (~/.aws/credentials, ~/.aws/config)

  2. IAM 역할 (EC2, ECS, Lambda)

이름이 지정된 프로필:

S3 호환 서비스(Cloudflare R2, MinIO 등):

Google Cloud Storage

자격 증명은 다음에서 감지됩니다:

  1. 서비스 계정 키 파일 (자동화에 권장):

  1. 사용자 자격 증명 gcloud CLI에서(gcloud auth login)

  2. GCP 메타데이터 서비스 (Google Cloud Platform에서 실행할 때)

Azure Blob Storage

SAS 토큰(권장):

계정 키:

Azure CLI를 통해 SAS 토큰 생성:

사용자 지정 스크립트

고급 사용 사례의 경우, 서명된 URL 파일 생성을 위한 스크립트를 참조하세요:

모든 옵션 살펴보기

마지막 업데이트

도움이 되었나요?