書名: 大模型RAG實戰:RAG原理、應用與系統構建作者名: 汪鵬 谷清水 卞龍鵬本章字數: 1202字更新時間: 2024-10-29 18:53:29
1.1 大模型應用的方向:RAG
1.1.1 什么是RAG
1.生成式AI
生成式AI是一種能夠生成各類內容的技術,包括文本、圖像、音頻和合成數據。自2022年底ChatGPT在全球范圍內推廣以來,基于Transformer解碼器結構的大模型已能在短時間內為用戶生成高質量的文本、表格、代碼,使整個AI領域邁入了新的時代。
大語言模型(Large Language Model, LLM)經過海量文本數據的訓練后,能將這些文本數據以一種黑盒形式壓縮在模型參數中。預訓練完成后,模型便掌握了大量的人類世界知識。研究者發現,當模型的規模足夠大且經過指令微調對齊后,便可通過提示模板,運用零樣本(zero-shot)或少樣本(few-shot)的提示詞來完成許多自然語言理解和自然語言生成任務。
然而,不好的消息是,大模型并不具備在環境不斷變化的場景中回答特定問題所需的全面知識。例如,早期的ChatGPT的預訓練語料庫時間截至2021年,這意味著模型無法準確輸出2021年以后的事實性問題,這正是現代大模型所面臨的知識更新困境。而在2023年11月,OpenAI發布的GPT-4 Turbo的知識更新時間截至2023年4月,實際上,對于一個大模型來說,更新基礎模型知識庫是非常困難的一件事情。首先,需要保證預訓練數據的質量;其次,更新知識庫后的模型通常都需要重新訓練,至少要將新數據與舊數據按照一定的比例進行混合訓練,而不能僅僅使用新數據,否則會出現災難性遺忘的問題。總之,大模型的知識更新問題將成為模型的一個重要痛點,并且是一個值得研究的課題。
2.RAG
2020年,Facebook(后更名為Meta)在“Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”一文中首先提出了一種稱為檢索增強生成(RAG)的框架。該框架可以使模型訪問超出其訓練數據范圍之外的信息,使得模型在每次生成時可以利用檢索提供的外部更專業、更準確的知識,從而更好地回答用戶問題。
在RAG系統中,模型可以通過瀏覽外部知識來回答用戶的問題,而不是試圖從參數記憶中找到問題相關的答案,就像在考試的時候是開卷考試還是閉卷考試一樣。例如:我們可以分別詢問ChatGPT和Bing Chat兩個問題:“RAG是什么?”“為什么大模型都是Decoder(解碼器)結構?”因為Bing Chat可以結合互聯網的搜索數據來生成答案,所以答案會更精準并且信息量更足。
從圖1-1和圖1-2的答案中,我們可以很明顯地看出使用RAG與不使用RAG的差異。
RAG在推理過程中分為兩個階段:檢索和內容生成。在檢索階段,通過算法檢索與用戶問題相關的知識片段。在開放領域中,這些知識片段可以來自互聯網上搜索引擎檢索到的文檔,例如微軟Bing AI的模式;在私有領域的企業場景中,通常使用大量的內部文檔通過更小的信息源約束來提高模型生成的安全性和可靠性。

圖1-1 ChatGPT回答結果

圖1-2 Bing Chat回答結果
完成檢索之后,可以獲取到一些與用戶輸入相關的可靠外部知識。在內容生成階段,通過一個結構化的prompt模板約束,將這些外部知識添加到用戶的問題中,并傳遞給語言模型。模型基于知識增強的prompt,通過自己的大量參數計算,就可以生成一個針對該用戶問題的更準確的答案。在這個過程中,還可以約束模型對生成的答案進行溯源,以方便地知道模型是依據哪些知識片段完成最終答案生成的。
在后面的章節中,我們會詳細介紹RAG的所有流程。
- Intel Galileo Essentials
- Getting Started with React
- 移動UI設計(微課版)
- 無代碼編程:用云表搭建企業數字化管理平臺
- iOS開發實戰:從零基礎到App Store上架
- Responsive Web Design with HTML5 and CSS3
- oreilly精品圖書:軟件開發者路線圖叢書(共8冊)
- Elastic Stack應用寶典
- Python機器學習經典實例
- CoffeeScript Application Development Cookbook
- Beginning C++ Game Programming
- Everyday Data Structures
- 從零開始學UI:概念解析、實戰提高、突破規則
- 大話代碼架構:項目實戰版
- Apache Kafka 1.0 Cookbook