본문 바로가기

Minding's Programming/Knowledge

[LLAMA2] LLAMA2 Custom Data로 학습시켜보기 (무료 Colab 사용)

728x90
반응형

Meta의 대규모 언어 모델인 LLAMA2를 Custom Data로 학습시키는 쉬운 방법이 있다고 해서 따라해봤다.

 

 

LLAMA2 fine tuning을 위한 패키지 다운로드

https://github.com/huggingface/autotrain-advanced

 

GitHub - huggingface/autotrain-advanced: 🤗 AutoTrain Advanced

🤗 AutoTrain Advanced. Contribute to huggingface/autotrain-advanced development by creating an account on GitHub.

github.com

autotrain-advanced 패키지를 통해 딥러닝 모델을 쉽게 학습시킬 수 있다. 코드 한 줄로도 가능하다!

 

# 패키지 설치
!pip install -q autotrain-advanced

# local에서 진행하는 경우 !을 빼면된다.

 

Pytorch 업데이트

만약 나처럼 Colab에서 진행중이라면, Pytorch 업데이트가 필요하다.

!autotrain setup --update-torch

 

 

Fine-tuning하기

!autotrain llm --train \
    --project_name "ko-llama2-finetune" \
    --model "TinyPixel/Llama-2-7B-bf16-sharded" \
    --data_path "royboy0416/ko-alpaca" \
    --text_column "text" \
    --use_peft \
    --use_int4 \
    --learning_rate 2e-4 \
    --train_batch_size 2 \
    --num_train_epochs 3 \
    --trainer sft \
    --model_max_length 2048
  • project_name: checkpoint등 파일들의 저장 경로
  • model: model 경로 (LLAMA2 2.7B 사용)
  • data_path: 데이터 경로(ko-alpaca 데이터셋 사용)
  • text_column: 데이터 중 사용할 칼럼 지정 ('text' 칼럼 사용)
  • use_peft: parameter efficient fine tuning
  • use_int4: integer 형태로
  • learning_rate: 학습률 지정
  • train_batch_size: 학습 배치사이즈
    •  A100의 경우 16, T4의 경우 2 추천
  • num_train_epoch
  • trainer: sft(supervised fine tuning)으로 지정
  • model_max_length

더 자세한 parameter arguments의 설정값은 아래 링크를 참고하면 된다.

https://github.com/huggingface/autotrain-advanced/blob/f1367b590dfc53d240e9684779991da540590386/src/autotrain/cli/run_llm.py#L21

 

이제 시작을 눌러 학습을 시작하면 되는데, 주의할 점이 하나 있다.

바로 학습시간이 겁나게 오래 걸린다는 것이다.

무료 Colab의 GPU인 T4 기준 1epoch 당 예상시간이 무려 96시간이 뜬다...

 

일단 최대한 해 볼 생각이긴한데... 96시간 동안 컴퓨터를 켜놓을 수 있을 지 모르겠다... 추론은 다음 시간에 해보려고 한다.

 

728x90