순수 Node.js로 만든 작은 언어 모델: 마법 없는 구현
한 개발자가 TensorFlow나 PyTorch 같은 ML 라이브러리 없이 순수 자바스크립트(Node.js)로 작은 인과적 언어 모델을 만들었습니다. 이 모델은 토큰화, 임베딩, 인과적 트랜스포머(Transformer), 언어 모델 헤드(LM head), 소프트맥스(softmax), 손실(loss), 스칼라 자동 미분(scalar autograd)을 이용한 역전파(backpropagation)를 구현합니다. 훈련은 사전 훈련(pre-training), 지도 미세 조정(supervised fine-tuning), 그리고 파국적 망각(catastrophic forgetting)을 방지하기 위한 리허설(rehearsal)을 포함한 적응형 SFT(adaptive SFT)로 구성되며, 모두 약 4분 안에 실행됩니다.
이 프로젝트는 순수 Node.js(>=18.19)로 머신러닝 라이브러리 없이 작은 인과적 언어 모델을 처음부터 구현합니다. 단어 수준 토큰화(24개 토큰), 두 개의 인과적 트랜스포머 블록, 멀티헤드 셀프 어텐션, 두 개의 은닉층을 가진 피드포워드 네트워크(FFN), 그리고 Adam 옵티마이저를 사용합니다. 훈련 파이프라인은 선언적 사실에 대한 사전 훈련, 42개의 질문-답변 쌍에 대한 지도 학습 미세 조정, 그리고 파국적 망각 없이 새로운 사실을 학습하기 위한 리허설을 포함한 적응형 지도 학습 미세 조정으로 구성됩니다. 모델은 2,160개의 파라미터를 가지고 있습니다. 훈련은 행렬과 델타에 대한 상세한 ASCII 로그를 생성합니다. 모든 코드는 GitHub에서 확인할 수 있습니다.
출처: Habr — хаб ML —
원문
