Maksim Sekretov는 Node.js에서 실행되며 학습 과정 중 모든 스칼라, 가중치, 그래디언트를 보여주는 아주 작은 순수 JavaScript 트랜스포머를 공개했습니다. tiny-language-model-neuro-js 저장소를 통해 누구나 무작위 모델로 시작하여 “can human read ?”와 같은 프롬프트를 입력하고, 모델이 실패하는 것을 지켜본 뒤, 단 한 번의 명령어로 학습을 실행하여 답변이 정답으로 바뀌는 과정을 확인할 수 있습니다.
왜 대부분의 LLM 데모는 수학적 원리를 숨기는가
전형적인 언어 모델 튜토리얼은 TensorFlow나 PyTorch에 의존합니다. 이러한 프레임워크는 백그라운드에서 계산 그래프를 자동으로 구축하고 그래디언트를 계산하므로, 학습자는 고수준 코드와 손실 곡선(loss curves)만을 보게 됩니다. 각 토큰이 어떻게 임베딩이 되는지, 어텐션 점수가 어떻게 계산되는지, 그래디언트가 모든 행렬을 통해 어떻게 역전파되는지와 같은 기저의 연산들은 보이지 않는 상태로 남습니다.
JavaScript 모델이 차별화되는 점
Sekretov의 구현 방식은 모든 것을 의존성 없는 단일 Node.js 스크립트로 간소화했습니다. 학습 파이프라인은 다음과 같은 명확한 순서를 따릅니다:
- 토큰화 (Tokenization)
- 임베딩 (Embeddings)
- 인과적(Causal) 트랜스포머 블록
- 멀티 헤드 셀프 어텐션 (Multi-head self-attention)
- 피드포워드 네트워크 (FFN)
- 언어 모델 헤드 및 소프트맥스 (softmax)
- 교차 엔트로피 손실 (Cross-entropy loss)
- 역전파 (Backpropagation)
node src/train.js --generalize --adaptive-teach를 실행하면 전체 학습 루프가 시작됩니다. 코드가 순수 JavaScript로 작성되었기 때문에 각 텐서는 단순한 배열이며, 각 행렬 곱셈은 명시적인 루프이고, 모든 그래디언트는 해당 소스 가중치 바로 옆에 위치합니다.
무작위 추측에서 정답까지
모델이 처음 시작될 때 모든 파라미터는 무작위입니다. 모델에 “can human read ?”라고 물으면 횡설수설하는 답변이 나옵니다. 짧은 사전 학습(pre-training) 단계와 지도 미세 조정(SFT) 과정을 거치고 나면, 동일한 프롬프트에 대해 합리적인 답변을 반환합니다. 손실 함수를 통해 전달되는 올바른 토큰 시퀀스인 교사 신호(teacher signal)가 임베딩, 어텐션 헤드, FFN 레이어를 통해 역전파되며 각 스칼라를 차례로 업데이트합니다.
치명적 망각(Catastrophic forgetting) 문제 해결
초기 실행에서는 새로운 사실을 배우면 이전에 배웠던 사실을 잊어버리는 전형적인 문제가 나타났습니다. Sekretov는 새로운 데이터를 도입하는 동시에 이전 예시들을 다시 제시하는 리허설(rehearsal) 방식을 통해 이를 해결했습니다. 학습은 모든 타겟 토큰이 최소 95%의 확률에 도달하고 10회 연속 검증을 통과할 때까지 계속됩니다. 이 단순한 루프는 외부 라이브러리 없이도 핵심적인 연구 과제를 보여줍니다.
누가 혜택을 보고, 누가 제외되는가
이 프로젝트는 수십억 개의 파라미터와 GPU 클러스터에서 실행되는 상용 LLM과 경쟁하기 위한 것이 아닙니다. 이러한 성능 차이로 인해 프로덕션 워크로드에는 적합하지 않지만, 모델을 투명한 교육 도구로 만들어 줍니다. 블랙박스 프레임워크 내부를 들여다보는 데 어려움을 겪던 학생, 취미 활동가, 연구자들에게 이제 수학이 곧 코드로 구현된 샌드박스를 제공합니다.
부족한 점과 프로젝트의 향후 방향
구현이 의도적으로 최소화되었기 때문에 코드를 읽기는 쉽지만 확장성에는 한계가 있습니다.
주목할 점
해당 저장소는 이미 GitHub에 공개되어 있습니다.
핵심 요약: 트랜스포머를 순수 JavaScript로 간소화함으로써, Sekretov는 악명 높게 불투명했던 기술을 읽기 쉽고 편집 가능한 스크립트로 탈바꿈시켰습니다. 속도를 희생하는 대신 통찰력을 얻은 것입니다. 이제 누구나 언어 모델이 스칼라 단위로 학습하고, 잊고, 다시 학습하는 과정을 지켜볼 수 있습니다.
