microgpt
hello! this is a GPT, a neural network that generates text one character at a time. this one has a dataset of names it’ll learn to copy. by default, it spits out random text. skip tutorial
questions
Tại sao lại chọn 16 dimensions, 4 heads, 64 trong MLP?
- Các hyperparameters được chọn khá ngẫu nhiên, nhằm cân bằng giữa tốc độ và khả năng xử lý thông minh.
- Thông thường, ý tưởng được biểu diễn trong vài dimension (16 ở đây, khoảng 10k cho các mô hình LLM hiện đại). Đây là không gian ‘ngữ nghĩa’.
- Một số attention heads giúp tập trung vào các khía cạnh khác nhau của input.
- Một multilayer perceptron lớn hơn giúp học mối quan hệ phi tuyến giữa các yếu tố.
Một ô trong heatmap trọng số có ý nghĩa gì?
- Đó là một mục trong ma trận, nhiều thao tác của chúng tôi giống như W · x, với x là vector có dims=16 đã nhắc đến trước đó.
- W thực hiện một chuyển đổi học được làm một phần của quá trình ‘suy nghĩ’.
Quá trình huấn luyện thay đổi trọng số như thế nào?
- Chúng tôi cố gắng tạo ra ký tự tiếp theo của tên, rồi tính toán cross-entropy của kết quả để xác định sai số.
- Sử dụng gradient descent (backpropagation) để điều chỉnh trọng số nhằm giảm lỗi.
- Qua thời gian, mô hình học cách sinh các tên có nhiều khả năng thuộc dữ liệu huấn luyện hơn.
Attention là gì?
- Nó quyết định ký tự nào quan trọng!
- Ký tự hiện tại có ‘Tôi đang tìm gì?’ (Q).
- Mỗi ký tự trước đó có ‘Tôi chứa gì?’ (K) và một giá trị (V).
- Tính toán như Σᵢ (Q ⋅ Kᵢ) ⋅ Vᵢ, giúp Q ≈ Kᵢ thì mô hình tập trung vào Vᵢ đó.
- Nó cho phép các quy luật phi địa phương như ‘i trước e ngoại trừ sau c’.
RMSnorm là gì?
- RMSnorm(x) = x / √(mean(x²)).
- Nó điều chỉnh lại vector để căn-nghĩa-bình-phương = 1.
- Ngăn ngừa ‘activation drift’ khi giá trị tăng hoặc giảm quá xa nhau.
Tại sao điều chỉnh điểm attention bằng 1/√d?
- Tương tự RMSnorm, dot product cao chiều có thể tăng rất nhanh.
- Phải chia cho chiều để duy trì ổn định. Nếu không, một chỉ số vector có thể chi phối softmax và làm giảm học các thông tin khác.
Tại sao không luôn chọn token có xác suất cao nhất?
- Dẫn đến kết quả máy móc, lặp đi lặp lại.
- Chúng ta muốn có một chút ngẫu nhiên để khám phá không gian tên khả thi đôi khi.
Nó thực sự học được gì?
- Mô hình học được các mẫu đơn giản như ký tự đầu thường gặp và sự luân phiên phụ âm-nguyên âm.
Thêm nhiều layers sẽ làm gì?
- Nhiều layers nghĩa là nhiều bước xử lý tuần tự hơn.
- Layer 1 có thể học các cặp thông dụng như “ie”, “qu”…
- Layer 2 có thể học cấu trúc từ cấp cao hơn, v.v…
- Các mô hình LLM hiện đại có vài chục layers.
Tại sao các kết nối residual lại quan trọng?
- Cho phép gradient truyền thẳng trước và sau từng layer.
- Mỗi layer chỉ cần học những thay đổi nhỏ thay vì tạo lại toàn bộ biểu diễn.
So sánh với ChatGPT?
- Không khác biệt nhiều, chỉ đơn giản là lớn hơn.
- 100+ tỷ tham số, 1000+ dimensions, nhiều layers transformer.
- ChatGPT còn được huấn luyện bằng phản hồi từ con người nữa.
- Nó dự đoán ‘tokens’, như âm tiết hoặc từ hoàn chỉnh.
Source on GitHub. Inspired by Karpathy’s microgpt.