사후 학습 델타 압축(Post-training delta compression), 10개의 파인튜닝을 약 4개 분량의 크기로 저장
요약
동일한 베이스 모델을 기반으로 한 여러 파인튜닝 체크포인트의 용량을 획기적으로 줄여주는 'deltatensors' 라이브러리를 소개합니다. 베이스 모델과의 가중치 차이(diff)를 계산하고 양자화하여, 모델 품질을 유지하면서도 저장 공간을 약 1/4 수준으로 압축합니다.
핵심 포인트
- 파인튜닝 모델 간의 차이값만 저장하여 디스크 공간 효율 극대화
- 이상치 추출 및 4-bit 양자화 전략을 통해 품질과 크기 최적화
- LoRA와 달리 학습 후 체크포인트 생성 시점에 적용 가능
- HF Trainer 콜백 지원 및 스트리밍 방식으로 RAM 문제 해결
- 해시 검증을 통한 리니지 체인 기능으로 데이터 무결성 보장
제가 계속해서 마주쳤던 문제를 해결하기 위해 무언가를 만들었습니다. 저는 동일한 베이스 모델(base model)을 여러 가지 방식으로 파인튜닝(fine-tune)하는데, 거의 동일한 수 GB 크기의 체크포인트(checkpoints)들로 인해 디스크가 가득 차버립니다. 가중치(weights)가 베이스 모델로부터 거의 변하지 않기 때문에, 모든 모델의 전체 가중치를 저장하는 것은 비효율적입니다. deltatensors는 베이스 모델에 대한 파인튜닝의 차이(diff)를 계산하여 압축된 차이값만을 저장합니다. 풀 파인튜닝(full fine-tune), FSDP 등 어떤 학습된 모델에서도 작동합니다. 질문이 나오기 전에 미리 말씀드리자면, (차이값을 이용한다는 아이디어 측면을 제외하면) LoRA와는 다릅니다. 학습 중에 실행될 필요가 없으며, 대신 학습 후(또는 체크포인트를 생성할 때) 모델 간의 차이를 계산합니다. WikiText-2로 파인튜닝된 Qwen2.5-0.5B 모델에 대한 수치는 다음과 같습니다: 원본 19.11 PPL 대비 재구성(reconstructed) 시 19.22 PPL (0.58% 차이). 품질과 크기 면에서 전체 파인튜닝 모델을 int4로 양자화(quantizing)하는 것보다 뛰어납니다. 델타(delta)는 294 MB인 반면 전체 파인튜닝은 953 MB로, 3.2배 더 작습니다. 10개의 파인튜닝 저장 시: 단순 저장 방식은 총 11 GB인 반면, 이 방식은 총 3.9 GB입니다. 기본 전략은 이상치 추출(outlier extraction, 상위 약 1%의 가중치를 fp16으로 유지)과 나머지 부분에 대한 4-bit 양자화(quant)를 수행합니다. 트레이드오프(tradeoff)를 직접 조정하고 싶다면 희소(sparse) 방식이나 1-bit BitDelta 스타일의 옵션도 있지만, 제가 실행한 모든 테스트에서 int4가 승리했으므로 이를 사용하시길 권장합니다. 스트리밍(streams) 방식이므로 RAM 문제도 해결되어, 두 개의 전체 모델을 동시에 로드할 필요가 없습니다. HF Trainer 콜백(callback)이 있어 각 체크포인트를 자동으로 델타로 저장할 수 있으므로, 학습 과정에 바로 적용할 수 있습니다. 또한 전체 파인튜닝 이력을 추적하고 싶다면 리니지 체인(lineage chains) 기능도 제공합니다(각 델타는 이전 재구성 모델과 차이를 계산하며, 순서가 바뀌어 조용히 데이터가 손상되는 것을 방지하기 위해 해시 검증(hash-verified)됩니다). pip install deltatensors, MIT 라이선스입니다. 리포지토리(Repo): https://github.com/AaravGaurdev/deltatensors 문서(docs): https://deltatensors.readthedocs.io/en/latest/ 현재까지는 0.5B 모델에서만 벤치마크를 진행했습니다. 7B 이상의 모델이나 WikiText 학습보다 더 강도 높게 파인튜닝된 모델에서는 어떤 성능을 보일지 정말 궁금합니다. 혹시 특정 도메인 파인튜닝에 사용해 보시는 분이 있다면, 결과가 좋든 나쁘든 수치를 공유해 주세요. 읽어주셔서 감사합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기