งานวิจัย · arXiv 2005.11401
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
สรุปสามบรรทัด
- 🎯 โมเดลภาษาแบบพารามิเตอร์ล้วนประสบปัญหาในการเข้าถึง ปรับปรุง และอ้างอิงความรู้เชิงข้อเท็จจริง ซึ่งนำไปสู่อาการประสาทหลอน (hallucinations) ในงานที่ต้องใช้ความรู้เข้มข้น
- 🔧 นำเสนอ RAG ซึ่งผสาน Dense Passage Retriever (หน่วยความจำนอนพารามิเตอร์บน Wikipedia) เข้ากับตัวสร้าง BART (หน่วยความจำพารามิเตอร์) โดยทำการไฟน์จูนแบบ end-to-end ผ่าน marginalization เหนือเอกสารแฝง (latent documents)
- 📈 สร้างผลลัพธ์ระดับแนวหน้าใหม่บน open-domain QA (44.5 EM บน Natural Questions) และสร้างข้อความที่มีข้อเท็จจริงถูกต้อง เฉพาะเจาะจง และหลากหลายกว่าเบสไลน์แบบพารามิเตอร์ล้วน
บทคัดย่อ
โมเดลภาษาขนาดใหญ่ที่ผ่านการฝึกฝนล่วงหน้าได้รับการพิสูจน์แล้วว่าสามารถจัดเก็บความรู้เชิงข้อเท็จจริงไว้ในพารามิเตอร์ของตนเองได้ และบรรลุผลลัพธ์ระดับแนวหน้า (state-of-the-art) เมื่อนำมาไฟน์จูนกับงาน NLP ปลายน้ำ อย่างไรก็ตาม ความสามารถในการเข้าถึงและจัดการความรู้อย่างแม่นยำยังคงมีจำกัด ส่งผลให้ในงานที่ต้องใช้ความรู้เชิงลึก ประสิทธิภาพของโมเดลเหล่านี้ยังตามหลังสถาปัตยกรรมเฉพาะงาน นอกจากนี้ การระบุที่มาของการตัดสินใจและการอัปเดตความรู้เกี่ยวกับโลกยังคงเป็นโจทย์วิจัยปลายเปิด โมเดลที่ผ่านการฝึกฝนล่วงหน้าซึ่งมีกลไกการเข้าถึงหน่วยความจำภายนอกแบบนอนพารามิเตอร์ที่หาอนุพันธ์ได้สามารถเอาชนะปัญหานี้ได้ แต่ที่ผ่านมากลับได้รับการสำรวจเฉพาะในงานปลายน้ำแบบดึงข้อมูล (extractive) เท่านั้น เราศึกษาแนวทางการไฟน์จูนอเนกประสงค์สำหรับ Retrieval-Augmented Generation (RAG) ซึ่งเป็นโมเดลที่รวมหน่วยความจำแบบพารามิเตอร์และนอนพารามิเตอร์ที่ผ่านการฝึกฝนล่วงหน้าเข้าด้วยกันเพื่อการสร้างภาษา เรานำเสนอโมเดล RAG ที่หน่วยความจำพารามิเตอร์คือโมเดล seq2seq ที่ผ่านการฝึกฝนล่วงหน้า และหน่วยความจำนอนพารามิเตอร์คือดัชนีเวกเตอร์หนาแน่นของ Wikipedia ซึ่งเข้าถึงได้ด้วยตัวสืบค้นแบบนิวรัลที่ผ่านการฝึกฝนล่วงหน้า เราเปรียบเทียบรูปแบบของ RAG สองแบบ แบบแรกกำหนดเงื่อนไขโดยอิงจากข้อความที่สืบค้นชุดเดียวกันตลอดทั้งลำดับที่สร้างขึ้น ส่วนอีกแบบสามารถใช้ข้อความที่แตกต่างกันในแต่ละโทเคน เราทำการไฟน์จูนและประเมินผลโมเดลของเราในงาน NLP ที่ต้องใช้ความรู้เข้มข้นหลากหลายงาน และสร้างผลลัพธ์ระดับแนวหน้าใหม่ในงาน open domain QA สามงาน โดยมีประสิทธิภาพเหนือกว่าโมเดล seq2seq แบบพารามิเตอร์ล้วน และสถาปัตยกรรม retrieve-and-extract เฉพาะงาน สำหรับงานสร้างภาษา เราพบว่าโมเดล RAG สร้างภาษาที่มีความเฉพาะเจาะจง หลากหลาย และถูกต้องตามข้อเท็จจริงมากกว่าเบสไลน์ seq2seq แบบพารามิเตอร์ล้วนระดับแนวหน้า
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
Large pre-trained language models have been shown to store factual knowledge in their parameters, and achieve state-of-the-art results when fine-tuned on downstream NLP tasks. However, their ability to access and precisely manipulate knowledge is still limited, and hence on knowledge-intensive tasks, their performance lags behind task-specific architectures. Additionally, providing provenance for their decisions and updating their world knowledge remain open research problems. Pre-trained models with a differentiable access mechanism to explicit non-parametric memory can overcome this issue, but have so far been only investigated for extractive downstream tasks. We explore a general-purpose fine-tuning recipe for retrieval-augmented generation (RAG) -- models which combine pre-trained parametric and non-parametric memory for language generation. We introduce RAG models where the parametric memory is a pre-trained seq2seq model and the non-parametric memory is a dense vector index of Wikipedia, accessed with a pre-trained neural retriever. We compare two RAG formulations, one which conditions on the same retrieved passages across the whole generated sequence, the other can use different passages per token. We fine-tune and evaluate our models on a wide range of knowledge-intensive NLP tasks and set the state-of-the-art on three open domain QA tasks, outperforming parametric seq2seq models and task-specific retrieve-and-extract architectures. For language generation tasks, we find that RAG models generate more specific, diverse and factual language than a state-of-the-art parametric-only seq2seq baseline.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
โมเดลภาษาที่ผ่านการฝึกฝนล่วงหน้าจัดเก็บความรู้เชิงข้อเท็จจริงจำนวนมากไว้ภายในพารามิเตอร์ (หน่วยความจำพารามิเตอร์) อย่างไรก็ตาม โมเดลเหล่านี้มีข้อเสียสำคัญ ได้แก่ ความยากลำบากในการขยายหรืออัปเดตความรู้โดยไม่ต้องเทรนใหม่ ไม่สามารถระบุที่มาหรือให้ความสามารถในการตีความผลลัพธ์ได้อย่างง่ายดาย และมีแนวโน้มที่จะเกิดอาการประสาทหลอน (hallucinations)
แม้ว่าโมเดลไฮบริดแบบพารามิเตอร์/นอนพารามิเตอร์ เช่น REALM และ ORQA จะรวมการสืบค้นที่หาอนุพันธ์ได้เข้ากับ masked language modeling แต่ก็ยังถูกจำกัดอยู่แค่งานตอบคำถามแบบดึงข้อมูล (extractive question answering) ส่วนสถาปัตยกรรม sequence-to-sequence (seq2seq) มาตรฐานอย่าง BART และ T5 ยังคงทำงานแบบ closed-book เป็นส่วนใหญ่ งานวิจัยนี้ช่วยลดช่องว่างดังกล่าวโดยนำเสนอ Retrieval-Augmented Generation (RAG) ซึ่งเป็นเฟรมเวิร์กการไฟน์จูนทั่วไปที่เชื่อมโยงตัวสืบค้นนิวรัลแบบหนาแน่นที่ผ่านการฝึกฝนล่วงหน้า เข้ากับตัวสร้างข้อความ seq2seq แบบ autoregressive สำหรับทั้งงานสร้างภาษาแบบ open-domain และงานจำแนกประเภท
แนวคิดสำคัญ
- หน่วยความจำไฮบริดทั้งแบบพารามิเตอร์และนอนพารามิเตอร์: หน่วยความจำนอนพารามิเตอร์ประกอบด้วยดัชนีเวกเตอร์หนาแน่นของข้อความ Wikipedia ขนาด 100 คำ จำนวน 21 ล้านข้อความ ซึ่งเข้าถึงผ่าน Maximum Inner Product Search (MIPS) ส่วนหน่วยความจำพารามิเตอร์คือตัวสร้าง BART ที่ผ่านการฝึกฝนล่วงหน้า
- การไฟน์จูนแบบ End-to-End: ตัวเข้ารหัสคำค้นหา (query encoder) และตัวสร้างข้อความ (generator) ได้รับการเทรนร่วมกันโดยถือว่าข้อความที่สืบค้นมาเป็นตัวแปรแฝง (latent variables) และลดค่า negative marginal log-likelihood ของโทเคนเป้าหมายโดยไม่ต้องมีการกำกับดูแลการสืบค้นอย่างชัดเจน
- รูปแบบการกำหนดเงื่อนไขสองแบบ:
- RAG-Sequence: กำหนดเงื่อนไขบนเอกสารที่สืบค้นชุดเดียวกันตลอดทั้งลำดับข้อความที่สร้างขึ้น
- RAG-Token: อนุญาตให้แต่ละโทเคนที่สร้างขึ้นสามารถ attend และ marginalize บนข้อความที่สืบค้นมาแตกต่างกันได้
- ความรู้เกี่ยวกับโลกที่ถอดเปลี่ยนได้ทันที (Hot-Swappable): ดัชนีภายนอกสามารถสลับเปลี่ยนได้ในเวลาอนุมาน (เช่น การสลับดัชนี Wikipedia ปี 2016 เป็นปี 2018) เพื่ออัปเดตความรู้เกี่ยวกับโลกโดยไม่ต้องแก้ไขค่าน้ำหนักของโมเดล
วิธีการ
เมื่อกำหนดลำดับอินพุต ตัวสืบค้น จะสร้างการแจกแจงความน่าจะเป็นเหนือเอกสาร และตัวสร้าง จะสร้างโทเคนเป้าหมายตามเงื่อนไขของทั้ง และ
ตัวสืบค้นใช้ Dense Passage Retriever (DPR): โดยที่ และ ผู้สมัคร top- อันดับแรกจะถูกดึงมาโดยใช้ FAISS MIPS ทั้งนี้ ดัชนีเอกสารและตัวเข้ารหัสเอกสาร จะถูกตรึงค่าไว้ ในขณะที่ และพารามิเตอร์ของตัวสร้าง BART จะได้รับการไฟน์จูน
RAG-Sequence
โมเดลจะมองเอกสารที่สืบค้นมาเป็นตัวแปรแฝงเดี่ยวตลอดทั้งลำดับ : การถอดรหัสสามารถประเมินได้โดยใช้ Thorough Decoding (รัน beam search ต่อเอกสารและคำนวณ forward passes สำหรับสมมติฐานที่เป็นไปได้ในทุกเอกสาร) หรือ Fast Decoding (ประมาณค่าความน่าจะเป็นของ beam ที่หายไปเป็น 0)
RAG-Token
โมเดลจะ marginalize เหนือเอกสารในแต่ละขั้นตอนของโทเคน ทำให้สามารถผสมผสานเนื้อหาในระดับโทเคนจากหลายแหล่งข้อมูลได้: วิธีนี้จะให้ความน่าจะเป็นในการเปลี่ยนสถานะแบบ autoregressive มาตรฐานที่สามารถเสียบเข้ากับ beam search ได้โดยตรง
ผลลัพธ์
- Open-Domain QA: RAG สร้างผลลัพธ์ระดับแนวหน้าใหม่บนชุดทดสอบมาตรฐานเปิดโดยใช้ exact match (EM):
- Natural Questions: 44.5 (RAG-Seq) เทียบกับ 41.5 (DPR) และ 36.6 (T5-11B+SSM)
- TriviaQA (ชุดทดสอบเปิดมาตรฐาน): 56.8 (RAG-Seq); บนชุดทดสอบย่อย TQA-Wiki: 68.0 (RAG-Seq) เทียบกับ 60.5 (T5-11B+SSM)
- WebQuestions: 45.5 (RAG-Token) เทียบกับ 41.1 (DPR)
- CuratedTrec: 52.2 (RAG-Seq) เทียบกับ 50.6 (DPR)
- จุดที่น่าสังเกตคือ บน Natural Questions โมเดล RAG ทำได้ 11.8% EM แม้ว่าคำตอบที่ถูกต้องจะไม่ปรากฏอยู่ในบริบทที่สืบค้นมาเลยก็ตาม (ในขณะที่โมเดลแบบ extractive ได้คะแนน 0%)
- Abstractive Generation: บน Open MS-MARCO โมเดล RAG-Sequence ทำได้ 40.8 Rouge-L และ 44.2 Bleu-1 ซึ่งเหนือกว่า BART (38.2 Rouge-L, 41.6 Bleu-1)
- การสร้างคำถาม Jeopardy: ผู้ประเมินที่เป็นมนุษย์ลงความเห็นว่า RAG-Token มีข้อเท็จจริงที่ถูกต้องมากกว่า BART ใน 42.7% ของกรณี เทียบกับ BART ที่เหนือกว่าเพียง 7.1% นอกจากนี้ผู้ประเมินยังพบว่า RAG มีความเฉพาะเจาะจงมากกว่า (37.4% เทียบกับ 16.8%)
- การตรวจสอบข้อเท็จจริง (Fact Verification): บน FEVER แบบ 3 ทาง RAG บรรลุความแม่นยำของเลเบลที่ 72.5% (ห่างจากระบบ pipeline ที่ใช้ gold evidence supervision เพียง 4.3%); บนแบบ 2 ทาง RAG บรรลุความแม่นยำ 89.5%
- การอัปเดตความรู้ผ่านการสลับดัชนี (Hot-Swapping): การทดสอบตามช่วงเวลากับผู้นำ 82 คนระหว่างปี 2016 ถึง 2018 พบว่า RAG ได้ความแม่นยำ 70% สำหรับผู้นำปี 2016 เมื่อใช้ดัชนีปี 2016 และ 68% สำหรับผู้นำปี 2018 เมื่อใช้ดัชนีปี 2018 แต่คะแนนลดลงอย่างมาก (เหลือ 12% และ 4%) เมื่อใช้ดัชนีไม่ตรงกัน
ข้อจำกัดและประเด็นเปิด
- Retrieval Collapse: สำหรับงานที่ต้องการการอิงเงื่อนไขทางข้อเท็จจริงที่ชัดเจนน้อยลง (เช่น การสร้างเรื่องราวแบบปลายเปิด) ตัวสืบค้นอาจยุบตัวลงไปสืบค้นเอกสารเดิมๆ ที่ไม่เปลี่ยนแปลง ในขณะที่ตัวสร้างเรียนรู้ที่จะละเลยเอกสารเหล่านั้น
- การทำดัชนีเอกสารแบบคงที่: ตัวเข้ารหัสเอกสารถูกคงค่าไว้ระหว่างการไฟน์จูนงาน เนื่องจากต้นทุนการคำนวณที่สูงเกินไปในการทำดัชนีเวกเตอร์ 21 ล้านรายการใหม่ซ้ำๆ ซึ่งจำกัดการปรับตัวของตัวสืบค้น
- การอ้างอิงแหล่งที่มาและอคติ: หน่วยความจำนอนพารามิเตอร์ยังคงเสี่ยงต่อข้อมูลที่ผิดพลาดและอคติที่ฝังอยู่ในคลังความรู้ต้นทาง (Wikipedia)
- การฝึกฝนล่วงหน้าร่วมกัน (Joint Pre-training): องค์ประกอบของตัวสืบค้นและตัวสร้างได้รับการฝึกฝนล่วงหน้าแยกกันก่อนนำมาไฟน์จูนกับงานปลายน้ำ ทำให้การฝึกฝนร่วมกันตั้งแต่เริ่มต้น (from scratch) ยังคงเป็นแนวทางวิจัยปลายเปิดต่อไป
คำศัพท์สำคัญ
- Retrieval-Augmented Generation (RAG)
- เฟรมเวิร์กแบบไฮบริดที่ผสานตัวสืบค้นแบบนิวรัลที่ผ่านการฝึกฝนล่วงหน้าเข้ากับโมเดล sequence-to-sequence เพื่อกำหนดเงื่อนไขในการสร้างข้อความตามข้อความนอนพารามิเตอร์ที่สืบค้นมา
- Parametric Memory
- ความรู้เชิงข้อเท็จจริงโดยนัยที่จัดเก็บไว้ในค่าน้ำหนักเครือข่ายนิวรัลของตัวสร้าง seq2seq ที่ผ่านการฝึกฝนล่วงหน้า (BART)
- Non-Parametric Memory
- คลังเอกสารภายนอกที่ชัดเจน (เช่น ดัชนีเวกเตอร์หนาแน่นของ FAISS จากข้อความ Wikipedia 21 ล้านข้อความ) ซึ่งถูกเข้าถึงในเวลาประมวลผล (runtime)
- RAG-Sequence
- รูปแบบของ RAG ที่ถือว่าข้อความที่สืบค้นมาเป็นตัวแปรแฝงซึ่งถูกคงค่าไว้ตลอดลำดับข้อความทั้งหมดที่สร้างขึ้น
- RAG-Token
- รูปแบบของ RAG ที่ marginalize เหนือเอกสาร top-k ที่สืบค้นมาทีละรายการในแต่ละโทเคน ทำให้สามารถสังเคราะห์เนื้อหาข้ามหลายแหล่งข้อมูลได้
- Dense Passage Retriever (DPR)
- สถาปัตยกรรมตัวเข้ารหัส BERT คู่ที่ให้คะแนนความเกี่ยวข้องของเอกสารต่อคำค้นหาผ่าน maximum inner product search ในปริภูมิมังฝังตัวแบบหนาแน่น
- Maximum Inner Product Search (MIPS)
- สูตรการค้นหาทางคณิตศาสตร์ที่ใช้ในการสืบค้นเวกเตอร์เอกสาร top-k ที่ใกล้เคียงกับเวกเตอร์คำค้นหามากที่สุดได้อย่างรวดเร็วในเวลา sub-linear
- Index Hot-Swapping
- แนวทางการแทนที่ดัชนีเอกสารแบบนอนพารามิเตอร์ด้วยข้อมูลที่อัปเดตใหม่โดยไม่ต้องเทรนใหม่หรือไฟน์จูนพารามิเตอร์ของโมเดล
คำถามที่พบบ่อย
RAG-Sequence และ RAG-Token มีความแตกต่างกันอย่างไร?
RAG-Sequence ใช้เอกสารที่สืบค้นมาฉบับเดียวกันทุกประการเพื่อกำหนดเงื่อนไขในทุกโทเคนตลอดทั้งลำดับข้อความ ในขณะที่ RAG-Token จะ marginalize เหนือเอกสารชั้นนำในแต่ละขั้นตอน ทำให้โทเคนแต่ละตัวสามารถได้รับการสนับสนุนจากเอกสารที่แตกต่างกันได้
การแปลงแทนเอกสาร (document representations) มีการอัปเดตระหว่างการไฟน์จูนหรือไม่?
ไม่ ตัวเข้ารหัสเอกสารและดัชนี FAISS จะถูกคงค่าไว้เพื่อหลีกเลี่ยงต้นทุนการคำนวณที่สูงในการทำดัชนีเอกสาร 21 ล้านฉบับใหม่ระหว่างการเทรน โดยจะอัปเดตเฉพาะพารามิเตอร์ของตัวเข้ารหัสคำค้นหาและตัวสร้าง BART เท่านั้น
RAG สามารถตอบคำถามได้หรือไม่หากไม่มีคำตอบปรากฏอยู่ในเอกสารที่สืบค้นมา?
ได้ เนื่องจากกระบวนการสร้างข้อความไม่มีข้อจำกัดและได้รับการสนับสนุนจากหน่วยความจำพารามิเตอร์ของ BART ทำให้ RAG สามารถตอบถูกถึง 11.8% ในกรณีของ Natural Questions ที่ไม่มีข้อความเป้าหมายอยู่ในข้อความที่สืบค้นมาเลย ในขณะที่โมเดลแบบ extractive ทำได้ 0%
RAG อัปเดตความรู้ได้อย่างไรเมื่อข้อเท็จจริงในโลกเปลี่ยนแปลงไป?
เนื่องจากหน่วยความจำภายนอกของโมเดลมีลักษณะเป็นมอดูล ดัชนีเอกสารจึงสามารถ 'hot-swapped' ด้วยข้อมูลข้อความชุดใหม่ได้ (เช่น การสลับดัชนี Wikipedia ปี 2016 เป็นปี 2018) โดยไม่ต้องเทรนพารามิเตอร์ของโมเดลใหม่
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด