XYZNOT

Bài báo · arXiv 2106.09685

LoRA: Thích ứng Hạng Thấp cho các Mô hình Ngôn ngữ Lớn

LoRA: Low-Rank Adaptation of Large Language Models

Xuất bản cs.CLcs.AIcs.LG arXivPDF

Đọc với bản dịch và AI

Tóm tắt trong ba dòng

  1. 🎯 Tinh chỉnh toàn bộ các mô hình ngôn ngữ khổng lồ như GPT-3 175B đòi hỏi phải huấn luyện lại và lưu trữ hàng tỷ tham số cho mỗi tác vụ hạ nguồn, tạo ra nút thắt cổ chai nghiêm trọng về lưu trữ, VRAM và triển khai.
  2. 🔧 Đóng băng các ma trận trọng số đã tiền huấn luyện và chèn các ma trận phân rã hạng thấp có thể huấn luyện () vào các tầng dày đặc (dense layers) của Transformer, co giãn tích bằng và cho phép gộp trọng số khi triển khai mà không làm tăng độ trễ.
  3. 📈 Đối với GPT-3 175B, LoRA giảm 10.000 lần tham số có thể huấn luyện và giảm 3 lần VRAM (từ 1,2TB xuống 350GB) trong khi vẫn bắt kịp hoặc vượt trội so với tinh chỉnh toàn bộ trên GLUE, WikiSQL và SAMSum.

Tóm tắt

Một mô thức quan trọng trong xử lý ngôn ngữ tự nhiên bao gồm tiền huấn luyện quy mô lớn trên dữ liệu miền tổng quát và thích ứng với các tác vụ hoặc miền cụ thể. Khi chúng ta tiền huấn luyện các mô hình lớn hơn, tinh chỉnh toàn bộ (full fine-tuning) — tức huấn luyện lại toàn bộ tham số mô hình — trở nên kém khả thi. Lấy GPT-3 175B làm ví dụ: việc triển khai các phiên bản độc lập của các mô hình đã tinh chỉnh, mỗi phiên bản có 175B tham số, là cực kỳ tốn kém. Chúng tôi đề xuất Thích ứng Hạng Thấp (Low-Rank Adaptation), hay LoRA, phương pháp đóng băng trọng số mô hình đã tiền huấn luyện và chèn các ma trận phân rã hạng có thể huấn luyện vào từng tầng của kiến trúc Transformer, giúp giảm đáng kể số lượng tham số có thể huấn luyện cho các tác vụ hạ nguồn. So với GPT-3 175B được tinh chỉnh bằng Adam, LoRA có thể giảm số lượng tham số huấn luyện tới 10.000 lần và nhu cầu bộ nhớ GPU tới 3 lần. LoRA đạt hiệu năng ngang bằng hoặc tốt hơn tinh chỉnh toàn bộ về chất lượng mô hình trên RoBERTa, DeBERTa, GPT-2 và GPT-3, mặc dù có ít tham số huấn luyện hơn, thông lượng huấn luyện cao hơn và không tạo thêm bất kỳ độ trễ suy luận nào như các adapter. Chúng tôi cũng cung cấp một khảo sát thực nghiệm về sự thiếu hụt hạng (rank-deficiency) trong quá trình thích ứng mô hình ngôn ngữ, làm sáng tỏ tính hiệu quả của LoRA. Chúng tôi phát hành một gói công cụ tạo điều kiện tích hợp LoRA với các mô hình PyTorch, đồng thời cung cấp mã nguồn triển khai và checkpoint mô hình cho RoBERTa, DeBERTa và GPT-2 tại https://github.com/microsoft/LoRA.

Tóm tắt gốc (tiếng Anh)

An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes less feasible. Using GPT-3 175B as an example -- deploying independent instances of fine-tuned models, each with 175B parameters, is prohibitively expensive. We propose Low-Rank Adaptation, or LoRA, which freezes the pre-trained model weights and injects trainable rank decomposition matrices into each layer of the Transformer architecture, greatly reducing the number of trainable parameters for downstream tasks. Compared to GPT-3 175B fine-tuned with Adam, LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times. LoRA performs on-par or better than fine-tuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency. We also provide an empirical investigation into rank-deficiency in language model adaptation, which sheds light on the efficacy of LoRA. We release a package that facilitates the integration of LoRA with PyTorch models and provide our implementations and model checkpoints for RoBERTa, DeBERTa, and GPT-2 at https://github.com/microsoft/LoRA.

Hướng dẫn đọc

Vấn đề và động lực

Việc thích ứng các mô hình ngôn ngữ tiền huấn luyện quy mô lớn với các ứng dụng hạ nguồn đa dạng theo truyền thống phụ thuộc vào tinh chỉnh toàn bộ (cập nhật toàn bộ tham số thành ). Đối với các kiến trúc khổng lồ như GPT-3 175B, việc lưu trữ và phục vụ các bản sao độc lập của các mô hình 175 tỷ tham số là cực kỳ tốn kém về mặt lưu trữ, bộ nhớ GPU và chi phí I/O. Các kỹ thuật tinh chỉnh hiệu quả tham số trước đây bộc lộ những nhược điểm rõ rệt:

  • Các tầng Adapter nối tiếp (Series Adapter Layers): Chèn các module thắt cổ chai (bottleneck modules) tuần tự vào các khối Transformer. Do các thao tác tuần tự này không thể song song hóa, chúng tạo ra độ trễ suy luận đáng kể — làm chậm lượt truyền thẳng (forward pass) lên tới trong môi trường phục vụ trực tuyến trên GPU đơn với batch nhỏ.
  • Prefix / Prompt Tuning: Tối ưu hóa các vector tiền tố liên tục được ghép thêm vào các giá trị kích hoạt của từng tầng. Những phương pháp này khó tối ưu hóa, quy mô không tăng trưởng đơn điệu theo độ dài prompt, và tiêu tốn một phần ngân sách độ dài chuỗi vốn dành cho ngữ cảnh.

LoRA giải quyết sự đánh đổi giữa hiệu quả và chất lượng này dựa trên giả thuyết rằng các bản cập nhật thích ứng trọng số có hạng nội tại (intrinsic rank) thấp trong quá trình chuyển giao tác vụ hạ nguồn.

Ý tưởng cốt lõi

  • Tái tham số hóa hạng thấp (Low-Rank Reparametrization): Đối với một ma trận dày đặc bị đóng băng , tham số hóa bản cập nhật thích ứng dưới dạng , trong đó , , và hạng .
  • Không phát sinh độ trễ suy luận (Zero Added Inference Latency): Do phép tái tham số hóa là tuyến tính, các ma trận hạng thấp đã huấn luyện có thể được cộng trực tiếp vào trọng số tiền huấn luyện () tại thời điểm triển khai, mang lại kiến trúc suy luận giống hệt ban đầu và không chịu phạt độ trễ so với tinh chỉnh toàn bộ.
  • Dùng chung mô hình nền với khả năng tráo đổi nóng (Hot-Swapping): Mô hình lớn bị đóng băng vẫn giữ cố định trong bộ nhớ GPU; việc chuyển đổi tác vụ chỉ yêu cầu hoán đổi các ma trận hạng thấp và , cắt giảm đáng kể dung lượng lưu trữ từ hàng trăm gigabyte xuống còn vài chục megabyte.
  • Thích ứng Attention có chọn lọc (Selective Attention Adaptation): Việc chỉ áp dụng phân rã hạng cho các phép chiếu self-attention (đặc biệt là query và value ) đạt được hiệu năng cạnh tranh trong khi vẫn giữ nguyên các tầng MLP truyền thẳng.

Phương pháp

Đối với một tầng chiếu dày đặc tạo ra , LoRA biến đổi phép tính thành:

Các chi tiết triển khai chính:

  1. Khởi tạo: được khởi tạo từ phân phối Gauss ngẫu nhiên và được khởi tạo bằng 0, đảm bảo khi bắt đầu huấn luyện.
  2. Hệ số co giãn (Scaling Factor): Bản cập nhật được co giãn theo hệ số , trong đó là một siêu tham số không đổi. Khi tối ưu hóa bằng Adam, việc đặt bằng hạng ban đầu giúp tránh việc phải tinh chỉnh lại tốc độ học (learning rate) khi thử nghiệm với các giá trị khác nhau của .
  3. Gộp trọng số khi triển khai (Deployment Merging): Trong môi trường thực tế, ma trận trọng số thích ứng được hiện thực hóa trực tiếp thành . Khi thay đổi tác vụ, được khôi phục bằng phép trừ () và gộp với các trọng số adapter mới ().
  4. Các tầng mục tiêu: Mặc dù có thể áp dụng cho bất kỳ tầng dày đặc nào, các thử nghiệm tập trung chủ yếu vào các phép chiếu attention của Transformer (). Việc áp dụng LoRA với cho và mang lại hiệu quả hạ nguồn tối ưu.

Kết quả

  • GPT-3 175B: LoRA giảm các tham số có thể huấn luyện từ 175.255,8M xuống 4,7M ( hoặc ) hoặc 37,7M (), giảm kích thước checkpoint từ 350GB xuống 35MB (giảm 10.000 lần) và VRAM huấn luyện từ 1,2TB xuống 350GB. Thông lượng huấn luyện tăng (từ 32,5 lên 43,1 token/giây trên mỗi GPU V100).
  • Độ chính xác hạ nguồn (GPT-3):
    • Độ chính xác kiểm định dạng logic WikiSQL: Tinh chỉnh toàn bộ đạt ; LoRA (37,7M) đạt .
    • Độ chính xác kiểm định khớp MultiNLI: Tinh chỉnh toàn bộ đạt ; LoRA (4,7M) đạt .
    • Tóm tắt hội thoại SAMSum: Tinh chỉnh toàn bộ đạt điểm 52,0 / 28,0 / 44,5 ROUGE-1/2/L; LoRA (4,7M) đạt 53,8 / 29,8 / 45,9.
  • RoBERTa và DeBERTa (Điểm chuẩn GLUE): Trên RoBERTa Large, LoRA đạt kết quả ngang bằng tinh chỉnh toàn bộ (điểm trung bình so với ) dù chỉ dùng 0,8M tham số so với 355,0M. Trên DeBERTa XXL (1,5B), LoRA đạt điểm trung bình trên GLUE với 4,7M tham số so với của tinh chỉnh toàn bộ (1.500,0M tham số).
  • Phân tích hạng nội tại: Phân tích độ tương đồng không gian con cho thấy các hướng suy biến (singular directions) hàng đầu của đối với và chồng lấn mạnh mẽ (độ tương đồng chuẩn hóa đối với chiều thứ nhất). Ngoài ra, khuếch đại các hướng đã tồn tại nhưng không được nhấn mạnh nhiều trong , thể hiện hệ số khuếch đại đối với .

Hạn chế và các câu hỏi mở

  • Xử lý batch đa tác vụ (Multi-Task Batching): Khi các trọng số hạng thấp được gộp vào để loại bỏ độ trễ suy luận, việc xử lý đồng thời các batch đầu vào cho nhiều tác vụ khác nhau trong cùng một lượt truyền thẳng là không hề đơn giản.
  • Lựa chọn tầng dựa trên kinh nghiệm: Thực tiễn hiện tại chủ yếu dựa vào các phép thử nghiệm kinh nghiệm (thích ứng và ) thay vì một khuôn khổ lý thuyết có hệ thống để xác định nên thích ứng những ma trận nào trên các tầng attention và MLP.
  • Dịch chuyển miền dữ liệu cực đoan: Đối với các tác vụ hạ nguồn khác biệt quá lớn so với phân phối tiền huấn luyện (chẳng hạn như thích ứng một LLM tiếng Anh sang một ngôn ngữ đích hoàn toàn khác), việc thích ứng hạng thấp có thể không đủ hiệu quả so với thích ứng hạng cao hơn hoặc tinh chỉnh toàn bộ.

Thuật ngữ chính

Low-Rank Adaptation (LoRA)
Một phương pháp tinh chỉnh hiệu quả tham số giúp đóng băng trọng số mô hình nền và huấn luyện các ma trận phân rã hạng thấp song song với các tầng dày đặc (dense layers).
Intrinsic Rank (Hạng nội tại)
Số chiều hiệu dụng thấp hoặc số lượng vector suy biến cần thiết để nắm bắt được sự thích ứng tham số có ý nghĩa trong quá trình chuyển giao tác vụ cụ thể.
Adapter Layers (Các tầng adapter)
Các module thắt cổ chai bên ngoài được chèn tuần tự vào các khối Transformer, tạo ra tính toán tuần tự không thể song song hóa và gây thêm độ trễ suy luận.
Prefix Tuning
Một chiến lược thích ứng bằng cách ghép thêm các vector liên tục có thể huấn luyện vào các token đầu vào hoặc các trạng thái ẩn của tầng, làm giảm không gian ngữ cảnh sẵn có của chuỗi.
Weight Folding / Weight Merging (Gộp trọng số)
Phép cộng số học các ma trận hạng thấp trực tiếp vào ma trận trọng số đã tiền huấn luyện nhằm loại bỏ chi phí vận hành tại thời điểm suy luận.
Grassmann Distance Subspace Similarity (Độ tương đồng không gian con khoảng cách Grassmann)
Một độ đo định lượng mức độ chồng lấn của các không gian cột giữa các ma trận vector suy biến trực chuẩn của các bản cập nhật thích ứng.
Feature Amplification Factor (Hệ số khuếch đại đặc trưng)
Tỷ số giữa chuẩn Frobenius của và hình chiếu của lên không gian con suy biến của , đo lường mức độ nhấn mạnh của các hướng đặc thù cho tác vụ.

Câu hỏi thường gặp

Tại sao LoRA không làm tăng thêm độ trễ suy luận so với các adapter?

Vì LoRA là tuyến tính (), tích hạng thấp có thể được tính toán tường minh và cộng trực tiếp vào trước khi phục vụ (). Quá trình suy luận sau đó chỉ thực thi phép nhân ma trận tiêu chuẩn mà không cần qua các tầng thắt cổ chai tuần tự gây ra độ trễ như trong các kiến trúc adapter.

Nên áp dụng LoRA vào những ma trận trọng số nào của Transformer?

Các thử nghiệm trên GPT-3 cho thấy việc thích ứng đồng thời cả trọng số chiếu query () và value () đem lại hiệu năng tốt nhất với một ngân sách tham số cố định. Việc thích ứng nhiều ma trận attention với hạng nhỏ hơn (ví dụ: ) vượt trội hơn so với việc phân bổ toàn bộ tham số vào một loại ma trận duy nhất với hạng cao hơn.

Hạng $r$ bằng bao nhiêu là đủ để thích ứng các mô hình ngôn ngữ lớn?

Một hạng rất nhỏ như , hoặc thường là đã đủ cho các tác vụ hạ nguồn. Phân tích độ tương đồng không gian con cho thấy các vector suy biến hàng đầu học được với hạng nhỏ chồng lấn đáng kể với các vector học được ở hạng cao hơn (chẳng hạn như ), trong khi các hạng cao hơn chủ yếu chỉ thu nhận nhiễu ngẫu nhiên trong quá trình tối ưu hóa.

LoRA khởi tạo các ma trận hạng thấp của nó như thế nào?

Ma trận được khởi tạo bằng phân phối Gauss ngẫu nhiên, trong khi ma trận được khởi tạo bằng 0. Điều này đảm bảo rằng tại thời điểm bắt đầu huấn luyện, giúp lượt truyền thẳng ban đầu của mô hình tiền huấn luyện hoàn toàn không bị thay đổi.

Phần giải thích trên trang này do AI viết dựa trên bài báo và có thể có sai sót. Hãy đọc bài báo gốc để biết chi tiết.

Đọc với bản dịch và AI