대형 언어 모델(LLM)인 Gemma2-2B를 미세 조정하면 특정 작업에 대한 성능을 크게 향상시킬 수 있다. 이 가이드는 Google Colab을 활용하여 Gemma2-2B를 미세 조정하는 과정을 단계별로 설명한다.
사전 준비 사항
미세 조정을 진행하기 위해 다음과 같은 준비가 필요하다.
- Google Colab(https://colab.research.google.com/) 계정이 있어야 한다. 혹은, NVIDIA GPU 환경(24GB 이상)이 구축된 컴퓨터가 있어야 한다.
미세 조정을 진행하기 위해 다음과 같은 준비가 필요하다.
- Google Colab(https://colab.research.google.com/) 계정이 있어야 한다. 혹은, NVIDIA GPU 환경(24GB 이상)이 구축된 컴퓨터가 있어야 한다.
- Python 및 머신러닝 기초 개념을 이해하고 있어야 한다.
1단계: 환경 설정
1. Google Colab 접속
- Google Colab(https://colab.research.google.com/)에 접속하여 새 노트북을 생성한다.
2. GPU 설정
- 상단 메뉴에서 `편집(Edit) > 노트북 설정(Notebook settings)`으로 이동하여 하드웨어 가속기를 `GPU`로 변경한다.
3. 필요한 패키지 설치
- 아래 명령어를 실행하여 필수 라이브러리를 설치한다.
!pip install transformers datasets accelerate
1. Google Colab 접속
- Google Colab(https://colab.research.google.com/)에 접속하여 새 노트북을 생성한다.
2. GPU 설정
- 상단 메뉴에서 `편집(Edit) > 노트북 설정(Notebook settings)`으로 이동하여 하드웨어 가속기를 `GPU`로 변경한다.
3. 필요한 패키지 설치
- 아래 명령어를 실행하여 필수 라이브러리를 설치한다.
!pip install transformers datasets accelerate
2단계: Gemma2-2B 모델 불러오기
Hugging Face의 `transformers` 라이브러리를 사용하여 사전 학습된 Gemma2-2B 모델을 로드한다.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "google/gemma2-2b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
Hugging Face의 `transformers` 라이브러리를 사용하여 사전 학습된 Gemma2-2B 모델을 로드한다.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "google/gemma2-2b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
3단계: 데이터셋 준비
미세 조정을 위해 작업에 맞는 데이터셋이 필요하다. Hugging Face의 `datasets` 라이브러리를 사용하여 데이터를 로드하고 토큰화할 수 있다.
from datasets import load_dataset
# 'your_dataset'을 원하는 데이터셋 이름 또는 경로로 변경해야 한다. 데이터셋 예시: lavita/ChatDoctor-HealthCareMagic-100k · Datasets at Hugging Face
dataset = load_dataset('your_dataset')
# 토큰화 함수 정의
def tokenize_function(examples):
return tokenizer(examples['text'], padding="max_length", truncation=True)
# 데이터셋 토큰화 적용
tokenized_dataset = dataset.map(tokenize_function, batched=True)
미세 조정을 위해 작업에 맞는 데이터셋이 필요하다. Hugging Face의 `datasets` 라이브러리를 사용하여 데이터를 로드하고 토큰화할 수 있다.
from datasets import load_dataset
# 'your_dataset'을 원하는 데이터셋 이름 또는 경로로 변경해야 한다. 데이터셋 예시: lavita/ChatDoctor-HealthCareMagic-100k · Datasets at Hugging Face
dataset = load_dataset('your_dataset')
# 토큰화 함수 정의
def tokenize_function(examples):
return tokenizer(examples['text'], padding="max_length", truncation=True)
# 데이터셋 토큰화 적용
tokenized_dataset = dataset.map(tokenize_function, batched=True)
4단계: 모델 미세 조정
데이터셋을 준비한 후, 아래 코드로 모델을 미세 조정할 수 있다.
from transformers import TrainingArguments, Trainer
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
learning_rate=2e-5,
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
num_train_epochs=3,
weight_decay=0.01,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset["train"],
eval_dataset=tokenized_dataset["validation"],
)
trainer.train()
데이터셋을 준비한 후, 아래 코드로 모델을 미세 조정할 수 있다.
from transformers import TrainingArguments, Trainer
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
learning_rate=2e-5,
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
num_train_epochs=3,
weight_decay=0.01,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset["train"],
eval_dataset=tokenized_dataset["validation"],
)
trainer.train()
5단계: 미세 조정된 모델 저장
학습이 완료된 모델을 저장하여 향후 사용할 수 있도록 한다.
model.save_pretrained("./fine_tuned_gemma2_2b")
tokenizer.save_pretrained("./fine_tuned_gemma2_2b")
학습이 완료된 모델을 저장하여 향후 사용할 수 있도록 한다.
model.save_pretrained("./fine_tuned_gemma2_2b")
tokenizer.save_pretrained("./fine_tuned_gemma2_2b")
결론
이 가이드를 따르면 Google Colab에서 Gemma2-2B 모델을 미세 조정하여 특정 작업에 최적화된 모델을 만들 수 있다. 미세 조정을 통해 모델의 성능을 향상시키고 특정 도메인 문제를 해결하는 데 도움을 줄 수 있다.
이 가이드를 따르면 Google Colab에서 Gemma2-2B 모델을 미세 조정하여 특정 작업에 최적화된 모델을 만들 수 있다. 미세 조정을 통해 모델의 성능을 향상시키고 특정 도메인 문제를 해결하는 데 도움을 줄 수 있다.
참고
대형 모델의 미세 조정은 많은 GPU 리소스(최소 24GB 이상)를 필요로 한다. Google Colab Pro 또는 TPU를 활용하면 더 원활한 학습이 가능하다.
- Google’s Gemma open models. Google has introduced Gemma, a new… | by Innovate Forge | Medium
- Fine-Tuning Gemma 2 and Using it Locally | DataCamp
- Gemma2–2B Fine Tuning Complete Guide on Colab | by Yogendra Sisodia | Medium
- [개발살집] Gemma 한국어 요약 모델 파인 튜닝 해보기. LLM 파인튜닝 해보기. 하지만, 장렬히 실패했다. | by zero86 | Medium
- 구글 Gemma 2 분석: 최신 오픈소스 모델로 무료 챗봇 만들기