English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

게스트
1 / ?
수업 목록으로

언어 모델이 예측하는 것

확률적 연속 엔진

언어 모델은 토큰 시퀀스를 입력받아 다음에 올 토큰에 대한 확률 분포를 할당합니다. the cat sat on the을 입력하면 전체 어휘에 걸쳐 확률을 출력합니다: mat, floor, couch에 높은 확률; xylophone, Tuesday에 낮은 확률.


그 분포에서 샘플링하고 토큰을 추가한 후 다시 입력하는 루프: 이 루프가 토큰 하나씩 텍스트를 생성합니다. 자기회귀 생성, 각 단계가 자신의 이전 출력에 회귀하기 때문에 그렇게 명명되었습니다.


세 가지 숫자가 언어 모델을 정의합니다


어휘 크기 (V). 모델이 생성할 수 있는 고유 토큰의 수. ANDREA-12M은 4,353개의 토큰을 사용했습니다; ANDREA-120M은 8,449개를 사용합니다.


컨텍스트 창 (T). 한 번의 순전파에 들어갈 수 있는 토큰의 수. ANDREA 모델은 T = 1,024를 사용합니다.


매개변수 수 (P). 내부에 존재하는 학습된 가중치의 수. 12M, 120M, & 480M은 P에 따라 가족을 명명합니다.


세 모델의 가족


변형d_model헤드레이어컨텍스트파라미터
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

세 가지 노브가 스케일링됩니다: d_model (모든 내부 벡터의 너비), n_layer (쌓인 트랜스포머 블록의 깊이), n_head (병렬 어텐션 프로젝션). 어휘 및 컨텍스트는 패밀리 전체에서 고정됩니다.

패밀리 테이블 읽기

ANDREA-12M (d_model=384, 6 layers, 12 heads)와 ANDREA-120M (d_model=768, 12 layers, 12 heads)를 비교하세요. 12M에서 120M으로 스케일링된 두 개의 아키텍처 축과, 일정한 하나의 축을 이름하세요. 각 스케일링 선택에 대한 한 문장 이유가 도움이 됩니다.

작은 모델이 중요한 이유

제약이 주는 해방

수백억 개의 파라미터를 가진 대형 언어 모델은 수천 개의 GPU, 독점 데이터셋, 그리고 기업 예산이 필요합니다. 소수의 사람만이 이를 훈련시킬 수 있습니다. 소수의 사람만이 이를 수리할 수 있습니다.


하나의 GPU에서 작동하는 소형 언어 모델은 이를 뒤집습니다. 4090(또는 3060)을 가진 누구나 오픈 데이터로 ANDREA를 재현할 수 있습니다. 훈련 레시피가 모델 카드 역할을 겸합니다. 오픈 코드, 오픈 가중치, 오픈 데이터; 72시간의 컴퓨트로 완전한 출처 추적이 가능합니다.


용량 vs 품질

작은 모델은 훈련 코퍼스를 암기할 수 없습니다. 12.8M 파라미터를 가진 ANDREA-12M은 사실적 내용을 저장할 용량이 부족합니다; 턴 구조, 어휘 분포, 응답 형태를 학습합니다. 10배 용량의 ANDREA-120M은 사실적 회상, 다단락 일관성, 도메인 폭을 학습합니다(생물학 및 신호 처리 샘플에서 외부 평가 9.5/10으로 검증됨).


핵심 요점: 용량은 상한선을 설정합니다. 커리큘럼은 그 상한선에 도달할지 결정합니다. 활동 14-23은 커리큘럼을 다룹니다. [TITLE decoder_only/]

트랜스포머의 세 가지 변형

인코더, 디코더, 둘 다

원래 트랜스포머(Vaswani et al., 2017)는 인코더와 디코더를 번역을 위해 붙여서 출시했습니다. 그 논문에서 세 가지 아키텍처 계보가 파생되었습니다:


인코더 전용 (BERT 계보). 양방향 어텐션, 인과적 마스크 없음. 생성이 아닌 분류에 최적화. 훈련 중 토큰은 과거와 미래를 모두 봅니다.


인코더-디코더 (T5, BART). 인코더가 입력을 읽음; 디코더가 출력 생성, 크로스-어텐션으로 인코더에 주의. 번역, 요약에 사용.


디코더 전용 (GPT, ANDREA). 인과 마스크: 모든 토큰이 과거만 봄. 다음 토큰 예측하도록 훈련. 생성이 무료; 훈련 & 추론이 동일한 순전파 공유.


왜 디코더 전용이 하나의 GPU에서 승리하는가

세 가지 이유:


1. 단일 목표. 다음-토큰 예측이 모든 텍스트에 작동. 쌍으로 된 소스/타겟 불필요.

2. 훈련 & 추론 대칭성. 동일한 순전파, 특별한 생성 로직 없음.

3. 메모리 단순성. 교차 어텐션 없음; 한 스택의 레이어; 하나의 활성화 흐름.


ANDREA는 microGPT로부터 decoder-only 선택을 상속받았으며, microGPT는 nanoGPT로부터, nanoGPT는 GPT-2로부터 상속받았습니다. 혈통은 표준으로 유지됩니다; 토큰화, 훈련 인프라, & 커리큘럼에서 변화가 생깁니다.

ANDREA를 위한 Decoder-Only 이유

훈련 데이터 관점에서 한 가지 이유와 추론 행동 관점에서 한 가지 이유를 들어 ANDREA가 T5와 같은 encoder-decoder 대신 decoder-only 트랜스포머를 사용하는 이유를 설명하세요.

24 GB에 맞는 것들

매개변수당 바이트

RTX 4090은 24 GB의 VRAM을 탑재하고 있습니다. ANDREA-12M 훈련에는 1.4 GB가 사용되었습니다. ANDREA-120M은 훨씬 더 많이 사용했습니다. 이 차이는 간단한 계산 문제로 거슬러 올라갑니다: 훈련 중每個 매개변수가 메모리에 여러 번 나타납니다.


각 매개변수에 대해 훈련은 다음을 유지합니다:

- 가중치 자체 (1× 가중치)

- Adam 첫 번째 모멘트 (m): 가중치와 동일한 형태 (1× 가중치)

- Adam 두 번째 모멘트 (v): 가중치와 동일한 형태 (1× 가중치)

- 기울기: 가중치와 동일한 형태 (1× 가중치)

- 활성화 & 임시값: ~2-4× 가중치 (배치 & 컨텍스트에 따라 다름)


총합: ~6-8× 가중치 수, 정밀도에 따라 결정되는 바이트 단위.


정밀도가 모든 것을 곱한다


정밀도파라미터당 바이트120M 가중치 총합비고
FP324480 MB기준; 가장 안전하지만 가장 느림
FP162240 MBcuBLAS, 메모리 반으로
FP8 E4M31120 MB텐서 코어, NaN 위험

전체 훈련 시 메모리 사용량은 6-8배 곱하세요. ANDREA-120M은 FP16에서 편안하게 훈련됩니다 (~2 GB: 가중치 + 옵티마이저 + 그래디언트); FP8 E4M3은 RTX 4090 텐서 코어에서 훈련 시간을 반으로 줄입니다.


Activity 13 (grow_a_language_model_precision)은 FP 정밀도 트레이드오프를 자세히 설명합니다.

ANDREA-120M의 옵티마이저 상태 크기 계산

ANDREA-120M은 약 120,000,000개의 파라미터를 가집니다. 각 FP32 가중치는 4바이트를 차지합니다. AdamW는 가중치당 두 개의 추가 옵티마이저 상태 부동소수점 수(m, v)를 저장합니다. 계산하세요: (a) FP32로 가중치만, MB 단위; (b) FP32로 가중치 + 옵티마이저 상태, MB 단위; (c) FP16으로 가중치 + 옵티마이저 상태, MB 단위. 산술 과정을 보여주세요.

스물다섯 가지 활동

두 반쪽

이 코스는 깔끔하게 나뉩니다. 첫 번째 반쪽은 microGPT가 분야에 가르친 내용, 즉 하나의 GPU에서 실행되는 트랜스포머를 다룹니다. 두 번째 반쪽은 ANDREA의 실제 기여인 학습하는 커리큘럼을 다룹니다.


반쪽 1: 하나의 GPU에서 실행되는 트랜스포머 (활동 2-13)


#ActivityBeat
2Harris 형태소 토크나이저분포적 분할, 256+N+1 어휘
3토크나이저-다이어트 정렬포화점, 12M이 63.6% 낭비된 이유
4임베딩 & 위치학습된 토큰 + 위치 조회
5스케일된 도트-프로덕트 어텐션Q·Kᵀ/√d, 인과 마스크, softmax
6멀티-헤드 어텐션헤드 분할, 병렬 프로젝션
7트랜스포머 블록MLP, 잔차 연결, 레이어 정규화
8크로스-엔트로피 & 퍼플렉시티로그-우도, SMMA 손실
9커스텀 CUDA에서의 역전파microgpt_cuda.cu를 가로지르는 체인 룰
10AdamW분리된 가중치 감소; 왜 원래 Adam이 죽었는지
11LR warmup + cosine decay2000단계 램프; 왜 즉시 피크가 120M을 파괴하는지
12Gradient clipping전역 L2 노름; 3 CUDA 커널
13FP32 / FP16 / FP8 E4M3정밀도 트레이드오프; 텐서 코어

후반부 2: 학습하는 커리큘럼 (활동 14-24)


#활동핵심
14다중 팔 banditUCB1, 탐색 vs 활용
15단계 기반 주사위 제어7/14/21/28/42 단계, 1d3/1d4 주사위
16보상 귀속 & EMA소스별 손실 EMA, 1000× 스케일링
17소스 플로어 & 에포크 페널티1/(1+epochs)로 암기 방지
18커버리지 보너스문서 수준 추적, 1.3× 신선도
19커리큘럼 워밍업처음 20K 스텝에서 7 채팅/산문 소스
20문자수가 아닌 형태로 필터링has_system_prompt_shape()
21일관성 기반 조기 종료빅그램/트그램/단어/문자 자동 중단
22체크포인트, 재개, 신호형식, SIGTERM/SIGUSR1, loss.json 연속성
23샘플 감사 & 외부 평가실행 읽기, 9.5/10 영역
24microGPT에서 ANDREA-120M으로v1 붕괴, v2 수정, v2.5 패치, v3 세련

또한 동반 자료: geometry_of_andrea는 모든 레이어를 기하학으로 본다 (임베딩 공간, 어텐션은 투영으로, 손실 표면, bandit은 이산 단순체 위의 산책).


제안 순서

활동 2-13은 작동하는 트랜스포머를 구축합니다. 트랜스포머를 훈련한 적이 있다면 2부로 건너뛰세요; 호기심이 생기면 돌아오세요.


가능한 한 각 활동은 독립적으로 설계되었습니다. Math beats 참조는 이전 활동을 이름으로 언급합니다(활동 5 참조: scaled dot-product attention). 코드 참조는 ~/git/uncloseai-cli/microgpt/microgpt_cuda.cu & microgpt/training_proxy.py를 가리킵니다.

어디서 시작하시겠습니까?

24개 활동 + 기하학 동반 자료를 보고, 시작하고 싶은 한 가지 활동과 한 가지 이유를 이름하세요: 선행 지식 격차, 전문적 관련성, 또는 순수한 호기심. 정답은 없습니다; 코스 경로는 당신의 것입니다.