모델 조정 소개

퓨샷 프롬프팅과 같은 프롬프트 설계 전략은 필요한 결과를 항상 생성하는 것은 아닙니다. 모델 조정을 사용하여 특정 작업에서 모델의 성능을 개선하거나, 안내가 충분하지 않고 원하는 출력을 보여주는 일련의 예시가 있는 경우 모델이 특정 출력 요구사항을 준수하도록 할 수 있습니다.

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

모델 조정의 원리

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

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

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

지원되는 모델

다음 기반 모델은 모델 조정을 지원합니다. 싱글턴 텍스트 완성만 지원됩니다.

  • Gemini 1.0 Pro
  • text-bison-001

모델 조정을 위한 워크플로

모델 조정 워크플로는 다음과 같습니다.

  1. 데이터 세트를 준비합니다.
  2. Google AI Studio를 사용하는 경우 데이터 세트를 가져옵니다.
  3. 조정 작업을 시작합니다.

모델 조정이 완료되면 조정된 모델의 이름이 표시됩니다. Google AI Studio에서 새 프롬프트를 만들 때 사용할 모델로 선택할 수도 있습니다.

데이터 세트 준비

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

형식

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

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

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

학습 데이터 크기

20개 정도의 예시로 모델을 조정할 수 있으며, 데이터가 추가되면 일반적으로 응답 품질이 향상됩니다. 애플리케이션에 따라 100~500개의 예를 타겟팅해야 합니다. 다음 표는 다양한 일반적인 태스크에서 텍스트 모델을 조정할 때 권장되는 데이터 세트 크기를 보여줍니다.

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

조정 데이터 세트 업로드

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

가져오기 버튼을 사용하여 파일에서 데이터를 가져오거나 조정 데이터 세트로 가져올 예시가 포함된 구조화된 프롬프트를 선택합니다.

클라이언트 라이브러리

클라이언트 라이브러리를 사용하려면 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에 손실 곡선이 정체되어 있음을 보여줍니다. 즉, 에포크 매개변수를 4로 설정해도 동일한 성능을 유지할 수 있습니다.

손실 곡선

조정 작업 상태 확인

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

오류 문제 해결하기

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

인증

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

Python용 OAuth 사용자 인증 정보를 구성하려면 OAuth 설정 가이드를 참조하세요.

취소된 모델

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

다음 단계