Gemini 텍스트 모델의 모델 조정

이 페이지에서는 Gemini로 텍스트 모델을 미세 조정하는 데 도움이 되는 권장 단계를 설명합니다. 이 가이드에서는 분류, 감정 분석, 추출 사용 사례를 설명합니다.

제한사항

  • Gemini 모델에서는 신뢰도 점수를 지원하지 않습니다.
  • Gemini는 감정 분석을 위한 수치 점수를 제공할 수 없습니다. 따라서 숫자 임곗값을 기반으로 감정을 추정하는 기능이 제한됩니다.

AI 모델 출력 신뢰성을 강화하려면 신뢰도 점수에 자기 일관성과 같은 방법을 통합하는 것이 좋습니다. 이 기법은 같은 입력의 모델에서 출력을 여러 개 생성한 후 다수결 시스템을 사용하여 가장 가능성이 높은 출력을 결정합니다. 신뢰도 점수는 다수 출력이 생성된 빈도를 반영하는 비율로 표현될 수 있습니다.

감정 분석 태스크의 경우 LLM을 평가자로 사용하여 구두 신뢰 점수를 제공하는 것이 좋습니다. 모델에 감정을 분석한 후 숫자 점수 대신 언어 점수(예: 'very likely')를 반환하도록 프롬프트합니다. 구두 점수는 일반적으로 LLM 맥락에서 더 쉽게 해석될 수 있으며 편향이 적습니다.

Gemini로 텍스트 모델 조정

Gemini를 사용하여 분류, 추출, 감정 분석을 위한 텍스트 모델을 조정하는 데 사용할 수 있는 옵션에는 선행 학습된 모델을 사용한 프롬프팅 및 맞춤설정된 미세 조정 등 두 가지가 있습니다.

  • 사전 학습된 Gemini 모델을 사용한 프롬프팅: 프롬프팅은 Gemini와 같은 AI 모델이 원하는 출력을 생성하도록 안내하는 효과적인 지침을 작성하는 기술입니다. 여기에는 태스크, 원하는 형식, 관련 맥락을 명확하게 전달하는 프롬프트 설계가 포함됩니다. 최소한의 설정으로 Gemini 기능을 사용할 수 있습니다. 다음과 같은 경우에 적합합니다.

    • 제한된 라벨이 지정된 데이터: 라벨이 지정된 데이터 양이 적거나 긴 미세 조정 프로세스를 감당할 수 없는 경우입니다.
    • 신속한 프로토타입 제작: 미세 조정에 많은 투자를 하지 않고도 개념을 신속하게 테스트하거나 기준 성능을 얻어야 하는 경우
  • 맞춤설정된 Gemini 모델 미세 조정: 보다 맞춤화된 결과를 얻기 위해 Gemini를 사용하면 특정 데이터 세트에서 모델을 미세 조정할 수 있습니다. 특정 영역에서 뛰어난 AI 모델을 만들려면 미세 조정하는 것이 좋습니다. 여기에는 자체 라벨이 지정된 데이터 세트에서 기본 모델을 재학습하여 태스크와 데이터에 맞게 가중치 조정이 포함됩니다. 사용 사례에 맞게 Gemini를 조정할 수 있습니다. 미세 조정은 다음과 같은 경우에 가장 효과적입니다.

    • 라벨이 지정된 데이터 있음: 학습에 사용할 수 있는 상당한 양의 데이터 세트(100개 이상의 예시)로, 이를 통해 모델에서 태스크의 세부정보를 심층적으로 학습할 수 있습니다.
    • 복잡하거나 고유한 태스크: 고급 프롬프팅 전략이 부족하고 데이터에 맞춤설정된 모델이 필수적인 시나리오에 적합합니다.

가능하면 두 가지 방식을 모두 사용하여 특정 사용 사례에 더 나은 결과를 제공하는 방식을 확인합니다. 최적의 프롬프트를 찾으려면 프롬프팅을 시작하는 것이 좋습니다. 그런 다음 미세 조정(필요한 경우)으로 이동하여 성능을 강화하거나 반복 오류를 수정합니다.

예시를 더 추가하는 것이 유용할 수 있지만 데이터를 더 추가하기 전에 모델에서 실수하는 부분을 평가하는 것이 중요합니다. 방식에 관계없이 우수한 성능과 양보다는 더 나은 결과를 얻으려면 라벨이 잘 지정된 고품질 데이터가 중요합니다. 또한 미세 조정에 사용하는 데이터는 모델이 프로덕션에서 접하게 될 데이터 유형을 반영해야 합니다. 모델 개발, 배포, 관리는 기본 Vertex AI 문서를 참조하세요.

Gemini로 프롬프팅

프롬프트 자체에서 태스크(분류, 추출, 감정 분석)의 몇 가지 예시를 제공하여 Gemini 모델의 언어 이해 기능을 사용합니다. 모델은 이러한 예시를 통해 학습하고 새로운 입력에 이 지식을 적용합니다.

결과를 최적화하는 데 사용할 수 있는 일반적인 프롬프팅 기법은 다음과 같습니다.

  • 제로샷 프롬프팅: 특정 예시를 제공하지 않고 모델에 태스크를 수행하도록 직접 지시합니다.
  • 퓨샷 프롬프팅: 모델의 이해를 돕기 위해 안내와 함께 몇 가지 예시를 제공합니다.
  • 연쇄적 사고(CoT) 프롬프팅: 복잡한 태스크를 더 작은 단계로 나누고 각 단계를 순차적으로 모델에 안내합니다.

프롬프트 설계는 유연하지만 특정 전략을 사용하면 모델 출력을 안내할 수 있습니다. 성능을 최적화하려면 철저한 테스트와 평가가 필수입니다.

대규모 텍스트 데이터로 학습된 대규모 언어 모델(LLM)은 언어 패턴과 관계를 학습합니다. 이러한 모델은 프롬프트를 통해 고급 자동 완성과 마찬가지로 가장 가능성이 높은 연속 문구를 예측합니다. 따라서 프롬프트를 작성할 때 모델 예측에 영향을 미치는 요소를 고려해야 합니다.

다음 다이어그램에서는 프롬프트 엔지니어링 프로세스를 보여줍니다. 프롬프트 엔지니어링 프로세스

입력 데이터 준비

몇 가지 다양한 프롬프팅 기법을 사용할 수 있습니다. 다음 예시에서는 퓨샷 프롬프팅 기법을 사용하는 방법을 보여줍니다.

분류

요청

               Classify the following as red wine or white wine:
               
                  Name: Chardonnay
                  Type: White wine
                  Name: Cabernet
                  Type: Red wine
                  Name: Moscato
                  Type: White wine
               
               Name: Riesling
               Type: 
            

응답

         White wine
         

추출

요청

            Extract the technical specifications from the text below in a JSON format.
INPUT: Google Nest Wifi, network speed up to 1200Mpbs, 2.4GHz and 5GHz frequencies, WP3 protocol OUTPUT: { "product":"Google Nest Wifi", "speed":"1200Mpbs", "frequencies": ["2.4GHz", "5GHz"], "protocol":"WP3" } Google Pixel 7, 5G network, 8GB RAM, Tensor G2 processor, 128GB of storage, Lemongrass

응답

         {
         "product": "Google Pixel 7",
         "network": "5G",
         "ram": "8GB",
         "processor": "Tensor G2",
         "storage": "128GB",
         "color": "Lemongrass"
         }
         

감정 분석

요청

            Classify the sentiment of the message. Please only print the category name without anything else.
            
               Message: I had to compare two versions of Hamlet for my Shakespeare class and unfortunately I picked this version. Everything from the acting (the actors deliver most of their lines directly to the camera) to the camera shots (all medium or close up shots...no scenery shots and very little back ground in the shots) were absolutely terrible. I watched this over my spring break and it is very safe to say that I feel that I was gypped out of 114 minutes of my vacation. Not recommended by any stretch of the imagination.
               Category: negative
               Message: This Charles outing is decent but this is a pretty low-key performance. Marlon Brando stands out. There's a subplot with Mira Sorvino and Donald Sutherland that forgets to develop and it hurts the film a little. I'm still trying to figure out why Charlie want to change his name.
               Category: negative
Message: My family has watched Arthur Bach stumble and stammer since the movie first came out. We have most lines memorized. I watched it two weeks ago and still get tickled at the simple humor and view-at-life that Dudley Moore portrays. Liza Minelli did a wonderful job as the side kick - though I'm not her biggest fan. This movie makes me just enjoy watching movies. My favorite scene is when Arthur is visiting his fiancée's house. His conversation with the butler and Susan's father is side-spitting. The line from the butler, "Would you care to wait in the Library" followed by Arthur's reply, "Yes I would, the bathroom is out of the question", is my NEWMAIL notification on my computer.

응답

         Positive
         

예측 응답 가져오기

다음은 분류 예시에 대한 샘플 Python 코드 응답의 예시입니다. 자세한 내용은 Vertex AI의 생성형 AI 개요를 참조하세요.

from vertexai import generative_models
from vertexai.generative_models import GenerativeModel

model = GenerativeModel(model_name="gemini-1.5-flash-001")
response = model.generate_content(["Classify the following as red wine or white wine:

<examples>
Name: Chardonnay
Type: White wine
Name: Cabernet
Type: Red wine
Name: Moscato
Type: White wine
</examples>

Name: Riesling
Type: "])

Gemini 1.0 Pro로 미세 조정

미세 조정을 통해 Gemini 1.0 Pro를 구체적인 니즈에 맞게 조정할 수 있습니다. 자체 데이터로 Gemini 1.0 Pro를 미세 조정하려면 다음 단계를 수행합니다.

학습 데이터 준비

학습 데이터를 JSONL 파일 구조를 사용하는 Gemini의 미세 조정 형식으로 변환합니다. 파일의 각 줄은 단일 학습 예시를 나타냅니다. 각 학습 예시는 다음 구조를 따라야 합니다.

{"messages": [{"role": "system", "content": "<system_context>"},, {"role": "user", "content": "<user_input>"}, {"role": "model", "content": "<desired_output>"}]}

다음은 데이터 포인트가 2개 있는 항목의 예시입니다.

{"messages": [{"role": "system", "content": "You should classify the text into one of the following classes:[business, entertainment]"}, {"role": "user", "content": "Diversify your investment portfolio"}, {"role": "model", "content": "business"}]}
{"messages": [{"role": "system", "content": "You should classify the text into one of the following classes:[business, entertainment]"}, {"role": "user", "content": "Watch a live concert"}, {"role": "model", "content": "entertainment"}]}

포괄적인 안내와 더 많은 예시는 공식 Gemini 데이터 세트 준비 가이드를 참조하세요.

미세 조정 파이프라인 실행

Gemini 미세 조정 작업을 시작하려면 사용자 인터페이스, Python 또는 REST API를 사용하여 단계별 안내를 수행합니다. 설정 중에 Gemini 모델 버전을 선택하고 미세 조정 초매개변수를 구성한 후 전체 설정을 지정합니다. 서로 다른 에포크, 학습률 배수, 어댑터 크기 값으로 실험하는 것이 좋습니다. 예시가 500~1,000개인 데이터 세트의 경우 모델 학습을 제대로 이해하고 태스크에 가장 적합한 매개변수 설정을 찾을 수 있도록 다음 구성으로 시작하는 것이 좋습니다.

  • epochs=2, learning_rate_multiplier=1, adapter_size=1;
  • epochs=4, learning_rate_multiplier=1, adapter_size=1 (default);
  • epochs=6, learning_rate_multiplier=1, adapter_size=4;
  • epochs=12, learning_rate_multiplier=4, adapter_size=4;
  • epochs=12, learning_rate_multiplier=4, adapter_size=1

서로 다른 구성 1개 또는 2개의 성능을 평가하여 성능 개선에 가장 효과적인 매개변수와 수정사항을 식별할 수 있습니다. 성능 목표 수준을 달성하지 못한 경우 이러한 유망한 구성으로 계속 실험할 수 있습니다.

평가 도구 및 기법

일관되고 비교 가능한 모델 평가는 성능을 파악하고 정보에 입각한 결정을 내리는 데 필수적입니다. 다음은 모델 평가 중 기억해야 하는 몇 가지 기법과 도구입니다.

  1. 일관된 평가 방법 유지: 미세 조정된 모델과 프롬프팅 모델 모두에 같은 평가 측정항목과 방법을 사용합니다. 이렇게 하면 편향되지 않은 직접 비교가 가능합니다. 가능하면 모델 개발과 배포 중에 사용한 평가 데이터 세트와 동일한 평가 데이터 세트를 사용합니다. 이렇게 하면 모델 유형 간에 공정하게 비교할 수 있어 품질 불일치를 식별할 수 있습니다.
  2. 평가 도구 및 기법 Vertex AI 생성형 AI 평가 서비스: 소규모 데이터 배치에서 지연 시간이 짧은 동기식 평가를 제공합니다. 주문형 평가, 빠른 반복, 실험에 적합합니다. Python SDK가 있는 다른 Vertex AI 서비스와 통합합니다.
  3. 분류, 추출, 감정 분석 권장사항: 평가 서비스를 사용할 때 exact_match 측정항목을 포함합니다.

배포

조정된 모델을 배포하려면 조정된 모델 배포를 참조하세요.

다음 단계