OpenBonsai를 오픈소스화하다: 자체 BF16 모델 및 파인튜닝을 약 2GB 테르너리 GGUF로 압축하는 방법
요약
로컬 환경에서 고지능 모델 구동을 목표로, 9B급 BF16 모델을 테르너리 가중치(-1, 0, +1)를 사용하여 압축하는 것이 중요합니다. 기존에는 자체 파인튜닝 결과를 해당 형식으로 압축할 방법이 없어, 작성자는 사후 학습 테르너리 양자화를 위한 오픈소스 프레임워크 OpenBonsai를 구축했습니다. 이 도구는 Qwen3.5-9B 모델을 18GB에서 약 2GB로 성공적으로 압축하는 것을 입증합니다.
핵심 포인트
- OpenBonsai는 BF16 파인튜닝 결과를 테르너리 GGUF 형식으로 압축하는 오픈소스 프레임워크입니다.
- Qwen3.5-9B 모델을 18GB에서 약 2GB로 대폭 압축할 수 있으며, 전체 GGUF 파일이 포함됩니다.
- 자체 생성 추론 흔적(reasoning traces)과 스케일 증류가 성능 향상에 매우 중요한 역할을 합니다.
- 이 접근 방식은 Qwen3를 넘어 일반화되며, 범용 밀집 어댑터에도 적용 가능합니다.
저는 오픈 소스 브라우저 에이전트인 WebBrain을 위해 작은 모델들을 실험해 왔습니다. 장기적인 목표는 가능한 한 많은 지능을 로컬에서, 이상적으로는 WebGPU를 통해 구동하는 것입니다. 제가 특히 관심을 가진 접근 방식 중 하나는 Prism ML의 Ternary Bonsai였습니다. 이는 9B 모델을 테르너리 가중치(-1, 0, +1)를 사용하여 약 2GB로 압축하는 기술입니다. Prism은 가중치와 추론 런타임을 공개했지만, 완전한 BF16-to-ternary 압축 파이프라인은 공개하지 않았습니다. 기존의 테르너리 모델을 파인튜닝할 수는 있지만, 자체 BF16 파인튜닝 결과를 그 형식으로 압축할 수 있는 공개적인 방법은 없습니다. 그래서 제가 직접 구축해 보았습니다. Apache-2.0 프레임워크인 OpenBonsai를 소개합니다. 이는 사후 학습 테르너리 양자화(post-training ternary quantization)를 위한 것으로, Prism의 PTQ1_0 GGUF 형식과 호환됩니다.
작동 방식: 최근 Intel Labs China에서 발표한 "Attend to Your Own Thoughts" (Wang et al.) 논문이 접근 방식의 일부에 영감을 주었습니다. 이 방법은 일반적인 텍스트에만 의존하는 대신, 모델 자체의 추론 흔적(reasoning traces)을 보정(calibration)에 사용합니다. 파이프라인은 다음 요소들을 결합합니다:
- 가중치 아웃라이어 감소를 위한 Signed Hadamard rotations
- {-1, 0, +1} FP16 그룹 스케일로 가중치를 양자화하는 Sequential GPTQ (각 128개 가중치당 하나)
- 보정을 위한 자체 생성 추론 흔적(Self-generated reasoning traces)
- 원본 BF16 모델의 출력 분포에 대한 Scale distillation
- Prism의 PTQ1_0 GGUF 형식으로 내보내기(Export)
결과: Qwen3.5-9B의 경우, 약 18 GB에서 1.997 GB로 압축되었습니다. 이는 트랜스포머 가중치만 포함한 것이 아니라 전체 GGUF 파일입니다. 압축된 임베딩(embeddings), LM 헤드(LM head), 모든 다른 모델 텐서(tensors), 그룹 스케일, 토크나이저, 채팅 템플릿, 메타데이터가 모두 포함됩니다. 런타임 메모리 요구 사항은 더 높습니다. 이 압축 과정은 단일 RTX 5090 (32 GB)에서 약 5시간 동안 실행되었습니다.
현재 저희의 압축 모델 점수는 다음과 같습니다:
| Benchmark | Original BF16 | OpenBonsai | Prism Bonsai |
|---|---|---|---|
| GSM8K (thinking off) | 77/100 | 65/100 | 77/100 |
| HumanEval (thinking off) | 44/50 | 34/50 | 45/50 |
| GSM8K (thinking on) | 36/50 | 32/50 | 46/50 |
| HumanEval (thinking on) | 22/25 | 14/25 | 24/25 |
흥미로운 발견 사항:
- 지식 증류(Distillation)가 상당히 도움이 됩니다.
스케일 증류(Scale distillation)를 통해 개발 세트 NLL을 3.48에서 2.89로, ARC-Easy 정확도를 13/20에서 19/20으로 개선했습니다. 2. 보정 데이터(Calibration data)가 매우 중요합니다. 자체 생성한 수학 및 코드 추적(math and code traces)으로 전환하자 추론 및 코딩 성능이 향상되었습니다. 더 많은 코드 중심의 보정 데이터를 추가하여 초기 평가에서 HumanEval 점수가 19/50에서 34/50으로 증가했습니다.
-
이 접근 방식은 Qwen3를 넘어 일반화됩니다. 또한 동일한 파이프라인을 사용하여 범용 밀집 어댑터(generic dense adapter)를 변경하지 않고 Qwen3-8B를 1.8 GB GGUF로 압축했습니다. 이는 Prism의 llama.cpp 포크에서 실행됩니다.
-
완전한 테르너리 엔드포인트(Fully ternary endpoints)가 가능합니다. 최종 파일에 큰 FP16 텐서들을 남겨두는 대신 임베딩 및 LM 헤드도 양자화했습니다.
한계점 (Limitations)
이 내용은 여전히 연구 미리보기(research preview)입니다. Prism의 공식 테르너리 모델은 대부분의 추론 및 코딩 평가에서 저희보다 성능이 우수합니다. 일부 코드 학습 프롬프트가 HumanEval 작업을 패러프레이징(paraphrase)하기 때문에, 초기 34/50 결과는 낙관적일 가능성이 높습니다. 우리는 저장소에 중복 영역과 추가 홀드아웃 평가를 문서화했습니다. 테스트된 구성은 압축을 위해 32 GB GPU가 필요합니다. 메모리가 낮은 구성은 검증되지 않았습니다. 추론에는 현재 Prism의 llama.cpp 포크가 필요하며, 상위 버전의 llama.cpp와 WebGPU는 아직 지원되지 않습니다. 아키텍처 지원도 여전히 제한적입니다.
저는 실패한 실험, 제거(ablations), 평가 스크립트 및 중간 결과들을 포함했습니다. 아이디어는 압축 과정을 재현 가능하게 만들고 공개적으로 개선하는 것입니다.
링크 (Links)
- 프레임워크 (Apache-2.0): https://github.com/esokullu/openbonsai
- 압축된 Qwen3.5-9B 모델: https://huggingface.co/webbrain-one/openbonsai-qwen-3.5-9b
- 프로젝트 웹사이트: https://openbonsai.org
- Intel Labs 논문: https://arxiv.org/abs/2608.01078
저는 테르너리 양자화(ternary quantization), GPTQ 또는 저비트 추론(low-bit inference)을 연구하는 분들의 피드백에 특히 관심이 있습니다. 저희 접근 방식과 Prism의 방식 사이에는 명확한 품질 격차가 여전히 존재하지만, BF16-to-ternary 파이프라인을 공개적이고 재현 가능하게 만드는 것은 유용한 출발점이라고 생각합니다.
만약 누군가 자신만의 파인튜닝(fine-tune)을 압축해 보고 싶다면, 그 결과가 어땠는지 듣고 싶습니다. submitted by /u/ButtercupLyn100 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기