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

un

khách
1 / ?
trở lại bài học

Những gì Một Mô hình Ngôn ngữ Dự đoán

Một Động cơ Tiếp nối Xác suất

Một mô hình ngôn ngữ nhận một chuỗi các token & gán một phân phối xác suất cho token tiếp theo. Đưa vào the cat sat on the & nó xuất ra xác suất trên toàn bộ từ vựng: xác suất cao cho mat, floor, couch; xác suất thấp cho xylophone, Tuesday.


Lấy mẫu phân phối đó, thêm một token, & đưa lại: vòng lặp đó tạo văn bản từng token một. Tạo tự hồi quy, được đặt tên vì mỗi bước hồi quy trên đầu ra trước đó của chính nó.


Ba Con Số Xác Định Một Mô Hình Ngôn Ngữ


Kích thước từ vựng (V). Số lượng token riêng biệt mà mô hình có thể tạo ra. ANDREA-12M sử dụng 4.353 token; ANDREA-120M sử dụng 8.449.


Cửa sổ ngữ cảnh (T). Số lượng token vừa trong một lần forward pass. Các mô hình ANDREA sử dụng T = 1.024.


Số lượng tham số (P). Số lượng trọng số đã học nằm bên trong. 12M, 120M, & 480M đặt tên cho một họ theo P.


Một Gia Đình Ba Thành Viên


Biến thểd_modelHeadsLayersContextParams
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

Ba núm vặn mở rộng quy mô: d_model (chiều rộng của mọi vector nội bộ), n_layer (độ sâu của các khối transformer xếp chồng), n_head (các phép chiếu attention song song). Từ vựng & ngữ cảnh giữ nguyên trong toàn bộ họ.

Đọc Bảng Gia Đình

So sánh ANDREA-12M (d_model=384, 6 layers, 12 heads) với ANDREA-120M (d_model=768, 12 layers, 12 heads). Nêu hai trục kiến trúc mở rộng từ 12M đến 120M, & một trục giữ nguyên. Một lý do một câu cho mỗi lựa chọn mở rộng sẽ hữu ích.

Tại Sao Nhỏ Bé Quan Trọng

Ràng buộc như Sự Giải phóng

Các mô hình ngôn ngữ lớn với hàng trăm tỷ tham số yêu cầu hàng nghìn GPU, tập dữ liệu độc quyền, & ngân sách doanh nghiệp. Ít người được huấn luyện một mô hình như vậy. Ít người được sửa chữa một mô hình như vậy.


Một mô hình ngôn ngữ nhỏ trên một GPU lật ngược điều đó. Bất kỳ ai có 4090 (hoặc 3060) đều có thể tái tạo ANDREA từ dữ liệu mở. Công thức huấn luyện cũng chính là thẻ mô hình. Mã mở, trọng số mở, dữ liệu mở; nguồn gốc đầy đủ trong 72 giờ tính toán.


Dung lượng vs Chất lượng

Các mô hình nhỏ hơn không thể ghi nhớ toàn bộ tập huấn luyện của chúng. ANDREA-12M, với 12.8M tham số, thiếu dung lượng để lưu trữ nội dung sự kiện; nó học cấu trúc lượt, phân phối từ vựng, & hình dạng phản hồi. ANDREA-120M, với dung lượng gấp 10 lần, học ghi nhớ sự kiện, tính mạch lạc đa đoạn, & độ rộng lĩnh vực (đã được xác minh qua chấm điểm bên ngoài ở mức 9.5/10 trên các mẫu sinh học & xử lý tín hiệu).


Thông điệp chính: dung lượng đặt ra một giới hạn trên. Chương trình học quyết định liệu giới hạn đó có được đạt tới hay không. Các hoạt động 14-23 bao quát chương trình học. [TITLE decoder_only/]

Ba Biến Thể Transformer

Encoder, Decoder, Cả Hai

Transformer gốc (Vaswani et al., 2017) đi kèm một encoder & một decoder, được ghép lại với nhau cho việc dịch. Ba dòng kiến trúc phát triển từ bài báo đó:


Chỉ Encoder (dòng BERT). Chú ý hai chiều, không có mặt nạ nhân quả. Tối ưu hóa cho phân loại, không phải sinh. Một token nhìn thấy cả quá khứ & tương lai của nó trong quá trình huấn luyện.


Encoder-decoder (T5, BART). Bộ mã hóa đọc đầu vào; bộ giải mã tạo đầu ra, chú ý đến bộ mã hóa qua cross-attention. Dùng cho dịch thuật, tóm tắt.


Decoder-only (GPT, ANDREA). Causal mask: mỗi token chỉ thấy quá khứ của nó. Được huấn luyện để dự đoán token tiếp theo. Sinh văn bản miễn phí; huấn luyện & suy luận dùng cùng forward pass.


Tại sao Decoder-Only Thắng trên Một GPU

Ba lý do:


1. Mục tiêu duy nhất. Dự đoán token tiếp theo hoạt động trên mọi văn bản. Không cần cặp nguồn/mục tiêu.

2. Đối xứng huấn luyện & suy luận. Cùng một lượt truyền xuôi, không có logic sinh đặc biệt.

3. Đơn giản bộ nhớ. Không có cross-attention; một ngăn xếp các lớp; một luồng kích hoạt.


ANDREA kế thừa lựa chọn decoder-only từ microGPT, vốn kế thừa từ nanoGPT, vốn kế thừa từ GPT-2. Dòng dõi vẫn chuẩn; những gì thay đổi nằm ở tokenization, hạ tầng huấn luyện, & chương trình học.

Tại sao Decoder-Only cho ANDREA

Đưa ra một lý do từ góc độ dữ liệu huấn luyện & một lý do từ góc độ hành vi suy luận tại sao ANDREA sử dụng transformer decoder-only thay vì encoder-decoder như T5.

Những gì vừa với 24 GB

Bytes Per Parameter

RTX 4090 đi kèm 24 GB VRAM. Huấn luyện ANDREA-12M sử dụng 1.4 GB. ANDREA-120M sử dụng nhiều hơn đáng kể. Khoảng cách bắt nguồn từ một bài tập kế toán đơn giản: mỗi tham số xuất hiện nhiều lần trong bộ nhớ trong quá trình huấn luyện.


Đối với mỗi tham số, huấn luyện giữ:

- Chính trọng số (1× weight)

- Khoảnh khắc đầu tiên của Adam (m): cùng kích thước với trọng số (1× trọng số)

- Khoảnh khắc thứ hai của Adam (v): cùng kích thước với trọng số (1× trọng số)

- Gradient: cùng kích thước với trọng số (1× trọng số)

- Kích hoạt & tạm thời: ~2-4× trọng số (thay đổi theo batch & ngữ cảnh)


Tổng cộng: ~6-8× số lượng trọng số, tính bằng byte tùy thuộc vào độ chính xác.


Độ Chính Xác Nhân Lên Mọi Thứ


Độ chính xácBytes/tham sốTổng cho 120M trọng sốGhi chú
FP324480 MBTiêu chuẩn; an toàn nhất, chậm nhất
FP162240 MBcuBLAS, bộ nhớ giảm một nửa
FP8 E4M31120 MBTensor cores, rủi ro NaN

Nhân với 6-8× để có dấu chân đầy đủ trong quá trình huấn luyện. ANDREA-120M huấn luyện thoải mái ở FP16 (~2 GB cho trọng số + optimizer + grads); FP8 E4M3 giảm một nửa thời gian huấn luyện trên tensor cores RTX 4090.


Hoạt động 13 (grow_a_language_model_precision) đi sâu vào các sự đánh đổi độ chính xác FP một cách chi tiết.

Kích thước Trạng thái Optimizer của ANDREA-120M

ANDREA-120M có khoảng 120.000.000 tham số. Mỗi trọng số FP32 chiếm 4 byte. AdamW lưu trữ hai float trạng thái optimizer bổ sung cho mỗi trọng số (m, v). Tính toán: (a) chỉ trọng số ở FP32, tính bằng MB; (b) trọng số + trạng thái optimizer ở FP32, tính bằng MB; (c) trọng số + trạng thái optimizer ở FP16, tính bằng MB. Hãy trình bày phép tính của bạn.

Hai Mươi Lăm Hoạt Động

Hai Nửa

Khóa học này được chia rõ ràng. Nửa đầu bao gồm những gì microGPT đã dạy cho lĩnh vực: một transformer chạy trên một GPU. Nửa sau bao gồm đóng góp thực sự của ANDREA: một chương trình học có khả năng học hỏi.


Nửa 1: Một Transformer trên Một GPU (hoạt động 2-13)


#Hoạt ĐộngNhịp
2Bộ phân tách morpheme Harrisphân đoạn phân bố, từ vựng 256+N+1
3Căn chỉnh tokenizer-dietđiểm bão hòa, tại sao 12M lãng phí 63.6%
4Embeddings & vị trítra cứu token + vị trí học được
5Scaled dot-product attentionQ·Kᵀ/√d, mặt nạ nhân quả, softmax
6Multi-head attentionchia head, chiếu song song
7Khối TransformerMLP, residuals, layer norm
8Cross-entropy & perplexitylog-likelihood, SMMA loss
9Backprop trong CUDA tùy chỉnhquy tắc chuỗi qua microgpt_cuda.cu
10AdamWphân rã trọng số tách rời; tại sao Adam gốc thất bại
11LR warmup + cosine decaydốc tăng 2000 bước; tại sao đỉnh ngay lập tức phá hủy 120M
12Gradient clippingchuẩn L2 toàn cục; 3 nhân CUDA
13FP32 / FP16 / FP8 E4M3đánh đổi độ chính xác; lõi tensor

Nửa 2: Chương trình học Tự học (hoạt động 14-24)


#Hoạt độngĐiểm nổi bật
14Multi-armed banditsUCB1, exploration vs exploitation
15Điều khiển xúc xắc theo giai đoạn7/14/21/28/42 giai đoạn, xúc xắc 1d3/1d4
16Phân bổ phần thưởng & EMAEMA mất mát theo nguồn, mở rộng 1000×
17Giới hạn nguồn & phạt epoch1/(1+epochs) ngăn chặn học thuộc lòng
18Thưởng phủ sóngTheo dõi cấp tài liệu, 1.3× độ mới
19Khởi động chương trình học7 nguồn chat/văn xuôi 20K bước đầu tiên
20Lọc theo hình dạng, không phải ký tựhas_system_prompt_shape()
21Dừng sớm có cổng coherencebigram/trigram/word/char auto-halt
22Checkpoint, tiếp tục, tín hiệuformat, SIGTERM/SIGUSR1, loss.json continuity
23Kiểm tra mẫu & chấm điểm bên ngoàiđọc một run, lãnh thổ 9.5/10
24Từ microGPT đến ANDREA-120Msụp đổ v1, sửa chữa v2, bản vá v2.5, đánh bóng v3

Cộng thêm một người bạn đồng hành: geometry_of_andrea xem mỗi lớp như hình học (không gian embedding, attention như phép chiếu, bề mặt loss, bandit như một đường đi trên simplex rời rạc).


Thứ tự gợi ý

Các hoạt động 2-13 xây dựng một transformer hoạt động. Bỏ qua đến phần 2 nếu bạn đã huấn luyện transformer trước đây; quay lại khi sự tò mò trỗi dậy.


Mỗi hoạt động độc lập càng nhiều càng tốt. Các tham chiếu toán học đề cập đến các hoạt động trước đó bằng tên (xem hoạt động 5: scaled dot-product attention). Các tham chiếu mã chỉ đến microgpt/microgpt_cuda.cu & microgpt/training_proxy.py trong ~/git/uncloseai-cli/.

Bạn Sẽ Bắt Đầu Từ Đâu?

Nhìn vào 24 hoạt động + phần geometry companion, nêu tên một hoạt động bạn muốn bắt đầu & một lý do: khoảng trống kiến thức trước đó, liên quan chuyên môn, hoặc sự tò mò thuần túy. Không có câu trả lời sai; con đường qua khóa học thuộc về bạn.