2.3
檢索增強生成技術
rag(retrieval-augmented
generation)技術是一種結合了信息檢索(retrieval)和文本生
成(generation)的自然語言處理(nlp)方法。核心思想是將傳統的檢索技術與現代的自然語言
生成技術相結合,以提高文本生成的準確性和相關性。它旨在通過從外部知識庫中檢索相關信息來
輔助大型語言模型(如
gpt
係列)生成更準確、可靠的回答。
在
rag
技術中,整個過程主要分為三個步驟如圖
2.2
所示:索引(
indexing)、檢索
(retrieval)和生成(generation)。首先,索引步驟是將大量的文檔或數據集合進行預處理,將
其分割成較小的塊(c混k)並進行編碼,然後存儲在向量數據庫中。這個過程的關鍵在於將非結
構化的文本數據轉化為結構化的向量表示,以便於後續的檢索和生成步驟。接下來是檢索步驟,它
根據輸入的查詢或問題,從向量數據庫中檢索出與查詢最相關的前
k
個
c混k。這一步依賴於高效
的語義相似度計算方法,以確保檢索到的
c混k
與查詢具有高度的相關性。最後是生成步驟,它將
原始查詢和檢索到的
c混k
一起輸入到預訓練的
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)領域的一個重要研究方向,它旨在衡量兩個或多個文
本之間的相似程度。文本相似度計算的原理基於兩個主要概念:共性和差異。共性指的是兩個文本
之間共同擁有的信息或特征,而差異則是指它們之間的不同之處。當兩個文本的共性越大、差異越
小,它們之間的相似度就越高。
文本相似度計算可以根據不同的分類標準進行分類。首先基於統計的方法分類,這種方法主要
關注文本中詞語的出現頻率和分布,通過統計信息來計算文本之間的相似度。常見的基於統計的方
法有餘弦相似度、ard
相似度等。其次是基於語義的方法分類,這種方法試圖理解文本的含義
和上下文,通過比較文本的語義信息來計算相似度。常見的基於語義的方法有基於詞向量的方法
(如
word2vec、glove
等)和基於主題模型的方法(如
lda、plsa
等)。最後是基於機器學習的方
法分類,這種方法利用機器學習算法來訓練模型,通過模型來預測文本之間的相似度。常見的基於
機器學習的方法有支持向量機(svm)、神經網絡等。
目前,在國內外,文本相似度計算已經取得了豐富的成果。國內方麵,清華大學等機構的研究
者提出了基於深度學習的文本相似度計算方法,利用神經網絡模型來捕捉文本的深層語義信息,實
現了較高的相似度計算精度。江蘇師範大學的研究者提出了利用《新華字典》構建向量空間來做中
文文本語義相似度分析的方法,該方法在中文文本相似度計算方麵取得了顯著的效果。放眼國外,
的研究者提出了
word2vec
算法,該算法將詞語表示為高維向量空間中的點,通過計算點之
間的距離來衡量詞語之間的相似度。word2vec
算法在文本相似度計算領域具有廣泛的影響。斯坦
福大學等機構的研究者提出了
bert
模型,該模型通過大量的無監督學習來捕捉文本的上下文信
息,可以實現高精度的文本相似度計算。bert
模型在多項自然語言處理任務中均取得了優異的表
現。
2.5
本章小結
本章主要介紹了本項目中使用的四種關鍵技術與模型。這些技術主要基於大型語言模型,並且
依賴於
rag
技術的原理。介紹了知識抽取技術,它利用先進的自然語言處理技術從文本中提取有意
義的信息和知識,隨後討論了文本處理中所使用的
rag
技術,該技術可以顯著提高大型語言模型在
專業領域的性能,增強信息檢索的準確性和效率。最後探討了在文本比對過程中所需的相似度計算
方法,這對於評估文本之間的相似程度至關重要。
了解清楚數據獲取來源後,進行數據采集,數據采集的方法包括自動化和手動兩種方式:
自動化采集:利用編寫的
python
腳本通過
api
接口自動從上述數據庫和期刊中下載文獻和元
數據,部分代碼如圖
3.2
所示。這種方法的優點是效率高,可以大量快速地收集數據。使用
beautifulsoup
和
requests
庫從開放獲取的期刊網站爬取數據。
手動采集:通過訪問圖書館、研究機構以及聯係文章作者等方式獲取不易自動下載的資源。雖
然此方法更費時,但有助於獲取更全麵的數據集,特彆是一些最新或尚未公開的研究成果。
將兩種方法采集到的文獻數據進行彙總,最大範圍的將有關電力
lca
領域的英文文獻進行彙
總,共獲得
507
篇。
最後是將各個途徑獲取到的文獻數據和元數據彙總,進行數據預處理。
采集到的數據需經過清洗和預處理,才能用於後續的分析。
數據預處理的步驟包括:
數據清洗:刪除重複的記錄,校正錯誤的數據格式,填補缺失值。
數據整合:將來自不同來源的數據整合到一個統一的格式和數據庫中,如表
3.1
所示,以便進
行進一步的分析。
為了使後續知識庫生成更加準確與完善,對文獻具體內容進行篩選。例如部分文獻中並未提到
所用數據,而是指出所用數據庫鏈接,如圖
3.3
所示,在對該篇文獻進行解析後,數據部分就是欠
缺的,最終構建的知識庫就不完整,在調用大模型回答相關問題時,極大概率產生幻覺。因此為了
構建更為準確的專業模型,對爬取下來的
507
篇文獻進行篩選,選擇包括流程圖(system
boundaries)、各單元過程或生產環節的投入(
input),產出(
output),數據(
life
cycle
inventory),以及數據的時間、地點、獲取方法、技術細節的文獻作為最後應用的數據。核對內容
後的文獻數據集共
98
篇英文文獻。