Quick Note #1: LoRA cho bài toán fine-tuning LLM
Low-Rank Adaptation
- Phần lớn tính toán trong các mô hình ngôn ngữ lớn nói riêng và các mô hình Deep Learning nói chung là những phép nhân ma trận. Nếu tối ưu được quá trình này thì sẽ giảm được chi phí đáng kể.
- Bản chất của quá trình fine-tune là tạo ra 1 bộ tham số để cộng nó vào - bộ tham số đã được pre-trained - để tạo ra bộ tham số mới .
- Giả thuyết được đặt ra: là một ma trận có rank (hạng) thấp.
- Rank của ma trận càng nhỏ thì số lượng tham số cần tối ưu càng ít. Suy ra, cần ít bộ nhớ để lưu trữ và tài nguyên để tính toán hơn.
- Công thức trên có thể được biểu diễn lại bằng với và là 2 ma trận có số chiều thấp hơn nhiều so với .
- Ví dụ: , , thì số lượng tham số cần tối ưu là thay vì như trước đây. Tức là giảm đi 98% số lượng tham số cần tối ưu!
- Khi triển khai mô hình LoRA, cần phải tải lẫn và vào bộ nhớ và thực hiện phép toán để sinh ra bộ tham số cho mô hình đã được fine-tune.
- Nhược điểm:
- Mỗi mô hình LoRA chỉ có thể xử lý được 1 tác vụ tại 1 thời điểm. Khi cần thực hiện tác vụ khác thì phải thực hiện chuyển đổi bộ tham số.
- Giả sử có nhiều mô hình LoRA được triển khai, nhưng chỉ có 1 instance của được tải vào bộ nhớ. Nếu dữ liệu đầu vào buộc mô hình phải chuyển đổi qua lại giữa các LoRA khác nhau thì sẽ làm tăng chi phí tính toán và giảm hiệu năng của mô hình.
- Giải pháp: Dùng Prompt Tuning.
Tài liệu tham khảo
Quick Note #1: LoRA cho bài toán fine-tuning LLM
https://www.kysuai.com/2023/05/28/Quick-Note-1-LoRA-cho-bai-toan-fine-tuning-LLM/