2.3 檢索增強生成技術
RAG(Retrieval-Augmented Generation)技術是一種結合了資訊檢索(Retrieval)和文字生
成(Generation)的自然語言處理(NLp)方法。核心思想是將傳統的檢索技術與現代的自然語言
生成技術相結合,以提高文字生成的準確性和相關性。它旨在透過從外部知識庫中檢索相關資訊來
輔助大型語言模型(如 Gpt 系列)生成更準確、可靠的回答。
在 RAG 技術中,整個過程主要分為三個步驟如圖 2.2 所示:索引( Indexing)、檢索
(Retrieval)和生成(Generation)。首先,索引步驟是將大量的文件或資料集合進行預處理,將
其分割成較小的塊(chunk)並進行編碼,然後儲存在向量資料庫中。這個過程的關鍵在於將非結
構化的文字資料轉化為結構化的向量表示,以便於後續的檢索和生成步驟。接下來是檢索步驟,它
根據輸入的查詢或問題,從向量資料庫中檢索出與查詢最相關的前 k 個 chunk。這一步依賴於高效
的語義相似度計算方法,以確保檢索到的 chunk 與查詢具有高度的相關性。最後是生成步驟,它將
原始查詢和檢索到的 chunk 一起輸入到預訓練的 transformer 模型(如 Gpt 或 bERt)中,生成最
終的答案或文字。這個模型結合了原始查詢的語義資訊和檢索到的相關上下文,以生成準確、連貫
且相關的文字。
RAG 的概念和初步實現是由 douwe Kiela、patrick Lewis 和 Ethan perez 等人在 2020 年首次
提出的。他們在論文《Retrieval-augmented generation for knowledge-intensive nlp tasks》
中詳細介紹了 RAG 的原理和應用,隨後谷歌等搜尋引擎公司已經開始探索如何將 RAG 技術應用到搜
索結果的生成中,以提高搜尋結果的準確性和相關性。在醫療領域,RAG 技術可以幫助醫生快速檢
索醫學知識,生成準確的診斷建議和治療方案。
2.4 文字相似度計算
文字相似度計算是自然語言處理(NLp)領域的一個重要研究方向,它旨在衡量兩個或多個文
本之間的相似程度。文字相似度計算的原理基於兩個主要概念:共性和差異。共性指的是兩個文字
之間共同擁有的資訊或特徵,而差異則是指它們之間的不同之處。當兩個文字的共性越大、差異越
小,它們之間的相似度就越高。
文字相似度計算可以根據不同的分類標準進行分類。首先基於統計的方法分類,這種方法主要
關注文字中詞語的出現頻率和分佈,透過統計資訊來計算文字之間的相似度。常見的基於統計的方
法有餘弦相似度、Jaccard 相似度等。其次是基於語義的方法分類,這種方法試圖理解文字的含義
和上下文,透過比較文字的語義資訊來計算相似度。常見的基於語義的方法有基於詞向量的方法
(如 word2Vec、GloVe 等)和基於主題模型的方法(如 LdA、pLSA 等)。最後是基於機器學習的方
法分類,這種方法利用機器學習演算法來訓練模型,透過模型來預測文字之間的相似度。常見的基於
機器學習的方法有支援向量機(SVm)、神經網路等。
目前,在國內外,文字相似度計算已經取得了豐富的成果。國內方面,清華大學等機構的研究
者提出了基於深度學習的文字相似度計算方法,利用神經網路模型來捕捉文字的深層語義資訊,實
現了較高的相似度計算精度。江蘇師範大學的研究者提出了利用《新華字典》構建向量空間來做中
文文字語義相似度分析的方法,該方法在中文文字相似度計算方面取得了顯著的效果。放眼國外,
Google 的研究者提出了 word2Vec 演算法,該演算法將詞語表示為高維向量空間中的點,透過計算