메모를 겸하여,
파인튜닝 (Fine-tuning)으로 작성한 LoRA 어댑터 (Adapter)를 베이스 모델 (Base Model)에 병합하고,
LM-Studio 상에서 실행할 수 있도록 GGUF 형식으로 변환 및 양자화 (Quantization)하는 절차를 소개한다.
베이스 모델: meta-llama/Llama-3.2-1B-Instruct -
LoRA 어댑터: 직접 제작한 것
베이스 모델을 불러오고, PeftModel로서 LoRA 어댑터를 적용한 뒤,
merge_and_unload()로 병합하고,
병합한 모델과 토크나이저 (Tokenizer)를 저장한다.
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
# 경로
...
GGUF 형식으로의 변환에는 llama.cpp를 사용한다. 다음 명령어로 리포지토리 (Repository)를 취득하고, 필요한 패키지를 설치한다.
git clone https://github.com/ggml-org/llama.cpp.git
pip install -r requirements.txt
양자화 도구 (llama-quantize)를 다음 명령어로 빌드한다.
cmake --build build --config Release
convert_hf_to_gguf.py를 사용하여 병합된 모델을 GGUF 형식 (f16)으로 변환한다.
python convert_hf_to_gguf.py \
path/to/your/merged-model \
--outfile merged-model.gguf \
...
변환한 GGUF 파일을 이번에는 Q4_K_M 형식으로 양자화한다.
./build/bin/llama-quantize merged-model-model.gguf merged-model-Q4_K_M.gguf Q4_K_M
이상의 절차를 통해, LoRA로 파인튜닝한 모델을 베이스 모델에 병합하고,
LM-Studio에서 실행 가능한 GGUF 형식 (Q4_K_M 양자화)으로 변환할 수 있다.
작성한 파일은 LM-Studio에 배치하고, 모델을 선택함으로써 실행할 수 있게 된다.