998달러로 3.8B LLM을 학습해 CORE 0.384 달성하기

6 hours ago 3

little-lm 3.8B는 무작위 초기화부터 653억 토큰을 사전학습해 CORE 0.384를 달성한 개인 프로젝트로, B200 8대에서 43시간 동안 학습하는 데 998달러가 들었음 초기 실험의 낮은 성능을 개선하기 위해 Muon, 사다리꼴 학습률 스케줄, ClimbMix 데이터, FP8 등을 적용했으며, 최종 학습에서는 마지막 단계까지 평가 손실이 감소함 처리량 최적화에서는 개별 연산 속도보다 전체 학습 속도와 메모리 사용량이 중요했음. 융합 손실 함수는 같은 배치에서 6% 느렸지만, 절약한 메모리로 배치를 키우자 전체 처리량이 높아짐 컨텍스트를 1024에서 2048토큰으로 늘리자 CORE가 0.3384에서 0.3840으로 상승했지만, 상승분의 83%는 프롬프트 잘림에 영향을 받던 SQuAD와 BoolQ에서 나왔음 구성요소 제거 실험에서는 가치 임베딩이 거의 같은 처리량으로 성능을 높인 반면, GQA는 학습 속도가 빨라도 같은 손실에 도달하는 비용에서는 이점이 없었음 개인 규모의 사전학습과 모델 구성 little-lm은 저녁 시간에 개발하고 RTX 5090에서 디버깅한 뒤 임대한 B200에서 학습을 마친 프로젝트로, Andrej Karpathy의 nanochat에서 큰 영향을 받았음 최종 모델은 38억 4800만 파라미터이며, 컨텍스트 길이에 따른 학습 결과는 다음과 같음 1024토큰에서는 573억 토큰을 35.9시간 동안 학습했으며, 비용은 820달러, CORE는 0.3384였음 2048토큰에서는 653억 토큰을 43시간 동안 학습했으며, 비용은 998달러, CORE는 0.3840이었음 비교 대상으로 GPT-2 1.5B의 CORE는 0.2565, nanochat d26 약 561M은 약 0.258, d32 약 1B는 0.310이었음 nanochat d32는 H100 8대로 약 33시간, 약 1000달러를 사용했음 little-lm은 더 큰 모델이며 B200을 사용했으므로 동일 하드웨어 비교는 아님. 실험 당시에는 B200의 작업량 대비 비용이 더 유리했음 학습 프레임워크는 YAML 설정 기반이며, 구성요소를 전역 레지스트리에 등록하고 이름으로 선택함 옵티마이저나 데이터셋 교체를 설정 한 줄로 처리하고, 실험을 별도 코드 분기 대신 작은 YAML 변경으로 표현할 수 있었음 관심사 분리, 명확한 인터페이스, 교체 가능한 구성요소에 들인 초기 비용은 수렴 문제를 디버깅할 때 회수할 수 있었음 모델은 Llama ...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵