지도 미세 조정을 사용하여 Gemini 모델 조정

이 문서에서는 지도 미세 조정을 사용하여 Gemini 모델을 조정하는 방법을 설명합니다.

시작하기 전에

시작하기 전에 지도 미세 조정 데이터 세트를 준비해야 합니다. 사용 사례에 따라 요구사항이 다릅니다.

지원되는 모델

  • gemini-1.5-pro-002 (GA)
  • gemini-1.5-flash-002(GA)
  • gemini-1.0-pro-002 (미리보기에서는 텍스트 조정만 지원)

조정 작업 만들기

REST API, Python용 Vertex AI SDK, Google Cloud 콘솔 또는 Colab Enterprise를 사용하여 지도 미세 조정 작업을 만들 수 있습니다.

REST

모델 조정 작업을 만들려면 tuningJobs.create 메서드를 사용하여 POST 요청을 전송합니다. 일부 매개변수는 일부 모델에서만 지원됩니다. 조정하려는 모델에 적용 가능한 매개변수만 포함해야 합니다.

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

  • PROJECT_ID: 프로젝트 ID
  • TUNING_JOB_REGION: 조정 작업이 실행되는 리전. 또한 조정된 모델이 업로드되는 기본 리전입니다.
  • BASE_MODEL: 조정할 기반 모델의 이름입니다. 지원되는 값은 gemini-1.5-pro-002, gemini-1.5-flash-002, gemini-1.0-pro-002입니다.
  • TRAINING_DATASET_URI: 학습 데이터 세트의 Cloud Storage URI. 데이터 세트는 JSONL 파일 형식이어야 합니다. 최상의 결과를 얻으려면 100~500개 이상의 예시를 제공하세요. 자세한 내용은 지도 조정 데이터 세트 정보 를 참고하세요.
  • VALIDATION_DATASET_URI(선택사항): 검증 데이터 세트 파일의 Cloud Storage URI
  • EPOCH_COUNT선택사항: 학습 중에 모델이 전체 학습 데이터 세트에서 수행하는 완료 횟수입니다. 미리 입력된 권장 값을 사용하려면 설정하지 않은 상태로 둡니다.
  • ADAPTER_SIZE선택사항: 조정 작업에 사용할 어댑터 크기입니다. 어댑터 크기는 조정 작업의 학습 가능한 매개변수 수에 영향을 미칩니다. 어댑터 크기가 클수록 모델이 더 복잡한 작업을 학습할 수 있다는 의미이지만 더 큰 학습 데이터 세트와 더 긴 학습 시간이 필요합니다.
  • LEARNING_RATE_MULTIPLIER(선택사항): 권장 학습률에 적용할 배수. 권장 값을 사용하려면 설정하지 않은 상태로 둡니다.
  • TUNED_MODEL_DISPLAYNAME(선택사항): 조정된 모델의 표시 이름. 설정하지 않으면 임의의 이름이 생성됩니다.

HTTP 메서드 및 URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

JSON 요청 본문:

{
  "baseModel": "BASE_MODEL",
  "supervisedTuningSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI",
      "hyperParameters": {
          "epochCount": EPOCH_COUNT,
          "adapterSize": "ADAPTER_SIZE",
          "learningRateMultiplier": LEARNING_RATE_MULTIPLIER
      },
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME"
}

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

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

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

curl 명령어 예시

PROJECT_ID=myproject
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
   "baseModel": "gemini-1.5-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"
   },
   "tunedModelDisplayName": "tuned_gemini_pro"
}'

Python


import time

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
    source_model="gemini-1.5-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_train_data.jsonl",
    # The following parameters are optional
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_validation_data.jsonl",
    epochs=4,
    adapter_size=4,
    learning_rate_multiplier=1.0,
    tuned_model_display_name="tuned_gemini_1_5_pro",
)

# Polling for job completion
while not sft_tuning_job.has_ended:
    time.sleep(60)
    sft_tuning_job.refresh()

print(sft_tuning_job.tuned_model_name)
print(sft_tuning_job.tuned_model_endpoint_name)
print(sft_tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# <google.cloud.aiplatform.metadata.experiment_resources.Experiment object at 0x7b5b4ae07af0>

콘솔

Google Cloud 콘솔을 사용하여 지도 미세 조정으로 텍스트 모델을 조정하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 Vertex AI Studio 페이지로 이동합니다.

    Vertex AI Studio로 이동

  2. 조정된 모델 만들기를 클릭합니다.

  3. 조정 방법에서 지도 조정 라디오 버튼을 선택합니다.

  4. 모델 세부정보에서 다음을 구성합니다.

    1. 조정된 모델 이름 입력란에 새 조정된 모델의 이름을 입력합니다(최대 128자(영문 기준)).
    2. 기본 모델 필드에서 gemini-1.5-pro-002을 선택합니다.
    3. 리전 드롭다운 필드에서 파이프라인 조정 작업이 실행되는 리전과 조정된 모델이 배포되는 리전을 선택합니다.
  5. (선택사항) 고급 옵션 드롭다운 화살표를 확장하고 다음을 구성합니다.

    1. 세대 수 필드에 모델 조정을 위해 실행할 단계 수를 입력합니다.
    2. 어댑터 크기 필드에 모델 조정에 사용할 어댑터 크기를 입력합니다.
    3. 학습률 배율 필드에 각 반복의 보폭을 입력합니다. 기본값은 1입니다.
  6. 계속을 클릭합니다.

    데이터 세트 조정 페이지가 열립니다.

  7. 데이터 세트 파일을 업로드하려면 다음 중 하나를 선택합니다.

    1. 아직 데이터 세트를 업로드하지 않았다면 Cloud Storage에 파일 업로드 라디오 버튼을 선택합니다.
    2. JSONL 파일 선택 필드에서 찾아보기를 클릭하고 데이터 세트 파일을 선택합니다.
    3. 데이터 세트 위치에서 찾아보기를 클릭하고 데이터 세트 파일을 저장할 Cloud Storage 버킷을 선택합니다.
    4. 데이터 세트 파일이 이미 Cloud Storage 버킷에 있으면 Cloud Storage의 기존 파일 라디오 버튼을 선택합니다.
    5. Cloud Storage 파일 경로 필드에서 찾아보기를 클릭한 후 데이터 세트 파일이 있는 Cloud Storage 버킷을 선택합니다.
  8. (선택사항) 학습 중에 검증 측정항목을 가져오려면 모델 검증 사용 설정 토글을 클릭합니다.

    1. 검증 데이터 세트 파일에서 검증 데이터 세트의 Cloud Storage 경로를 입력합니다.
  9. 조정 시작을 클릭합니다.

    새 모델이 조정 및 정제 페이지Gemini Pro 조정 모델 섹션에 표시됩니다. 모델의 조정이 완료되면 상태성공이라고 표시됩니다.

Colab Enterprise

Colab Enterprise의 측면 패널을 사용하여 Vertex AI에서 모델 조정 작업을 만들 수 있습니다. 측면 패널은 노트북에 관련 코드 스니펫을 추가합니다. 그런 다음 코드 스니펫을 수정하고 실행하여 조정 작업을 만듭니다. Vertex AI 조정 작업에서 측면 패널을 사용하는 방법에 관한 자세한 내용은 Vertex AI와 상호작용하여 모델 조정을 참고하세요.

  1. Google Cloud 콘솔에서 Colab Enterprise Notebooks 페이지로 이동합니다.

    Notebooks로 이동

  2. 리전 메뉴에서 노트북이 포함된 리전을 선택합니다.

  3. 내 노트북 탭에서 열려는 노트북을 클릭합니다. 노트북을 만들지 않았으면 노트북을 만듭니다.

  4. 노트북 오른쪽의 측면 패널에서  조정 버튼을 클릭합니다.

    측면 패널에서 조정 탭이 펼쳐집니다.

  5. Gemini 모델 조정 버튼을 클릭합니다.

    Colab Enterprise는 Gemini 모델을 조정하기 위한 코드 셀을 노트북에 추가합니다.

  6. 노트북에서 매개변수 값을 저장하는 코드 셀을 찾습니다. 이러한 매개변수를 사용하여 Vertex AI와 상호작용할 수 있습니다.

  7. 다음 매개변수의 값을 업데이트합니다.

    • PROJECT_ID: 노트북이 있는 프로젝트의 ID입니다.
    • REGION: 노트북이 있는 리전입니다.
    • TUNED_MODEL_DISPLAY_NAME: 조정된 모델의 이름입니다.
  8. 다음 코드 셀에서 모델 조정 매개변수를 업데이트합니다.

    • source_model: 사용할 Gemini 모델입니다(예: gemini-1.0-pro-002).
    • train_dataset: 학습 데이터 세트의 URL입니다.
    • validation_dataset: 유효성 검사 데이터 세트의 URL입니다.
    • 필요에 따라 나머지 매개변수를 조정합니다.
  9. 측면 패널이 노트북에 추가한 코드 셀을 실행합니다.

  10. 마지막 코드 셀이 실행된 후 표시되는  조정 작업 보기 버튼을 클릭합니다.

  11. 측면 패널에는 모델 조정 작업에 대한 정보가 표시됩니다.

    • 측정항목이 준비되면 모니터 탭에 조정 측정항목이 표시됩니다.
    • 데이터 세트 탭에는 데이터 세트가 처리된 후 데이터 세트에 관한 요약 및 측정항목이 표시됩니다.
    • 세부정보 탭에는 조정 방법, 사용한 기본 모델 (소스 모델)과 같은 조정 작업에 관한 정보가 표시됩니다.
  12. 조정 작업이 완료되면 조정 세부정보 탭에서 모델을 테스트할 수 있는 페이지로 바로 이동할 수 있습니다. 테스트를 클릭합니다.

    Google Cloud 콘솔이 Vertex AI 텍스트 채팅 페이지로 열리며 여기에서 모델을 테스트할 수 있습니다.

초매개변수 조정

초매개변수를 변경하지 않고 첫 번째 미세 조정 작업을 제출하는 것이 좋습니다. 기본값은 최적의 모델 출력 품질을 얻기 위한 벤치마킹 결과에 따른 권장 값입니다.

  • 에포크: 학습 중에 모델이 전체 학습 데이터 세트에서 수행하는 완료 횟수입니다. Vertex AI는 기본값을 학습 데이터 세트 크기에 맞게 자동으로 조정합니다. 이 값은 모델 출력 품질을 최적화하기 위한 벤치마킹 결과를 기반으로 합니다.
  • 어댑터 크기: 조정 작업에 사용할 어댑터 크기입니다. 어댑터 크기는 조정 작업의 학습 가능한 매개변수 수에 영향을 미칩니다. 어댑터 크기가 클수록 모델이 더 복잡한 작업을 학습할 수 있다는 의미이지만 더 큰 학습 데이터 세트와 더 긴 학습 시간이 필요합니다.
  • 학습률 배수: 권장 학습률에 적용할 배수입니다. 값을 늘려 더 빨리 수렴하거나 값을 줄여 오버피팅을 방지할 수 있습니다.

조정 작업 목록 보기

Google Cloud 콘솔, Vertex AI SDK for Python을 사용하거나 tuningJobs 메서드를 사용하여 GET 요청을 전송하여 현재 프로젝트에서 조정 작업 목록을 볼 수 있습니다.

REST

모델 조정 작업 목록을 보려면 tuningJobs.list 메서드를 사용하여 GET 요청을 전송합니다.

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

  • PROJECT_ID: 프로젝트 ID
  • TUNING_JOB_REGION: 조정 작업이 실행되는 리전. 또한 조정된 모델이 업로드되는 기본 리전입니다.

HTTP 메서드 및 URL:

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

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

curl

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

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

PowerShell

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

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

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

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

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

responses = sft.SupervisedTuningJob.list()

for response in responses:
    print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7c85287b2680>
# resource name: projects/12345678/locations/us-central1/tuningJobs/123456789012345

콘솔

Google Cloud 콘솔에서 조정 작업을 보려면 Vertex AI Studio 페이지로 이동합니다.

Vertex AI Studio로 이동

Gemini 조정 작업은 Gemini Pro 조정된 모델 섹션 아래 표에 나와 있습니다.

조정 작업의 세부정보 가져오기

Google Cloud 콘솔, Vertex AI SDK for Python을 사용하거나 tuningJobs 메서드를 사용하여 GET 요청을 전송하여 현재 프로젝트에서 조정 작업의 세부정보를 가져올 수 있습니다.

REST

모델 조정 작업 목록을 보려면 tuningJobs.get 메서드를 사용하여 GET 요청을 전송하고 TuningJob_ID를 지정합니다.

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

  • PROJECT_ID: 프로젝트 ID
  • TUNING_JOB_REGION: 조정 작업이 실행되는 리전. 또한 조정된 모델이 업로드되는 기본 리전입니다.
  • TUNING_JOB_ID: 조정 작업의 ID

HTTP 메서드 및 URL:

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID

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

curl

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

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

PowerShell

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

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

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

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

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
response = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)

print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7cc4bb20baf0>
# resource name: projects/1234567890/locations/us-central1/tuningJobs/4982013113894174720

콘솔

  1. Google Cloud 콘솔에서 조정된 모델의 세부정보를 보려면 Vertex AI Studio 페이지로 이동합니다.

    Vertex AI Studio로 이동

  2. Gemini Pro 조정 모델 테이블에서 모델을 찾아 세부정보를 클릭합니다.

    모델의 세부정보가 표시됩니다.

조정 작업 취소

Google Cloud 콘솔, Vertex AI SDK for Python을 사용하거나 tuningJobs 메서드를 사용하여 POST 요청을 전송하여 현재 프로젝트에서 조정 작업을 취소할 수 있습니다.

REST

모델 조정 작업 목록을 보려면 tuningJobs.cancel 메서드를 사용하여 GET 요청을 전송하고 TuningJob_ID를 지정합니다.

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

  • PROJECT_ID: 프로젝트 ID
  • TUNING_JOB_REGION: 조정 작업이 실행되는 리전. 또한 조정된 모델이 업로드되는 기본 리전입니다.
  • TUNING_JOB_ID: 조정 작업의 ID

HTTP 메서드 및 URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel

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

curl

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

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

PowerShell

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

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content

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

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
job = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)
job.cancel()

콘솔

  1. Google Cloud 콘솔에서 조정 작업을 취소하려면 Vertex AI Studio 페이지로 이동합니다.

    Vertex AI Studio로 이동

  2. Gemini Pro 조정 모델 표에서 실행 관리를 클릭합니다.

  3. 취소를 클릭합니다.

프롬프트로 조정된 모델 테스트

Python용 Vertex AI SDK를 사용하거나 tuningJobs 메서드를 사용하여 POST 요청을 전송하여 현재 프로젝트에서 조정 작업을 테스트할 수 있습니다.

다음 예에서는 모델에 '하늘은 왜 파랗지?'라는 질문을 프롬프트합니다.

REST

프롬프트로 조정된 모델을 테스트하려면 POST 요청을 전송하고 TUNED_ENDPOINT_ID를 지정합니다.

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

  • PROJECT_ID: 프로젝트 ID
  • TUNING_JOB_REGION: 조정 작업이 실행되는 리전. 또한 조정된 모델이 업로드되는 기본 리전입니다.
  • ENDPOINT_ID: GET API의 조정된 모델 엔드포인트 ID입니다.
  • TEMPERATURE: 강도는 응답 생성 중 샘플링에 사용되며 topPtopK가 적용될 때 발생합니다. 온도는 토큰 선택의 무작위성 수준을 제어합니다. 온도가 낮을수록 자유롭거나 창의적인 답변과 거리가 먼 응답이 필요한 프롬프트에 적합하고, 온도가 높을수록 보다 다양하거나 창의적인 결과로 이어질 수 있습니다. 온도가 0이면 확률이 가장 높은 토큰이 항상 선택됩니다. 이 경우 특정 프롬프트에 대한 응답은 대부분 확정적이지만 여전히 약간의 변형이 가능합니다.

    모델이 너무 일반적이거나, 너무 짧은 응답을 반환하거나 모델이 대체 응답을 제공할 경우에는 강도(temperature)를 높여보세요.

  • TOP_P: Top-P는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. 토큰은 확률의 합이 Top-P 값과 같아질 때까지 확률이 가장 높은 것부터(Top-K 참조) 가장 낮은 것까지 선택됩니다. 예를 들어 토큰 A, B, C의 확률이 0.3, 0.2, 0.1이고 Top-P 값이 0.5이면 모델이 온도를 사용해서 다음 토큰으로 A 또는 B를 선택하고 C는 후보에서 제외합니다.

    임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다.

  • TOP_K: Top-K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. Top-K가 1이면 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 Top-K가 3이면 강도를 사용하여 가장 확률이 높은 3개 토큰 중에서 다음 토큰이 선택된다는 의미입니다.

    각 토큰 선택 단계에서 확률이 가장 높은 Top-K 토큰이 샘플링됩니다. 그런 다음 Top-P를 기준으로 토큰을 추가로 필터링하고 온도 샘플링을 사용하여 최종 토큰을 선택합니다.

    임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다.

  • MAX_OUTPUT_TOKENS: 응답에서 생성될 수 있는 토큰의 최대 개수. 토큰은 약 4자(영문 기준)입니다. 토큰 100개는 단어 약 60~80개에 해당합니다.

    응답이 짧을수록 낮은 값을 지정하고 잠재적으로 응답이 길면 높은 값을 지정합니다.

HTTP 메서드 및 URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent

JSON 요청 본문:

{
    "contents": [
        {
            "role": "USER",
            "parts": {
                "text" : "Why is sky blue?"
            }
        }
    ],
    "generation_config": {
        "temperature":TEMPERATURE,
        "topP": TOP_P,
        "topK": TOP_K,
        "maxOutputTokens": MAX_OUTPUT_TOKENS
    }
}

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

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent"

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content

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

Python

from vertexai.generative_models import GenerativeModel

sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>")
tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name)
print(tuned_model.generate_content(content))

콘솔

  1. Google Cloud 콘솔에서 조정된 모델의 세부정보를 보려면 Vertex AI Studio 페이지로 이동합니다.

    Vertex AI Studio로 이동

  2. Gemini Pro 조정 모델 테이블에서 테스트를 선택합니다.

    조정된 모델과의 대화를 만들 수 있는 페이지가 열립니다.

조정 및 검증 측정항목

모델 조정 작업을 구성하여 모델 조정 및 모델 평가 측정항목을 수집하고 보고할 수 있으며 이를 Vertex AI Studio에서 시각화할 수 있습니다.

  1. Google Cloud 콘솔에서 조정된 모델의 세부정보를 보려면 Vertex AI Studio 페이지로 이동합니다.

    Vertex AI Studio로 이동

  2. 조정 및 증류 테이블에서 측정항목을 보려는 조정된 모델의 이름을 클릭합니다.

    조정 측정항목은 Monitor 탭 아래에 표시됩니다.

모델 조정 측정항목

모델 조정 작업은 gemini-1.5-pro-002에 대해 다음 조정 측정항목을 자동으로 수집합니다.

  • /train_total_loss: 학습 단계의 조정 데이터 세트 손실
  • /train_fraction_of_correct_next_step_preds: 학습 단계의 토큰 정확성. 단일 예측은 일련의 토큰으로 구성됩니다. 이 측정항목은 조정 데이터 세트의 정답과 비교할 때 예측된 토큰의 정확도를 측정합니다.
  • /train_num_predictions: 학습 단계에서 예측된 토큰 수

모델 검증 측정항목:

gemini-1.5-pro-002에 대해 다음 유효성 검사 측정항목을 수집하도록 모델 조정 작업을 구성할 수 있습니다.

  • /eval_total_loss: 검증 단계의 검증 데이터 세트 손실
  • /eval_fraction_of_correct_next_step_preds: 검증 단계의 토큰 정확성. 단일 예측은 일련의 토큰으로 구성됩니다. 이 측정항목은 검증 데이터 세트의 정답과 비교할 때 예측된 토큰의 정확도를 측정합니다.
  • /eval_num_predictions: 검증 단계에서 예측된 토큰 수

조정 작업이 실행을 시작한 후 측정항목 시각화를 사용할 수 있습니다. 튜닝이 진행되면 실시간으로 업데이트됩니다. 조정 작업을 만들 때 검증 데이터 세트를 지정하지 않으면 조정 측정항목의 시각화만 제공됩니다.

다음 단계