Low-Rank Adaptation (LoRA) (VI)

From Systems analysis Wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — là phương pháp tinh chỉnh hiệu quả về tham số (PEFT), cho phép thích nghi các mô hình ngôn ngữ lớn (LLM) với các tác vụ mới với chi phí tính toán tối thiểu. Công nghệ này lần đầu tiên được giới thiệu trong công trình của Edward Hu và các cộng sự vào năm 2021[1].

Việc tinh chỉnh toàn bộ (full fine-tuning) các mô hình lớn như LLaMA hay GPT đòi hỏi tài nguyên khổng lồ, khiến nó trở nên không khả thi với phần lớn các nhà nghiên cứu và nhà phát triển. LoRA giải quyết vấn đề này bằng cách chỉ tinh chỉnh một phần nhỏ tham số của mô hình, đồng thời vẫn duy trì chất lượng và hiệu suất cao, tương đương với việc tinh chỉnh toàn bộ[2].

Nguyên lý hoạt động

Ý tưởng cốt lõi của LoRA là không thay đổi các trọng số gốc của mô hình đã được huấn luyện trước, mà thêm vào đó một ma trận "hiệu chỉnh" nhỏ. Thay vì huấn luyện trực tiếp ma trận trọng số khổng lồ `W`, LoRA biểu diễn sự thay đổi của nó như tích của hai ma trận nhỏ có hạng thấp.

Về mặt hình thức, nếu ma trận trọng số gốc của tầng `W_0` có kích thước `d × k`, thì phần cập nhật của nó được biểu diễn là `ΔW = BA`, trong đó `B` là ma trận kích thước `d × r`, còn `A` là ma trận kích thước `r × k`. Hạng `r` là một siêu tham số và nhỏ hơn đáng kể (`r << d, k`). Trong quá trình tinh chỉnh, các trọng số gốc `W_0` được đóng băng, còn chỉ các ma trận `A` và `B` được huấn luyện. Ma trận trọng số cuối cùng được tính là `W = W_0 + BA`.

Điều này cho phép giảm số lượng tham số được huấn luyện đi hàng nghìn lần. Ví dụ, khi tinh chỉnh GPT-3 (175 tỷ tham số), LoRA giảm số lượng tham số được huấn luyện đi 10.000 lần và giảm yêu cầu bộ nhớ GPU xuống 3 lần[1].

Những ưu điểm chính

  • Tiết kiệm tài nguyên: Số lượng tham số được huấn luyện giảm mạnh (lên đến 90% và hơn thế), điều này làm giảm đáng kể mức tiêu thụ bộ nhớ video (VRAM) và tăng tốc quá trình huấn luyện.
  • Không có độ trễ khi suy luận (inference): Sau khi huấn luyện, các ma trận `B` và `A` có thể được "hợp nhất" với ma trận chính `W_0` bằng cách tính `W = W_0 + BA`. Nhờ đó, trong quá trình sử dụng mô hình không phát sinh thêm bất kỳ phép tính hay độ trễ nào[1].
  • Tính mô-đun và chuyển đổi tác vụ nhanh: Các adapter LoRA đã được huấn luyện là các tệp nhỏ (vài megabyte). Điều này cho phép dễ dàng lưu trữ hàng chục adapter cho các tác vụ khác nhau và chuyển đổi nhanh chóng giữa chúng mà không cần thay đổi mô hình cơ sở[3].

Hạn chế và các biến thể

Mặc dù LoRA rất hiệu quả, bản chất hạng thấp của nó có thể là một hạn chế đối với các tác vụ đòi hỏi ghi nhớ lượng lớn thông tin mới. Để giải quyết vấn đề này và các vấn đề khác, nhiều biến thể khác nhau đã được đề xuất.

QLoRA

QLoRA (Quantized Low-Rank Adaptation) — một trong những biến thể phổ biến nhất, được đề xuất vào năm 2023. Nó kết hợp LoRA với lượng tử hóa 4-bit của mô hình cơ sở[4]. Điều này cho phép giảm hơn nữa yêu cầu bộ nhớ, giúp có thể tinh chỉnh các mô hình với hàng chục tỷ tham số (ví dụ: mô hình 65B) trên một GPU dành cho người tiêu dùng. Dựa trên QLoRA, đặc biệt đã tạo ra mô hình Guanaco, mô hình này cho thấy kết quả tương đương với ChatGPT.

Các biến thể khác

  • MoRA (High-Rank Updating): Được đề xuất cho các tác vụ mà LoRA cho thấy hiệu suất không đủ do hạn chế về hạng. MoRA sử dụng các phương pháp cho phép cập nhật trọng số với hạng cao, đồng thời vẫn duy trì hiệu quả về tham số[5].

Triển khai và ứng dụng

Công nghệ LoRA đã được áp dụng rộng rãi nhờ hiệu quả và tính dễ tích hợp của nó. Thư viện PEFT (Parameter-Efficient Fine-Tuning) từ công ty Hugging Face đóng vai trò quan trọng trong việc phổ biến nó. PEFT cung cấp giao diện thống nhất để áp dụng LoRA và các phương pháp PEFT khác cho các mô hình trong hệ sinh thái Transformers[6].

LoRA được sử dụng tích cực cho:

  • Thích nghi các chatbot và hệ thống hội thoại (ví dụ: tinh chỉnh LLaMA, Mistral).
  • Tạo các mô hình phân loại và sinh văn bản trong các lĩnh vực chuyên biệt hẹp.
  • Cá nhân hóa các mô hình theo phong cách hoặc định dạng dữ liệu cụ thể.

Liên kết

  • Tài liệu chính thức của thư viện PEFT từ Hugging Face

Tài liệu tham khảo

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
  • Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
  • Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
  • Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
  • Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.

Chú thích

  1. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]