LocalLLaMA 화제: 13M MatMul-Free CPU 모델이 보여준 소형 LLM 학습의 진짜 병목

게시글에서 공유된 핵심 사실

LocalLLaMA의 I trained a language model on CPU in 1.2 hours with no matrix multiplications 글은 크롤링 시점에 262 업보트와 71개 댓글을 기록했다. 작성자는 단순 주장에 그치지 않고 모델 카드 링크와 함께 구조·학습 조건을 공개했다. 포지션도 명확하다. 대형 상용 성능 경쟁이 아니라, 저자원 환경에서 어디가 실제 병목인지 확인하는 실험이라는 점이다.

게시글과 Hugging Face 설명에 따르면 모델은 13.6M 파라미터, d_model=256, ternary 가중치(-1,0,+1)를 사용한다. 학습은 2-thread CPU 환경에서 약 1.2시간, 데이터는 FineWeb-Edu 32M tokens, 보고된 validation loss는 6.80이다. 출처: Reddit 원문 · 모델 카드.

기술 구조와 병목 해석

모델 카드는 ConvMixer + TernaryGLU, causal dilated Conv1D 토큰 믹싱, GPT-2 tokenizer/vocab, SVD 투영 임베딩을 설명한다. 즉 코어 블록에서 곱셈 의존도를 낮추는 방향으로 설계됐다. 그러나 작성자가 강조한 포인트는 “matmul-free 코어의 성공”보다 “전체 파이프라인에서 어디가 시간을 먹는가”다.

글에 따르면 전체 학습 시간의 약 86%가 50,257 vocab으로 가는 출력 projection에 소모됐고, ternary 코어는 14% 수준이었다. 이 수치가 맞다면, 소형 CPU 학습에서 핵심은 백본 경량화만이 아니라 출력 헤드 구조 최적화다. 코어를 아무리 가볍게 만들어도 softmax 경로가 지배하면 체감 속도 이득이 제한될 수 있다.

실무 시사점

이 스레드가 실무적으로 유의미한 이유는, 커뮤니티가 체감하는 비용과 벤치마크 수치 사이 간극을 구체적으로 보여주기 때문이다. 로컬/엣지 실험에서는 모델 크기보다도 vocab projection, context 길이, 배치 조건이 전체 처리량을 좌우한다. 작성자가 다음 버전에서 계층형 출력 구조를 시험하겠다고 밝힌 것도 같은 문제의식에서 나온다.

결론적으로 이번 사례는 “matmul-free”가 만능 해법이 아니라는 점을 확인시켜 준다. 저비용 LLM 실험을 진행하는 팀이라면 블록 단위 최적화뿐 아니라 전체 토큰 경로 프로파일링을 함께 해야 안정적인 개선을 얻을 수 있다.