Tác giả :
(1) Dan Biderman, Đại học Columbia và Databricks Mosaic AI (db3236@columbia.edu);
(2) Jose Gonzalez Ortiz, Databricks Mosaic AI (j.gonzalez@databricks.com);
(3) Jacob Portes, Databricks Mosaic AI (jportes@databricks.com);
(4) Mansheej Paul, Databricks Mosaic AI (mansheej.paul@databricks.com);
(5) Philip Greengard, Đại học Columbia (pg2118@columbia.edu);
(6) Connor Jennings, Databricks Mosaic AI (connor.jennings@databricks.com);
(7) Daniel King, Databricks Mosaic AI (daniel.king@databricks.com);
(8) Sam Havens, Databricks Mosaic AI (sam.havens@databricks.com);
(9) Vitaliy Chiley, Databricks Mosaic AI (vitaliy.chiley@databricks.com);
(10) Jonathan Frankle, Databricks Mosaic AI (jfrankle@databricks.com);
(11) Cody Blakeney, Databricks Mosaic AI (cody.blakeney)
(12) John P. Cunningham, Đại học Columbia (jpc2181@columbia.edu).
Authors:
(1) Dan Biderman, Đại học Columbia và Databricks Mosaic AI (db3236@columbia.edu);
(2) Jose Gonzalez Ortiz, Databricks Mosaic AI (j.gonzalez@databricks.com);
(3) Jacob Portes, Databricks Mosaic AI (jportes@databricks.com);
(4) Mansheej Paul, Databricks Mosaic AI (mansheej.paul@databricks.com);
(5) Philip Greengard, Đại học Columbia (pg2118@columbia.edu);
(6) Connor Jennings, Databricks Mosaic AI (connor.jennings@databricks.com);
(7) Daniel King, Databricks Mosaic AI (daniel.king@databricks.com);
(8) Sam Havens, Databricks Mosaic AI (sam.havens@databricks.com);
(9) Vitaliy Chiley, Databricks Mosaic AI (vitaliy.chiley@databricks.com);
(10) Jonathan Frankle, Databricks Mosaic AI (jfrankle@databricks.com);
(11) Cody Blakeney, Databricks Mosaic AI (cody.blakeney)
(12) John P. Cunningham, Đại học Columbia (jpc2181@columbia.edu).
Bàn trái
3.2 Đo lường học tập với Coding và Math Benchmarks (đánh giá miền mục tiêu)
3.3 Quên Metrics (đánh giá tên miền nguồn)
4 Kết quả
4.1 LoRA không hoàn thành đầy đủ các nhiệm vụ lập trình và toán học
4.2 LoRA quên ít hơn hoàn chỉnh đầy đủ
4.3 Học tập lãng quên thương mại
4.4 Thuộc tính điều chỉnh của LoRA
4.5 Cải thiện đầy đủ về mã và toán học không học các rối loạn cấp thấp
4.6 Những bước thực tế để cấu hình LoRA một cách tối ưu
Appendix
D. Tăng hiệu quả bộ nhớ lý thuyết với LoRA cho cài đặt đơn và đa GPU
Abstracts
Low-Rank Adaptation (LoRA) is a widely-used parameter-efficient finetuning method for large language models. LoRA saves memory by training only low rank perturbations to selected weight matrices. In this work, we compare the performance of LoRA and full finetuning on two target domains, programming and mathematics. We consider both the instruction finetuning (≈100K prompt-response pairs) and continued pretraining (≈10B unstructured tokens) data regimes. Our results show that, in most settings, LoRA substantially underperforms full finetuning. Nevertheless, LoRA exhibits a desirable form of regularization: it better maintains the base model’s performance on tasks outside the target domain. We show that LoRA provides stronger regularization compared to common techniques such as weight decay and dropout; it also helps maintain more diverse generations. We show that full finetuning learns perturbations with a rank that is 10-100X greater than typical LoRA configurations, possibly explaining some of the reported gaps. We conclude by proposing best practices for finetuning with LoRA.
1 Giới thiệu
Finetuning các mô hình ngôn ngữ lớn (LLMs) với hàng tỷ trọng lượng đòi hỏi một lượng bộ nhớ GPU không tầm thường. phương pháp finetuning hiệu quả về tham số làm giảm dấu chân bộ nhớ trong quá trình đào tạo bằng cách đóng băng một LLM được đào tạo trước và chỉ đào tạo một số lượng nhỏ các thông số bổ sung, thường được gọi là bộ điều chỉnh. Low-Rank Adaptation (LoRA; Hu et al. (2021)) đào tạo các bộ điều chỉnh là sự gián đoạn cấp thấp cho các ma trận trọng lượng được chọn.
Kể từ khi ra mắt, LoRA đã được quảng cáo như là một cải tiến hiệu quả nghiêm ngặt mà không làm tổn hại đến độ chính xác trên lĩnh vực mục tiêu mới (Hu et al., 2021; Dettmers et al., 2024; Raschka, 2023; Zhao et al., 2024b). Tuy nhiên, chỉ có một số ít các nghiên cứu so sánh LoRA so với finetuning đầy đủ cho LLM với hàng tỷ tham số, (Ivison et al., 2023; Zhuo et al., 2024; Dettmers et al., 2024), báo cáo kết quả hỗn hợp. Một số nghiên cứu này dựa trên các mô hình cũ hơn (ví dụ: RoBERTa), hoặc các tiêu chuẩn đánh giá thô (chẳng hạn như GLUE hoặc ROUGE) ít liên quan đến LLM đương đại. Ngược lại, các đánh giáHere we ask: under which conditions does LoRA approximate full finetuning accuracy on challenging target domains, such as code and math?
Bằng cách đào tạo ít tham số hơn, LoRA được cho là cung cấp một hình thức bình thường hóa hạn chế hành vi của mô hình tinh tế để ở gần với mô hình cơ bản (Sun et al., 2023; Du et al., 2024).We also ask: does LoRA act as a regularizer that mitigates “forgetting” of the source domain?
Trong nghiên cứu này, chúng tôi so sánh nghiêm ngặt LoRA và hoàn chỉnh hoàn chỉnh cho Llama-2 7B (và trong một số trường hợp, 13B) mô hình trên hai lĩnh vực mục tiêu đầy thách thức, mã và toán học. Trong mỗi lĩnh vực, chúng tôi khám phá hai chế độ đào tạo. Đầu tiên là finetuning hướng dẫn, kịch bản phổ biến cho LoRA liên quan đến tập dữ liệu câu hỏi trả lời với hàng chục đến hàng trăm triệu mã thông báo. Ở đây, chúng tôi sử dụng Magicoder-Evol-Instruct-110K (Wei et al., 2023) và MetaMathQA (Yu et al., 2023). Chế độ thứ hai tiếp tục đào tạo trước, một ứng dụng ít phổ biến cho LoRA liên quan đến đào tạo trên hàng tỷ mã thông báo không có nhãn; ở đây chúng tôi sử dụng các tập dữ liệu
Chúng tôi đánh giá hiệu suất của miền mục tiêu (sau đây là học tập) thông qua các tiêu chuẩn mã hóa và toán học đầy thách thức (HumanEval; Chen et al. (2021), và GSM8K; Cobbe et al. (2021)). Chúng tôi đánh giá hiệu suất của miền nguồn quên về sự hiểu biết ngôn ngữ, kiến thức thế giới và các nhiệm vụ lý luận hợp lý (Zellers et al., 2019; Sakaguchi et al., 2019; Clark et al., 2018).
We find that for code, LoRA substantially underperforms full finetuning, whereas for math, LoRA closes more of the gap (Sec. 4.1), while requiring longer training. Despite this performance gap, we show that LoRA better maintains source-domain performance compared to full finetuning (Sec. 4.2). Furthermore, we characterize the tradeoff between performance on the target versus source domain (learning versus forgetting). For a given model size and dataset, we find that LoRA and full finetuning form a similar learning-forgetting tradeoff curve: LoRA’s that learn more generally forget as much as full finetuning, though we find cases (for code) where LoRA can learn comparably but forgets less (Sec. 4.3).
Sau đó, chúng tôi cho thấy rằng LoRA - ngay cả với một thứ hạng ít hạn chế hơn - cung cấp sự quy định mạnh mẽ hơn khi so sánh với các phương pháp quy định cổ điển như droppout (Srivastava et al., 2014), và giảm cân (Goodfellow et al., 2016). chúng tôi cũng cho thấy rằng LoRA cung cấp quy định ở cấp độ đầu ra: chúng tôi phân tích các giải pháp được tạo ra cho các vấn đề của HumanEval và thấy rằng trong khi hoàn chỉnh hoàn chỉnh sụp đổ thành một tập hợp các giải pháp hạn chế, LoRA duy trì sự đa dạng của các giải pháp tương tự hơn với mô hình cơ bản (Sun et al., 2023; Du et al., 2024).
LoRA ban đầu được thúc đẩy một phần bởi giả thuyết rằng finetuning dẫn đến rối loạn cấp thấp đối với ma trận trọng lượng của mô hình cơ bản (Li et al., 2018; Aghajanyan et al., 2020; Hu et al., 2021). Tuy nhiên, các nhiệm vụ được khám phá bởi các tác phẩm này tương đối dễ dàng đối với LLM hiện đại, và có lẽ dễ dàng hơn so với các lĩnh vực mã hóa và toán học được nghiên cứu ở đây. Do đó, chúng tôi thực hiện một sự phân hủy giá trị duy nhất để cho thấy rằng finetuning đầy đủ hầu như không thay đổi phổ của ma trận trọng lượng của mô hình cơ bản, và tuy nhiên sự khác biệt giữa hai (tức là sự gián đoạn) là cao.
Chúng tôi kết luận bằng cách đề xuất các thực tiễn tốt nhất cho các mô hình đào tạo với LoRA. Chúng tôi thấy rằng LoRA đặc biệt nhạy cảm với tỷ lệ học tập, và hiệu suất được ảnh hưởng chủ yếu bởi sự lựa chọn của các mô-đun mục tiêu và ở một mức độ nhỏ hơn theo thứ hạng.
Để tóm tắt, chúng tôi đóng góp các kết quả sau:
• Full finetuning chính xác hơn và hiệu quả hơn so với LoRA trong mã và toán học (Phần 4.1).
LoRA quên ít hơn về miền nguồn, cung cấp một hình thức bình thường hóa (Phần 4.2 và 4.3).
• LoRA regularization mạnh hơn so với các kỹ thuật regularization phổ biến; nó cũng giúp duy trì sự đa dạng của các thế hệ (Phần 4.4).
• Full finetuning tìm thấy sự xáo trộn trọng lượng cấp cao (Phần 4.5).
So với hoàn chỉnh hoàn chỉnh, LoRA nhạy cảm hơn với các siêu tham số, cụ thể là tốc độ học tập, các mô-đun mục tiêu và thứ hạng (trong thứ tự giảm dần; Phần 4.6).
2 nền tảng
Tài liệu này có sẵn trên archiv dưới giấy phép CC BY 4.0 DEED.
Bài báo này là