응답을 일괄로 가져오면 지연 시간에 민감하지 않은 다수의 임베딩 요청을 효율적으로 전송할 수 있습니다. 한 번에 입력 요청 하나로 제한되는 온라인 응답 가져오기와 달리 단일 일괄 요청에서 다수의 LLM 요청을 전송할 수 있습니다. Vertex AI의 테이블 형식 데이터에 대해 일괄 예측을 수행하는 방법과 마찬가지로 출력 위치를 결정하고 입력을 추가하면 응답이 출력 위치에 비동기식으로 채워집니다.
일괄 요청을 제출하고 결과를 검토한 후 모델 조정을 통해 모델을 조정할 수 있습니다. 조정 후 평소와 같이 일괄 생성을 위해 업데이트된 모델을 제출할 수 있습니다. 모델 조정에 대한 자세한 내용은 언어 기반 모델 조정을 참조하세요.
일괄 예측을 지원하는 텍스트 임베딩 모델
textembedding-gecko
모델의 모든 안정화 버전은 textembedding-gecko-multilingual@001
을 제외하고 일괄 예측을 지원합니다. 안정화 버전은 더 이상 프리뷰 버전이 아니며 프로덕션 환경에서 완전히 지원됩니다. 지원되는 임베딩 모델의 전체 목록은 임베딩 모델 및 버전을 참조하세요.
입력 준비
일괄 요청 입력은 BigQuery 테이블에 저장하거나 Cloud Storage의 JSON Lines(JSONL) 파일로 저장할 수 있는 프롬프트 목록입니다. 요청마다 프롬프트가 최대 30,000개까지 포함될 수 있습니다.
JSONL 예시
이 섹션에서는 JSONL 입력 및 출력을 포맷하는 방법의 예시를 보여줍니다.
JSONL 입력 예시
{"content":"Give a short description of a machine learning model:"}
{"content":"Best recipe for banana bread:"}
JSONL 출력 예시
{"instance":{"content":"Give..."},"predictions": [{"embeddings":{"statistics":{"token_count":8,"truncated":false},"values":[0.2,....]}}],"status":""}
{"instance":{"content":"Best..."},"predictions": [{"embeddings":{"statistics":{"token_count":3,"truncated":false},"values":[0.1,....]}}],"status":""}
BigQuery 예시
이 섹션에서는 BigQuery 입력 및 출력을 포맷하는 방법의 예시를 보여줍니다.
BigQuery 입력 예시
이 예시에서는 단일 열 BigQuery 테이블을 보여줍니다.
콘텐츠 |
---|
'머신러닝 모델에 대한 간단한 설명을 제공하세요.' |
'최고의 바나나 빵 레시피:' |
BigQuery 출력 예시
콘텐츠 | predictions | 상태 |
---|---|---|
'머신러닝 모델에 대한 간단한 설명을 제공하세요.' |
'[{"embeddings": { "statistics":{"token_count":8,"truncated":false}, "Values":[0.1,....] } } ]' |
|
'최고의 바나나 빵 레시피:' |
'[{"embeddings": { "statistics":{"token_count":3,"truncated":false}, "Values":[0.2,....] } } ]' |
일괄 응답 요청
제출한 입력 항목 수에 따라 일괄 생성 태스크를 완료하는 데 다소 시간이 걸릴 수 있습니다.
REST
Vertex AI API를 사용하여 텍스트 프롬프트를 테스트하려면 POST 요청을 게시자 모델 엔드포인트로 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- BP_JOB_NAME: 작업 이름입니다.
- INPUT_URI: 입력 소스 URI입니다. 이는 BigQuery 테이블 URI 또는 Cloud Storage의 JSONL 파일 URI입니다.
- OUTPUT_URI: 출력 대상 URI입니다.
HTTP 메서드 및 URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs
JSON 요청 본문:
{ "name": "BP_JOB_NAME", "displayName": "BP_JOB_NAME", "model": "publishers/google/models/textembedding-gecko", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"bigquery", "bigqueryDestination":{ "outputUri": "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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/123456789012/locations/us-central1/batchPredictionJobs/1234567890123456789", "displayName": "BP_sample_publisher_BQ_20230712_134650", "model": "projects/{PROJECT_ID}/locations/us-central1/models/textembedding-gecko", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://project_name.dataset_name.text_input" } }, "modelParameters": {}, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "bq://project_name.llm_dataset.embedding_out_BP_sample_publisher_BQ_20230712_134650" } }, "state": "JOB_STATE_PENDING", "createTime": "2023-07-12T20:46:52.148717Z", "updateTime": "2023-07-12T20:46:52.148717Z", "labels": { "owner": "sample_owner", "product": "llm" }, "modelVersionId": "1", "modelMonitoringStatus": {} }
응답에는 일괄 작업의 고유 식별자가 포함됩니다.
작업 state
가 JOB_STATE_SUCCEEDED
가 될 때까지 BATCH_JOB_ID를 사용하여 일괄 작업의 상태를 폴링할 수 있습니다. 예를 들면 다음과 같습니다.
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.
일괄 출력 검색
일괄 예측 태스크가 완료되면 출력은 요청에 지정한 Cloud Storage 버킷이나 BigQuery 테이블에 저장됩니다.
다음 단계
- 텍스트 임베딩 가져오기 방법 알아보기