일괄 예측

일괄 예측을 사용하면 지연 시간에 민감하지 않은 여러 텍스트 전용 프롬프트를 Llama 모델에 효율적으로 전송할 수 있습니다. 요청마다 하나의 입력 프롬프트를 전송하는 온라인 예측과 달리 단일 요청에서 다수의 입력 프롬프트를 일괄 처리할 수 있습니다.

미리보기 기간에는 일괄 예측에 요금이 부과되지 않습니다.

지원되는 Llama 모델

Vertex AI는 다음 Llama 모델의 일괄 예측을 지원합니다.

  • Llama 3.1 405B (llama-3.1-405b-instruct-maas)
  • Llama 3.1 70B (llama-3.1-70b-instruct-maas)
  • Llama 3.1 8B (llama-3.1-8b-instruct-maas)

입력 준비

시작하기 전에 BigQuery 테이블 또는 Cloud Storage의 JSONL 파일로 입력을 준비합니다. 두 소스의 입력은 다음 예와 같이 OpenAI API 스키마 JSON 형식을 따라야 합니다.

{"custom_id": "test-request-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "meta/llama-3.1-405b-instruct-maas", "messages": [{"role": "system", "content": "You are a chef."}, {"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}

BigQuery

BigQuery 입력 테이블은 다음 스키마를 준수해야 합니다.

열 이름 설명
custom_id 입력을 출력과 일치시키는 각 요청의 ID입니다.
method 요청 메서드입니다.
url 요청 엔드포인트입니다.
body(JSON) 입력 프롬프트
  • 입력 테이블에는 일괄 작업에서 무시되고 출력 테이블에 직접 전달되는 다른 열이 있을 수 있습니다.
  • 일괄 예측 작업은 일괄 예측 출력에 response(JSON)id라는 두 열 이름을 예약합니다. 입력 테이블에서 이러한 열을 사용하지 마세요.
  • methodurl 열은 삭제되며 출력 테이블에 포함되지 않습니다.

Cloud Storage

Cloud Storage의 경우 입력 파일은 Cloud Storage 버킷에 있는 JSONL 파일이어야 합니다.

배치 예측 요청

BigQuery 또는 Cloud Storage의 입력을 사용하여 Llama 모델에 대해 일괄 예측을 실행합니다. BigQuery 테이블 또는 Cloud Storage 버킷의 JSONL 파일 중 하나에 예측을 출력하도록 독립적으로 선택할 수 있습니다.

BigQuery

BigQuery 입력 테이블, 모델, 출력 위치를 지정합니다. 일괄 예측 작업과 테이블이 동일한 리전에 있어야 합니다.

REST

환경을 설정하면 REST를 사용하여 텍스트 프롬프트를 테스트할 수 있습니다. 다음 샘플은 요청을 게시자 모델 엔드포인트에 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION: Llama 모델을 지원하는 리전입니다.
  • PROJECT_ID: 프로젝트 ID
  • MODEL: 조정할 모델의 이름입니다.
  • INPUT_URI: 일괄 예측 입력이 있는 BigQuery 테이블(예: myproject.mydataset.input_table)입니다.
  • OUTPUT_FORMAT: BigQuery 테이블에 출력하려면 bigquery를 지정합니다. Cloud Storage 버킷에 출력하려면 jsonl를 지정합니다.
  • DESTINATION: BigQuery의 경우 bigqueryDestination을 지정합니다. Cloud Storage의 경우 gcsDestination을 지정합니다.
  • OUTPUT_URI_FIELD_NAME: BigQuery의 경우 outputUri을 지정합니다. Cloud Storage의 경우 outputUriPrefix을 지정합니다.
  • OUTPUT_URI: BigQuery의 경우 테이블 위치(예: myproject.mydataset.output_result)를 지정합니다. Cloud Storage의 경우 버킷 및 폴더 위치(예: gs://mybucket/path/to/outputfile)를 지정합니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs

JSON 요청 본문:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/meta/models/MODEL",
  "inputConfig": {
    "instancesFormat":"bigquery",
    "bigquerySource":{
      "inputUri" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  }
}'

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 수신됩니다.

Cloud Storage

JSONL 파일의 Cloud Storage 위치, 모델, 출력 위치를 지정합니다.

REST

환경을 설정하면 REST를 사용하여 텍스트 프롬프트를 테스트할 수 있습니다. 다음 샘플은 요청을 게시자 모델 엔드포인트에 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION: Llama 모델을 지원하는 리전입니다.
  • PROJECT_ID: 프로젝트 ID
  • MODEL: 조정할 모델의 이름입니다.
  • INPUT_URI: JSONL 일괄 예측 입력의 Cloud Storage 위치입니다(예: gs://bucketname/path/to/jsonl).
  • OUTPUT_FORMAT: BigQuery 테이블에 출력하려면 bigquery를 지정합니다. Cloud Storage 버킷에 출력하려면 jsonl를 지정합니다.
  • DESTINATION: BigQuery의 경우 bigqueryDestination을 지정합니다. Cloud Storage의 경우 gcsDestination을 지정합니다.
  • OUTPUT_URI_FIELD_NAME: BigQuery의 경우 outputUri을 지정합니다. Cloud Storage의 경우 outputUriPrefix을 지정합니다.
  • OUTPUT_URI: BigQuery의 경우 테이블 위치(예: myproject.mydataset.output_result)를 지정합니다. Cloud Storage의 경우 버킷 및 폴더 위치(예: gs://mybucket/path/to/outputfile)를 지정합니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs

JSON 요청 본문:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/meta/models/MODEL",
  "inputConfig": {
    "instancesFormat":"jsonl",
    "gcsDestination":{
      "uris" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  }
}'

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 수신됩니다.

일괄 예측 작업의 상태 가져오기

일괄 예측 작업의 상태를 가져와 작업이 완료되었는지 확인합니다. 작업 길이는 제출한 입력 항목 수에 따라 다릅니다.

REST

환경을 설정하면 REST를 사용하여 텍스트 프롬프트를 테스트할 수 있습니다. 다음 샘플은 요청을 게시자 모델 엔드포인트에 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • LOCATION: 일괄 작업이 있는 리전입니다.
  • JOB_ID: 작업을 만들 때 반환된 일괄 작업 ID입니다.

HTTP 메서드 및 URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 수신됩니다.

출력 검색

일괄 예측 작업이 완료되면 지정한 위치에서 출력을 가져옵니다. BigQuery의 경우 출력은 대상 BigQuery 테이블의 response(JSON) 열에 있습니다. Cloud Storage의 경우 출력이 출력 Cloud Storage 위치에 JSONL 파일로 저장됩니다.