Chaofa Yuan
Ngày 5 tháng 2 năm 2025
Khoảng 6 phút đọc
Chủ đề: hands-on-code, transformer, LLM
- Thuật toán MLA gốc
- Thuật toán MLA với nổ hũ 789 club hấp thụ ma trận
- Các nội dung khác
Trước khi đọc bài viết tải game bắn cá đổi thưởng tiền mặt này, chúng tôi khuyến nghị bạn nên đọc trước bài báo gốc và bài giải thích của Su Jianlin. Điều này sẽ giúp bạn hình dung rõ hơn về MLA (Multi-head Latent Attention) trước khi đi sâu vào mã nguồn để hiểu ba vấn đề sau:
-
MLA là gì và mục tiêu chính của nó là tiết kiệm bộ nhớ cache KV
- Có thể hiểu đơn giản rằng MLA giống như một phiên bản hiệu quả hơn của Group Query Self Attention.
-
Tại sao MLA không tương thích với mã hóa vị trí ROPE?
- MLA sử dụng phân tách kích thước để thực hiện mã hóa vị trí. Cụ thể:
- Một phần của Q và K được dùng riêng cho mã hóa vị trí (gọi là qrope và krope).
- Phần còn lại không tham gia mã hóa vị trí (gọi là qnope và knope).
- Hai phần này được nối lại để tính trọng số chú ý
q = concat(qrope, qnope)
vàk = concat(krope, knope)
, rồi tính đầu ra cuối cùng của qkv. Chi tiết xem trong mã nguồn.
- MLA sử dụng phân tách kích thước để thực hiện mã hóa vị trí. Cụ thể:
-
Cách MLA tiết kiệm bộ nhớ cache KV thông qua hấp thụ ma trận
- Phần này chưa được giải thích chi tiết trong bài báo hoặc thực thi công khai của DeepSeek.
Nếu bạn không muốn đọc văn bản, có thể tham khảo video hướng dẫn từng bước trên B站: [Tái hiện thuật toán MLA từ zero]. Bạn cũng game winvn có thể theo dõi repo GitHub của tôi: [LLMs-zero-to-hero].