Tuning API

모델 조정을 통해 사용자가 특정 태스크에 맞게 모델 가중치를 조정할 수 있습니다. 사용자가 조정을 실행하려면 태스크별 학습 데이터 세트를 제공해야 합니다.

지원되는 모델:

  • Gemini 1.0 Pro
    • Gemini-1.0-pro-002

조정 작업 만들기

매개변수 목록

매개변수

source_model

string

조정 중인 기본 모델입니다. gemini-1.0-pro-002부터 지원됩니다.

training_dataset

string

학습 데이터가 포함된 Cloud Storage 파일입니다. 데이터 세트는 JSONL 파일 형식이어야 합니다.

validation_dataset

선택사항: string

검증 데이터가 포함된 GCS 파일입니다. 데이터 세트는 JSONL 파일 형식이어야 합니다. 최대 256개의 예시를 포함할 수 있습니다. 이 파일을 제공하면 데이터가 미세 조정 중에 주기적으로 검증 측정항목을 생성하는 데 사용됩니다.

epochs

선택사항: int

학습 중에 모델이 전체 학습 데이터 세트에서 수행하는 완료 횟수

learning_rate_multiplier

선택사항: float

기본 학습률을 조정하는 배율입니다.

tuned_model_display_name

선택사항: string

TunedModel의 표시 이름입니다. 이름은 최대 128자(영문 기준)까지 가능하며 UTF-8 문자를 포함할 수 있습니다.

예시

  • PROJECT_ID = PROJECT_ID
  • 리전 = us-central1

기본 사용 사례

gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl의 학습 데이터 세트 URI를 사용하여 기본 모델 gemini-1.0-pro-002에서 조정 작업을 실행합니다. 다른 모든 매개변수에는 자동 값이 사용됩니다.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs \
  -d '{
    "baseModel": "gemini-1.0-pro-002",
    "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl"
    },
  }'

Python

from vertexai.preview import tuning
from vertexai.preview.tuning import sft

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
)
stf_tuning_job.to_dict()

고급 사용 사례

gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl의 학습 데이터 세트 URI를 사용하여 기본 모델 gemini-1.0-pro-002에서 조정 작업을 실행합니다. hyper_parameters(예: epoch_countlearning_rate_multiplier)를 사용자 지정 값으로 설정합니다. validation_dataset_urigs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl을 제공합니다.

  • MODEL_ID = gemini-1.5-pro-preview-0409

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs \
  -d '{
    "baseModel": "gemini-1.0-pro-002",
    "supervisedTuningSpec" : {
        "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
        "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
        "hyper_parameters": {
            "epoch_count": 4,
            "learning_rate_multiplier": 1,
        },
    },
    "tunedModelDisplayName": "tuned_gemini_pro",
  }'

Python

from vertexai.preview import tuning
from vertexai.preview.tuning import sft

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
    epochs=4,
    learning_rate_multiplier=1.0,
  tuned_model_display_name='tuned_gemini_pro'
)
stf_tuning_job.to_dict()

조정 작업 나열

  • PROJECT_ID = PROJECT_ID
  • 리전 = REGION

curl

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs

Python

from vertexai.preview.tuning import sft

sft.SupervisedTuningJob.list()

조정 작업 가져오기

매개변수 목록

매개변수

name

string

조정 작업의 리소스 이름입니다.

예시

  • PROJECT_ID = PROJECT_ID
  • 리전 = REGION
  • TUNING_JOB_ID = TUNING_JOB_ID

curl

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs/{tuning_job_id}"

Python

from vertexai.preview import tuning
job = tuning.SupervisedTuningJob("projects/{PROJECT_ID}/locations/{REGION}/tuningJobs/{tuning_job_id}")

조정 작업 취소

매개변수

name

string

조정 작업의 리소스 이름입니다.

예시

  • PROJECT_ID = PROJECT_ID
  • 리전 = REGION

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs/:cancel

Python

from vertexai.preview.tuning import sft

sft_tuning_job = sft.SupervisedTuningJob("projects/{PROJECT_ID}/locations/{REGION}/tuningJobs/")
sft_tuning_job.cancel()
tuning_job_id>

더 살펴보기

자세한 문서는 다음을 참조하세요.