งานวิจัย · arXiv 2302.13971
LLaMA: แบบจำลองภาษาพื้นฐานแบบเปิดและมีประสิทธิภาพสูง
LLaMA: Open and Efficient Foundation Language Models
สรุปสามบรรทัด
- 🎯 LLM ชั้นนำส่วนใหญ่ต้องพึ่งพาพารามิเตอร์จำนวนมหาศาลหรือชุดข้อมูลปิด ซึ่งสร้างต้นทุนในการให้บริการที่สูงและเป็นอุปสรรคต่อการเข้าถึงงานวิจัย
- 🔧 เทรนโมเดล Transformer ขนาดกะทัดรัด (7B ถึง 65B) ด้วยโทเค็น 1.0T ถึง 1.4T โดยใช้เฉพาะข้อมูลโอเพนซอร์ส, RMSNorm, SwiGLU และ RoPE
- 📈 LLaMA-13B มีประสิทธิภาพเหนือกว่า GPT-3 (175B) ในเบेंचมาร์กส่วนใหญ่ ขณะที่ LLaMA-65B ทำคะแนนได้ 68.9% บน MMLU หลังจากการปรับแต่งตามคำสั่งอย่างง่าย
บทคัดย่อ
เราขอแนะนำ LLaMA ชุดแบบจำลองภาษาพื้นฐาน (foundation language models) ที่มีขนาดตั้งแต่ 7B ถึง 65B พารามิเตอร์ เราฝึกฝนโมเดลด้วยข้อมูลระดับล้านล้านโทเค็น และแสดงให้เห็นว่าสามารถฝึกฝนโมเดลที่มีประสิทธิภาพระดับแถวหน้า (state-of-the-art) ได้โดยใช้ชุดข้อมูลที่เปิดเผยต่อสาธารณะเท่านั้น โดยไม่ต้องพึ่งพาชุดข้อมูลที่เป็นกรรมสิทธิ์ส่วนบุคคลหรือไม่สามารถเข้าถึงได้ โดยเฉพาะอย่างยิ่ง LLaMA-13B มีประสิทธิภาพเหนือกว่า GPT-3 (175B) ในเบेंचมาร์กส่วนใหญ่ และ LLaMA-65B มีความสามารถเทียบเคียงกับโมเดลที่ดีที่สุดอย่าง Chinchilla-70B และ PaLM-540B ทั้งนี้เราได้เผยแพร่โมเดลทั้งหมดให้กับชุมชนนักวิจัยแล้ว
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
We introduce LLaMA, a collection of foundation language models ranging from 7B to 65B parameters. We train our models on trillions of tokens, and show that it is possible to train state-of-the-art models using publicly available datasets exclusively, without resorting to proprietary and inaccessible datasets. In particular, LLaMA-13B outperforms GPT-3 (175B) on most benchmarks, and LLaMA-65B is competitive with the best models, Chinchilla-70B and PaLM-540B. We release all our models to the research community.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
กฎการขยายขนาดตามมาตรฐาน (เช่น Chinchilla) จะคำนวณการแลกเปลี่ยนที่เหมาะสมที่สุดระหว่างขนาดพารามิเตอร์และขนาดชุดข้อมูลสำหรับงบประมาณการคำนวณในการเทรน (training compute budget) ที่กำหนดไว้ อย่างไรก็ตาม กรอบความคิดนี้ละเลยงบประมาณการอนุมาน (inference budget) ซึ่งเป็นต้นทุนการดำเนินงานส่วนใหญ่ตลอดอายุการให้บริการของแบบจำลองภาษา เพื่อประสิทธิภาพในการให้บริการ โมเดลขนาดเล็กกว่าที่ได้รับการฝึกฝนด้วยข้อมูลที่มากกว่าคำแนะนำแบบ compute-optimal อย่างมีนัยสำคัญจึงเป็นทางเลือกที่ดีกว่า เนื่องจากมีต้นทุนในการโฮสต์และรันโมเดลที่ต่ำกว่ามาก
นอกจากนี้ โมเดลระดับแถวหน้าส่วนใหญ่ (เช่น GPT-3, Chinchilla และ PaLM) ล้วนพึ่งพาชุดข้อมูลส่วนบุคคลที่ไม่สามารถทำซ้ำได้ หรือมีสถาปัตยกรรมขนาดใหญ่เกินไป LLaMA แสดงให้เห็นว่าโมเดลพื้นฐานที่มีประสิทธิภาพแข่งขันได้นั้นสามารถฝึกฝนได้จากข้อมูลสาธารณะเท่านั้น ซึ่งช่วยให้สามารถแจกจ่ายสู่นักวิจัยได้อย่างเปิดกว้าง
แนวคิดหลัก
- Inference-centric training: แทนที่จะหยุดการฝึกฝนตามขนาดชุดข้อมูลที่เหมาะสมที่สุดตามการคำนวณ (เช่น ~200B โทเค็นสำหรับโมเดล 10B) LLaMA ทำการเทรนโมเดล 7B และ 13B ด้วยโทเค็น 1.0T และโมเดล 33B และ 65B ด้วยโทเค็น 1.4T
- ใช้เฉพาะชุดข้อมูลเปิด: ข้อมูลพรีเทรนทั้งหมดดึงมาจากแหล่งข้อมูลสาธารณะ: CommonCrawl (67%), C4 (15%), GitHub (4.5%), Wikipedia (4.5%), Books (4.5%), ArXiv (2.5%) และ Stack Exchange (2%)
- สถาปัตยกรรม Transformer ที่ทันสมัย: ผสานรวม Pre-normalization ด้วย RMSNorm เพื่อความเสถียร, ฟังก์ชันกระตุ้น SwiGLU และ Rotary Positional Embeddings (RoPE) แทนการใช้ตำแหน่งแบบสัมบูรณ์
- ประสิทธิภาพทางวิศวกรรม: ใช้ memory-efficient attention (ผ่าน
xformers), การทำ activation checkpointing แบบกำหนดเอง รวมถึง sequence และ model parallelism
ระเบียบวิธีวิจัย
LLaMA ใช้สถาปัตยกรรม Transformer decoder แบบ autoregressive ที่มีการปรับปรุงดังนี้:
- Pre-normalization: การปรับข้อมูลนำเข้าให้เป็นมาตรฐานโดยใช้ RMSNorm ก่อนแต่ละ sub-layer:
- ฟังก์ชันกระตุ้น SwiGLU: แทนที่ฟังก์ชัน ReLU/GELU แบบเดิมด้วย SwiGLU โดยปรับขนาดมิติชั้นกลางเป็น แทนที่จะเป็น
- Rotary Embeddings (RoPE): ใช้งานในทุกเลเยอร์เพื่อเข้ารหัสตำแหน่งสัมพัทธ์โดยไม่ต้องใช้ absolute position embeddings
- การหาค่าที่เหมาะสมที่สุด (Optimization): ใช้ AdamW โดยมี , weight decay เท่ากับ , gradient clipping เท่ากับ , ขั้นตอน warmup สเต็ป และตาราง cosine learning rate ที่ลดลงเหลือ 10% ของอัตราการเรียนรู้สูงสุด โดยมีขนาดแบทช์ 4M โทเค็นในทุกขนาดโมเดล
การประเมินการใช้พลังงานและการปล่อยคาร์บอนฟุตพริ้นท์ตลอดการฝึกฝนคำนวณได้ดังนี้:
ผลลัพธ์
- Common Sense Reasoning: LLaMA-13B ชนะ GPT-3 (175B) ในหลากหลายเบेंचมาร์ก (เช่น 78.1% เทียบกับ 60.5% บน BoolQ; 73.0% เทียบกับ 70.2% บน WinoGrande) ขณะที่ LLaMA-65B ทำได้เทียบเท่าหรือเหนือกว่า PaLM-540B บน PIQA (82.8% เทียบกับ 82.3%) และ HellaSwag (84.2% เทียบกับ 83.4%)
- Closed-book QA: บน TriviaQA (0-shot) LLaMA-65B ทำได้ 68.2% และ LLaMA-13B ทำได้ 56.6% (เหนือกว่าประสิทธิภาพเทียบเคียงของ GPT-3 แม้ว่าจะรันบน GPU V100 เพียงตัวเดียว)
- Code Generation: บน HumanEval (pass@1) LLaMA-65B ทำได้ 23.7% ซึ่งเหนือกว่า PaLM-62B (15.9%) และเทียบเท่ากับ PaLM-cont 62B (23.7%)
- MMLU & Instruction Finetuning: โมเดล LLaMA-65B พื้นฐานได้ความแม่นยำ 5-shot บน MMLU อยู่ที่ 63.4% (ตามหลัง PaLM-540B ที่ได้ 69.3% ซึ่งอาจเป็นผลมาจากคลังข้อมูลหนังสือในการพรีเทรนที่เล็กกว่า) อย่างไรก็ตาม การทำ instruction finetuning บนพร้อมต์พื้นฐาน (LLaMA-I 65B) ช่วยยกระดับประสิทธิภาพขึ้นเป็น 68.9%
ข้อจำกัดและคำถามปลายเปิด
- การสร้างข้อมูลเท็จและความถูกต้อง (Hallucination and Truthfulness): คะแนนบน TruthfulQA ยังคงอยู่ในระดับปานกลาง (LLaMA-65B ได้ 0.57 บน Truthful และ 0.53 บน Truthful*Informative) ซึ่งแสดงให้เห็นว่ายังมีแนวโน้มที่จะเกิดอาการประสาทหลอน (hallucination) อยู่
- การขยายขนาดของความเป็นพิษ (Toxicity scaling): บน RealToxicityPrompts ความเป็นพิษจะเพิ่มขึ้นตามขนาดของโมเดล โดยเฉพาะเมื่อได้รับคำสั่งที่สุภาพ (0.141 สำหรับ 65B เทียบกับ 0.081 สำหรับ 7B)
- ช่องว่างความรู้ทางวิชาการ: ประสิทธิภาพบน MMLU ยังตามหลัง Chinchilla-70B และ PaLM-540B ซึ่งคณะผู้วิจัยตั้งสมมติฐานว่าเกิดจากการฝึกด้วยข้อมูลหนังสือและบทความทางวิชาการเพียง ~177GB เมื่อเทียบกับชุดข้อมูลแบบปิดที่มีขนาด ~2TB
คำศัพท์สำคัญ
- LLaMA
- ชุดแบบจำลองภาษาพื้นฐานที่มีขนาดตั้งแต่ 7B ถึง 65B พารามิเตอร์ ซึ่งได้รับการฝึกฝนด้วยโทเค็นมากถึง 1.4 ล้านล้านโทเค็นโดยใช้เฉพาะชุดข้อมูลสาธารณะ
- Inference Budget
- ต้นทุนการคำนวณและระยะเวลาหน่วงที่เกิดขึ้นเมื่อให้บริการโมเดลที่ฝึกฝนแล้ว ซึ่งจัดการให้คุ้มค่าได้โดยการฝึกฝนโมเดลขนาดเล็กลงด้วยจำนวนโทเค็นที่มากขึ้น
- RMSNorm
- Root Mean Square Layer Normalization ใช้เพื่อปรับข้อมูลนำเข้าของ sub-layer ใน Transformer ให้เป็นมาตรฐานเพื่อความเสถียรในการฝึกฝน
- SwiGLU
- ตัวแปรหนึ่งของ Gated Linear Unit ที่ใช้ฟังก์ชันกระตุ้น Swish โดยปรับขนาดมิติซ่อน (hidden dimension) ให้อยู่ที่ 2/3 * 4d
- Rotary Positional Embeddings (RoPE)
- เทคนิคที่แทรกข้อมูลตำแหน่งสัมพัทธ์ลงใน attention layer ของ Transformer โดยการหมุนเวกเตอร์ representation ของ query และ key
- xformers
- ไลบรารีโอเพนซอร์สที่ช่วยประมวลผล causal multi-head attention ได้อย่างมีประสิทธิภาพ ซึ่งหลีกเลี่ยงการจัดเก็บเมทริกซ์ค่าน้ำหนัก attention ขนาดใหญ่
- LLaMA-I
- เวอร์ชันที่ปรับแต่งตามคำสั่ง (instruction-finetuned) ของ LLaMA-65B ซึ่งฝึกตามระเบียบวิธีของ Flan เพื่อปรับปรุงการปฏิบัติตามคำสั่งและประสิทธิภาพบน MMLU
- TruthfulQA
- เบेंचมาร์กที่ใช้วัดแนวโน้มของ LLM ในการเลียนแบบความเชื่อผิดๆ ของมนุษย์และการสร้างข้อมูลเท็จ (hallucination) จากคำถามข้อเท็จจริงที่มีการลวง
คำถามที่พบบ่อย
ชุดข้อมูลใดบ้างที่ใช้ในการพรีเทรน LLaMA?
การพรีเทรนใช้เฉพาะข้อมูลสาธารณะเท่านั้น ได้แก่: English CommonCrawl (67%), C4 (15%), GitHub (4.5%), Wikipedia ใน 20 ภาษา (4.5%), Gutenberg และ Books3 (4.5%), ArXiv (2.5%) และ Stack Exchange (2%)
LLaMA-13B เปรียบเทียบกับ GPT-3 (175B) เป็นอย่างไร?
LLaMA-13B มีประสิทธิภาพเหนือกว่า GPT-3 ในเกณฑ์มาตรฐานส่วนใหญ่ รวมถึง BoolQ, PIQA และ WinoGrande แม้ว่าจะมีขนาดเล็กกว่ามากกว่า 10 เท่า และสามารถรันอนุมานได้บน GPU ทั่วไปหรือ GPU สำหรับดาต้าเซ็นเตอร์เพียงตัวเดียว
การเทรน LLaMA-65B ใช้เวลานานเท่าใด?
การเทรน LLaMA-65B บนโทเค็นจำนวน 1.4 ล้านล้านโทเค็น ประมวลผลได้ประมาณ 380 โทเค็น/วินาที/GPU บน 80GB A100 GPU จำนวน 2,048 ตัว โดยเสร็จสิ้นในเวลาประมาณ 21 วัน
LLaMA มีการปรับเปลี่ยนโครงสร้างทางสถาปัตยกรรมอย่างไรบ้างจาก Transformer ดั้งเดิม?
LLaMA ใช้ RMSNorm ในการทำ pre-normalization กับข้อมูลนำเข้าของ sub-layer, แทนที่ ReLU ด้วยฟังก์ชันกระตุ้น SwiGLU (มิติ 2/3 * 4d) และเปลี่ยน positional embeddings แบบสัมบูรณ์มาเป็น rotary position embeddings (RoPE)
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด