
LoRA 모델의 병합 및 GGUF 양자화 절차
요약
LoRA 어댑터를 베이스 모델에 병합하고 GGUF 형식으로 변환 및 양자화하는 과정을 설명합니다. llama.cpp를 활용하여 LM-Studio에서 실행 가능한 최적화된 모델을 만드는 절차를 다룹니다.
핵심 포인트
- PeftModel의 merge_and_unload()를 이용한 LoRA 병합 방법
- llama.cpp를 활용한 HF 모델의 GGUF 변환 절차
- llama-quantize를 이용한 Q4_K_M 양자화 적용
- LM-Studio 환경에서의 모델 실행 준비
메모를 겸하여,
파인튜닝 (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
cd llama.cpp
pip install -r requirements.txt
양자화 도구 (llama-quantize)를 다음 명령어로 빌드한다.
cmake -B build
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에 배치하고, 모델을 선택함으로써 실행할 수 있게 된다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기