List of topics
Biểu thức chính quy - Regular Expressions
[31-1-2024] Chi tiết các thuật toán tách từ
Chuẩn hóa văn bản
Vector Semantics và Embeddings
SkipGram, Glove và FastText
Mô hình ngôn ngữ
RNN và LSTM
Bài toán dịch máy
Mô hình Transfomer
Mô hình Bert và ứng dụng
Thực hành Bert và ứng dụng với bài toán NER và POS Tag
GPT và ứng dụng
Bài toán tìm kiếm và hỏi đáp - Question Answering
Vector Database and RAG
Prompt Engineering
Semantic Cache
Nâng cao - Mô hình Wave2Vec cho bài toán nhận diện giọng nói
Dự án cuối khóa

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.3. Code thực hành

Click to view more

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.

  1. 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

  1. 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.

  1. 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.

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