본문 바로가기
Minding's Programming/Knowledge

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

by Minding 2023. 8. 14.
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
반응형

댓글