Tự xây AI từ số 0 — không gọi API
Hầu hết tài liệu AI hiện nay dạy bạn gọi model của người khác: import thư viện, nạp checkpoint, chạy inference. Series này đi đường ngược lại — tự xây mọi thứ từ số 0: từ hồi quy tuyến tính một tham số, qua tensor engine và autograd tự viết, đến mạng MLP, CNN nhận dạng chữ số, Transformer, và cuối cùng là một GPT-mini tiếng Việt train ngay trong trình duyệt của bạn. Không API key, không server, không "hộp đen" — mọi phép nhân ma trận, mọi gradient đều là code vanilla JavaScript bạn đọc được và sửa được.
Mỗi khái niệm đi kèm demo tương tác chạy tại chỗ (kéo learning rate xem "hòn bi" lăn trên loss landscape, vẽ chữ số cho mạng đoán live, xem decision boundary cong dần theo từng epoch) và một snippet "đối chiếu PyTorch tương đương" — bản 1-1 với code JS của bài — để khi học xong bạn đọc được source của micrograd, nanoGPT và làm việc được với công cụ công nghiệp thật.
Về Series này
Xương sống của series là NeuroJS — thư viện mini tự xây dần qua từng bài: tensor (Bài 5) → autograd (Bài 7) → optimizer (Bài 9) → convolution (Bài 11) → attention (Bài 14). Cột mốc giữa series là Neural Playground: bộ trực quan hoá cho bạn NHÌN THẤY mạng neural uốn không gian dữ liệu cho tới khi hai lớp điểm tách ra được — trực giác mà không cuốn sách tĩnh nào truyền được.
Trước khi bắt đầu
Bảng thuật ngữ nền tảng (Glossary)
| Thuật ngữ | Dịch nghĩa | Định nghĩa ngắn gọn |
|---|---|---|
| Model | Mô hình | Một hàm số có tham số điều chỉnh được, ánh xạ đầu vào thành dự đoán. "Học" nghĩa là chỉnh tham số cho dự đoán khớp dữ liệu. |
| Loss | Hàm mất mát | Con số duy nhất đo mức sai lệch giữa dự đoán và đáp án. Toàn bộ việc huấn luyện chỉ là tìm cách kéo con số này xuống. |
| Gradient | Độ dốc | Vector chỉ hướng làm loss tăng nhanh nhất tại điểm hiện tại; đi ngược hướng đó là cách giảm loss (gradient descent). |
| Learning rate | Tốc độ học | Kích thước bước nhảy mỗi lần cập nhật tham số. Quá lớn thì phân kỳ (loss nổ), quá nhỏ thì hội tụ chậm như rùa. |
| Epoch | Lượt duyệt | Một lần model duyệt qua toàn bộ tập dữ liệu huấn luyện. |
| Batch | Lô dữ liệu | Nhóm mẫu được xử lý cùng lúc trong một bước cập nhật — dung hoà giữa tốc độ tính toán và độ nhiễu của gradient. |
| Overfitting | Quá khớp | Model "học thuộc lòng" dữ liệu huấn luyện (kể cả nhiễu) nên điểm số rất cao trên tập train nhưng kém trên dữ liệu chưa từng thấy. |
| Regularization | Điều chuẩn | Các kỹ thuật kìm bớt độ tự do của model để chống quá khớp: phạt L2, dropout, dừng sớm (early stopping). |
| Activation | Hàm kích hoạt | Hàm phi tuyến (ReLU, sigmoid, tanh) đặt sau mỗi lớp. Thiếu nó, mạng sâu bao nhiêu tầng cũng gộp lại thành đúng một phép biến đổi tuyến tính. |
| Backpropagation | Lan truyền ngược | Thuật toán tính gradient cho MỌI tham số trong một lượt, bằng cách áp dụng chain rule đi ngược qua computation graph. |
| Embedding | Vector nhúng | Biểu diễn từ/token bằng vector số dày đặc, học được, sao cho nghĩa gần nhau thì vector nằm gần nhau trong không gian. |
| Attention | Cơ chế chú ý | Cơ chế cho mỗi vị trí trong chuỗi "nhìn" trực tiếp mọi vị trí khác với trọng số học được — lời giải cho điểm yếu truyền tin tuần tự của RNN. |
| Transformer | Kiến trúc Transformer | Kiến trúc xếp chồng các khối self-attention + MLP (kèm residual, layernorm) — nền móng của GPT, BERT và hầu hết LLM hiện đại. |
| Token | Đơn vị văn bản | Mẩu văn bản nhỏ nhất model xử lý (ký tự, mảnh từ, hoặc từ) sau khi qua tokenizer; LLM dự đoán token kế tiếp, không phải chữ cái kế tiếp. |
| Temperature | Nhiệt độ | Hệ số làm nhọn/bẹt phân bố xác suất khi sinh văn bản: thấp → an toàn nhưng lặp lại, cao → đa dạng nhưng dễ lộn xộn. |
| Reward | Phần thưởng | Tín hiệu số mà môi trường trả cho agent trong học tăng cường; agent học chiến lược tối đa hoá tổng phần thưởng dài hạn. |
| Policy | Chính sách | Chiến lược của agent: ở mỗi trạng thái thì chọn hành động nào (có thể ngẫu nhiên có trọng số). |
| Alignment | Căn chỉnh | Bài toán làm hành vi của model khớp với ý định con người — RLHF là kỹ thuật căn chỉnh nổi tiếng nhất (nối từ Q-learning ở Bài 17). |
Danh sách 19 bài học trong lộ trình
Lộ trình chia 4 chặng: nền tảng học máy → neural network cốt lõi → kiến trúc chuyên biệt → LLM. Các bài sẽ được mở khoá dần khi xuất bản.
Học máy là gì? Hồi quy tuyến tính từ số 0
Quy tắc viết tay vs học từ dữ liệu. Bộ ba model–loss–data, MSE, nghiệm giải tích vs phương pháp lặp. Demo: kéo thả điểm dữ liệu trên canvas, đường thẳng tự fit, loss hiện live.
Gradient Descent & đạo hàm
Đạo hàm và chain rule từ trực giác hình học. Learning rate: hội tụ, phân kỳ, zigzag. Batch vs mini-batch vs SGD. Demo: loss landscape tương tác — kéo learning rate xem "hòn bi" lăn hoặc văng.
Phân loại & hồi quy logistic
Sigmoid, cross-entropy (vì sao không dùng MSE cho phân loại), decision boundary. Confusion matrix, precision/recall/F1. Demo: kéo điểm dữ liệu xem boundary và metrics đổi tức thì.
Học không giám sát: K-means & PCA
Ba nhánh học máy. K-means từng bước và bẫy khởi tạo. Phương sai, phép chiếu, power iteration ở mức trực giác. Demo: k-means animation từng vòng lặp + PCA chiếu 3D→2D tương tác.
Tensor engine mini
Tự xây tensor JS: shape/stride, broadcasting, matmul. Vì sao vectorization nhanh. Khởi sinh NeuroJS — engine dùng chung cả series. Demo: benchmark loop-thuần vs vectorized ngay trên trang.
Neuron & mạng MLP
Perceptron → MLP. Activation và vì sao cần phi tuyến. Trực giác universal approximation. Demo: Neural Playground — xem mạng neural uốn không gian, boundary cong dần theo từng epoch.
Backpropagation & autograd
Chain rule trên computation graph. Tự xây autograd engine kiểu micrograd. Gradient checking bằng sai phân hữu hạn. Demo: bấm backward xem gradient chảy ngược từng nút trên graph SVG.
Huấn luyện thực tế: Overfitting
Train/val/test, bias–variance. L2, dropout, early stopping, data augmentation. Demo: kéo slider độ phức tạp model xem boundary overfit "ôm" từng điểm nhiễu.
Tối ưu hoá nâng cao
Momentum, RMSProp, Adam viết đủ công thức. LR schedule, warmup. Khởi tạo Xavier/He, batch norm. Demo: đua 4 optimizer trên cùng loss landscape — 4 vệt màu xuất phát cùng một điểm.
Dự án 1: Nhận dạng chữ số MNIST
Data pipeline: chuẩn hoá, shuffle, mini-batch. Vòng lặp train/eval, ma trận nhầm lẫn trên tập test thật. Demo: vẽ chữ số bằng chuột → mạng TỰ TRAIN trong browser đoán live kèm xác suất.
CNN — mạng tích chập
Kernel, stride, padding, pooling. Chia sẻ trọng số và bất biến tịnh tiến. Feature map theo chiều sâu. Demo: kéo kernel trượt trên ảnh xem feature map; so tham số CNN vs MLP cùng bài toán.
Embedding & word2vec
Biểu diễn phân tán vs one-hot. Skip-gram, negative sampling ở mức cơ chế. Cosine similarity, số học vector "vua − đàn ông + đàn bà". Demo: không gian embedding 2D — gõ từ, xem hàng xóm gần nhất.
Chuỗi: RNN → Attention
RNN unroll theo thời gian, vanishing gradient. LSTM ở mức concept. Attention là lời giải truy cập trực tiếp. Demo: heatmap attention trên câu thật — rê chuột từng từ xem nó "nhìn" từ nào.
Transformer
Self-attention Q/K/V từng phép nhân ma trận. Multi-head, positional encoding, residual + layernorm. Đếm tham số 1 block. Demo: Transformer block chạy từng bước trên chuỗi ngắn, xem ma trận attention.
Sinh ảnh: GAN & Diffusion
Minimax game G vs D, mode collapse. Diffusion: nhiễu tiến/lùi, denoise từng bước, vì sao diffusion soán ngôi GAN. Demo: diffusion trên phân bố điểm 2D — xem hình dạng "mọc" ra từ nhiễu thuần.
Tokenizer & pretraining LLM
Tự xây BPE từng bước merge. Next-token prediction = cross-entropy trên vocab. Context window, scaling law. Demo: BPE tokenizer live — gõ tiếng Việt xem token tách, so vocab 100 vs 1.000.
Học tăng cường: Q-learning
Agent, environment, reward. Phương trình Bellman, bảng Q, ε-greedy. Nền móng cho RLHF. Demo: gridworld — agent tự học đường đi tối ưu, xem bảng Q cập nhật live.
Sinh văn bản, Sampling & Alignment
Temperature, top-k, top-p từ phân bố xác suất thật. Greedy vs beam. RLHF từ cơ chế. Prompt nhìn từ góc xác suất. Demo: chỉnh temperature/top-p xem phân bố token và văn bản sinh ra đổi tức thì.
Capstone: GPT-mini tiếng Việt trong browser
Ghép tokenizer + Transformer + sampling thành GPT tí hon (~49.000 tham số), train FULL-BATCH trên 40 câu mở đầu Truyện Kiều NGAY TRÊN TRANG, sinh chữ live. Giới hạn thật của model tí hon và bản đồ học tiếp.
Bình luận