모델 실행 도구 llama.cpp에 Xing4.0 지원이 합쳐져 이 모델을 직접 구동하려는 개발자가 CPU와 NVIDIA GPU에서 추론할 수 있게 됐다. 모델 가중치를 실행용 파일로 바꾸는 변환 기능도 추가돼 준비부터 실행까지 같은 도구 안에서 이어진다.
1. 모델 등록부터 추론까지 지원
2026년 11월 5일 병합된 풀 리퀘스트는 모델의 계산 구조를 뜻하는 아키텍처와 학습 전에 정하는 모델 설정값인 하이퍼파라미터 등록, 모델 계산에 쓰이는 다차원 수치 배열인 텐서 로딩, 변환 스크립트, 모델 연산의 실행 순서를 나타내는 추론 그래프 구현을 포함한다. 변경은 16개 커밋으로 병합됐으며, 병합 시점에 28개 검사가 통과했다.
PR 작성자는 Intel Xeon Platinum 8468에서 CPU 추론을, NVIDIA H800 80GB에서 CUDA 추론을 확인했다고 밝혔다. 두 실행 환경 모두 기본 기능이 작동하는지 점검하는 시험을 통과했다는 설명이다.
2. 기존 연산자 조합으로 그래프 구성
모델 계산을 실행 순서에 맞춰 엮은 추론 그래프는 새 ggml 연산자 대신 기존 계산 부품을 조합하며, 여러 갈래의 앞선 층 값을 뒤쪽 층에 더하는 잔여 연결을 섞는 mHC에도 여러 계산을 하나로 묶어 실행하는 융합 연산자를 재사용한다.
추가 토큰을 예측하는 MTP는 초안 토큰을 검증해 생성을 앞당기는 기존 추측 디코딩 체계에 연결됐다.
3. GGUF 변환과 MTP 가중치 선택
변환 스크립트는 Hugging Face 가중치를 GGUF로 바꾸는 경로에 새 모델을 등록한다. 기존 변환 코드를 바탕으로 토큰의 순서 정보를 모델에 넣는 위치 인코딩 설정을 보정하고 SentencePiece를 이용해 문장을 토큰 단위로 나누는 토크나이저 경로를 사용한다.
변환할 때는 추가 예측을 담당하는 MTP 블록을 빼거나, 이 블록과 공유 토큰을 수치 벡터로 바꾼 임베딩·값의 범위를 조정하는 정규화·출력 가중치만 담아 별도 파일을 만들 수 있다. 아래는 두 선택에 따라 저장할 가중치를 걸러 내는 원문 코드다.
# --no-mtp: drop the appended NextN block entirely.
if is_mtp and cls.no_mtp:
return None
# --mtp: keep ONLY NextN-block tensors plus the shared embeddings/
# norm/lm_head (so the resulting GGUF carries just the draft head).
if cls.mtp_only and not is_mtp and name not in (
"model.embed_tokens.weight", "model.norm.weight", "lm_head.weight",
):
return None4. 양자화 품질은 기준 정밀도와 함께 제시
작성자는 29B 모델에서 가중치 형식별 퍼플렉서티를 보고했다. 문장 예측이 얼마나 잘 맞는지 보는 지표로, 낮을수록 더 좋은 결과다. 기준 정밀도인 bf16과 가중치의 저장 정밀도를 낮추는 양자화를 적용한 두 형식의 결과를 함께 제시했다.
표: 29B 모델의 가중치 형식별 퍼플렉서티
조건: 29B 모델
단위: PPL
| 가중치 형식 | PPL |
|---|---|
| bf16 | 8.8403 |
| q8_0 | 8.8616 |
| iq4_nl | 9.1281 |
품질표에서 q8_0은 기준 정밀도와 가까운 값을 보였고, iq4_nl은 더 높았다.
작성자는 양자화에 민감한 가중치의 정밀도를 보호하기 위해 imatrix.dat를 지정했으며, 이를 곧 공개할 계획이라고 밝혔다.
5. GPU 처리량 향상과 추가 계산 비용
작성자는 H800 80GB의 CUDA 환경에서 llama-bench로 속도를 측정했다. 입력 처리인 pp512와 토큰 생성인 tg128을 나눠 보고했으며, 표의 오차 열은 원문에서 ± 뒤에 붙인 수치다.
표: H800 80GB CUDA 처리량
조건: NVIDIA H800 80GB, CUDA, llama-bench pp512/tg128
단위: 초당 토큰
| 가중치 형식 | pp512 | pp512 오차 | tg128 | tg128 오차 |
|---|---|---|---|---|
| bf16 | 4835.12 | 22.84 | 103.84 | 0.64 |
| q8_0 | 5639.12 | 591.29 | 136.06 | 0.81 |
| iq4_nl | 5644.56 | 609.36 | 159.29 | 0.74 |
이 GPU 측정에서는 양자화한 두 형식 모두 기준 정밀도보다 입력 처리와 토큰 생성 처리량이 높았다. 품질표와 속도표의 모델 규모가 같은지는 원문에 명시되지 않았다.
개발자는 새 연산자 없이 기존 실행 기반에서 모델을 사용할 수 있게 됐다. 다만 학습된 hc_scale 가중치와 별개로 post 게이트에 고정 상수 2.0을 곱하는 배율 연산에는 층마다 계산 노드와 GPU 연산 코드를 실행하는 커널 호출이 추가되는 비용이 따른다. 작성자는 이 배율 연산을 단순 삭제하면 post 게이트가 절반으로 줄어 계산 결과가 달라진다며 이 부분을 향후 최적화 대상으로 꼽았다.
이번 병합의 핵심은 Xing4.0의 가중치 변환부터 CPU·CUDA 추론까지 기존 실행 기반으로 연결하고, 추가 계산 최적화를 후속 과제로 남긴 데 있다.
