MacMind – 1989년 Macintosh의 HyperCard로 구현한 Transformer 신경망
Show HN: MacMind – A transformer neural network in HyperCard on a 1989 Macintosh
TL;DR Highlight
HyperTalk으로 1,216개 파라미터짜리 단일 레이어 Transformer를 Macintosh SE/30에서 학습시켜 현대 LLM의 핵심 수학이 30년 전 하드웨어에서도 동일하게 동작함을 증명했다.
Who Should Read
Transformer와 backpropagation의 내부 동작 원리를 시각적으로, 코드 레벨에서 깊이 이해하고 싶은 개발자나 AI를 처음 공부하는 사람. 특히 블랙박스 없이 모든 수식을 직접 뜯어보고 싶은 사람에게 적합하다.
Core Mechanics
- 이 프로젝트는 HyperTalk(1987년에 만들어진 HyperCard용 스크립팅 언어)로 완전한 Transformer 신경망을 구현했다. 행렬 연산을 위해 설계된 언어가 아닌데도 컴파일된 코드나 외부 라이브러리 없이 순수 스크립트만으로 동작한다.
- 모델 크기는 1,216개 파라미터의 단일 레이어, 단일 헤드 Transformer다. GPT-4의 약 1조 개 파라미터와 비교하면 극도로 작지만, forward pass → loss 계산 → backward pass → 가중치 업데이트로 이어지는 학습 루프의 수학은 완전히 동일하다.
- 학습 태스크는 비트 역순 치환(bit-reversal permutation)이다. 이는 고속 푸리에 변환(FFT)의 첫 번째 단계로, 각 위치 인덱스의 이진 표현을 뒤집어 순서를 재배열하는 연산이다. 예를 들어 8개 원소 시퀀스에서 위치 1(001)은 위치 4(100)로 이동한다.
- 구현 내용에는 token embedding(토큰을 벡터로 변환), positional encoding(위치 정보 추가), scaled dot-product self-attention(쿼리-키-밸류 기반 어텐션), cross-entropy loss, 완전한 backpropagation, stochastic gradient descent(확률적 경사하강법)이 모두 포함되어 있다.
- HyperCard의 스크립트 에디터에서 Option-클릭하면 버튼 뒤의 실제 수식 코드를 바로 볼 수 있다. 학습률 변경, 학습 태스크 교체, 모델 크기 조정을 모두 GUI 안에서 직접 할 수 있어 학습 도구로서의 목적이 명확하다.
- 제작 목적은 'AI는 마법이 아니라 수학'임을 증명하는 것이다. backpropagation과 attention이 TPU 클러스터에서 돌아가든 1987년산 68000 프로세서에서 돌아가든 수학은 같다는 메시지를 담고 있다.
- 실제로 1989년 Macintosh SE/30에서 학습을 완료했으며, Python으로 작성된 validate.py 검증 스크립트도 함께 제공된다.
Evidence
- 오래된 하드웨어에서 현대 AI 아이디어를 구동하는 것(이 프로젝트나 Windows 3.1에서 LLM 추론 실행 등)이 갖는 의미에 대해, '발전이 단순히 더 큰 GPU와 더 많은 컴퓨팅 때문만은 아니라 더 영리한 수학과 알고리즘 덕분임을 상기시켜 준다'는 반응이 있었다. '하드웨어를 던져버리는' 현재 트렌드보다 초기 컴퓨팅의 정신에 더 가깝다는 평가다.
- 1988년에 backpropagation을 처음 공부하면서 동시에 HyperCard 프로그래밍에 빠졌다는 사람이 '이 프로젝트가 그 시절 우아한 도구를 떠올리게 한다'고 회고하며 반가움을 표했다.
- HyperCard Simulator(hcsimulator.com)에서 실행 가능하다는 정보가 공유됐다. XCMD(외부 컴파일 명령)가 없으면 시뮬레이터에서도 충분히 동작한다며 직접 임포트한 링크(https://hcsimulator.com/imports/MacMind---Trained-69E0132C)까지 제공했다.
- GitHub 리포지토리에 Python 검증 스크립트만 있고 실제 HyperCard 스택(.img 파일)의 소스코드가 어디 있는지 묻는 댓글이 있었다. 실제 HyperTalk 코드를 직접 보고 싶어하는 개발자들의 관심을 반영한다.
- '현대적 개념들이 현대적인 이유는 단지 그 시절에 아무도 생각하지 않았기 때문'이라며, 이 프로젝트가 고대 그리스에 세균 이론을 전달하는 것 같은 느낌이라는 철학적 댓글도 있었다. 기술의 발전이 근본 개념의 발명보다 구현 수단의 발전임을 상기시키는 맥락이다.
How to Apply
- Transformer의 attention, backpropagation 수식을 이론이 아닌 실제 동작하는 코드로 공부하고 싶다면, HyperCard Simulator(hcsimulator.com)에서 MacMind를 직접 열고 각 버튼을 Option-클릭해 수식 구현 코드를 단계별로 읽으면 된다. 외부 라이브러리 없이 순수 수식으로만 구현되어 있어 개념을 명확히 파악할 수 있다.
- 주니어 개발자나 비ML 백엔드 개발자에게 Transformer 학습 과정을 설명해야 할 때, MacMind의 학습 태스크(비트 역순 치환)와 1,216 파라미터 모델을 예시로 들면 'forward pass → loss → backward pass → weight update' 루프를 직관적으로 설명할 수 있다.
- 학습률, 모델 크기 등 하이퍼파라미터가 학습에 미치는 영향을 빠르게 실험해보고 싶다면, HyperCard 스크립트 에디터에서 값을 수정하고 재실행해볼 수 있다. 실험 환경이 완전히 투명하게 공개되어 있어 각 변경이 결과에 미치는 영향을 추적하기 쉽다.
Terminology
관련 논문
레이어 하나면 충분한가? 단일 Transformer 레이어 학습이 전체 파라미터 RL 학습과 동등한 성능
LLM의 RL 후처리 학습(post-training)에서 성능 향상의 대부분이 중간 레이어 소수에 집중되며, 단 하나의 레이어만 학습해도 전체 파라미터 학습과 비슷하거나 더 나은 결과를 낼 수 있다는 연구 결과. 이는 RL 학습 비용을 대폭 줄일 수 있는 가능성을 시사한다.
Black-Box LLM에서 지식 증류하기: Proxy-KD 기법 (2024)
GPT-4 같은 내부 구조에 접근할 수 없는 독점 LLM에서 작은 모델로 지식을 효과적으로 전달하는 Proxy-KD 기법을 소개하는 논문으로, 전통적인 White-Box 방식보다 성능이 높다는 점에서 주목할 만하다.
NanoEuler – 순수 C/CUDA로 처음부터 만든 GPT-2 규모 언어 모델
PyTorch나 autograd 없이 C와 CUDA만으로 GPT-2 수준의 LLM을 처음부터 구현한 교육용 프로젝트로, 역전파·BPE 토크나이저·FlashAttention까지 직접 손으로 작성했다.
Neural Particle Automata: 자기조직화 파티클 시스템을 학습하는 신경망 모델
고정된 격자 대신 움직이는 파티클 위에서 동작하는 Neural Cellular Automata의 확장 버전으로, 형태 생성·포인트 클라우드 분류·텍스처 합성 등 다양한 작업에서 자기조직화 동작을 학습할 수 있다.
PyTorch Training Loop 완전 해부: 각 줄이 하는 일과 순서를 바꾸면 생기는 문제
PyTorch 학습 루프의 각 코드 줄이 왜 그 위치에 있어야 하는지, 순서를 바꾸거나 빠뜨렸을 때 어떤 문제가 생기는지를 단계별로 설명한 심층 가이드다.
좋은 Verifier도 망가질 수 있다: Self-Improving VLM이 새로운 태스크에서 오히려 퇴보하는 현상
VLM 자가학습 루프에서 verifier가 특정 태스크에 맞지 않으면 학습할수록 오히려 성능이 떨어지는데, DPO 손실값은 멀쩡히 내려가서 눈치채기도 어렵다.