양자화된 GGUF에 직접 LoRA를 학습시키기: PyTorch 불필요, 부모 모델(FP16)도 필요 없음
요약
이 가이드는 양자화된 GGUF 파일 자체를 대상으로 LoRA를 직접 학습시키고, 별도의 PyTorch나 부모 모델(FP16) 없이도 파인튜닝을 수행하는 방법을 제시합니다. 'Runner'라는 도구를 사용하면 CPU/GPU 환경에서 정확한 서비스 순방향 패스와 동일하게 어댑터를 학습시킬 수 있으며, 이후 단일 파일로 병합할 수도 있습니다.
핵심 포인트
- 양자화된 GGUF에 직접 LoRA를 학습시켜 개발 복잡성을 낮춥니다.
- PyTorch나 FP16 부모 모델 없이도 파인튜닝이 가능합니다.
- Runner 도구를 사용하여 학습, 서비스, 병합 과정을 간소화했습니다.
- 학습된 어댑터는 단일 파일로 8비트 이상에서 병합할 수 있습니다.
이 방법이 많이 공유되는 것을 봤고, 이 과정이 부모 모델이나 다른 의존성 없이 가능하다는 점에서 제가 공유하고자 합니다. 일반적으로 모델을 파인튜닝할 때 다음을 할 수 없습니다:
- 양자화된 GGUF 파일 자체를 대상으로 학습시키기
- PyTorch, transformers 또는 별도의 Python 설정 없이 수행하기
- 모델 변환 없이 추론에 정확히 동일한 GGUF 사용하기 (QLoRA는 4비트 기반을 통해 학습하지만, 이는 PyTorch와 독립적인 NF4 형식이며, 서비스하는 GGUF 위가 아닙니다.)
Runner를 사용하면 CPU 학습 순방향 패스(forward pass)가 CPU 서비스 순방향 패스와 동일하므로, 어댑터가 실행될 정확한 가중치에 대해 학습됩니다. CUDA/Metal 서비스는 GPU 자체의 산술을 사용하며, 측정 가능한 허용 오차 내에서 이루어지지만 비트 단위로 동일하지는 않습니다. 보관할 FP16 복사본도 없고 설치할 프레임워크도 없습니다. Runner를 사용하면 16비트나 PyTorch 패키지가 필요 없으며, 이는 현재 X-bit GGUF의 가중치를 '동결(freezing)'하고 그 위에 '작은' LoRA 어댑터만 학습시키는 방식으로 수행됩니다.
빠른 가이드:
-
양자화된 기반 모델을 통해 학습시키기 (train through the quantized base you will serve)
./runner -m base-Q4_K_M.gguf --train data.jsonl --train-steps 200 \ --lora-rank 8 --train-out adapter.ggufadapter.gguf.train.json파일에는 base/data/adapter의 sha256, seed, config, binary가 기록됩니다.
-
어댑터를 동결된 기반 모델 옆에 서비스하기 (serve the adapter beside the frozen base (the exact form))
./runner -m base-Q4_K_M.gguf --lora adapter.gguf --serve -
모든 GGUF 런타임에서 단일 파일로 병합하기: 8비트 이상 (fold it into a standalone file for any GGUF runtime: 8-bit or better)
./runner -m base-Q4_K_M.gguf --lora adapter.gguf \ --merge-lora merged-Q8_0.gguf --quant q8_0 -
평가 및 보상을 위한 교사 강제 로그 확률 (teacher-forced logprobs for evals and rewards)
./runner -m base-Q4_K_M.gguf --lora adapter.gguf -f eval.txt --score
주의할 점: 4비트로 학습시킬 때, 어댑터가 가중치에 병합될 때 사라지는 것처럼 보입니다. Runner는 이 이유만으로 그러한 병합을 거부하며, 오버라이드하지 않는 한 그렇지 않습니다.
학습 전의 정확한 도구 호출 점수와, 어댑터를 기반 모델 옆에 서비스하는 경우, 그리고 어댑터를 세 가지 출력 유형으로 병합한 후의 점수를 비교했습니다.
하나의 베이스 모델 (Qwen3-4B Q4_K_M)과 하나의 태스크를 측정했으며, 2026-08-22 기준이므로 다른 모델에 대한 보장은 아닙니다. 출처: docs/adaptation-engine.md. 바이너리는 다음 리포지토리에서 찾을 수 있습니다: https://github.com/Joakimpalm-Zen/xyntetik-runner 즐거운 학습 되세요! 제출자: /u/ZenZombie117 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기