ExLlamaV3 양자화 모델에 대한 QLoRA 학습
요약
ExL3-QLoRA는 ExLlamaV3의 포크 버전으로, 순수 PyTorch 기반의 네이티브 학습 방식을 제공합니다. 이 방식은 기존 BNB 4비트 고정 방식 대신 2~8bpw로 양자화된 exl3 모델을 학습할 수 있게 하여 낮은 손실과 높은 유연성을 보여줍니다.
핵심 포인트
- ExLlamaV3의 포크 버전으로, 순수 PyTorch 기반 네이티브 학습 구현.
- 2~8bpw 양자화를 통해 기존 BNB 고정 방식 대비 높은 유연성 제공.
- Llama3, Mistral, Qwen3 등 다양한 최신 모델 지원 및 벤치마크 제시.
- 낮은 손실과 VRAM 효율성을 바탕으로 성능 우위를 주장함.
EXL3-QLoRA를 지난 몇 달 동안 개발해 왔으며, 이제 공유할 만큼 안정적이라고 생각합니다. ExLlamaV3의 포크(fork) 버전으로, 트랜스포머 라이브러리 없이 순수 PyTorch로 구현된 네이티브 ExLlamaV3 학습 방식입니다. [github] exl3-qlora에서 확인하실 수 있습니다.
왜냐고요? 이 방식을 사용하면 기존의 BNB 4비트 고정(lock-in) 방식 대신, 2~8bpw로 양자화된 exl3 모델을 학습할 수 있기 때문입니다. EXL3 모델은 현재 크기 대비 가장 높은 정밀도를 제공하여 손실(loss)이 낮게 나타납니다. 어댑터는 표준 PEFT 형식으로 저장되며 TabbyAPI, PEFT에서 로드하고 기본 모델에 병합(merge back)할 수 있습니다.
모델 지원: Llama3, Mistral Small/Medium, Qwen3 (dense 및 MoE), Qwen3.5/3.6/3.8 하이브리드 모델, Gemma3/4 (MoE 포함), Arcee Trinity 등입니다. 각 계열은 학습 전 추론 순방향(inference forward) 검사를 거칩니다.
추가 기능: 요청 사항에 열려 있습니다.
- SFT, DPO, KTO rsLoRA
- PiSSA (라우팅된 MoE 전문가에 대한 선택적 LoRA)
- 임베딩 및 LM 헤드
- 단일 GPU, 멀티-GPU 레이어 분할, 그리고 DDP
- 샘플 패킹(Sample packing), 챗 렌더링을 위한 jinja 포함 (도구 호출 및 추론 포함)
- Gradient checkpointing, activation offload, chunked cross entropy, 8비트 및 paged optimizers, Liger kernels
- 브라우저에서 실시간 실행 모니터(wandb at home)
- 로드된 모델이 채팅을 제공하고 어댑터를 제자리에서 학습하는 실시간 학습 기능
벤치마크:
| 모델 | Base 평가 손실 (Eval loss) | 최고 VRAM |
|---|---|---|
| EXL3 6.0 bpw | 2.128 | 12.7 GiB |
| EXL3 4.0 bpw | 2.152 | 11.9 GiB |
| EXL3 3.0 bpw | 2.165 | 11.5 GiB |
| bnb NF4 (axolotl) | 2.183 | 12.8 GiB |
모두 동일한 데이터셋과 하드웨어에서 측정되었습니다. bnb가 약 두 배 빠르지만, 제 테스트에서는 exl3가 더 유연하고, VRAM 효율적이며, 손실이 낮게 나타납니다.
이는 비공식 커뮤니티 프로젝트이며 작업 중인(work in progress) 상태입니다. 모든 피드백이나 기능 요청은 환영하며, 여기에 게시하거나 github 리포지토리 또는 ExLlama Discord에 참여해 주십시오. #community-projects 채널에서 스레드를 운영하고 있습니다. 저는 이미 이 학습 파이프라인으로 여러 성공적인 모델을 제작하여 출시했으며, 여기에서 테스트할 수 있습니다.
제출자: /u/Unstable_Llama [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기