第276章 睡了睡了
字數:4376 加入書籤
semaphore提示您:看後求收藏(思兔閱讀sto.ist),接著再看更方便。
隨後進行數據采集,爬取加人工采集。對兩種方式采集的文獻數據進行整理,將元數據記錄好,並統一格式,用於後續的檢索。最後是文獻的精細篩選。因為rag技術就是要增加大語言模型在專業領域的可信程度,解決大語言模型的幻覺問題。那在數據的選取上就要偏向於更為全麵的文獻數據。生命周期評價的本質是用來評估產品或服務從生產到消費再到廢棄的整個過程對環境和社會的影響,它考慮了資源使用、能源消耗、排放物的產生等方麵。那麽為了提高最後基於電力lca這個領域搭建的專業模型的準確度,對文獻進行精細篩選,選取同時包括流程圖,數據,各單元過程投入產出詳細數據,數據時間地點落去方法,技術細節的文獻,作為最終的數據。將精細篩選後的論文數據,結合unstructed庫進行數據處理。進行信息精細化拆解與清洗,使以pdf形式存儲的文獻數據通過分割,分區,變成便於嵌入模型的結構化數據。對文字進行篩選與清理,圖像的內容進行識別,存儲圖像的解釋信息,表格轉化為html格式。最後統一變成標題加內容的格式。在這裏我列舉了簡單的數據處理流程。首先是對數據進行分割。隨後是對文本進行拆分,識別內容是否為文本,如果是,就填進text_list。將表格轉化為html格式,將圖片變為圖片解釋信息。第二部分是知識庫的構建。向量知識庫,能將各類數據(如文本、圖像、音頻等)轉化為向量形式進行存儲。數據之間的相似性和關聯性得以量化,不像平時你存儲你的,我存儲我的,向量數據庫給予了一個統一的標準。也正是因為統一了格式,利用相似度對比,檢索更加高效。構建知識庫的流程首先是提取分割文本進行向量化的操作。向量化的本質是將離散的符號信息,如詞或句子,映射到連續的向量空間中,以便計算機能夠處理。向量化將高維數據轉化為低維數據,保留了數據的關鍵特征又降低了數據的複雜度。選擇pipecone存儲向量數據,它支持查詢,插入,刪除等一些列操作。選擇weaviate作為向量搜索引擎,可以通過主題的分類檢索,進行語義搜索、問答提取等等功能。第三部分是chatbot的構建。先前已經構建好了針對電力lca領域的專業大模型,但是缺少檢驗模型的手段,即缺少模型優化環節,本項目設置通過chatbot模式,通過與用戶進行問答的形式,檢驗模型是否能調用電力行業lca領域向量數據庫回答該領域專業性問題和時效性問題的有效性。chatbot是模擬人類對話的一種形式,就我們平時能使到的chatgpt就是以chatbot的形式來呈現的,而chatbot在這裏的功能實現主要是為了體現檢索功能,大致可分為知識庫檢索功能和在線搜索。那麽就產生了三種檢索模式。
僅基於大語言模型,連接知識庫搜索,和在線搜索。前端部分我采用streamlit來完成,ui設計如圖所示。這邊是功能按鈕,中間是對話框。先前有講到了,我們來檢測針對專業領域的大模型的標準就是檢測是否有能力回答專業領域的問題,並針對結果進行優化。這裏我向chatbot提出同一個問題。隻采用大語言模型,采用知識庫與大語言模型結合,和聯網搜索與大語言模型結合。三種功能下獲得的回答是完全不同的,後麵兩個檢索功能均為大語言模型優化了生成回答的準確性,對大語言模型的專業領域知識做了補充和改善。可以看到普通的大語言模型回答的是最簡短的,采用了知識庫的回答,將答案細分,擴充,並添加了新的內容,附上參考文獻。最後的聯網搜索,將答案分為了幾類,更加全麵,但是每類回答點到即止。最後就是向量知識庫進行優化。對於準確率低的查詢,分析模型回應錯誤的原因。如果是由於知識庫中缺少相關信息,可以通過添加更多相關文檔和數據來增強向量知識庫的覆蓋範圍。用戶反饋是對輸入的問題和產生的回答進行記錄,方便針對性進行調整。反饋可以直接用於指導向量知識庫的更新和優化。不斷地測試來完善我的專業領域大模型。最後一部分是我本次研究的總結。首先創建了一個能被大語言模型直接調用的專業知識庫,在電力lca這個專業性較高的領域填補了大語言模型的空白。其次是采用rag技術,將知識庫,聯網與大語言模型相結合,增強了大語言模型在特定領域的可信度和實用性。最後就是本次研究雖然是針對電力lca領域,但其背後的構架適用於各個領域,構建了一個完整的體係,可以進行修改,全方麵的輔助大語言模型,應用廣泛。以下就是我的全部研究內容請各位老師批評指正。
3.3.2
數據預處理
unstructured
庫是一個強大的工具,專為處理非結構化數據設計,具體流程如圖
3.7
所示,
如從文本文檔、pdf
文件或網頁中提取數據。它支持多種數據提取方法,包括正則表達式匹配、自
然語言處理(nlp)技術等。
數據預處理步驟如下:
步驟一:數據清洗
去除雜質:從文本中去除無關的字符,如特殊符號、空白行等。
格式統一:將所有文本統一為相同的編碼格式,通常為
utf-8,以避免編碼錯誤。
語言標準化:統一不同術語的使用,例如將所有"photovoltaic"統一替換為"pv",確保術語的
一致性。
步驟二:信息提取
關鍵信息標識:標識文獻中的關鍵信息,如研究方法、主要結論、實驗條件等。
數據分類:根據信息類型將數據分類,如作者、出版年份、研究結果等。
步驟三:結構化轉換
結構化處理:將信息精細化拆解與清洗,將各種元素進行轉換,形成結構化數據形式,拆分成
標題與內容。
分割部分關鍵代碼:
對於其中的每個元素,如果是
positeelement
類型,就提取其中的文本並將其添加到
text_list
中;如果是
table
類型,就將表格的文本表示(可能是
html
格式)添加到
text_list
中。
將圖
3.8
的提取的數據進行拆分,添加到
text_list
中,輸出結果如圖
3.11
所示。
非結構化文本數據通常非常稀疏,即包含大量的詞匯但每個文檔隻使用其中的一小部分。而結
構化數據則可以通過合並相似信息來降低數據的稀疏性,這有助於生成更加緊湊和有效的嵌入向
量。
結構化數據可以實現更高效的特征提取。結構化數據通常已經按照特定的模式或結構進行了組
織,這使得我們可以更加高效地從中提取有用的特征(如標題、作者、摘要、關鍵詞等)。這些特
征可以作為後續
embedding
的輸入,幫助生成具有更強區分性和泛化能力的嵌入向量。結構化數據
中的元素(如主題、類別、屬性等)通常具有明確的含義,這些含義可以在
embedding
過程中被保
留下來。因此,基於結構化數據的嵌入向量往往具有更強的解釋性,有助於我們更好地理解模型的
預測結果和內部機製。