ผู้เขียน :
(1) Dan Biderman, มหาวิทยาลัยโคลัมเบียและ 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, มหาวิทยาลัยโคลัมเบีย (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, มหาวิทยาลัยโคลัมเบีย (jpc2181@columbia.edu)
Authors:
(1) Dan Biderman, มหาวิทยาลัยโคลัมเบียและ 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, มหาวิทยาลัยโคลัมเบีย (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, มหาวิทยาลัยโคลัมเบีย (jpc2181@columbia.edu)
ตารางด้านซ้าย
3.2 การวัดการเรียนรู้ด้วยรหัสและมาตรฐานการวัดทางคณิตศาสตร์ (การประเมินโดเมนเป้าหมาย)
3.3 การลืม Metrics (การประเมินโดเมนแหล่งข้อมูล)
4 ผล
4.1 LoRA ไม่ทํางานได้ดีที่สุดในการเขียนโปรแกรมและงานคณิตศาสตร์
4.2 LoRA ลืมน้อยกว่า Finetuning เต็ม
4.5 การปรับปรุงอย่างเต็มที่เกี่ยวกับรหัสและคณิตศาสตร์ไม่ได้เรียนรู้การรบกวนระดับต่ํา
4.6 การใช้ประโยชน์ในการกําหนดค่า LoRA ที่ดีที่สุด
Appendix
D. ประสิทธิภาพหน่วยความจําทางทฤษฎีเพิ่มขึ้นด้วย LoRA สําหรับการตั้งค่าหน่วยเดียวและหลาย GPU
สารสกัดจาก
การปรับระดับต่ํา (LoRA) เป็นวิธีการปรับระดับประสิทธิภาพที่ใช้กันอย่างแพร่หลายสําหรับโมเดลภาษาขนาดใหญ่ LoRA ช่วยประหยัดหน่วยความจําโดยการฝึกฝนเพียงการเปลี่ยนแปลงระดับต่ําไปยังมาร์ตซ์น้ําหนักที่เลือก ในงานนี้เราเปรียบเทียบประสิทธิภาพของ LoRA และปรับระดับเต็มในสองโดเมนเป้าหมายการเขียนโปรแกรมและคณิตศาสตร์ เราพิจารณาทั้งการปรับระดับคําสั่ง (≈100K คู่การตอบสนองแบบล่วงหน้า) และระบบข้อมูลการเตรียมการต่อเนื่อง (≈10B สัญลักษณ์ที่ไม่ได้โครงสร้าง) ผลลัพธ์ของเราแสดงให้เห็นว่าในส่วนใหญ่การตั้งค่า LoRA มีประสิทธิภาพต่ํากว่าการปรับระดับเต็ม อย่างไรก็ตาม LoRA แสดงให้เห็นการปรับระดับเต็มที่ต้องการ: มันช่วยรักษาประสิทธิภาพของฐานรุ่นที่ดีขึ้นในงานนอกโดเมนเป้าหมาย เราแสดงให้เห็นว่า LoRA ให้การปรับระดับ
1 บทนํา
การปรับแต่งแบบจําลองภาษาขนาดใหญ่ (LLMs) ด้วยพันล้านน้ําหนักต้องใช้หน่วยความจํา GPU ไม่ใช่ขนาดเล็ก วิธีการปรับปรุงแบบจําลองที่มีประสิทธิภาพการกําหนดค่าพารามิเตอร์ช่วยลดจังหวะหน่วยความจําในระหว่างการฝึกอบรมโดยการแช่แข็ง LLM ที่ได้รับการฝึกอบรมล่วงหน้าและเพียงการฝึกอบรมจํานวนเล็กน้อยของพารามิเตอร์เพิ่มเติมซึ่งมักจะเรียกว่าอะแดปเตอร์ การปรับตัวในระดับต่ํา (LoRA; Hu et al. (2021)) จะฝึกอบรมอะแดปเตอร์ที่ทําให้เกิดความรบกวนในระดับต่ําต่อมทารกน้ําหนักที่เลือก
ตั้งแต่การแนะนํา LoRA ได้รับการโฆษณาว่าเป็นการปรับปรุงประสิทธิภาพอย่างเข้มงวดซึ่งไม่ส่งผลกระทบต่อความแม่นยําในโดเมนเป้าหมายใหม่ (Hu et al., 2021; Dettmers et al., 2024; Raschka, 2023; Zhao et al., 2024b) อย่างไรก็ตามการศึกษาเพียงไม่กี่รายงาน LoRA กับการปรับปรุงอย่างเต็มที่สําหรับ LLMs ที่มีพารามิเตอร์หลายพันล้าน (Ivison et al., 2023; Zhuo et al., 2024; Dettmers et al., 2024) รายงานผลการผสมผสาน บางรายของการศึกษาเหล่านี้ขึ้นอยู่กับรูปแบบเก่า (เช่น RoBERTa) หรือมาตรฐานการประเมินอย่างหยาบ (เช่น GLUE หรือ ROUGE) ที่มีความเกี่ยวข้องน้อยกว่าสําหรับ LLMs ในขณะเดียวกัน การประเมินรายละเอียดโดเมนที่Here we ask: under which conditions does LoRA approximate full finetuning accuracy on challenging target domains, such as code and math?
โดยการฝึกอบรมพารามิเตอร์น้อยกว่า LoRA จะนําเสนอรูปแบบของการปรับตัวที่ จํากัด การพฤติกรรมของรุ่นที่ปรับให้ละเอียดเพื่ออยู่ใกล้กับรูปแบบฐาน (Sun et al., 2023; Du et al., 2024)We also ask: does LoRA act as a regularizer that mitigates “forgetting” of the source domain?
ในการศึกษานี้เราเปรียบเทียบ LoRA และ Finetuning เต็มรูปแบบสําหรับ Llama-2 7B (และในบางกรณี 13B) รุ่นผ่านสองโดเมนเป้าหมายที่ท้าทายรหัสและคณิตศาสตร์ ในแต่ละโดเมนเราสํารวจสองโหมดการฝึกอบรม ครั้งแรกคือคําแนะนํา Finetuning สถานการณ์ทั่วไปสําหรับ LoRA ที่เกี่ยวข้องกับชุดข้อมูลคําถามและคําตอบที่มีสิบถึงหลายร้อยล้านโทเค็น ที่นี่เราใช้ Magicoder-Evol-Instruct-110K (Wei et al., 2023) และ MetaMathQA (Yu et al., 2023) โครงสร้างที่สองยังคงมีการฝึกอบรมก่อนการฝึกอบรมแอปพลิเคชันที่ไม่พบบ่อยสําหรับ LoRA ซึ่งเกี่ยวข้องกับการฝึกอบรมบนหลายพันพันล้านโทเค็นที่ไม่ติดฉลาก ที่นี่เราใช้ชุดข้อมูล StarCoder-P
เราประเมินประสิทธิภาพของโดเมนเป้าหมาย (จากนั้นเรียนรู้) ผ่านการเข้ารหัสที่ท้าทายและคะแนนแถลงทางคณิตศาสตร์ (HumanEval; Chen et al. (2021) และ GSM8K; Cobbe et al. (2021)) เราประเมินประสิทธิภาพการลืมโดเมนแหล่งที่มาเกี่ยวกับการเข้าใจภาษาความรู้โลกและภารกิจการพิจารณาด้วยเหตุผลทั่วไป (Zellers et al., 2019; Sakaguchi et al., 2019; Clark et al., 2018)
เราพบว่าสําหรับโค้ด LoRA มีประสิทธิภาพต่ํากว่าอย่างมีนัยสําคัญเมื่อเทียบกับการ finetuning เต็มขณะที่สําหรับคณิตศาสตร์ LoRA จะปิดความแตกต่างมากขึ้น (ส่วน 4.1) ในขณะที่ต้องการการฝึกอบรมที่ยาวนาน แม้จะมีความแตกต่างในประสิทธิภาพนี้เราแสดงให้เห็นว่า LoRA มีประสิทธิภาพที่ดีขึ้นเมื่อเทียบกับการ finetuning เต็ม (ส่วน 4.2) นอกจากนี้เรายังมีลักษณะของความแตกต่างระหว่างประสิทธิภาพในโดเมนเป้าหมายและโดเมนแหล่งที่มา (การเรียนรู้ versus การลืม) สําหรับขนาดและชุดข้อมูลที่กําหนดไว้เราพบว่า LoRA และ finetuning เต็มก่อให้เกิดการแลกเปลี่ยนการลืมการเรียนรู้ที่คล้ายกัน: LoRA ที่เรียนรู้มักจะลืมเท่ากับ finetuning เต็มแม้ว่าเราจะพบกรณี (สําหรับรหัส) ที่ LoRA สามารถเรียนรู้ได้เปรียบเทียบได้ แต่ลืมน้อย (
จากนั้นเราแสดงให้เห็นว่า LoRA - แม้จะมีอันดับที่ จํากัด น้อยลง - ให้การกําหนดค่าที่แข็งแกร่งเมื่อเปรียบเทียบกับวิธีการกําหนดค่าแบบดั้งเดิมเช่น dropout (Srivastava et al., 2014) และลดน้ําหนัก (Goodfellow et al., 2016) นอกจากนี้เรายังแสดงให้เห็นว่า LoRA ให้การกําหนดค่าในระดับการผลิต: เราวิเคราะห์โซลูชั่นที่สร้างขึ้นสําหรับปัญหา HumanEval และพบว่าในขณะที่การกําหนดค่าที่สมบูรณ์ตกอยู่ในชุดที่ จํากัด ของโซลูชั่น LoRA รักษาความหลากหลายของโซลูชั่นที่คล้ายคลึงกับรูปแบบพื้นฐาน (Sun et al., 2023; Du et al., 2024)
ทําไม LoRA ทํางานไม่ดี? LoRA เริ่มต้นมีแรงจูงใจบางส่วนจากแนวคิดว่า finetuning จะส่งผลให้เกิดความผิดปกติในระดับต่ําต่อมทริกซ์น้ําหนักของรุ่นฐาน (Li et al., 2018; Aghajanyan et al., 2020; Hu et al., 2021) อย่างไรก็ตามงานที่สํารวจโดยงานเหล่านี้ค่อนข้างง่ายสําหรับ LLMs แบบสมัยใหม่และบางทีง่ายกว่าโดเมนการเข้ารหัสและคณิตศาสตร์ที่ศึกษาที่นี่ ดังนั้นเราจึงดําเนินการการทําลายค่าที่ไม่ซ้ํากันเพื่อแสดงให้เห็นว่า finetuning แบบเต็มเกือบจะเปลี่ยนสเปกตรัมของมทริกซ์น้ําหนักของรุ่นฐานและแม้กระทั่งความแตกต่างระหว่างสอง (เช่นความผิดปกติ) มีอันดับสูง ระดับของความผิดปกติเติบโตขึ้นตามความก้าวหน้าของการฝึกอบรมด้วยอันดับ 10-100 × สูงกว่าการ
เราสรุปโดยการเสนอแนวทางปฏิบัติที่ดีที่สุดสําหรับรูปแบบการฝึกอบรมด้วย LoRA เราพบว่า LoRA มีความไวโดยเฉพาะอย่างยิ่งต่ออัตราการเรียนรู้และประสิทธิภาพจะได้รับผลกระทบส่วนใหญ่โดยการเลือกโมดูลเป้าหมายและในระดับน้อยกว่าโดยเกรด
เพื่อสรุปเราให้ผลลัพธ์ต่อไปนี้:
• Finetuning เต็มมีความแม่นยําและประหยัดตัวอย่างกว่า LoRA ในรหัสและคณิตศาสตร์ (Sec.4.1)
• LoRA ลืมโดเมนแหล่งที่มาน้อยลงซึ่งให้รูปแบบของการปรับตัว (ส่วน 4.2 และ 4.3)
• การปรับตัวของ LoRA มีประสิทธิภาพมากขึ้นเมื่อเทียบกับเทคนิคการปรับตัวทั่วไป นอกจากนี้ยังช่วยรักษาความหลากหลายของรุ่น (ส่วน 4.4)
• Finetuning เต็มพบความผิดปกติของน้ําหนักระดับสูง (ส่วน 4.5)
• เมื่อเทียบกับการปรับปรุงเต็มรูปแบบ LoRA มีความไวต่อพารามิเตอร์ที่สูงขึ้นเช่นอัตราการเรียนรู้โมดูลเป้าหมายและอันดับ (ในลําดับลดลง; ส่วน 4.6)
2 พื้นหลัง
กระดาษนี้สามารถใช้ได้ใน archiv ภายใต้ใบอนุญาต CC BY 4.0 DEED
กระดาษนี้สามารถใช้ได้ใน archiv ภายใต้ใบอนุญาต CC BY 4.0 DEED
สามารถใช้ได้ใน Archives