Giới thiệu blog
- Đây là bài viết thứ tám trong chuỗi blog dựa trên cuốn sách "Build a Large Language Model (from Scratch)" của Sebastian Raschka.
- Bài viết này trình bày cách triển khai "trainable self-attention".
Cách hoạt động của LLM dựa trên transformer kiểu GPT chỉ dành cho decoder
- Chuỗi ký tự được tách thành các token, và mỗi token được ánh xạ thành một chuỗi vector để tạo token embedding.
- Positional embedding được tạo ra để hình thành chuỗi embedding đầu vào.
- Sử dụng embedding đầu vào để tạo attention score cho từng token.
- Chuẩn hóa attention score để tạo attention weight.
- Tạo context vector cho từng token.
Cơ chế scaled dot-product attention
- Tính attention score bằng cách chiếu chuỗi đầu vào thành ba ma trận (query, key, value).
- Chuẩn hóa attention score để tạo attention weight, rồi dùng chúng để tính context vector.
- Toàn bộ quá trình này được thực hiện thông qua phép nhân ma trận hiệu quả.
Phép chiếu giữa các không gian bằng ma trận
- Ma trận được dùng để chiếu vector sang không gian có chiều khác.
- Chiếu embedding đầu vào sang không gian query, key, value để tính attention score.
Chuẩn hóa attention score
- Sử dụng hàm softmax để chuẩn hóa attention score.
- Chuẩn hóa bằng cách chia cho căn bậc hai của số chiều để giải quyết vấn đề gradient nhỏ.
Tạo context vector
- Sử dụng attention weight để tính context vector của từng token.
- Chiếu embedding đầu vào sang không gian value, rồi lấy tổng có trọng số theo attention weight để tạo context vector.
Bước tiếp theo
- Sẽ tiếp tục đề cập đến causal self-attention và multi-head attention.
- Cũng có kế hoạch khám phá câu hỏi "vì sao" đằng sau cơ chế self-attention.
Kết luận
- Bài viết blog này có thể giúp hiểu rõ hơn về cơ chế self-attention.
- Có thể để lại câu hỏi hoặc ý kiến bổ sung trong phần bình luận.
Chưa có bình luận nào.