Liquid AI가 Hugging Face에 LFM2.5 시리즈의 새 체크포인트 묶음을 공개했다. 포맷은 GGUF Q4_0이고, 학습 방식은 QAD(quantization-aware distillation, 양자화를 고려한 증류)라고 부른다. 230M, 350M, 1.2B-Instruct, 2.6B 네 가지 크기에서 각각 벤치마크 기준 BF16 대비 97.1%, 96.5%, 97.4%, 96.6%의 성능을 회복했다.
로컬 추론을 다루지 않는 사람에게는 별다른 의미가 없는 숫자일 수 있다. 이 숫자를 이해하려면 먼저 llama.cpp 생태계에서 Q4_0의 위상이 어땠는지부터 알아야 한다.
커뮤니티가 포기했던 포맷
Q4_0은 가장 초기의 4비트 양자화 방식 중 하나로, 규칙은 단순하다. 가중치 32개마다 스케일 계수 하나를 공유하고, 나머지는 그대로 4비트 정수로 압축한다. 이후 커뮤니티는 K-quant 계열(Q4_K_M, Q5_K_M 등)을 만들어냈는데, 텐서의 중요도에 따라 비트 폭을 다르게 배분해 같은 용량에서도 정확도가 눈에 띄게 높았다. 그 결과 Q4_0은 사실상 퇴역했고, 일부 오래된 기기와 구형 런타임에만 남아 있었다.
그럼에도 Q4_0에는 남이 가져갈 수 없는 장점이 하나 있다. 구조가 규칙적이어서 Arm CPU의 int8 내적(dot product) 명령어에 그대로 매핑된다는 점이다. K-quant의 블록 분할과 조회 테이블은 스마트폰 CPU에서 몇 단계를 더 거쳐야 하지만, Q4_0은 그럴 필요가 없다. Liquid AI가 이번에 제시한 속도 수치도 바로 이 지점을 겨냥한 것이다. 같은 모델군에서 Q4_0 체크포인트는 Q5_K_M보다 4~33%, Q4_K_M보다 3~14% 더 빨랐다.
결국 Q4_0의 발목을 잡아온 것은 언제나 정확도였다. QAD가 정면으로 겨냥하는 지점도 바로 여기다.
양자화를 학습 단계로 끌어들이다
일반적인 방식은 PTQ(post-training quantization, 학습 후 양자화)다. 모델을 먼저 다 학습시킨 뒤 압축하고, 얼마나 정확도가 떨어지는지 확인해서 너무 많이 떨어지면 다른 포맷으로 바꾼다. QAD의 발상은 반대다. 모델이 학습 단계에서부터 자신이 나중에 어떤 형태로 압축될지를 미리 알고 있게 만드는 것이다. 고정밀 교사 모델이 양자화된 학생 모델로 증류를 수행하고, 양자화 제약을 학습 과정에 포함시켜 가중치 분포가 미리 4비트 격자 쪽으로 다가서게 한다. Liquid AI는 공식 블로그에서 QAD가 Q4_0 체크포인트를 크게 개선한다고 설명했다.
개념 자체는 새롭지 않다. 양자화를 고려한 학습은 비전 모델에서 오랫동안 쓰여 온 방식이다. 이를 언어 모델에 적용할 때 걸림돌은 비용이다. 목표 포맷 하나마다 전용 학습을 한 번씩 따로 돌려야 한다. 그럼에도 이 비용을 감수했다는 것은 채산성을 따져봤다는 뜻이다. 온디바이스 모델의 다운로드 수와 호출 수라면 포맷 하나를 위해 별도로 학습을 한 번 돌릴 가치가 있다고 판단한 셈이다.
기기 4대로 검증
테스트는 두 종류의 하드웨어를 다뤘다. MacBook Pro와 NucBox EVO-X2는 GPU 추론, 삼성 갤럭시 S26 Ultra와 라즈베리파이 5는 Arm CPU 추론이다. 라즈베리파이 5가 명단에 오른 점이 눈에 띄는데, GPU가 없고 메모리도 넉넉하지 않은 기기군을 대표하며 Q4_0의 이점이 가장 크게 나타나는 조건이기도 하다.
용량을 대략 계산해보면, 26억 개 파라미터를 4비트로 저장할 경우 가중치만 1.4GB를 조금 넘는다. 여기에 KV 캐시와 런타임 오버헤드를 더해도 메모리 8GB 스마트폰에 충분히 들어가고, 다른 작업을 위한 여유도 남는다. 230M 모델은 그보다 훨씬 작아 수백 메가바이트 수준으로, 앱에 내장해 로컬 기능으로 쓰는 것도 충분히 현실적이다.
이 체크포인트들이 걸고 있는 것
이번에 흥미로운 지점은 트레이드오프의 방향 자체다. 지난 2년간 온디바이스 추론의 주류 전략은 모델을 작게 만드는 것이었다. 파라미터 수를 줄여 증류하거나, 더 똑똑한 양자화 포맷으로 바꾸는 식이었다. 반면 Liquid AI는 이번에 세 번째 길을 택했다. 포맷도 파라미터 수도 그대로 두고, 최적화 부담을 전부 학습 단계로 옮긴 것이다.
대가는 이 방법이 자사 모델에만 통한다는 점이다. 커뮤니티가 이 방법을 가져다 다른 곳에서 공개한 Q4_0 가중치를 살려낼 수는 없다. 그러려면 원본 학습 파이프라인이 필요하기 때문이다. 이는 모델 제공사만이 내놓을 수 있는 것이며, 온디바이스 소형 모델 경쟁에서 몇 안 되는 차별화 지점이기도 하다. 같은 26억 개, 같은 llama.cpp 위에서 돌리는데 4비트로 바꿔도 정확도가 덜 떨어지는 쪽이 그 라운드를 가져가는 구도다.
개발자 입장에서 문턱은 그대로다. GGUF Q4_0은 가장 폭넓게 지원되는 포맷으로, llama.cpp를 비롯해 Q4_0을 지원하는 어떤 런타임에서도 코드 수정이나 새 연산자 추가 없이 바로 불러올 수 있다. Liquid AI가 독자 포맷 대신 이 포맷을 고른 이유도 여기에 있다. 호환성 자체가 배포력이기 때문이다.
참고 출처: Liquid AI 공식 블로그, CocoLoop, Hugging Face 모델 페이지. 네 가지 크기의 정확도 회복률과 두 가지 속도 구간은 공식 발표 수치와 대조해 확인했다.