-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #132 from hahuyhoang411/trans-vi2
[TRANSLATION] Modules 3 and 4 for the EN to VI
- Loading branch information
Showing
18 changed files
with
20,470 additions
and
218 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,38 @@ | ||
# Parameter-Efficient Fine-Tuning (PEFT) | ||
# Tinh chỉnh hiệu quả tham số (Parameter-Efficient Fine-Tuning - PEFT) | ||
|
||
Khi các mô hình ngôn ngữ ngày càng lớn, việc tinh chỉnh theo cách truyền thống trở nên ngày càng khó khăn. Việc cập nhật toàn bộ một mô hình với hàng tỷ tham số đòi hỏi một lượng lớn bộ nhớ GPU, tốn kém chi phí lưu trữ các phiên bản tinh chỉnh, và thậm chí có thể làm giảm khả năng khái quát hóa ban đầu của mô hình. Phương pháp Tinh chỉnh Hiệu quả Tham số (Parameter-Efficient Fine-Tuning - PEFT) xuất hiện như một giải pháp nhằm giải quyết các thách thức này, bằng cách chỉ điều chỉnh một tập hợp nhỏ tham số của mô hình trong khi giữ nguyên phần lớn tham số ban đầu. | ||
Khi các mô hình ngôn ngữ ngày càng lớn hơn, việc tinh chỉnh truyền thống trở nên ngày càng thách thức. Việc tinh chỉnh đầy đủ một mô hình với 1.7B tham số đòi hỏi bộ nhớ GPU lớn, việc lưu trữ các bản sao mô hình riêng biệt tốn kém, và có nguy cơ làm mất đi các khả năng ban đầu của mô hình. Các phương pháp tinh chỉnh hiệu quả tham số (PEFT) giải quyết những thách thức này bằng cách chỉ điều chỉnh một tập nhỏ các tham số mô hình trong khi giữ nguyên phần lớn mô hình. | ||
|
||
Trong khi tinh chỉnh truyền thống đòi hỏi phải cập nhật toàn bộ tham số của mô hình trong quá trình huấn luyện, các phương pháp PEFT chỉ yêu cầu điều chỉnh dưới 1% số tham số của mô hình gốc. Cách tiếp cận này mang lại những lợi ích vượt trội: | ||
Tinh chỉnh truyền thống cập nhật tất cả các tham số mô hình trong quá trình huấn luyện, điều này trở nên không khả thi với các mô hình lớn. Các phương pháp PEFT giới thiệu cách tiếp cận để điều chỉnh mô hình sử dụng ít tham số có thể huấn luyện hơn - thường ít hơn 1% kích thước mô hình gốc. Việc giảm đáng kể số lượng tham số có thể huấn luyện cho phép: | ||
|
||
- Cho phép fine-tuning trên phần cứng phổ thông với bộ nhớ GPU hạn chế. | ||
- Tối ưu hóa việc lưu trữ, dễ dàng quản lý nhiều mô hình thích ứng cho từng tác vụ cụ thể. | ||
- Cải thiện khả năng tổng quát hóa trong các tình huống dữ liệu hạn chế. | ||
- Rút ngắn đáng kể thời gian huấn luyện và đánh giá. | ||
- Tinh chỉnh trên phần cứng tiêu dùng với bộ nhớ GPU hạn chế | ||
- Lưu trữ nhiều phiên bản điều chỉnh (adapters) cho từng tác vụ một cách hiệu quả | ||
- Khả năng tổng quát hóa tốt hơn trong các trường hợp dữ liệu ít | ||
- Chu kỳ huấn luyện và thử nghiệm nhanh hơn | ||
|
||
## Các phương pháp phổ biến | ||
## Các phương pháp hiện có | ||
|
||
In this module, we will cover two popular PEFT methods: | ||
Trong chương này, chúng ta sẽ tìm hiểu hai phương pháp PEFT phổ biến: | ||
|
||
### 1️⃣ LoRA (Low-Rank Adaptation) | ||
### 1️⃣ Phương Pháp LoRA (Low-Rank Adaptation) | ||
|
||
LoRA đã trở thành phương pháp PEFT được áp dụng rộng rãi nhất, mang lại một giải pháp tinh tế cho việc thích nghi mô hình hiệu quả. Thay vì chỉnh sửa toàn bộ mô hình, **LoRA chèn thêm các ma trận có thể huấn luyện vào các lớp attention của mô hình**. Phương pháp này thường giúp giảm khoảng 90% số lượng tham số cần huấn luyện, đồng thời vẫn duy trì hiệu suất tương đương với việc fine-tuning toàn bộ mô hình. Chúng ta sẽ tìm hiểu chi tiết về LoRA trong mục [LoRA (Low-Rank Adaptation)](./lora_adapters.md). | ||
|
||
### 2️⃣ Tinh chỉnh Prompt | ||
LoRA đã nổi lên như phương pháp PEFT được áp dụng rộng rãi nhất, cung cấp giải pháp hoàn hảo cho việc điều chỉnh mô hình hiệu quả mà không tốn nhiều tài nguyên tính toán. Thay vì sửa đổi toàn bộ mô hình, **LoRA đưa các ma trận có thể huấn luyện vào các lớp attention của mô hình.** Cách tiếp cận này thường giảm các tham số có thể huấn luyện khoảng 90% trong khi vẫn duy trì hiệu suất tương đương với tinh chỉnh đầy đủ. Chúng ta sẽ khám phá LoRA trong phần [LoRA (Low-Rank Adaptation)](./lora_adapters.md). | ||
|
||
Prompt tuning cung cấp một cách tiếp cận **nhẹ nhàng** hơn nữa bằng cách **thêm các token có thể huấn luyện** vào đầu vào thay vì chỉnh sửa trọng số của mô hình. Mặc dù prompt tuning ít phổ biến hơn so với LoRA, nhưng đây vẫn là một kỹ thuật hữu ích để nhanh chóng thích nghi mô hình với các nhiệm vụ hoặc lĩnh vực mới. Chúng ta sẽ khám phá prompt tuning trong mục [Prompt Tuning](./prompt_tuning.md) | ||
### 2️⃣ Phương Pháp Điều Chỉnh Chỉ Thị (Prompt Tuning) | ||
|
||
## Bài tập | ||
Prompt tuning cung cấp cách tiếp cận **thậm chí nhẹ hơn** bằng cách **thêm các token có thể huấn luyện vào đầu vào** thay vì sửa đổi trọng số mô hình. Prompt tuning ít phổ biến hơn LoRA, nhưng có thể là kỹ thuật hữu ích để nhanh chóng điều chỉnh mô hình cho các tác vụ hoặc lĩnh vực mới. Chúng ta sẽ khám phá prompt tuning trong phần [Prompt Tuning](./prompt_tuning.md). | ||
|
||
| Tiêu đề | Mô tả | Bài tập | Đường dẫn | Colab | | ||
|-------|-------------|----------|------|-------| | ||
| LoRA Fine-tuning | Tìm hiểu cách Fine-tune mô hình sử dụng LoRA | 🐢 Huấn luyện mô hình sử dụng LoRA<br>🐕 Thử nghiệm với nhiều giá trị hạng khác nhau<br>🦁 So sánh hiệu quả với fine-tune toàn bộ | [Notebook](./notebooks/finetune_sft_peft.ipynb) | <a target="_blank" href="https://colab.research.google.com/github/huggingface/smol-course/blob/main/3_parameter_efficient_finetuning/notebooks/finetune_sft_peft.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a> | | ||
| Load LoRA Adapters | Tìm hiểu cách tải và sử dụng các LoRA adapter đã được huấn luyện | 🐢 Tải adapter đã được huấn luyện trước<br>🐕 Gộp adapter với mô hình gốc<br>🦁 Chuyển đổi giữa nhiều adapter | [Notebook](./notebooks/load_lora_adapter.ipynb) | <a target="_blank" href="https://colab.research.google.com/github/huggingface/smol-course/blob/main/3_parameter_efficient_finetuning/notebooks/load_lora_adapter.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a> | | ||
<!-- | Prompt Tuning | Learn how to implement prompt tuning | 🐢 Train soft prompts<br>🐕 Compare different initialization strategies<br>🦁 Evaluate on multiple tasks | [Notebook](./notebooks/prompt_tuning_example.ipynb) | <a target="_blank" href="https://colab.research.google.com/github/huggingface/smol-course/blob/main/3_parameter_efficient_finetuning/notebooks/prompt_tuning_example.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a> | --> | ||
## Notebooks bài tập | ||
|
||
## Resources | ||
- [PEFT Documentation](https://huggingface.co/docs/peft) | ||
- [LoRA Paper](https://arxiv.org/abs/2106.09685) | ||
- [QLoRA Paper](https://arxiv.org/abs/2305.14314) | ||
- [Prompt Tuning Paper](https://arxiv.org/abs/2104.08691) | ||
- [Hugging Face PEFT Guide](https://huggingface.co/blog/peft) | ||
- [How to Fine-Tune LLMs in 2024 with Hugging Face](https://www.philschmid.de/fine-tune-llms-in-2024-with-trl) | ||
- [TRL](https://huggingface.co/docs/trl/index) | ||
| Tiêu đề | Mô tả | Bài tập | Link | Colab | | ||
|---------|--------|---------|------|-------| | ||
| Tinh chỉnh LoRA | Học cách tinh chỉnh mô hình sử dụng LoRA adapters | 🐢 Huấn luyện mô hình sử dụng LoRA<br>🐕 Thử nghiệm với các giá trị rank khác nhau<br>🦁 So sánh hiệu suất với tinh chỉnh đầy đủ | [Notebook](./notebooks/finetune_sft_peft.ipynb) | <a target="_blank" href="https://colab.research.google.com/github/huggingface/smol-course/blob/main/3_parameter_efficient_finetuning/notebooks/finetune_sft_peft.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a> | | ||
| Tải LoRA Adapters | Học cách tải và sử dụng LoRA adapters đã huấn luyện | 🐢 Tải adapters đã huấn luyện trước<br>🐕 Gộp adapters với mô hình cơ sở<br>🦁 Chuyển đổi giữa nhiều adapters | [Notebook](./notebooks/load_lora_adapter.ipynb) | <a target="_blank" href="https://colab.research.google.com/github/huggingface/smol-course/blob/main/3_parameter_efficient_finetuning/notebooks/load_lora_adapter.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a> | | ||
|
||
## Tài liệu tham khảo | ||
- [Tài liệu PEFT](https://huggingface.co/docs/peft) | ||
- [Bài báo nghiên cứu LoRA](https://arxiv.org/abs/2106.09685) | ||
- [Bài báo nghiên cứu QLoRA](https://arxiv.org/abs/2305.14314) | ||
- [Bài báo nghiên cứu Prompt Tuning](https://arxiv.org/abs/2104.08691) | ||
- [Hướng dẫn sử dụng PEFT của Hugging Face](https://huggingface.co/blog/peft) | ||
- [Cách Tinh chỉnh LLM với Hugging Face](https://www.philschmid.de/fine-tune-llms-in-2024-with-trl) | ||
- [Thư viện TRL](https://huggingface.co/docs/trl/index) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.