Gemini API로 미세 조정

퓨샷 프롬프트와 같은 프롬프트 디자인 전략은 필요한 결과를 항상 생성하지는 않을 수 있습니다. 미세 조정은 모델의 성능을 개선할 수 있는 프로세스입니다. 모델이 특정 출력을 따르도록 지원하거나 요구사항을 제시하고 관련 예시가 있는 경우 확인할 수 있습니다

이 페이지에서는 텍스트 모델을 미세 조정하는 방법에 대한 개념을 간략히 설명합니다. Gemini API 텍스트 서비스입니다 조정을 시작할 준비가 되면 다음을 시도해 보세요. 미세 조정 튜토리얼을 참조하세요. 특정 사용 사례에 맞게 LLM을 맞춤설정하는 방법을 더 일반적으로 알아보려면 머신러닝 단기집중과정LLM: 미세 조정, 정제, 프롬프트 엔지니어링을 확인하세요.

미세 조정 작동 방식

미세 조정의 목표는 특정 작업에 대한 모델의 성능을 확인할 수 있습니다 미세 조정은 모델에 많은 태스크 예시가 포함된 학습 데이터 세트를 제공하는 방식으로 작동합니다. 틈새 태스크의 경우 적당한 예시 개수로 모델을 조정하여 모델 성능을 크게 향상시킬 수 있습니다. 이러한 종류의 모델 조정을 다른 종류의 미세 조정과 구별하기 위해 감독 기반 미세 조정이라고도 합니다.

학습 데이터는 프롬프트 입력이 포함된 예시로 구성되어야 하며 예측되는 응답 출력을 예측할 수 있습니다 예시 데이터를 사용하여 모델을 직접 조정할 수도 있습니다. 확인할 수 있습니다 목표는 원하는 동작을 모방하도록 모델을 학습시키는 것입니다. 해당 동작이나 작업을 보여주는 많은 예를 제공하여

조정 작업을 실행하면 모델이 원하는 태스크를 수행하거나 원하는 동작을 학습하는 데 필요한 정보를 인코딩할 수 있게 해주는 추가 매개변수를 학습합니다. 그런 후 이러한 매개변수를 추론 시점에 사용할 수 있습니다. 조정 작업의 결과는 새로 학습된 매개변수와 원래 모델이 조합된 새로운 모델로 나타납니다.

데이터 세트 준비

미세 조정을 시작하려면 모델을 조정할 데이터 세트가 필요합니다. 최상의 성능을 얻으려면 데이터 세트의 예시가 다양하고 고품질이며 실제 입력과 출력을 대표해야 합니다.

형식

데이터 세트에 포함된 예시는 예상되는 프로덕션 트래픽과 일치해야 합니다. 데이터 세트에 특정 형식, 키워드, 안내 또는 정보가 포함된 경우 프로덕션 데이터의 형식이 동일한 방식으로 지정되어야 하며 동일한 안내를 포함해야 합니다.

예를 들어 데이터 세트의 예시에 "question:""context:"가 포함된 경우 프로덕션 트래픽 형식 지정 시 "question:""context:"가 데이터 세트 예시를 표시하는 것과 동일한 순서로 포함되어야 합니다. 컨텍스트를 제외하면 모델이 패턴을 인식할 수 없으며 정확한 질문이 데이터 세트의 예에 있는 경우에도 마찬가지입니다.

다음 예는 시퀀스의 다음 숫자를 생성하는 애플리케이션의 Python 학습 데이터입니다.

training_data = [
  {"text_input": "1", "output": "2"},
  {"text_input": "3", "output": "4"},
  {"text_input": "-3", "output": "-2"},
  {"text_input": "twenty two", "output": "twenty three"},
  {"text_input": "two hundred", "output": "two hundred one"},
  {"text_input": "ninety nine", "output": "one hundred"},
  {"text_input": "8", "output": "9"},
  {"text_input": "-98", "output": "-97"},
  {"text_input": "1,000", "output": "1,001"},
  {"text_input": "10,100,000", "output": "10,100,001"},
  {"text_input": "thirteen", "output": "fourteen"},
  {"text_input": "eighty", "output": "eighty one"},
  {"text_input": "one", "output": "two"},
  {"text_input": "three", "output": "four"},
  {"text_input": "seven", "output": "eight"},
]

데이터 세트의 각 예에 프롬프트나 전문을 추가하면 도움이 될 수 있습니다. 조정된 모델의 성능을 개선할 수 있습니다 프롬프트나 프리앰블이 조정된 데이터를 기반으로 하는 프롬프트에도 포함되어야 합니다. 모델을 학습시킵니다.

제한사항

참고: Gemini 1.5 Flash의 미세 조정 데이터 세트에는 다음과 같은 제한사항이 있습니다.

  • 예시당 최대 입력 크기는 40,000자(영문 기준)입니다.
  • 예시당 최대 출력 크기는 5,000자(영문 기준)입니다.

학습 데이터 크기

최소 20개의 예로 모델을 세부 조정할 수 있습니다. 일반적으로 데이터를 추가하면 대답의 품질이 개선됩니다. 애플리케이션에 따라 100~500개의 예시를 타겟팅해야 합니다. 다음 표에서는 다양한 일반적인 작업에 대한 텍스트 모델을 미세 조정하는 데 권장되는 데이터 세트 크기:

작업 데이터 세트에 있는 예의 개수
분류 100+
요약 100-500+
문서 검색 100+

조정 데이터 세트 업로드

데이터는 API를 사용하거나 Google에 업로드된 파일을 통해 인라인으로 전달됩니다. 살펴보겠습니다

클라이언트 라이브러리를 사용하려면 createTunedModel 호출에 데이터 파일을 제공합니다. 파일 크기는 4MB로 제한됩니다. 시작하려면 Python으로 미세 조정하기 빠른 시작을 참고하세요.

cURL을 사용하여 REST API를 호출하려면 training_data 인수입니다. 시작하려면 cURL을 사용한 조정 빠른 시작을 참고하세요.

고급 조정 설정

조정 작업을 만들 때 다음과 같은 고급 설정을 지정할 수 있습니다.

  • 에포크: 전체 학습 세트의 각 예를 한 번씩 처리한 전체 학습 단계입니다.
  • 배치 크기: 하나의 학습 반복에 사용되는 예시 집합입니다. 배치 크기에 따라 배치의 예 수가 결정됩니다.
  • 학습률: 각 반복에서 모델 매개변수를 얼마나 강하게 조정할지 알고리즘에 알려주는 부동 소수점 수입니다. 예를 들어 학습률이 0.3이면 학습률이 0.1일 때보다 가중치와 편향을 세 배 더 강력하게 조정합니다. 학습률이 높으면 낮은 학습률과는 다른 장단점이 있으며 사용 사례에 따라 조정해야 합니다.
  • 학습률 배율: 배율은 모델의 원래 학습률을 수정합니다. 값이 1이면 모델의 원래 학습률이 사용됩니다. 1보다 큰 값은 학습률과 1 사이의 값을 증가시킵니다. 0은 학습률을 낮춥니다

다음 표에는 기반 모델을 미세 조정하기 위한 권장 구성이 나와 있습니다.

초매개변수 기본값 권장 조정사항
세대 5

5번의 에포크 전에 손실이 정체되기 시작하면 더 작은 값을 사용합니다.

손실이 수렴하고 정체되지 않는 경우 더 높은 값을 사용합니다.

배치 크기 4
학습률 0.001 데이터 세트가 작을 경우 더 작은 값을 사용하세요.

손실 곡선은 각 에포크 후 학습 예시에서 모델의 예측이 이상적인 예측에서 얼마나 벗어났는지 보여줍니다. 이상적으로는 곡선이 정체하기 직전의 최저점에서 학습을 중지하는 것이 좋습니다. 예를 들어 아래 그래프는 손실 곡선이 약 4~6번 에포크에서 정체되는 것을 보여줍니다. 즉, Epoch 매개변수를 4로 설정해도 동일한 성능을 얻을 수 있습니다.

모델의 손실 곡선을 보여주는 선 차트 선이 윗부분의
그런 다음 급격히 거의 0까지 감소하고 레벨아웃합니다.
3 에포크 후에 생성됩니다

조정 작업 상태 확인

Google AI Studio의 내 라이브러리 탭에서 또는 Gemini API에서 조정된 모델의 metadata 속성을 사용하여 조정 작업의 상태를 확인할 수 있습니다.

오류 문제 해결하기

이 섹션에는 조정된 모델을 만드는 동안 발생할 수 있는 오류를 해결하는 방법에 관한 팁이 포함되어 있습니다.

인증

API 및 클라이언트 라이브러리를 사용하여 조정하려면 인증이 필요합니다. 다음과 같은 작업을 할 수 있습니다. API 키 (권장) 또는 OAuth를 사용하여 인증 설정 사용자 인증 정보를 제공합니다 API 키 설정에 관한 문서는 API 키 설정을 참고하세요.

'PermissionDenied: 403 Request had insufficient authentication scopes' 오류가 표시되면 OAuth 사용자 인증 정보를 사용하여 사용자 인증을 설정해야 할 수 있습니다. Python용 OAuth 사용자 인증 정보를 구성하려면 OAuth 설정 튜토리얼을 참고하세요.

취소된 모델

작업이 완료되기 전에 언제든지 미세 조정 작업을 취소할 수 있습니다. 하지만 취소된 모델의 추론 성능을 예측할 수 없습니다. 특히 다음과 같은 경우 조정 작업이 학습 초기에 취소됩니다. 이전 에포크에서 학습을 중지하기 위해 취소한 경우 새 조정 작업을 만들고 에포크를 더 낮은 값으로 설정해야 합니다.

조정된 모델의 한계

참고: 조정된 모델에는 다음과 같은 제한사항이 있습니다.

  • 조정된 Gemini 1.5 Flash 모델의 입력 한도는 40,000자(영문 기준)입니다.
  • 조정된 모델에서는 JSON 모드가 지원되지 않습니다.
  • 텍스트 입력만 지원됩니다.

다음 단계

미세 조정 튜토리얼을 시작해 보세요.