งานวิจัย · arXiv 2005.14165
Language Models are Few-Shot Learners
สรุปสามบรรทัด
- 🎯 โมเดล NLP มาตรฐานพึ่งพาการไฟน์จูนเฉพาะงานด้วยตัวอย่างที่มีป้ายกำกับหลายพันรายการ ซึ่งเสี่ยงต่อการวางนัยทั่วไปนอกโดเมน (out-of-distribution) ได้ไม่ดี
- 🔧 เทรน GPT-3 (พารามิเตอร์สูงสุด 175B) บน 300B โทเคน และประเมินผลโดยใช้การกำหนดเงื่อนไขผ่านพรอมต์แบบ in-context โดยไม่มีการอัปเดตน้ำหนักโมเดล
- 📈 ในการตั้งค่าแบบ few-shot นั้น GPT-3 175B ทำผลงานได้เทียบเท่าหรือใกล้เคียงกับโมเดลที่ผ่านการไฟน์จูน โดยทำได้ 71.2% บน TriviaQA และความแม่นยำ 86.4% บน LAMBADA
บทคัดย่อ
งานวิจัยเมื่อเร็ว ๆ นี้แสดงให้เห็นถึงการพัฒนาอย่างก้าวกระโดดในงานและชุดทดสอบวัดเกณฑ์มาตรฐานของ NLP จำนวนมาก โดยใช้วิธีการพรีเทรนบนคลังข้อความขนาดใหญ่แล้วตามด้วยการไฟน์จูนเฉพาะงาน แม้ว่าสถาปัตยกรรมมักจะไม่ขึ้นกับงาน (task-agnostic) แต่วิธีนี้ยังคงต้องใช้ชุดข้อมูลสำหรับการไฟน์จูนเฉพาะงานที่มีตัวอย่างหลักพันหรือหลายหมื่นตัวอย่าง ในทางตรงกันข้าม โดยทั่วไปมนุษย์สามารถทำงานภาษาใหม่ ๆ ได้จากตัวอย่างเพียงไม่กี่ข้อหรือจากคำสั่งง่าย ๆ ซึ่งเป็นสิ่งที่ระบบ NLP ในปัจจุบันส่วนใหญ่ยังคงทำได้ยาก ในที่นี้เราแสดงให้เห็นว่าการขยายขนาดของโมเดลภาษาช่วยเพิ่มประสิทธิภาพการทำงานแบบ few-shot ที่ไม่ขึ้นกับงานได้อย่างมาก จนบางครั้งสามารถเทียบเคียงได้กับแนวทางการไฟน์จูนระดับ state-of-the-art ก่อนหน้านี้ โดยเฉพาะอย่างยิ่ง เราได้เทรน GPT-3 ซึ่งเป็นโมเดลภาษาแบบ autoregressive ที่มีพารามิเตอร์ 1.75 แสนล้านตัว ซึ่งมากกว่าโมเดลภาษาแบบ non-sparse ก่อนหน้าถึง 10 เท่า และทดสอบประสิทธิภาพในการตั้งค่าแบบ few-shot สำหรับทุกงาน GPT-3 ถูกนำไปใช้โดยไม่มีการอัปเดตเกรเดียนต์หรือการไฟน์จูนใด ๆ ทั้งสิ้น โดยระบุงานและตัวอย่างสาธิตแบบ few-shot ผ่านการปฏิสัมพันธ์ด้วยข้อความกับโมเดลเท่านั้น GPT-3 ทำผลงานได้อย่างยอดเยี่ยมในชุดข้อมูล NLP หลากหลายรูปแบบ ทั้งการแปลภาษา การตอบคำถาม และงาน cloze ตลอดจนงานที่ต้องใช้การให้เหตุผลเฉพาะหน้าหรือการปรับตัวตามโดเมน เช่น การถอดรหัสคำสลับอักษร การนำคำใหม่มาแต่งประโยค หรือการคำนวณเลขคณิต 3 หลัก ในขณะเดียวกัน เรายังระบุถึงชุดข้อมูลบางส่วนที่การเรียนรู้แบบ few-shot ของ GPT-3 ยังคงทำได้ไม่ดีนัก รวมถึงชุดข้อมูลบางส่วนที่ GPT-3 เผชิญกับปัญหาเชิงระเบียบวิธีที่เกี่ยวข้องกับการเทรนบนคลังข้อมูลเว็บขนาดใหญ่ สุดท้ายนี้ เราพบว่า GPT-3 สามารถสร้างตัวอย่างบทความข่าวที่ผู้ประเมินที่เป็นมนุษย์แยกแยะออกจากบทความที่เขียนโดยมนุษย์ได้ยาก เราได้อภิปรายถึงผลกระทบทางสังคมในวงกว้างจากการค้นพบนี้และของ GPT-3 โดยรวม
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
Recent work has demonstrated substantial gains on many NLP tasks and benchmarks by pre-training on a large corpus of text followed by fine-tuning on a specific task. While typically task-agnostic in architecture, this method still requires task-specific fine-tuning datasets of thousands or tens of thousands of examples. By contrast, humans can generally perform a new language task from only a few examples or from simple instructions - something which current NLP systems still largely struggle to do. Here we show that scaling up language models greatly improves task-agnostic, few-shot performance, sometimes even reaching competitiveness with prior state-of-the-art fine-tuning approaches. Specifically, we train GPT-3, an autoregressive language model with 175 billion parameters, 10x more than any previous non-sparse language model, and test its performance in the few-shot setting. For all tasks, GPT-3 is applied without any gradient updates or fine-tuning, with tasks and few-shot demonstrations specified purely via text interaction with the model. GPT-3 achieves strong performance on many NLP datasets, including translation, question-answering, and cloze tasks, as well as several tasks that require on-the-fly reasoning or domain adaptation, such as unscrambling words, using a novel word in a sentence, or performing 3-digit arithmetic. At the same time, we also identify some datasets where GPT-3's few-shot learning still struggles, as well as some datasets where GPT-3 faces methodological issues related to training on large web corpora. Finally, we find that GPT-3 can generate samples of news articles which human evaluators have difficulty distinguishing from articles written by humans. We discuss broader societal impacts of this finding and of GPT-3 in general.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
กระบวนการมาตรฐานแบบพรีเทรนควบคู่กับการไฟน์จูนจำเป็นต้องใช้ชุดข้อมูลขนาดใหญ่ที่มีป้ายกำกับเฉพาะงาน (โดยทั่วไปคือหลักพันถึงหลายแสนตัวอย่าง) ข้อกำหนดนี้จำกัดความสามารถในการประยุกต์ใช้ทั่วไป เพิ่มความอ่อนไหวต่อความสัมพันธ์แบบลวง (spurious correlations) และแตกต่างจากการเรียนรู้ของมนุษย์ที่ปรับตัวเข้ากับงานได้โดยใช้เพียงคำสั่งหรือตัวอย่างสาธิตเพียงเล็กน้อย ความพยายามก่อนหน้านี้ในการทำ in-context learning ด้วยโมเดลขนาดเล็กยังมีประสิทธิภาพตามหลังการไฟน์จูนอยู่มาก
แนวคิดหลัก
- In-Context Meta-Learning: โมเดลได้รับทักษะการจดจำรูปแบบระหว่างการพรีเทรน และทำการปรับตัวเข้ากับงานใน activation space ระหว่างการทำ forward pass ในช่วงทดสอบโดยไม่มีการอัปเดตเกรเดียนต์
- Spectrum of Conditioning: งานต่าง ๆ ได้รับการทดสอบครอบคลุมทั้ง zero-shot (คำสั่งเพียงอย่างเดียว), one-shot (คำสั่ง + ตัวอย่างสาธิตหนึ่งข้อ) และ few-shot (ตัวอย่างสาธิต ข้อ โดยทั่วไปคือ 10 ถึง 100 ข้อภายในหน้าต่างบริบท 2048 โทเคน)
- Predictable Scaling: การสเกลเชิงประจักษ์แบบกฎกำลัง (power-law) ของค่า validation loss แปลงไปสู่การพัฒนาขีดความสามารถของงานปลายน้ำอย่างต่อเนื่องในโมเดลทั้ง 8 ขนาด (พารามิเตอร์ 125M ถึง 175B)
วิธีการ
GPT-3 ใช้สถาปัตยกรรมแบบ autoregressive transformer เช่นเดียวกับ GPT-2 โดยเพิ่มรูปแบบ attention แบบสลับระหว่าง dense attention และ locally banded sparse attention เข้ามา โมเดลได้รับการพรีเทรนบน 300 พันล้านโทเคนด้วยขนาดบริบทใช้งานจริง
สูตรการประเมินผลที่สำคัญประกอบด้วย:
- Per-Token Completion Likelihood: สำหรับชุดข้อมูลแบบปรนัย (multiple-choice) ตัวเลือกคำตอบจะได้รับการประเมินโดยการเปรียบเทียบความน่าจะเป็นของโทเคนหลังปรับบรรทัดฐาน
- Unconditional Normalization: บนเกณฑ์มาตรฐาน เช่น ARC, OpenBookQA และ RACE ความน่าจะเป็นของโมเดลจะถูกปรับบรรทัดฐานเทียบกับเบสไลน์ที่ไม่มีเงื่อนไข:
โดยที่ คือพรอมต์ทั่วไป เช่น
"Answer: "หรือ"A: " - Generation Decoding: งานเติมข้อความอิสระใช้ beam search โดยมีความกว้างของบีมเท่ากับ 4 และ length penalty
ผลการทดลอง
- Closed-Book QA: GPT-3 175B ทำคะแนนแบบ few-shot ได้ 71.2% บน TriviaQA (เหนือกว่า RAG แบบ open-domain ที่ผ่านการไฟน์จูนซึ่งทำได้ 68.0%), 41.5% บน WebQuestions และ 29.9% บน Natural Questions
- Language Modeling & Cloze: บรรลุค่า perplexity ที่ 20.5 บน PTB (แบบ zero-shot) บน LAMBADA การปรับรูปแบบงานให้เป็น cloze test ทำให้ได้ความแม่นยำแบบ few-shot ถึง 86.4% (สูงกว่า SOTA ก่อนหน้า 18%)
- Translation: การแปลเป็นภาษาอังกฤษทำได้ 39.2 BLEU (Fr En), 40.6 BLEU (De En) และ 39.5 BLEU (Ro En) ซึ่งทำผลงานได้ดีกว่าเบสไลน์ NMT แบบ unsupervised ก่อนหน้านี้
- Reasoning & Synthesis: แก้โจทย์การบวกเลข 2 หลักได้ 100% และการบวกเลข 3 หลักได้ 80.4% ในการตั้งค่าแบบ few-shot สามารถสร้างบทความข่าวสังเคราะห์ที่ผู้ประเมินที่เป็นมนุษย์แยกแยะออกจากบทความจริงได้ด้วยความแม่นยำเพียง 52% (ใกล้เคียงกับการสุ่มเดา)
ข้อจำกัดและประเด็นปลายเปิด
- งานที่ยังทำได้ไม่ดี: ยังมีปัญหากับการเปรียบเทียบข้ามลำดับข้อความ โดยเฉพาะ NLI (เช่น ANLI, RTE) และ Word-in-Context (WiC ทำได้ 49.4% ซึ่งใกล้เคียงกับการสุ่มเดา)
- ข้อจำกัดเชิงโครงสร้าง: การเทรนแบบ autoregressive ล้วนขัดขวางการกำหนดเงื่อนไขแบบสองทิศทาง (bidirectional) ซึ่งส่งผลเสียต่องานที่ต้องมองย้อนกลับไปหรืออ่านลำดับข้อความซ้ำทั้งประโยค
- Data Contamination: การดึงข้อมูลจากเว็บอย่างหนาแน่นทำให้เกิดการทับซ้อนระหว่างชุดเทรนและชุดทดสอบ จำเป็นต้องมีการตรวจสอบกรอง -gram ย้อนหลังอย่างครอบคลุม (เช่น บน Winograd และ PIQA)
- ผลกระทบทางสังคม: การเทรนในระดับอินเทอร์เน็ตได้ซึมซับอคติทางเพศ เชื้อชาติ และศาสนาเข้ามาอย่างมีนัยสำคัญ และข้อความที่สร้างขึ้นอาจถูกนำไปใช้ในทางที่ผิดสำหรับการสร้างข้อความที่ไม่ประสงค์ดี
คำศัพท์สำคัญ
- in-context learning (การเรียนรู้ในบริบท)
- กระบวนการปรับตัวในลูปภายในที่โมเดลซึ่งผ่านการพรีเทรนจะอนุมานและทำงานได้ในเวลาทดสอบจากคำสั่งภาษาธรรมชาติและตัวอย่างสาธิตในพรอมต์ โดยไม่มีการอัปเดตเกรเดียนต์
- few-shot
- การตั้งค่าการประเมินผลที่โมเดลจะได้รับตัวอย่างสาธิตมากที่สุดเท่าที่จะใส่ลงในหน้าต่างบริบทได้ (โดยทั่วไปคือ 10 ถึง 100 ตัวอย่าง) ควบคู่ไปกับคำอธิบายงาน
- one-shot
- เงื่อนไขการประเมินผลที่อนุญาตให้มีตัวอย่างสาธิตงานเพียงตัวอย่างเดียวคู่กับคำอธิบายงานภาษาธรรมชาติ
- zero-shot
- การตั้งค่าการประเมินผลที่โมเดลจะได้รับเพียงคำสั่งภาษาธรรมชาติที่อธิบายงาน โดยไม่มีตัวอย่างสาธิตใด ๆ ทั้งสิ้น
- closed-book question answering
- การตอบคำถามข้อเท็จจริงโดยอาศัยความรู้ที่เก็บไว้ในพารามิเตอร์ของโมเดลเพียงอย่างเดียว โดยไม่เข้าถึงเอกสารภายนอกหรือระบบค้นคืนข้อมูลในเวลาทดสอบ
- data contamination (การปนเปื้อนของข้อมูล)
- การรวมเอาชุดทดสอบมาตรฐาน ชุดทดสอบ หรือชุดข้อมูลพัฒนาของงานปลายน้ำ เข้าไปในคลังข้อมูลขนาดใหญ่ระดับอินเทอร์เน็ตที่ใช้ในการพรีเทรนโดยไม่ได้ตั้งใจ
- sparse attention
- การปรับเปลี่ยนทางสถาปัตยกรรมที่สลับเลเยอร์ dense attention เข้ากับรูปแบบ locally banded sparse attention เพื่อสร้างสมดุลของประสิทธิภาพการคำนวณในบริบทที่ยาว
- unconditional normalization
- การหารความน่าจะเป็นของการเติมเต็มแบบมีเงื่อนไขด้วยความน่าจะเป็นของการเติมเต็มที่ได้รับจากพรอมต์ทั่วไป เพื่อกำจัดอคติด้านความยาวและความถี่ในงานแบบปรนัย
คำถามที่พบบ่อย
โมเดล GPT-3 ตัวเต็มมีพารามิเตอร์จำนวนเท่าใด และได้รับการเทรนอย่างไร?
GPT-3 มีพารามิเตอร์ที่สามารถเทรนได้ 1.75 แสนล้านตัว (175B) ครอบคลุม 96 เลเยอร์, 96 attention heads และมิติซ่อน (hidden dimension) ขนาด 12,288 โมเดลได้รับการเทรนด้วย 300 พันล้านโทเคนบนชุดข้อมูล Common Crawl ที่ผ่านการกรอง, WebText2, Books1, Books2 และ Wikipedia โดยใช้ Adam บนคลัสเตอร์ Microsoft V100 GPU
GPT-3 ใช้การไฟน์จูนสำหรับเกณฑ์มาตรฐานงานปลายน้ำหรือไม่?
ไม่ ผลการทดลองหลักทั้งหมดในบทความได้รับการประเมินโดยไม่มีการอัปเดตเกรเดียนต์หรือการไฟน์จูน โดยพึ่งพาเพียงพรอมต์บริบทแบบ zero-shot, one-shot หรือ few-shot เท่านั้น
มนุษย์สามารถระบุบทความข่าวที่สร้างโดย GPT-3 175B ได้ง่ายเพียงใด?
ผู้ประเมินที่เป็นมนุษย์มีความแม่นยำประมาณ 52% ในการแยกแยะบทความข่าวสั้น (200 คำ) และขนาดยาว (500 คำ) ที่สร้างโดย GPT-3 ออกจากบทความที่เขียนโดยมนุษย์ ซึ่งแทบไม่ต่างจากการสุ่มเดา (50%)
งานประเภทใดที่ GPT-3 ประสบปัญหามากที่สุด?
GPT-3 ทำผลงานได้ไม่ดีในงาน natural language inference (เช่น ANLI และ RTE), งานเปรียบเทียบสองทิศทางอย่าง Word-in-Context (WiC ได้คะแนน 49.4%) และงานอ่านเพื่อความเข้าใจบางประเภท เช่น QuAC และ RACE
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด