이 튜토리얼에서는 Python SDK 또는 curl을 사용하여 REST API를 사용하여 Gemini API 조정 서비스를 시작하는 방법을 설명합니다. 이 예에서는 Gemini API 텍스트 생성 서비스의 텍스트 모델을 조정하는 방법을 보여줍니다.
![]() |
![]() |
![]() |
제한사항
모델을 조정하기 전에 다음 제한사항을 알아야 합니다.
미세 조정 데이터 세트
Gemini 1.5 Flash의 데이터 세트를 미세 조정하는 데는 다음과 같은 제한사항이 있습니다.
- 예시당 최대 입력 크기는 40,000자(영문 기준)입니다.
- 예시당 최대 출력 크기는 5,000자(영문 기준)입니다.
- 입력-출력 쌍 예시만 지원됩니다. 채팅 스타일의 여러 번의 대화는 지원되지 않습니다.
조정된 모델
조정된 모델에는 다음과 같은 제한사항이 있습니다.
- 조정된 Gemini 1.5 Flash 모델의 입력 한도는 40,000자(영문 기준)입니다.
- 조정된 모델에서는 JSON 모드가 지원되지 않습니다.
- 텍스트 입력만 지원됩니다.
시작하기 전에: 프로젝트 및 API 키 설정
Gemini API를 호출하기 전에 프로젝트를 설정하고 API 키를 구성해야 합니다.
조정된 모델 목록
tunedModels.list
메서드를 사용하여 기존의 조정된 모델을 확인할 수 있습니다.
from google import genai
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable
for model_info in client.models.list():
print(model_info.name)
조정된 모델 만들기
조정된 모델을 만들려면 tunedModels.create
메서드에서 데이터 세트를 모델에 전달해야 합니다.
이 예에서는 시퀀스의 다음 숫자를 생성하도록 모델을 조정합니다. 예를 들어 입력이 1
이면 모델은 2
을 출력해야 합니다. 입력이 one hundred
이면 출력은 one hundred one
입니다.
# create tuning model
training_dataset = [
["1", "2"],
["3", "4"],
["-3", "-2"],
["twenty two", "twenty three"],
["two hundred", "two hundred one"],
["ninety nine", "one hundred"],
["8", "9"],
["-98", "-97"],
["1,000", "1,001"],
["10,100,000", "10,100,001"],
["thirteen", "fourteen"],
["eighty", "eighty one"],
["one", "two"],
["three", "four"],
["seven", "eight"],
]
training_dataset=types.TuningDataset(
examples=[
types.TuningExample(
text_input=i,
output=o,
)
for i,o in training_dataset
],
)
tuning_job = client.tunings.tune(
base_model='models/gemini-1.0-pro-001',
training_dataset=training_dataset,
config=types.CreateTuningJobConfig(
epoch_count= 5,
batch_size=4,
learning_rate=0.001,
tuned_model_display_name="test tuned model"
)
)
# generate content with the tuned model
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III',
)
print(response.text)
에포크 수, 배치 크기, 학습률의 최적값은 데이터 세트와 사용 사례의 다른 제약 조건에 따라 다릅니다. 이러한 값에 관한 자세한 내용은 고급 조정 설정 및 초매개변수를 참고하세요.
모델 사용해 보기
tunedModels.generateContent
메서드를 사용하고 조정된 모델의 이름을 지정하여 성능을 테스트할 수 있습니다.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
구현되지 않음
일부 기능 (진행률 보고, 설명 업데이트, 조정된 모델 삭제)은 아직 새 SDK에 구현되지 않았습니다.