[Zoom 20-05-2025] Transformer Nâng cao
Transformer Nâng cao
1. Tối ưu trên văn bản dài
1.1. Cách 1 - ROPE
Đưa Rope vào Transformer:
Team nâng cấp mô hình Transformer thay vì sử dụng Embedding vị trí thường thì sử dụng Phép nhúng vị trí xoay (Rotary Position Embedding) giúp cải thiện hiệu năng phân loại từ 1-2%.
RoFormer thêm thông tin vị trí vào vector q và k thay vì phải tạo một lớp chỉ positional Embedding.
RoFormer áp dụng việc xoay vector q và k với một góc không đổi để tăng mối quan hệ vị trí tương đối.
Ví dụ ở vị trí trong câu từ m=1 đến m=2 và vị trí m=2 đến m=3, ở cùng một vị trí embedding ví dụ i = 0 vector q sẽ quay một góc giống nhau. Tương tự vector k cũng quay một góc giống nhau.
Notebook: https://colab.research.google.com/drive/1QBkP6ve4f2-KapKaWDeodkR8_2JEYWjw?usp=sharing.
Bài báo: https://arxiv.org/pdf/2104.09864v5.
Biểu diễn ROPE: https://colab.research.google.com/drive/1SMsORT8958HOs2c99bC9FYV4sfKrs0el?usp=sharing
1.2. Cách 2 - Sparse Attention
1.3. Cách 3 - Flash Attention
Cơ chế
Lập trình
Team thực hiện Benchmark Multiheaded Attention thường của Transformer và FlashAttention để tối ưu truy cập memory của GPU.
Kết quả sau 1000 lần thực hiện thì FlashAttention nhanh hơn khoảng gấp rưỡi so với Attention thông thường.
BenchMark này được thực hiện trên GPU T4 Google Colab.
P/S: trong Pytorch hàm scaled_dot_product_attention đã sử dụng Attention.
Notebook và kết quả: https://colab.research.google.com/drive/1-HjN3McMS_boMyBZFAt1TP7NLoRUd346?usp=sharing
1.4. Cách 4 - Multiquery Attention
1.5. Mixture of Experts
Giải thích chi tiết: https://huggingface.co/blog/moe
Open Source MOE: https://huggingface.co/allenai/OLMoE-1B-7B-0924