Gemini API로 미세 조정

퓨샷 프롬프팅과 같은 프롬프트 설계 전략으로는 필요한 결과가 항상 산출되는 것은 아닙니다. 세부 조정은 특정 작업에 대한 모델의 성능을 개선하거나, 지침이 충분하지 않고 원하는 출력을 보여주는 일련의 예시가 있는 경우 모델이 특정 출력 요구사항을 준수하도록 하는 프로세스입니다.

이 페이지에서는 Gemini API 텍스트 서비스를 지원하는 텍스트 모델을 미세 조정하는 방법을 안내합니다.

미세 조정 작동 방식

미세 조정의 목표는 특정 작업에 대해 모델의 성능을 더욱 개선하는 것입니다. 미세 조정은 모델에 작업의 많은 예가 포함된 학습 데이터 세트를 제공하는 방식으로 이루어집니다. 틈새 태스크의 경우 적당한 예시 개수로 모델을 조정하여 모델 성능을 크게 향상시킬 수 있습니다.

학습 데이터는 프롬프트 입력과 예상되는 응답 출력이 포함된 예시로 구성되어야 합니다. Google AI Studio에서 직접 예시 데이터를 사용하여 모델을 조정할 수도 있습니다 목표는 원하는 동작 또는 작업을 보여주는 많은 예를 제공하여 모델이 원하는 동작 또는 작업을 모방하도록 학습시키는 것입니다.

조정 작업을 실행하면 모델은 원하는 작업을 실행하거나 원하는 동작을 학습하는 데 필요한 정보를 인코딩하는 데 도움이 되는 추가 매개변수를 학습합니다. 그런 후 이러한 매개변수를 추론 시점에 사용할 수 있습니다. 조정 작업의 출력은 실질적으로 새로 학습된 매개변수와 원래 모델의 조합인 새 모델입니다.

데이터 세트 준비

미세 조정을 시작하려면 먼저 모델을 조정할 데이터 세트가 필요합니다. 최상의 성능을 위해서는 데이터 세트의 예시가 고품질이고 다양하며 실제 입력과 출력을 잘 나타내야 합니다.

형식

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

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

데이터 세트의 각 예에 프롬프트 또는 프리앰블을 추가하면 조정된 모델의 성능을 향상시키는 데 도움이 될 수 있습니다. 프롬프트 또는 프리앰블이 데이터 세트에 포함된 경우 추론 시 조정된 모델에 대한 프롬프트에도 포함되어야 합니다.

학습 데이터 크기

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

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

조정 데이터 세트 업로드

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

Import(가져오기) 버튼을 클릭하고 대화상자의 안내에 따라 파일에서 데이터를 가져오거나 조정 데이터 세트로 가져올 예시가 있는 구조화된 프롬프트를 선택합니다.

클라이언트 라이브러리

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

cURL

cURL을 사용하여 REST API를 호출하려면 training_data 인수에 JSON 형식의 학습 예시를 제공합니다. 시작하려면 cURL로 조정 빠른 시작을 참조하세요.

고급 조정 설정

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

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

다음 표에서는 기반 모델을 미세 조정하기 위한 권장 구성을 보여줍니다.

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

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

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

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

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

모델의 손실 곡선을 보여주는 선 차트입니다. 선이 첫 번째 에포크와 두 번째 에포크 사이에 급격히 상승하다가 거의 0까지 급격히 감소하고 3세대 후에 레벨아웃됩니다.

조정 작업 상태 확인

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

오류 문제 해결하기

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

인증

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

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

취소된 모델

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

다음 단계