6502 프로세서에서 돌아가는 자기회귀 언어 모델 (BitNet + Mamba)
Autoregressive Language Model on the 6502 Processor
TL;DR Highlight
1975년 8비트 6502에 13KB 삼진 가중치 Mamba 모델을 올려 텍스트 생성
Who Should Read
양자화와 온디바이스 추론이 궁금한, 메모리·연산이 극히 제한된 환경에 LLM을 넣어 보려는 개발자
Core Mechanics
- 6502에 맞춰 모델을 설계했다
- 1975년 8비트 CPU, RAM 32KB에서 돌렸다.
- 사용자 영역 25KB 안에 추론 코드 9KB와 모델 가중치 13KB를 넣었다.
- 이 CPU는 곱셈 명령이 없다.
- BitNet으로 곱셈을 덧셈·뺄셈으로 바꿨다
- 가중치를 {-1, 0, 1} 세 값으로 양자화(값을 몇 개 단계로 뭉뚱그리는 것)했다.
- 8×8 곱셈·누적은 150 클럭, 삼진 누적은 30 클럭이다.
- 파라미터 하나당 1.58비트가 든다.
- 바이트당 4개로 패킹했다
- 5개가 더 효율적이지만 3으로 나누는 연산이 6502에 없어 풀기 비싸다.
- 4개는 2비트씩 나눠 오른쪽 시프트만 하면 풀린다.
- 13KB에 약 52k 파라미터가 들어간다.
- 어텐션 대신 Mamba를 골랐다
- 어텐션은 토큰이 늘수록 KV cache(이전 토큰 정보를 저장한 메모리)가 커져 32KB RAM에 안 맞는다.
- Mamba는 고정 크기 상태 벡터만 쓴다.
- GRU는 삼진 가중치에서 매 학습이 발산했고, Mamba는 감쇠값이 1을 넘지 않아 폭주가 구조적으로 없다.
Community Reactions
- 메모리 뱅킹을 허용하면 되지 않느냐는 의견
- 당시 방식대로 가중치를 페이지 단위로 스트리밍하면 더 큰 모델도 가능하다는 주장이다.
- cc65 대신 어셈블리가 낫다는 의견
- 6502는 C 컴파일러와 궁합이 나빠 직접 어셈블리를 쓰면 공간과 성능을 더 아낄 수 있다는 NES 개발 경험자의 말이다.
- 작은 규모에선 마르코프 체인이 낫다는 경험담
- 현대 ML 모델은 작게 줄이면 잘 안 되므로 단순 마르코프 체인 변형이 거의 항상 낫다는 의견이다.
How to Apply
- 내 모델 가중치를 삼진으로 양자화해 보기
- 오늘 작은 PyTorch 모델의 Linear 하나에 아래 ternary_quantize를 끼워 forward만 돌려 보라.
- 출력 품질 차이를 원본과 비교하라.
- 엣지 배포 모델은 고정 크기 상태 구조로 고르기
- 메모리가 빡빡한 기기라면 어텐션 대신 Mamba 같은 recurrent 모델을 후보에 넣어라.
- 컨텍스트가 늘어도 메모리가 늘지 않는지 먼저 확인하라.
- softmax를 룩업 테이블로 대체해 보기
- 지수 연산이 없는 환경에서는 logit-max 차이에 대한 exp 테이블을 미리 만들어라.
- 온도별 테이블을 만들어 정수로 샘플링하라.
Try It
# 파이토치 환경에서 실행 (pip install torch)
import torch
def ternary_quantize(w: torch.Tensor) -> torch.Tensor:
q = torch.clamp(torch.round(w), -1.0, 1.0) # forward: {-1,0,1}
return w + (q - w).detach() # backward: full precision gradient
w = torch.randn(4, 4, requires_grad=True)
x = torch.randn(4)
y = ternary_quantize(w) @ x
y.sum().backward()
print(ternary_quantize(w))
print(w.grad)
# 이어서 해 볼 것: 작은 MLP의 Linear 가중치에 적용해 학습해 보고, 정확도 변화를 비교해 보기Terminology
관련 논문
Mercury 3: 규모를 키운 diffusion LLM, 초당 1,000토큰 이상
Diffusion LLM을 40배 키웠더니 속도 4~8배, 품질은 속도 특화 모델 수준
Timestral: Mistral의 시계열 파운데이션 모델
209M 파라미터 시계열 모델이 3대 벤치마크 1위, CPU에서도 돌아간다
DeepSeek V4.1 Flash 1017 (Max) 성능·속도·가격 분석
DeepSeek V4.1 Flash 1017 Max는 지능 지수 45에 211 tok/s, 입력 $0.30
LLM 프록시를 직접 안 돌리면 무슨 일이 벌어지는지 어떻게 아나
자체 LLM 프록시를 세웠더니 키·모델·캐시 미스를 직접 볼 수 있다
DeepSeek V4.1 Flash 1017: 싼 가격에 1M 컨텍스트를 주는 에이전트용 모델
DeepSeek V4.1 Flash 1017은 입력 $0.05/M, 1M 컨텍스트의 에이전트용 모델
DeepSeek-V4.1-Flash-1017 공개: 더 짧게 생각하고 더 빠르게 일하는 에이전트용 모델
DeepSeek V4.1 Flash 마이너 업데이트로 코딩·에이전트 벤치 점수↑, 실행 시간·출력 길이↓
Llmspeed: 로컬 LLM 속도를 하드웨어 구매 전에 체감해 보는 시뮬레이터
GPU·모델을 고르면 로컬 LLM 속도를 미리 체감하게 해 주는 시뮬레이터