Fine tune

1. Giới thiệu

LLM là viết tắt của Large Language Model (Mô hình Ngôn ngữ Lớn). Đây là một loại mô hình học sâu được huấn luyện trên một lượng lớn dữ liệu văn bản để hiểu và sinh ra ngôn ngữ tự nhiên. Các LLM có khả năng xử lý và tạo ra văn bản, thực hiện các nhiệm vụ như trả lời câu hỏi, dịch ngôn ngữ, tóm tắt văn bản, và nhiều ứng dụng khác.

LLM là sự kết hợp của nhiều yếu tố quan trọng, bao gồm:

2. Tại sao phải fine tuning

Fine-tuning là quá trình tinh chỉnh một mô hình đã được huấn luyện trước (pre-trained model) để nó hoạt động tốt hơn trên một nhiệm vụ cụ thể hoặc một tập dữ liệu cụ thể. Dưới đây là một số lý do quan trọng tại sao việc fine-tuning là cần thiết:

  1. Tinh Chỉnh Mô Hình Để Phù Hợp Với Nhiệm Vụ Cụ Thể

    • Tối ưu hóa cho nhiệm vụ cụ thể: Mô hình đã được huấn luyện trước (pre-trained model) như GPT-3 hoặc BERT thường được huấn luyện trên một tập dữ liệu rộng lớn và tổng quát. Fine-tuning giúp điều chỉnh mô hình để cải thiện hiệu suất cho các nhiệm vụ cụ thể như phân loại văn bản, nhận dạng thực thể, hoặc dịch ngôn ngữ.
    • Tăng cường độ chính xác: Mặc dù mô hình pre-trained có thể tạo ra các dự đoán chính xác ở mức độ cơ bản, fine-tuning giúp cải thiện độ chính xác và phù hợp với các đặc điểm của dữ liệu cụ thể.
  2. Tiết Kiệm Thời Gian và Tài Nguyên

    • Giảm thời gian huấn luyện: Huấn luyện một mô hình từ đầu yêu cầu rất nhiều dữ liệu và tài nguyên tính toán. Fine-tuning sử dụng một mô hình đã được huấn luyện trước, giúp tiết kiệm thời gian và tài nguyên.
    • Tận dụng kiến thức đã có: Các mô hình pre-trained đã học được rất nhiều thông tin từ dữ liệu huấn luyện rộng lớn. Fine-tuning cho phép tận dụng kiến thức này để áp dụng cho nhiệm vụ cụ thể mà không cần phải huấn luyện từ đầu.
  3. Cải Thiện Hiệu Suất Trong Các Tình Huống Cụ Thể

    • Phù hợp với dữ liệu đặc thù: Dữ liệu huấn luyện cụ thể cho nhiệm vụ hoặc miền của bạn có thể khác biệt so với dữ liệu tổng quát. Fine-tuning giúp mô hình thích nghi với các đặc điểm và mẫu trong dữ liệu cụ thể của bạn.
    • Điều chỉnh cho các biến thể ngữ nghĩa: Trong các nhiệm vụ như sinh văn bản hoặc dịch máy, fine-tuning giúp mô hình tạo ra văn bản hoặc dịch chính xác hơn theo ngữ cảnh cụ thể.
  4. Xử Lý Các Tình Huống Đặc Biệt

    • Giải quyết bias trong dữ liệu: Mô hình pre-trained có thể có các bias từ dữ liệu huấn luyện rộng lớn. Fine-tuning có thể giúp điều chỉnh hoặc giảm thiểu các bias này, đặc biệt khi dữ liệu của bạn có các đặc điểm văn hóa, ngữ nghĩa hoặc ngữ cảnh khác biệt.
    • Tinh chỉnh để đáp ứng các yêu cầu cụ thể: Fine-tuning có thể điều chỉnh mô hình để đáp ứng các yêu cầu cụ thể của ứng dụng, như hạn chế đầu ra, thêm yêu cầu ngữ pháp hoặc tuân thủ các quy định cụ thể.
  5. Tối Ưu Hóa Cho Hiệu Suất

    • Tinh chỉnh hyperparameters: Trong quá trình fine-tuning, bạn có thể điều chỉnh các hyperparameters như learning rate, batch size, hoặc số lượng epoch để tối ưu hóa hiệu suất của mô hình cho nhiệm vụ cụ thể

3. Cách để fine tuning

Self-Supervised Learning (Học Tự Giám Sát):

Supervised Learning (Học Có Giám Sát):

Reinforcement Learning (Học Tăng Cường):

4. Thách thức khi train LLM

  1. Yêu cầu về tài nguyên tính toán khổng lồ:
    • Bộ nhớ tạm (Temp memory): Để xử lý lượng thông tin khổng lồ trong quá trình huấn luyện, LLM cần một lượng bộ nhớ tạm rất lớn.
    • Tính toán tiền xuôi (Forward Activations): Các phép tính tiền xuôi để cập nhật trọng số của mô hình cũng tiêu tốn rất nhiều tài nguyên tính toán.
    • Gradient: Quá trình tính toán gradient để cập nhật trọng số đòi hỏi nhiều phép toán phức tạp.
    • Optimizer states: Các trạng thái của bộ tối ưu hóa cũng chiếm một lượng bộ nhớ đáng kể.
    • Trọng số có thể huấn luyện (Trainable Weights): LLM có hàng tỷ tham số cần được huấn luyện, đòi hỏi dung lượng lưu trữ lớn.
    • Thách thức: Việc quản lý và sử dụng hiệu quả các tài nguyên tính toán này là một trong những bài toán khó nhất trong việc huấn luyện LLM.
      2.     Dữ liệu huấn luyện:
    • Lượng dữ liệu khổng lồ: LLM cần được huấn luyện trên một lượng dữ liệu văn bản khổng lồ để có thể hiểu và tạo ra văn bản chất lượng cao.
    • Chất lượng dữ liệu: Không phải tất cả dữ liệu đều có chất lượng tốt. Dữ liệu nhiễu, sai lệch hoặc thiên vị có thể ảnh hưởng đến chất lượng của mô hình.
    • Tiền xử lý dữ liệu: Quá trình làm sạch, chuẩn hóa và phân loại dữ liệu là một công việc tốn thời gian và đòi hỏi nhiều kỹ năng.
    • Thách thức: Thu thập, làm sạch và chuẩn bị dữ liệu chất lượng cao cho việc huấn luyện LLM là một thách thức lớn.
      3.     Thời gian huấn luyện:
    • Thời gian dài: Việc huấn luyện một LLM có thể mất nhiều ngày, thậm chí nhiều tuần.
    • Chi phí: Chi phí điện năng và tài nguyên tính toán cho quá trình huấn luyện là rất cao.
    • Thách thức: Làm thế nào để rút ngắn thời gian huấn luyện mà không làm giảm chất lượng của mô hình là một vấn đề cần được nghiên cứu.
      4.      Kiến trúc mô hình:
    • Độ phức tạp: Kiến trúc của LLM rất phức tạp, bao gồm nhiều lớp và hàng tỷ tham số.
    • Tối ưu hóa siêu tham số: Việc tìm ra các siêu tham số tối ưu cho mô hình là một quá trình thử và sai tốn thời gian.
    • Thách thức: Thiết kế và tối ưu hóa kiến trúc của LLM là một bài toán khó đòi hỏi kiến thức chuyên sâu về học sâu.
      5.     Đánh giá mô hình:
    • Tiêu chí đánh giá đa dạng: Việc đánh giá chất lượng của một LLM đòi hỏi nhiều tiêu chí khác nhau, bao gồm độ chính xác, sự mạch lạc, tính sáng tạo, v.v.
    • Khó khăn trong việc so sánh: Việc so sánh giữa các LLM khác nhau là rất khó khăn do không có một tiêu chuẩn đánh giá chung.

5. PEFT

PEFT (Parameter-Efficient Fine-Tuning) là một phương pháp fine-tuning mô hình học sâu nhằm cải thiện hiệu quả của việc điều chỉnh mô hình mà không cần phải thay đổi toàn bộ các tham số của nó. PEFT tập trung vào việc tối ưu hóa một phần nhỏ của mô hình, thường là các tham số hoặc lớp cụ thể, thay vì toàn bộ mô hình.

Lợi Ích của PEFT

1.     Tiết Kiệm Tài Nguyên:
- Giảm Khối Lượng Tính Toán: PEFT yêu cầu ít tài nguyên tính toán hơn so với việc fine-tuning toàn bộ mô hình, vì nó chỉ tối ưu hóa một phần nhỏ của mô hình.
- Tiết Kiệm Bộ Nhớ: Chỉ cần lưu trữ và cập nhật các tham số được tinh chỉnh, giúp tiết kiệm bộ nhớ so với việc lưu trữ và cập nhật toàn bộ mô hình.
2.     Nhanh Hơn và Hiệu Quả Hơn:
- Thời Gian Huấn Luyện: Việc fine-tuning chỉ các tham số hoặc lớp cụ thể giúp giảm thời gian huấn luyện.
- Quản Lý Dễ Dàng: Quá trình huấn luyện và điều chỉnh dễ dàng hơn khi chỉ cần làm việc với một phần nhỏ của mô hình.
3.     Dễ Dàng Điều Chỉnh:
- Tinh Chỉnh Cho Nhiệm Vụ Cụ Thể: PEFT cho phép bạn dễ dàng điều chỉnh mô hình cho các nhiệm vụ hoặc miền cụ thể mà không cần thay đổi toàn bộ cấu trúc của mô hình.
- Học Tốt Hơn Từ Dữ Liệu Đặc Thù: Mô hình có thể học tốt hơn từ dữ liệu đặc thù của nhiệm vụ cụ thể khi chỉ fine-tuning phần liên quan.
4.     Giảm Thiểu Overfitting:
- Giảm Rủi Ro Overfitting: Tinh chỉnh một phần nhỏ của mô hình có thể giúp giảm nguy cơ overfitting so với việc huấn luyện toàn bộ mô hình từ đầu, vì mô hình ít có khả năng học các đặc điểm không mong muốn từ dữ liệu.
5.     Khả Năng Tái Sử Dụng Mô Hình:
- Tái Sử Dụng Hiệu Quả: Các mô hình pre-trained có thể được fine-tune cho nhiều nhiệm vụ khác nhau mà không cần phải huấn luyện lại từ đầu, giúp tiết kiệm thời gian và công sức

5.1 LoRA

Cơ Bản về LoRA:
1.     Ý Tưởng Chính:
- LoRA giảm số lượng tham số cần được fine-tune bằng cách thay thế một số ma trận trọng số của mô hình bằng các ma trận thấp hơn với hạng thấp. Điều này cho phép mô hình học được các điều chỉnh cần thiết mà không c
- Cần cập nhật tất cả các tham số của mô hình gốc.
2.     Cách Hoạt Động:
- Ma Trận Thấp Hạng: Trong mô hình gốc, các ma trận trọng số lớn (như ma trận trong các lớp fully connected hoặc attention) được thay thế bằng các ma trận hạng thấp, thường là ma trận nhân với ma trận trọng số gốc.
- Bộ Điều Hợp (Adapters): LoRA sử dụng các bộ điều hợp nhỏ, là các mô-đun thêm vào các lớp của mô hình, giúp điều chỉnh các tham số cụ thể mà không cần phải thay đổi toàn bộ mô hình

5.2 Ví dụ

Sử dụng mô hình Transformer cơ sở do Vaswani và cộng sự trình bày năm 2017:

Trong LoRA với hạng r = 8:

5.3 Chọn Lora rank


Hiệu quả của thứ hạng cao hơn dường như đạt đến mức ổn định: Việc sử dụng thứ hạng cao trong LoRA thường cho thấy sự cải thiện hiệu suất rõ rệt, nhưng hiệu quả của nó dường như đạt đến mức ổn định sau một mức độ nhất định. Điều này có nghĩa là việc tiếp tục tăng thứ hạng có thể không mang lại nhiều cải thiện đáng kể về hiệu suất, và việc chọn một giá trị hạng phù hợp có thể tối ưu hóa cả hiệu suất và tài nguyên.

Mối quan hệ giữa thứ hạng và kích thước tập dữ liệu cần nhiều dữ liệu thực nghiệm hơn: Mối liên hệ giữa thứ hạng của LoRA và kích thước của tập dữ liệu cần được khám phá thêm thông qua thực nghiệm. Cần có nhiều nghiên cứu và thử nghiệm hơn để xác định cách mà kích thước tập dữ liệu ảnh hưởng đến hiệu quả của các mức hạng khác nhau, từ đó điều chỉnh thứ hạng để tối ưu hóa hiệu suất cho các kích thước tập dữ liệu khác nhau.

5.4 QLoRA

QLoRA (Quantized LoRA) là một phương pháp cải tiến của LoRA (Low-Rank Adaptation), với mục tiêu giảm bớt tài nguyên tính toán và bộ nhớ cần thiết trong việc fine-tuning các mô hình học sâu. Dưới đây là các điểm nổi bật của QLoRA:

Kiểu Dữ Liệu NormalFloat 4 bit (nf4):

Lượng Tử Hóa Kép:

Quản Lý Bộ Nhớ GPU-CPU Thống Nhất:

Bộ Điều Hợp LoRA Ở Mọi Lớp:

Giảm Độ Chính Xác:

6. ROUGE

ROUGE (Recall-Oriented Understudy for Gisting Evaluation) là một bộ chỉ số được sử dụng để đánh giá chất lượng của các hệ thống sinh văn bản, đặc biệt trong các nhiệm vụ như tóm tắt văn bản, dịch máy và trả lời câu hỏi. ROUGE đo lường mức độ tương đồng giữa văn bản sinh ra bởi mô hình và văn bản tham chiếu (reference text) do con người tạo ra.

Các Thành Phần Chính của ROUGE
1.     ROUGE-N:
- Mô Tả: Đo lường sự trùng khớp giữa các n-gram (chuỗi n từ liên tiếp) trong văn bản sinh ra và văn bản tham chiếu.
- Ví Dụ: ROUGE-1 tính toán độ chính xác và recall của các unigram (từ đơn), trong khi ROUGE-2 đo lường bigram (cặp từ liên tiếp).
2.     ROUGE-L:
- Mô Tả: Đo lường sự trùng khớp của các chuỗi con dài nhất (longest common subsequence) giữa văn bản sinh ra và văn bản tham chiếu. Điều này giúp đánh giá cách mà các đoạn văn bản có thể được sinh ra hoặc tóm tắt một cách liên tục và mạch lạc.
- Lợi Ích: Hữu ích trong việc đo lường độ mạch lạc và tính liên kết của văn bản sinh ra.
3.     ROUGE-Lsum:
- Mô Tả: Phiên bản mở rộng của ROUGE-L, đặc biệt được thiết kế để đánh giá chất lượng của các bản tóm tắt văn bản. Nó tính toán ROUGE-L cho toàn bộ văn bản tóm tắt, so với văn bản tham chiếu.
- Lợi Ích: Đánh giá hiệu quả của các mô hình tóm tắt trong việc giữ lại các thông tin quan trọng.

4.6.1 Ví dụ



7. Ví dụ

-        Model sử dụng Vistral-7B-Chat

Tên đầy đủ: ViSTRAL (Vietnamese Structured Text Representations and Language)

*Kiến trúc:

Số tham số:

Ứng dụng:

Về dataset:

Bên cạnh đó sử dụng WanDB để theo dõi quá trình train.

Và kết quả của quá trình train:

Và tóm tắt của wandb:

8. TÀI LIỆU THAM KHẢO