:::

檢索擴增生成(RAG)技術的發展現況與文本知識提取的應用 / Retrieval Augmented Generation (RAG) and Its Application in Text Knowledge Extraction

12月 23, 2024 , , 0 Comments Edit Copy Download

2024-1203-203403.png

檢索擴增生成(RAG)現在已經是大型語言模型領域裡的新寵兒,而且是屬於易懂難經的技術。這篇文章內容是我在計劃書裡對於檢索擴增生成(RAG)技術的內涵和相關應用的介紹。在這個部落格也留存一份記錄吧。

Retrieval Augmented Generation (RAG) has become the new darling of the large language model domain, and it's one of those technologies that are easier to understand than to master. This post contains the introduction to RAG's core concepts and applications that I wrote for a proposal. I'm also keeping a copy here on the blog.


檢索擴增生成(RAG)技術的發展現況 / Current Development Status of Retrieval-Augmented Generation (RAG) Technology

檢索增強生成(Retrieval-Augmented Generation, RAG)是自然語言處理、大型語言模型和資料檢索結合之後的進階技術。其做法係從外部資料庫檢索資訊,來增強大型語言模型在文本生成的準確性與語境相關性,進而降低幻覺(hallucination)產生的機率(Fan et al., 2024)。圖1展示了RAG 系統的主要架構流程,其核心關鍵包括了兩個主要技術:檢索(retrieval)與生成(generation)。在接收到使用者查詢後,檢索模組首先會從外部資料源中找到與查詢相關的文獻或資料,這些檢索到的內容再與原始查詢結合,作為大型語言模型(LLM)的輸入。接著,生成模組利用預訓練的知識與檢索到的外部資料進行推理與文本生成,從而提供精確且具備語境的回應。

20241203_-_100000010000053500000314BABF627ABCD65C9F.png

圖1 RAG的流程架構(Gao et al., 2024)

在檢索模組的設計可大致分為兩類:稀疏檢索(sparse)與密集檢索(dense),這之間的區別在於資訊編碼方式的不同。稀疏檢索主要為基於詞彙的檢索方法,例如 TF-IDF (SPARCK JONES, 1972) 和 BM25 (Wang et al., 2023)。其做法來自於傳統資訊檢索的技術,主要是利用倒置索引(inverted index)來檢索原始資料的內容,在全文檢索的應用中受到廣泛的採納。稀疏檢索的優勢在於簡單直接,可透過輔助生成器將搜尋結果調整後與大型語言模型的情境學習(In-Context Learning, ICL)相互結合。然而,稀疏檢索的性能較為依賴資料庫與查詢的品質,且僅能支援基於相似度的檢索,難以處理自然語言查詢中多種目標的複雜搜尋請求。

另一方面,密集檢索(Dense Retrieval)、或稱作是向量檢索(Vector Search)是一種將查詢與文件嵌入到連續向量空間中的方法,其目的是在語義相似度等標準下進行相似度檢索(Karpukhin et al., 2020)。其中,嵌入模型是密集檢索的關鍵組件。這些模型通常基於不同設計、語言、用途來滿足特定應用場景。目前主流做法大多選擇了以BERT架構的嵌入模型(Devlin et al., 2019),並將之作為知識密集型應用裡查詢和文件建構的編碼器(Ye et al., 2023)。

在檢索之後,RAG的生成模型設計上取決於下游任務的需求。根據不同任務,生成模型主要有兩種作法:白箱和黑箱。白箱生成器 (Parameter-Accessible Generators)的結構允許訪問和調整模型的參數,這些模型可以根據特定需求進行訓練,以提高生成結果的品質。例如,Re2G 系統應用BART將檢索到的搜尋結果來增強生成,以此提升生成結果的準確性和相關性(Glass et al., 2022)。另一方面,黑箱生成器 (Parameter-Inaccessible Generators)是不允許訪問或修改其內部結構或參數的生成模型。許多大型生成模型,例如 GPT系列、Codex 和 Claude都是黑箱模式,意味著研究者僅能用它們輸入查詢並直接獲取輸出結果。一般情況下,黑箱生成器模型的參數調整需要耗費大量資源。相較於調整黑箱生成器的高昂成本,使用黑箱生成器的RAG更多仰賴檢索和增強的細節來提升生成結果的品質。例如 Xu 等人提出的壓縮檢索文件的方法,用來降低計算成本並減少語言模型在長文件中篩選相關資訊的負擔(Xu et al., 2023)。

RAG的商業方案 / Business Plans for RAG

為了簡化RAG的設定與佈署的複雜度,目前已經有相當多企業提出了整合RAG並各具特色的商業方案。LangChain除了可以用開源程式碼在本地佈署之外,還能用商業方案的LangGraph Cloud佈署在雲端、以及用LangSmith檢查資料流通的過程(LangChain, Inc., 2024);Haystack以RAG串接各種企業原本使用的資料庫為特色,其母公司推出的deepsetCloud商業方案可讓使用者將資料和AI處理託管在雲端,是為企業打造的RAG整合方案(deepset GmbH, 2024);另一個商業方案的BotPress Cloud主要特色是能夠利用管線視覺化和低程式碼的組合來建構RAG應用,可大幅度降低技術能力要求的門檻(botpress, 2024);Dify的特長在於整合了多種工具和Agent,而商業方案Dify Cloud則是讓人省去自行佈署的困擾(LangGenius, Inc., 2024);Danswer是著重於資訊檢索的RAG框架,商業方案則可讓使用者在雲端直接使用它改良RAG的混合搜尋技術(Danswer, 2024)。

文本知識提取的應用 / Applications for Knowledge Extraction from Text

在實務應用上,RAG 技術因其檢索模組的簡單調整而具備高度靈活性和效率,且在許多應用中幾乎不需要額外的訓練即可快速部署,近年來的研究已顯示 RAG 在各類生成任務中的優勢。無論是處理需要大量背景知識的開放任務,還是增強日常語言任務的生成效果,甚至是人文領域的數位策展,RAG 技術皆展現出其廣泛的應用價值。在數位策展方面,郭姵妤與陳志銘將華人文化元宇宙研究中心的通用型生成式AI NPC對話機器人訓練平台技術與金庸小說的內容相互結合,圖2的例子既是讓參展者在元宇宙的虛擬數位策展裡詢問僧人扮演的RAG對話機器人來深入認識金庸的世界(秘書處,2024)。

20241203_-_10000001000005CF00000344293746283E655B95.png

(a) 可與虛擬世界的僧人詢問問題

20241203_-_10000001000005D400000347BC57D5616D77F5BD.png

(b) 結合通用型生成式對話機器人訓練生成回應

圖2 金庸武俠文化結合混合實境與生成式對話機器人的元宇宙數位展演(秘書處,2024)

在知識密集的應用方面,RAG能夠協助系統從外部資料庫或網路搜尋擷取資訊來有效提升回應內容的品質,有效改善問答系統(Borgeaud et al., 2022)、聊天機器人(Chen et al., 2020)與事實查核(Izacard et al., 2023)等應用的表現;在資訊管理應用層面,RAG被應用在推薦系統(Di Palma, 2023)、程式開發(Zhou et al., 2023)等領域,並在程式碼產生、程式除錯以及資料庫查詢等任務上展現優異表現(Shi et al., 2022);RAG在特殊專業領域也能發揮它的價值,例如在生物醫學研究上識別分子特性(Li et al., 2024)和預測蛋白質結構(2023),或是在金融領域的輿情分析(Zhang et al., 2023)和財報資訊擷取(Lin, 2024)等任務。


小結 / In Closing

2024-1203-202931.png

其實這些計劃書的很多內容都是來自於我之前講過的「資訊檢索的AI革新:從資訊檢索到檢索增強生成」。雖然當時工作坊其實我沒能把RAG的細節好好講完,不過就算是到現在,我跟其他人解釋RAG的時候,也都還不能完整解說當時演講規劃內容呢。

2024-1203-203106.png

有興趣的話,歡迎到那篇文章裡面看看投影片吧。製作演講的參考資料也包含在下面的參考文獻喔。


參考文獻 / Reference

  • 秘書處(2024,十月30日)。金庸百年誕辰研討會登場 政大邀各界探索武俠文化新世代價值。國立政治大學。https://www.nccu.edu.tw/p/406-1000-18086,r17.php?Lang=zh-tw  
  • Borgeaud, S., Mensch, A., Hoffmann, J., Cai, T., Rutherford, E., Millican, K., Driessche, G. B. V. D., Lespiau, J.-B., Damoc, B., Clark, A., Casas, D. D. L., Guy, A., Menick, J., Ring, R., Hennigan, T., Huang, S., Maggiore, L., Jones, C., Cassirer, A., … Sifre, L. (2022). Improving Language Models by Retrieving from Trillions of Tokens. Proceedings of the 39th International Conference on Machine Learning, 2206–2240. https://proceedings.mlr.press/v162/borgeaud22a.html
  • botpress. (2024). Botpress | the Complete AI Agent Platform. https://botpress.com/
  • Chen, X., Meng, F., Li, P., Chen, F., Xu, S., Xu, B., & Zhou, J. (2020). Bridging the Gap between Prior and Posterior Knowledge Selection for Knowledge-Grounded Dialogue Generation. In B. Webber, T. Cohn, Y. He, & Y. Liu (ed.), Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (p 3426–3437). Association for Computational Linguistics. https://doi.org/10.18653/v1/2020.emnlp-main.275
  • Danswer. (2024). Danswer—Open Source Workplace Search. https://www.danswer.ai/ 
  • deepset GmbH. (2024). Haystack. Haystack. https://haystack.deepset.ai/
  • Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805 [Cs]. http://arxiv.org/abs/1810.04805 
  • Di Palma, D. (2023). Retrieval-augmented Recommender System: Enhancing Recommender Systems with Large Language Models. Proceedings of the 17th ACM Conference on Recommender Systems, 1369–1373. https://doi.org/10.1145/3604915.3608889 
  • Fan, W., Ding, Y., Ning, L., Wang, S., Li, H., Yin, D., Chua, T.-S., & Li, Q. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models (arXiv:2405.06211). arXiv. https://doi.org/10.48550/arXiv.2405.06211
  • Gao, Y., Xiong, Y., Gao, X., Jia, K., Pan, J., Bi, Y., Dai, Y., Sun, J., Wang, M., & Wang, H. (2024). Retrieval-Augmented Generation for Large Language Models: A Survey (arXiv:2312.10997). arXiv. https://doi.org/10.48550/arXiv.2312.10997 
  • Glass, M., Rossiello, G., Chowdhury, M. F. M., Naik, A. R., Cai, P., & Gliozzo, A. (2022). Re2G: Retrieve, Rerank, Generate (arXiv:2207.06300). arXiv. https://doi.org/10.48550/arXiv.2207.06300 
  • Izacard, G., Lewis, P., Lomeli, M., Hosseini, L., Petroni, F., Schick, T., Dwivedi-Yu, J., Joulin, A., Riedel, S., & Grave, E. (2023). Atlas: Few-shot Learning with Retrieval Augmented Language Models. Journal of Machine Learning Research, 24(251), 1–43.
  • Karpukhin, V., Oğuz, B., Min, S., Lewis, P., Wu, L., Edunov, S., Chen, D., & Yih, W. (2020). Dense Passage Retrieval for Open-Domain Question Answering (arXiv:2004.04906). arXiv. https://doi.org/10.48550/arXiv.2004.04906 
  • LangChain, Inc. (2024). Introduction. LangChain. https://python.langchain.com/docs/introduction/ 
  • LangGenius, Inc. (2024). Dify.AI · The Innovation Engine for Generative AI Applications. Dify. https://dify.ai/ 
  • Li, J., Liu, Y., Fan, W., Wei, X.-Y., Liu, H., Tang, J., & Li, Q. (2024). Empowering Molecule Discovery for Molecule-Caption Translation With Large Language Models: A ChatGPT Perspective. IEEE Transactions on Knowledge and Data Engineering, 36(11), 6071–6083. https://doi.org/10.1109/TKDE.2024.3393356 
  • Lin, D. (2024). Revolutionizing Retrieval-Augmented Generation with Enhanced PDF Structure Recognition (arXiv:2401.12599). arXiv. https://doi.org/10.48550/arXiv.2401.12599 
  • Shi, P., Zhang, R., Bai, H., & Lin, J. (2022). XRICL: Cross-lingual Retrieval-Augmented In-Context Learning for Cross-lingual Text-to-SQL Semantic Parsing (arXiv:2210.13693). arXiv. https://doi.org/10.48550/arXiv.2210.13693 
  • SPARCK JONES, K. (1972). A STATISTICAL INTERPRETATION OF TERM SPECIFICITY AND ITS APPLICATION IN RETRIEVAL. Journal of Documentation, 28(1), 11–21. https://doi.org/10.1108/eb026526 
  • Sun, F., Zhan, Z., Guo, H., Zhang, M., & Tang, J. (2023). GraphVF: Controllable Protein-Specific 3D Molecule Generation with Variational Flow (arXiv:2304.12825). arXiv. https://doi.org/10.48550/arXiv.2304.12825 
  • Wang, A., Song, L., Liu, Q., Mi, H., Wang, L., Tu, Z., Su, J., & Yu, D. (2023). Search-engine-augmented dialogue response generation with cheaply supervised query production. Artificial Intelligence, 319, 103874. https://doi.org/10.1016/j.artint.2023.103874 
  • Xu, F., Shi, W., & Choi, E. (2023, 十月 13). RECOMP: Improving Retrieval-Augmented LMs with Context Compression and Selective Augmentation. The Twelfth International Conference on Learning Representations. https://openreview.net/forum?id=mlJLVigNHp 
  • Ye, J., Wu, Z., Feng, J., Yu, T., & Kong, L. (2023). Compositional Exemplars for In-context Learning. Proceedings of the 40th International Conference on Machine Learning, 39818–39833. https://proceedings.mlr.press/v202/ye23c.html 
  • Zhang, B., Yang, H., Zhou, T., Ali Babar, M., & Liu, X.-Y. (2023). Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language Models. Proceedings of the Fourth ACM International Conference on AI in Finance, 349–356. https://doi.org/10.1145/3604237.3626866 
  • Zhou, S., Alon, U., Xu, F. F., Wang, Z., Jiang, Z., & Neubig, G. (2023). DocPrompting: Generating Code by Retrieving the Docs (arXiv:2207.05987). arXiv. https://doi.org/10.48550/arXiv.2207.05987