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이면 가중치와 편향이 3배 더 많이 조정됩니다. 0.1보다 강력합니다. 높은 학습률과 낮은 학습률은 사용 사례에 맞게 조정해야 합니다
  • 학습률 배율: 배율은 모델의 원래 학습률을 수정합니다. 값이 1이면 모델의 원래 학습률이 사용됩니다. 1보다 큰 값은 학습률과 1 사이의 값을 증가시킵니다. 0은 학습률을 낮춥니다

다음 표에서는 기반 모델:

초매개변수 기본값 추천 조정
세대 5

5세대 이전에 손실이 고원하기 시작하면 더 작은 값을 사용합니다.

손실이 수렴하고 고원처럼 보이지 않으면 더 높은 값을 사용합니다.

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

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

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

조정 작업 상태 확인

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

오류 문제 해결하기

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

인증

API 및 클라이언트 라이브러리를 사용하여 조정하려면 사용자 인증이 필요합니다. API 키만으로는 충분하지 않습니다. 'PermissionDenied: 403 Request had insufficient authentication scopes' 오류가 표시되면 사용자를 설정해야 합니다. 있습니다.

Python용 OAuth 사용자 인증 정보를 구성하려면 다음을 참조하세요. OAuth 설정 튜토리얼을 참조하세요.

취소된 모델

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

조정된 모델의 한계

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

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

다음 단계

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