안녕하세요, llamas 여러분. nace.ai의 Alish입니다. (최신 Artificial Analysis decision index v2.1에서 최고의 의사 결정 모델을 보유한 오픈 소스 AI 연구소) 그리고 Kapitsa(apple silicon용 최적화 추론 엔진)입니다. 지난 게시물에서 약속드렸던 대로, Qwen 9B, 27B, 35B 및 Flash-Next에 대한 Nace 양자화 기반의 GGUF 가중치를 공개합니다. 제가 이 양자화(quantization)를 어떻게 개발했는지 과정은 아래에 설명할 것이니, 지루하면 끝까지 스크롤하여 벤치마크와 가중치를 다운로드하세요. 저는 9B 양자화부터 시작했습니다. 성공적인 hillclimb를 위해서는 좋고 공정한 벤치마킹을 설정하는 것이 매우 중요하다고 판단했습니다. 그래서 성능을 조정하고 최종 순위를 측정하기 위해 별도의 세트를 분리했습니다: 영어 위키피디아 기사, 채팅 및 도구 호출(tool-call) 기록, 그리고 2026년 10월 이후에 게시된 GitHub 코드입니다. 데이터는 512 토큰부터 최대 128K 토큰까지 사용했습니다. 저는 unsloth가 사용하는 동적 양자화 방식처럼 시작했습니다: 모델당 10개에서 50개의 후보 파일을 만들고, 각 파일은 다른 텐서 정밀도(tensor precisions) 조합을 갖도록 했습니다. 그런 다음 유망해 보이는 것들을 조정하는 데 시간을 보냈습니다. 초기의 무차별 대입 최적화(bruteforce optimization)는 조금밖에 움직이지 않았습니다. Unsloth와 다른 양자화 연구자들이 이미 놀라운 작업을 많이 해왔습니다. 제 Agentic swarm을 이용한 bruteforce hillclimb 접근 방식을 사용해 SOTA(State-of-the-Art) 수준에 도달했지만, 그 후 정체기에 접어들었고 Unsloth나 EXL3 같은 최고의 양자화 방식보다 KL divergence 면에서 더 나아지기는 어려웠습니다. 몇 가지 새로운 시도가 있었습니다: 저는 'Sparks of Weight-Space Programming' 논문을 떠올렸습니다. 이 아이디어는 LLM이 작은 모델의 가중치를 네이티브하게 읽고 편집하도록 하는 것입니다. Nace에서 다른 모델들을 가지고 이것을 탐색해 본 후, 양자화에 이 방법을 적용해 보고 싶었습니다. 저희 Nace WSP(Weight Space Programming) 하니스를 가져와 양자화를 위해 도구와 스킬을 약간 수정했고, Astra/Fable/Carbon 에이전트들이 다음 알고리즘 하에서 경쟁하도록 했습니다: 텐서 정밀도 변경 제안 -> KL 측정 및 편집 유지 또는 되돌리기. 우리는 9b 모델의 Q3부터 시작했고, 며칠 만에 실제로 개선되기 시작하며 올바른 가중치를 편집하기 시작했습니다.
가중치 공간 양자화(weight-space quantization) 전후의 27B 파일 평균 KL 값. 솔직히 그 순간은 마치: https://preview.redd.it/x4g96xjahf1i1.png?width=2048&format=png&auto=webp&s=80961378d32c4c82adb52660ce683e10536d5dc7
Nace 가중치 공간 양자화(Weight-Space Quantization). 저는 최초의 nace 양자화된 Q3 체크포인트를 50개 이상의 9B 양자 모델과 비교 측정했고, 이들이 최전선에 서 있음을 확인했습니다. 정말 놀라웠습니다: 한 모델이 가중치 공간에서 다른 모델을 양자화한다는 것입니다.
Qwen 9B에 대한 Nace Q3 양자화 모델은 다른 Frontier 모델이 가중치를 네이티브하게 편집했기 때문에 KL 발산(KL divergence) 측면에서 최고 수준이었습니다. 저희는 이 방법을 더 큰 규모의 모델(27b/35b)로 확장했으며, 여전히 SOTA를 유지했습니다. 다만, 더 큰 규모의 모델(QFN)에서는 그렇게 잘 확장되지는 않는다고 말씀드리고 싶습니다.
저희는 현재 QFN/Deepseek 개선 작업을 진행 중이며 이미 몇 가지 유망한 결과를 얻었지만, 이 프로젝트에서는 토큰 제한에 도달했습니다. 논문이 곧 나올 예정입니다 (GPU 지원을 원하시면 DM으로 연락 주세요).
벤치마크 및 평가(Benchmarks & Evals). Top-1 정확도(accuracy)(포스터)는 양자화 모델이 전체 모델과 동일한 다음 토큰을 선택하는 빈도를 나타내며, 따라서 100%는 의견 불일치가 전혀 없음을 의미합니다. 각 패널은 128K 컨텍스트를 가진 하나의 모델이며, 다양한 하위 집합(subsets)의 점수를 모아 하나의 점수로 산출했습니다. 네 가지 모델 모두에서, 저희 가중치 점수가 해당 크기 또는 그보다 작은 크기에서 가장 높게 나타났습니다: 9B Q3_K_XL은 4.7 GB에서 90.5%를 기록했고, 35B Q3_K_S는 15.3 GB에서 91.2%를 기록했으며, 27B는 17.3 GB에서 97.7%를 기록했고, Flash-Next는 93 GB에서 93.0%를 기록했습니다.
더 포괄적인 비교를 위해, 아래에 KL divergence 결과가 있습니다: https://preview.redd.it/hi6nbvhghf1i1.png?width=1920&format=png&auto=webp&s=2bd6386fc17a30afd82f91cae90519e1abd9a28d 파일 GB 산문(Prose) 채팅 코드 다음 최고 9B IQ2_M 3.36 0.401 1.30 0.142 Unsloth 4.01 GB 9B IQ3_M 4.39 0.235 1.05 0.0738 ByteShape 4.70 GB 9B Q3_K_XL 4.70 0.161 0.846 0.0410 Unsloth 5.38 GB 35B-A3B IQ3_XXS 14.30 0.0490 0.643 0.0767 Unsloth 15.35 GB 35B-A3B Q3_K_S 15.30 0.0360 0.601 0.0631 Unsloth 16.59 GB 27B Q4_K_XL 17.29 0.00494 0.00544 0.00401 none 최대 17.58 GB Flash-Next IQ4_XS 93.4 0.0411 0.112 0.0426 EXL3
장문 컨텍스트 안정성(Long context stability)
대부분의 양자화 모델(quant)은 짧은 텍스트로 조정되고 평가되기 때문에, 결과적으로 짧은 컨텍스트에 적합하며 긴 컨텍스트에서는 유용하지 않은 경우가 많습니다. 명확성을 위해, 아래 다이어그램에서 각 모델은 두 개의 패널을 갖습니다: 왼쪽에는 512 토큰이, 오른쪽에는 128K 토큰이 있습니다. 여기서 장문 컨텍스트 드리프트(long-context drift)가 나타납니다: 우리의 9B IQ3_M은 512 토큰에서 0.13에서 128K에서는 0.45로 증가하는 반면, 27B는 거의 움직이지 않습니다. 128K에서도, 우리의 모든 파일은 동일하거나 더 작은 크기의 다른 모든 파일보다 낮은 KL 값을 가집니다.
https://preview.redd.it/lenkyg2ohf1i1.png?width=1920&format=png&auto=webp&s=8d9655590f288583630b319f0b0c4137f7452251
p99 KL divergence
평균 KLD(Mean KLD)는 양자화 모델이 긴 세션에서 통제 불능 상태가 될 때 발생하는 치명적인 실패를 숨길 수 있습니다. 따라서 우리는 또한 최악의 1% 토큰(p99 KL)을 살펴보았습니다. 9B Q3_K_XL의 최악의 1%는 1.25에 위치합니다. 27B와 Flash-Next는 값이 평평하게 유지됩니다. 전반적으로 우리는 Nace 양자화 모델이 분포 전반에 걸쳐 강력한 위치를 유지하고 있음을 확인했습니다.
https://preview.redd.it/fst7na0uhf1i1.png?width=1920&format=png&auto=webp&s=c0572213826a0d83286ad71646820bfc0ba8cc0a
다른 데이터 서브셋(Different data subsets)
특정 사용 사례에 관심이 있다면, 동일한 128K의 top-1 점수를 텍스트 유형별로 분할하여 보여드립니다. 코드는 가장 쉽습니다: 우리의 파일은 전체 모델의 최고 선택 항목 중 8898%를 유지합니다. 산문(Prose)과 채팅은 더 어렵지만, 7898%입니다. 모든 분할에서, 모든 모델에 걸쳐, 우리의 체크포인트는 동일하거나 더 작은 크기의 파일들 중에서 가장 높은 점수를 기록했습니다.
https://preview.redd.it/2u1jg5yzhf1i1.png?width=1920&format=png&auto=webp&s=46528ba712270211335bddec0cf13b2a7eaf4bd2 작업 벤치마크에 대한 건전성 확인(Sanity check). 이 모델들이 실제로 유용하다는 것을 보여주기 위해 지식 기반이 많은 MMLU를 사용하여 테스트했습니다. terminal-bench를 실행할 GPU가 더 이상 없었기 때문에, 가지고 계신 분들께 검증을 부탁드립니다. 이것들은 MMLU의 13,943개 질문에 대한 답변 가능성 점수입니다. 채팅 템플릿이나 Few-shot 예시는 사용하지 않았습니다. 전반적으로 이득이 있다고 주장할 수는 있지만, 대부분 노이즈 범위 내에 있습니다. 여기서 주요 목표는 실제 작업에서 다양한 크기 간의 트레이드오프를 반영하는 것입니다. 보시다시피, Q3-Q4에서는 이미 높은 정밀도와 구별하기 어렵습니다. https://preview.redd.it/p1rnoicijf1i1.png?width=1920&format=png&auto=webp&s=6dcaa14e7ec23bef8242c1924736add2a6d0f054
실행 환경 설정: NVIDIA GPU를 임대하여 사용했습니다. Flash-Next의 경우 llama.cpp를 사용했습니다. 9B/35B/27B BF16 참조 테스트에는 H200이 필요했고, 양자화된 파일은 L40S를 사용했습니다. Flash-Next의 짧은 참조는 bf16 가중치에 대한 MLX fp32 순방향(forward)을 사용합니다. 참고 구현체는 GGUF와 EXL3 전반에 걸쳐 다릅니다. 모델 카드에서 프레임워크별 빠른 시작 가이드를 확인하고 Qwen3.5-9B, Qwen3.8-27B, Qwen3.6-35B-A3B, Qwen3.8-Flash-Next를 다운로드하여 실행하십시오. 코딩 또는 에이전트 워크로드를 시도한다면, 어떤 파일, 러너 버전(runner version), 그리고 무엇이 작동하지 않았는지 알려주시면 좋겠습니다. 이 게시물에서는 속도에 대한 주장은 없습니다. 제출자: /u/m4rkGS [링크] [댓글]