인공지능(AI)/AI test2024. 8. 16. 08:00

chat gpt Fine-tuning 어떻게 하나 알아보니..

 

사전 훈련과 미세 조정(fine-tuning)은 자연어 처리 모델을 개발하는 데 중요한 두 단계입니다.

두개의 차이점은 어떻게 될까요?

 

  1. 사전 훈련 (Pre-training):
    • 사전 훈련은 모델이 일반적인 언어 이해 능력을 학습하는 단계입니다.
    • 모델은 대규모 텍스트 데이터를 사용하여 문법, 어휘, 상식 등을 학습합니다.
    • 예를 들어, GPT 모델은 사전 훈련 단계에서 수억 개의 문장을 처리하며 언어 패턴을 파악합니다.
    • 사전 훈련된 모델은 “few-shot” 학습으로도 다양한 작업을 수행할 수 있습니다.
  2. 미세 조정 (Fine-tuning):
    • 미세 조정은 사전 훈련된 모델을 특정 작업에 맞게 조정하는 단계입니다.
    • 예를 들어, 특정 분류 작업이나 질문 답변 작업을 위해 모델을 미세 조정할 수 있습니다.
    • 미세 조정은 적은 양의 작업 관련 데이터로 진행됩니다.
    • 모델은 이 작업 관련 데이터를 사용하여 특정 작업에 더 적합하게 조정됩니다.

요약하자면, 사전 훈련은 모델이 언어 이해 능력을 기반으로 일반적인 지식을 습득하는 단계이고, 미세 조정은 그 모델을 특정 작업에 맞게 세밀하게 조정하는 단계입니다.

 

 

데이터 수집 및 전처리:
먼저, 처리 데이터에 대한 레이블이 있는 데이터를 수집해야 합니다. 

이 데이터에 대한 설명이나 특징을 포함해야 합니다.
데이터를 정리하고 전처리하여 모델이 학습하기 좋은 형태로 만들어야 합니다.

 

Tokenizer

Hugging Face Transformers 라이브러리의 토크나이저를 사용하여 텍스트를 토큰화하고 모델 입력으로 변환

 

토크나이저 생성 및 학습:
먼저, Hugging Face의 Tokenizers 라이브러리를 사용하여 토크나이저를 생성합니다.
토크나이저는 텍스트를 토큰(단어, 부분 단어 등)으로 분할하는 역할을 합니다.
예를 들어, BPE(Byte-Pair Encoding) 토크나이저를 생성하고 학습할 수 있습니다.
데이터셋 로드 및 전처리:
데이터셋을 로드하고 텍스트 샘플을 토큰화합니다.
토큰화된 텍스트를 모델이 이해할 수 있는 형식으로 변환합니다.
토큰화된 텍스트를 토큰 ID로 매핑하고, 패딩을 적용하여 일정한 길이로 맞춥니다.
모델 입력 생성:
토큰 ID와 어텐션 마스크를 생성하여 모델 입력을 만듭니다.
토큰 ID는 각 토큰에 대한 고유한 숫자 식별자입니다.
어텐션 마스크는 패딩 토큰을 구분하고 모델이 실제 입력에 집중할 부분을 지정합니다.
토크나이저 활용:
생성한 토크나이저를 사용하여 텍스트를 토큰화하고 모델 입력으로 변환합니다.
예를 들어, PreTrainedTokenizerFast 클래스를 사용하여 토큰화된 텍스트를 모델 입력으로 변환할 수 있습니다.

 

from tokenizers import Tokenizer, models, pre_tokenizers, trainers

# 더미 토크나이저 생성
tokenizer = Tokenizer(models.BPE(unk_token="[UNK]"))
tokenizer.pre_tokenizer = pre_tokenizers.Whitespace()

# 학습 데이터 로드
files = ["data.txt"]
trainer = trainers.BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
tokenizer.train(files, trainer)

# 토크나이저 객체로부터 직접 불러오기
from transformers import PreTrainedTokenizerFast
fast_tokenizer = PreTrainedTokenizerFast(tokenizer_object=tokenizer)

 

 

 

사전 학습된 GPT 모델을 가져옵니다. 

 

예를 들면 gpt-2, gpt-3, 또는 최신 버전인 gpt-4를 사용할 수 있습니다.


해당 모델을 fine-tuning할 준비를 합니다.

 

Fine-tuning models 가격고려:

Model Pricing Pricing with Batch API*
gpt-4o-mini-2024-07-18** $0.30 / 1M input tokens $0.15 / 1M input tokens
  $1.20 / 1M output tokens $0.60 / 1M output tokens
  $3.00 / 1M training tokens  
gpt-3.5-turbo $3.00 / 1M input tokens $1.50 / 1M input tokens
  $6.00 / 1M output tokens $3.00 / 1M output tokens
  $8.00 / 1M training tokens  
davinci-002 $12.00 / 1M input tokens $6.00 / 1M input tokens
  $12.00 / 1M output tokens $6.00 / 1M output tokens
  $6.00 / 1M training tokens  
babbage-002 $1.60 / 1M input tokens $0.80 / 1M input tokens
  $1.60 / 1M output tokens $0.80 / 1M output tokens
  $0.40 / 1M training tokens  

 


Fine-tuning 스크립트 작성:


Fine-tuning 스크립트를 작성합니다. 

 

이 스크립트는 데이터를 모델에 입력하고 학습을 진행하는 역할을 합니다.


Hugging Face Transformers 라이브러리를 사용하면 편리하게 fine-tuning 스크립트를 작성할 수 있습니다.

 

 


Fine-tuning 실행:
작성한 스크립트를 실행하여 모델을 fine-tuning합니다. 

 

이 과정은 몇 시간에서 몇 일까지 걸릴 수 있습니다.


Fine-tuning이 완료되면 모델을 저장합니다.

 

 

모델 평가 및 테스트:
Fine-tuning된 모델을 테스트 데이터셋으로 평가합니다. 

 

정확도와 다른 평가 지표를 확인하세요.


필요에 따라 추가적인 fine-tuning을 진행할 수 있습니다.


API 구축 및 배포:


Fine-tuning된 모델을 API로 구축하여 사용자가 입력한 정보를 동작할수 있도록 합니다.


API를 서버에 배포하고 필요한 인프라를 설정하세요.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터