[Hacker News 요약] 1MHz 코모도어 64에서 25K 파라미터 트랜스포머를 구동하는 'Soul Player C64' 프로젝트

18

설명

Soul Player C64는 1982년 출시된 1MHz 코모도어 64 컴퓨터에서 구동되는 25,000개 파라미터 규모의 실제 트랜스포머 모델입니다. 이는 ChatGPT, Claude, Gemini와 동일한 디코더 전용 아키텍처를 6502/6510 어셈블리어로 구현한 놀라운 프로젝트입니다. 제한된 하드웨어 자원 속에서 현대 AI 모델의 핵심 원리를 구현해낸 이 프로젝트는 기술적 한계를 극복하는 창의성과 집념을 보여줍니다. ### 프로젝트 개요 및 핵심 성과 Soul Player C64는 2개 레이어, 4개 어텐션 헤드, 32차원 임베딩, 64 FFN 히든 유닛으로 구성된 트랜스포머 모델입니다. 약 25,000개의 int8 양자화된 파라미터를 사용하며, 전체 모델이 플로피 디스크에 들어갈 정도로 경량화되었습니다. 이 모델은 실제 멀티 헤드 인과적 셀프 어텐션, 소프트맥스, RMSNorm 등을 구현했으며, 코모도어 64에서 토큰당 약 60초의 속도로 동작합니다. ### 기술적 구현 상세 이 프로젝트의 핵심은 핸드메이드 6502/6510 어셈블리어로 트랜스포머 아키텍처를 구현한 것입니다. 특히, 6502 CPU에 곱셈 명령어가 없으므로 모든 연산은 시프트-앤-애드 방식으로 처리됩니다. 주요 기술적 돌파구는 소프트맥스 점수 정규화 문제 해결로, 17비트 대신 14비트 시프트를 통해 128개 엔트리 exp 룩업 테이블의 동적 범위를 확보하여 의미 있는 어텐션 가중치를 생성할 수 있었습니다. 모든 활성화는 Q8.8 고정 소수점(int16)을 사용하며, 가중치는 int8로 양자화되었습니다. ### 모델 학습 및 배포 사용자는 `train.py` 스크립트를 통해 BPE 토크나이저를 학습하고 QAT(Quantization-Aware Training) 트랜스포머를 훈련시킬 수 있습니다. 사용자 정의 말뭉치(예: `<SEP>input<SEP>response<SEP>` 형식)를 사용하여 모델을 훈련할 수 있으며, 훈련된 가중치는 `build.py` 스크립트를 통해 6502/6510 어셈블리 루틴과 결합되어 코모도어 64용 바이너리(`.prg`, `.d64`)로 생성됩니다. 이 바이너리는 VICE 에뮬레이터 또는 실제 코모도어 64 하드웨어에서 실행 가능하며, `soulchat.py`를 통해 로컬에서 C64와 동일한 정수 연산으로 대화 테스트를 할 수 있습니다. ### 모델 사양 및 한계 Soul Player C64는 128 토큰의 어휘(4개 특수 + 34개 문자/구두점 + 90개 BPE), 32차원 임베딩, 2개 레이어, 4개 어텐션 헤드, 64 FFN 히든 유닛, 20 토큰 컨텍스트를 가집니다. 총 약 25,000개의 int8 파라미터와 25KB의 가중치 크기를 자랑합니다. 그러나 GPT-4보다 7천만 배 작기 때문에 '똑똑하지 않으며' 깨진 문장을 생성할 수 있습니다. 또한, 토큰당 60초로 매우 느리며, 대소문자를 구별하지 않고(소문자만 인식), 128 토큰의 작은 어휘와 20 토큰의 짧은 컨텍스트라는 한계가 있습니다. ### 퀀타이제이션-어웨어 트레이닝 (QAT) 이 모델은 QAT(Quantization-Aware Training) 방식을 사용하여 훈련됩니다. 훈련 과정에서 가중치는 FakeQuantI8를 통해 양자화되며, 연속적인 부동 소수점 스케일링과 Straight-Through Gradient Estimation이 적용됩니다. 훈련 시의 연속 스케일과 내보내기 시의 2의 거듭제곱 시프트 그리드 간의 의도적인 불일치는 암묵적인 노이즈 역할을 하여, 양자화 간격을 견딜 수 있는 가중치를 학습하도록 유도합니다. 매 500 에포크마다 실제 정수 포워드 패스를 평가하고, 부동 소수점 손실이 아닌 int8 argmax 정확도를 기준으로 최적의 체크포인트를 저장합니다. ### 가치와 인사이트 Soul Player C64 프로젝트는 단순한 향수가 아닌, 극도로 제한된 하드웨어 자원 속에서 현대 AI 모델의 복잡한 아키텍처를 구현할 수 있음을 증명합니다. 이는 기술적 한계를 창의적으로 극복하는 엔지니어링의 정수를 보여주며, 소프트웨어 최적화와 하드웨어-소프트웨어 코디자인의 중요성을 강조합니다. 또한, AI 모델의 기본 원리를 깊이 이해하고 실제 구현의 어려움을 체감할 수 있는 교육적 가치를 제공하며, 레거시 시스템에 대한 새로운 가능성을 제시합니다. ### 기술·메타 - Commodore 64 (C64) - 6502/6510 Assembly - Python - NumPy - PyTorch - VICE (C64 emulator) - BPE tokenizer - Quantization-Aware Training (QAT) - int8 quantization - Fixed-point arithmetic (Q8.8) 📝 원문 및 참고 - Source: Hacker News - 토론(HN): [news.ycombinator.com](https://news.ycombinator.com/item?id=47839645) - 원문: [링크 열기](https://github.com/gizmo64k/soulplayer-c64) --- 출처: Hacker News · [원문 링크](https://github.com/gizmo64k/soulplayer-c64)
사이트 방문하기Visit Service

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.