Mô hình ngôn ngữ
Mô hình ngôn ngữ n-grams
Mô hình ngôn ngữ mạng nơ ron
Giới thiệu mô hình ngôn ngữ nổi tiếng gần đây: GPT1, GPT2, GPT3, GPT 3.5, LLAMA1, LLAMA 2
Mô hình ngôn ngữ Mistral
1. Khái niệm mô hình ngôn ngữ
1.1. Language Model + RNN
1.2. Một số ghi chú hay
1.3. Code thực hành
1.4. Video Zoom
2. Các mô hình ngôn ngữ hiện đại
2.1. Mô hình ngôn ngữ TinyLlama
TinyLLAMA với 1.1 tỷ tham số đào tạo trên 1 nghìn tỷ tokens.
Dữ liệu sử dụng
SlimPajama: 1.2 nghìn tỷ tokens
Starcoderdata: 250 tỷ tokens bao gồm 86 ngôn ngữ lập trình. Ngoài ra nó còn có chứa văn bản của Github issues
Sau khi kết hợp hai bộ này tác giả có một bộ dataset khoảng 950 tỷ token
Kiến trúc của TinyLLAMA
Positional embedding: Tương tự LLAMA, TinyLLAMA sử dụng RoPE (Rotary Positional Embedding) để embed thông tin vị trí các token trong câu
Tương tự LLAMA, TinyLLAMA sử dụng RMSNorm để chuẩn hóa đầu vào trước khi đưa qua các lớp của Transformer
TinyLLAMA vẫn sử dụng SwiGLU. Xem chi tiết về SwiGLU ở bài viết sau đây
Nổi trội ở đây là TinyLLAMA sử dụng grouped-query attention để giảm bộ nhớ và tăng tốc độ inference.
Chi tiết cách tăng tốc của TinyLLAMA
Fully Sharded Data Parallel (FSDP): training cho nhiều máy. Cũng không quá đặc biệt, kỹ thuật train data song song hầu hết đều phải sử dụng khi đào tạo mô hình ngôn ngữ lớn.
Flash Attention phiên bản 2. Paper: https://arxiv.org/abs/2307.08691
Tối ưu quá trình tính toán Attention của mô hình Transformer, giảm độ phức tạp tính toán hàm mũ xuống bậc 1. Tiết kiếm 10-20 bộ nhớ, tăng tốc Attention 2-4 lần.
Công thức Attention thông thường bên trên được tính trên HBM - Bộ nhớ băng thông cao - High Bandwidth Memory của GPUs.
Flash Attention thay vì chỉ sử dụng HBM thì sử dụng cả SRAM của GPU
Tải đầu vào từ HBM sang SRAM
Tính toán Attention mà không lưu S và P vào HBM
Chi tiết xem thêm tại bài báo: https://arxiv.org/abs/2307.08691
4. Kết quả của TinyLlama
Tất nhiên là một model có số lượng tham số ít cho nên mô hình TinyLlama không có kết quả tốt so với LLAMA.
Một số hình ảnh về hiệu năng:
Hiệu năng của LLAMA:
Tuy nhiên thì chúng ta cũng học được rất nhiều từ cách đào tạo và tối ưu của Tiny để có thể áp dụng cho dự án của mình.