🏇KoAlpaca 학습시키기

KoAlpaca를 여러 모델 기반으로 학습시켜봅시다.

KoAlpaca는 어떻게 학습시키나요?

학습에 들어가기 전, "베이스 모델"과 "파인튜닝 데이터", 그리고 "학습 방법"에대해 이해가 필요합니다.

베이스 모델?

KoAlpaca는 모델의 이름이기도 하지만, 동시에 데이터셋의 이름이기도 합니다.

또한, KoAlpaca는 KoAlpaca 데이터만을 사용해 처음부터 학습시킨 모델이 아니라, 기존에 있는 여러 오픈소스 언어모델 위에 KoAlpaca 데이터셋을 추가로 학습시킨 모델입니다.

이때, 학습의 출발점이 되는 언어모델을 Base Model, 혹은 Backbone Model이라고 부릅니다.

KoAlpaca를 학습하기 위해 쓴 언어모델은 다음과 같습니다.

EleutherAI/Polyglot-Ko

이 프로젝트는 한국어로 학습한 한국어 언어모델입니다.

다양한 크기(1.3B / 3.8B / 5.8B / 12.8B)로 학습된 모델을 제공하고 있으며, KoAlpaca 학습에 사용한 베이스 모델로는 아래 두 크기의 모델(5.8B, 12.8B)를 선택했습니다.

Meta(구 Facebook)에서 공개한 LLAMA모델은 공식 weight는 Meta의 공식 구글 폼을 통해 요청해야 받을 수 있습니다.

해당 파일을 받아 Huggingface에서 제공하는 컨버팅 스크립트를 받아 아래 명령어로 변환 후 쓰시는 것을 추천합니다.

python src/transformers/models/llama/convert_llama_weights_to_hf.py \
    --input_dir /path/to/downloaded/llama/weights --model_size 7B --output_dir /output/path

변환 이후 Python에서 아래와 같이 모델과 토크나이저를 로드 할 수 있습니다.

from transformers import LlamaForCausalLM, LlamaTokenizer

tokenizer = LlamaTokenizer.from_pretrained("/output/path")
model = LlamaForCausalLM.from_pretrained("/output/path")

다만, 아래의 Huggingface 레포에서 Huggingface로 컨버팅된 파일을 받을 수도 있습니다.

아래 repo 링크는 단순히 안내용이며, 아래 repo는 언제든 Meta의 DMCA로 인해 삭제될 수 있습니다.

또한, 아래 레포가 공식 LLAMA Checkpoint와 100% 동일한 값을 갖고 있다고 보장할 수 없으며, 해당 weight를 load하는 과정에서 Virus 혹은 악의적 코드가 실행될 가능성을 부정할 수 없습니다.

또한, 아래 레포의 파일을 사용하는 과정에서 법적 문제가 발생할 수 있으니 각별한 유의가 필요합니다.

Huggingface에 올라온 LLAMA HF CKPT

Last updated