吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

對于大模型RAG技術的一些思考

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 2023-12-07 09:41 ? 次閱讀

最近在公司完成了一個內部知識問答應用,實現流程很簡單,實際上就是Langchain那一套:

對文檔進行切片

將切片后的文本塊轉變為向量形式存儲至向量庫中

用戶問題轉換為向量

匹配用戶問題向量和向量庫中各文本塊向量的相關度

將最相關的Top 5文本塊和問題拼接起來,形成Prompt輸入給大模型

將大模型的答案返回給用戶

具體可以參考下圖,

2e0bd95a-949f-11ee-939d-92fbcf53809c.png

這個流程的打通其實特別容易,基本上1天就能把架子搭起來,然后開發好了API對外服務。并且在嘗試了幾個通用的文檔后,覺得效果也不錯。

但是,當公司內部真實文檔導入之后,效果急轉直下。

當時初步分析,有以下幾個原因:

1. 文檔種類多

有doc、ppt、excel、pdf,pdf也有掃描版和文字版。

doc類的文檔相對來說還比較容易處理,畢竟大部分內容是文字,信息密度較高。但是也有少量圖文混排的情況。

Excel也還好處理,本身就是結構化的數據,合并單元格的情況使用程序填充了之后,每一行的信息也是完整的。

真正難處理的是ppt和pdf,ppt中包含大量架構圖、流程圖等圖示,以及展示圖片。pdf基本上也是這種情況。

這就導致了大部分文檔,單純抽取出來的文字信息,呈現碎片化、不完整的特點。

2. 切分方式

如果沒有定制切分方式,則是按照一個固定的長度對文本進行切分,同時連續的文本設置一定的重疊。

這種方式導致了每一段文本包含的語義信息實際上也是不夠完整的。同時沒有考慮到文本中已包含的標題等關鍵信息。

這就導致了需要被向量化的文本段,其主題語義并不是那么明顯,和自然形成的段落顯示出顯著的差距,從而給檢索過程造成巨大的困難。

3. 內部知識的特殊性

大模型或者句向量在訓練時,使用的語料都是較為通用的語料。這導致了這些模型,對于垂直領域的知識識別是有缺陷的。它們沒有辦法理解企業內部的一些專用術語,縮寫所表示的具體含義。這樣極大地影響了生成向量的精準度,以及大模型輸出的效果。

4. 用戶提問的隨意性

實際上大部分用戶在提問時,寫下的query是較為模糊籠統的,其實際的意圖埋藏在了心里,而沒有完整體現在query中。使得檢索出來的文本段落并不能完全命中用戶想要的內容,大模型根據這些文本段落也不能輸出合適的答案。

例如,用戶如果直接問一句“請給我推薦一個酒店”,那么模型不知道用戶想住什么位置,什么價位,什么風格的酒店,給出的答案肯定是無法滿足用戶的需求的。

問題解決方法

對于以上問題,我采取了多種方式進行解決,最終應用還是能夠較好的滿足用戶的需求。

1. 對文檔內容進行重新處理

針對各種類型的文檔,分別進行了很多定制化的措施,用于完整的提取文檔內容。這部分基本上臟活累活,

Doc類文檔還是比較好處理的,直接解析其實就能得到文本到底是什么元素,比如標題、表格、段落等等。這部分直接將文本段及其對應的屬性存儲下來,用于后續切分的依據。

PDF類文檔的難點在于,如何完整恢復圖片、表格、標題、段落等內容,形成一個文字版的文檔。這里使用了多個開源模型進行協同分析,例如版面分析使用了百度的PP-StructureV2,能夠對Text、Title、Figure、Figure caption、Table、Table caption、Header、Footer、Reference、Equation10類區域進行檢測,統一了OCR和文本屬性分類兩個任務。

2e1ad9d2-949f-11ee-939d-92fbcf53809c.png

PPT的難點在于,如何對PPT中大量的流程圖,架構圖進行提取。因為這些圖多以形狀元素在PPT中呈現,如果光提取文字,大量潛藏的信息就完全丟失了。于是這里只能先將PPT轉換成PDF形式,然后用上述處理PDF的方式來進行解析。

當然,這里還沒有解決出圖片信息如何還原的問題。大量的文檔使用了圖文混排的形式,例如上述的PPT文件,轉換成PDF后,僅僅是能夠識別出這一塊是一幅圖片,對于圖片,直接轉換成向量,不利于后續的檢索。所以我們只能通過一個較為昂貴的方案,即部署了一個多模態模型,通過prompt來對文檔中的圖片進行關鍵信息提取,形成一段摘要描述,作為文檔圖片的索引。效果類似下圖。

2e3642ee-949f-11ee-939d-92fbcf53809c.png

2. 語義切分

對文檔內容進行重新處理后,語義切分工作其實就比較好做了。我們現在能夠拿到的有每一段文本,每一張圖片,每一張表格,文本對應的屬性,圖片對應的描述。

對于每個文檔,實際上元素的組織形式是樹狀形式。例如一個文檔包含多個標題,每個標題又包括多個小標題,每個小標題包括一段文本等等。我們只需要根據元素之間的關系,通過遍歷這顆文檔樹,就能取到各個較為完整的語義段落,以及其對應的標題。

有些完整語義段落可能較長,于是我們對每一個語義段落,再通過大模型進行摘要。這樣文檔就形成了一個結構化的表達形式:

id text summary source type image_source
1 文本原始段落 文本摘要 來源文件 文本元素類別(主要用于區分圖片和文本) 圖片存儲位置(在回答中返回這個位置,前端進行渲染)

3. RAG Fusion

檢索增強這一塊主要借鑒了RAG Fusion技術,這個技術原理比較簡單,概括起來就是,當接收用戶query時,讓大模型生成5-10個相似的query,然后每個query去匹配5-10個文本塊,接著對所有返回的文本塊再做個倒序融合排序,如果有需求就再加個精排,最后取Top K個文本塊拼接至prompt。

2e41b5fc-949f-11ee-939d-92fbcf53809c.png

實際使用時候,這個方法的主要好處,是增加了相關文本塊的召回率,同時對用戶的query自動進行了文本糾錯、分解長句等功能。但是還是無法從根本上解決理解用戶意圖的問題。

4. 增加追問機制

這里是通過Prompt就可以實現的功能,只要在Prompt中加入“如果無法從背景知識回答用戶的問題,則根據背景知識內容,對用戶進行追問,問題限制在3個以內”。這個機制并沒有什么技術含量,主要依靠大模型的能力。不過大大改善了用戶體驗,用戶在多輪引導中逐步明確了自己的問題,從而能夠得到合適的答案。

5. 微調Embedding句向量模型

這部分主要是為了解決垂直領域特殊詞匯,在通用句向量中會權重過大的問題。比如有個通用句向量模型,它在訓練中很少見到“SAAS”這個詞,無論是文本段和用戶query,只要提到了這個詞,整個句向量都會被帶偏。舉個例子:

假如一個用戶問的是:我是一個SAAS用戶,我希望訂購一個云存儲服務。由于SAAS的權重很高,使得檢索匹配時候,模型完全忽略了后面的那句話,才是真實的用戶需求。返回的內容可能是SAAS的介紹、SAAS的使用手冊等等。

這里的微調方法使用的數據,是讓大模型對語義分割的每一段,形成問答對。用這些問答對構建了數據集進行句向量的訓練,使得句向量能夠盡量理解垂直領域的場景。

總結

經過這么一套組合拳,系統的回答效果從一開始的完全給不了幫助以及胡說八道,到了現在可以參考的程度。但是與用戶實際期望還是相差甚遠。

這里不由得讓我思考了下整個過程,RAG的本意是想讓模型降低幻想,同時能夠實時獲取內容,使得大模型給出合適的回答。

在嚴謹場景中,precision比recall更重要。

如果大模型胡亂輸出,類比傳統指標,就好比recall高但是precision低,但是限制了大模型的輸出后,提升了precision,recall降低了。所以給用戶造成的觀感就是,大模型變笨了,是不是哪里出問題了。

總之,這個balance很難取,我對比了下市面主流的一些基于單篇文檔的知識庫問答,比如WPS AI,或者海外的ChatDoc。我發現即使基于單篇文檔回答,它們在我們垂直領域的文檔的幻想問題還是很嚴重。但是輸出的答案不認真看的話,確實挺驚艷。例如問個操作步驟問題,文檔壓根沒這個內容,但是它一步步輸出的極其自信。

反正最后就想感慨一下,RAG確實沒有想的那么容易。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 向量
    +關注

    關注

    0

    文章

    55

    瀏覽量

    11705
  • 檢索
    +關注

    關注

    0

    文章

    27

    瀏覽量

    13179
  • 大模型
    +關注

    關注

    2

    文章

    2549

    瀏覽量

    3169

原文標題:對于大模型RAG技術的一些思考

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TaD+RAG-緩解大模型“幻覺”的組合新療法

    TaD:任務感知解碼技術(Task-aware Decoding,簡稱TaD),京東聯合清華大學針對大語言模型幻覺問題提出的技術,成果收錄于IJCAI2024。
    的頭像 發表于 07-16 15:01 ?2202次閱讀
    TaD+<b class='flag-5'>RAG</b>-緩解大<b class='flag-5'>模型</b>“幻覺”的組合新療法

    【大語言模型:原理與工程實踐】大語言模型的應用

    能力,它缺乏真正的“思考”過程。對于任何輸入,大語言模型都會產生輸出,但這僅僅是基于計算和預測下個Token出現的概率。模型并不清楚自己的
    發表于 05-07 17:21

    名單公布!【書籍評測活動NO.52】基于大模型RAG應用開發與優化

    一些問題。這也決定了大模型在大規模商業生產應用中會面臨著挑戰:很多時候我們不僅需要理解力和創造力,還需要極高的準確性(不僅要會寫作文,還要會準確解答數學題)。 02 RAG如何優化“幻覺”問題
    發表于 12-04 10:50

    【「基于大模型RAG應用開發與優化」閱讀體驗】+大模型微調技術解讀

    今天學習<基于大模型RAG應用開發與優化>這本書。大模型微調是深度學習領域中的項關鍵技術,它指的是在已經預訓練好的大型深度學
    發表于 01-14 16:51

    【「基于大模型RAG應用開發與優化」閱讀體驗】+Embedding技術解讀

    今天學習大模型RAG 檢索增強生成技術Embedding,即嵌入,是種將離散數據(如文字、圖像、音頻等)轉換為連續的密集向量表示的技術。這
    發表于 01-17 19:53

    關于樹模型一些理解

    模型一些理解
    發表于 05-22 09:40

    關于車載信息娛樂系統軟件設計的一些思考

    本文就車載信息娛樂系統的軟件設計從安全性、實時性、環保性和新穎性四個方面提出一些思考
    發表于 05-11 06:46

    關于MCU,給研發提供一些思考吧!

    關于MCU,給研發提供一些二供思考吧目前芯片價格上漲,無論是國產還是進口,都或多或少存在缺貨狀態其實,大廠般有供應商供貨,價格又低廉,交期也不是大問題,而最下面的小廠家最是悲催,軟件和硬件
    發表于 06-18 10:24

    《 AI加速器架構設計與實現》+學習和一些思考

    AI加速器設計的學習和一些思考 致謝 首先感謝電子發燒友論壇提供的書籍 然后為該書打個廣告吧,32K的幅面,非常小巧方便,全彩印刷,質量精良,很有質感。 前言 設計神經網絡首先要考慮的幾個問題
    發表于 09-16 11:11

    未來寬帶移動通信網絡技術發展的一些思考

    未來寬帶移動通信網絡技術發展的一些思考中國科學院計算技術研究所研究員 石晶林摘要:寬帶移動通信已經成為國際新的
    發表于 12-19 15:30 ?28次下載

    一些區塊鏈公鏈技術發展的思考

    今天這里分享一些區塊鏈公鏈技術發展的思考。公鏈作為區塊鏈世界的基礎設施中的基石,極大地影響著上層應用的效率、成本以及用戶體驗。如果從比特幣開始算起,公鏈路走來已經 10 年了,但至今
    的頭像 發表于 02-20 10:46 ?4809次閱讀

    有關Redis的一些思考和理解

    本篇文章不是篇具體的教程,筆者打算記錄下自己對 Redis 的一些思考。說來慚愧,筆者剛接觸 Redis 的時候只是簡單地使用了下,背
    的頭像 發表于 10-30 11:21 ?579次閱讀

    阿里云推出企業級大模型RAG系統

    在國際AI大數據峰會上,阿里云重磅推出了企業級大模型檢索增強生成(RAG)解決方案。這解決方案旨在為企業提供更強大、更智能的大模型應用工具,幫助企業更有效地利用大數據和人工智能
    的頭像 發表于 02-05 09:54 ?1256次閱讀

    什么是RAGRAG學習和實踐經驗

    高級的RAG能很大程度優化原始RAG的問題,在索引、檢索和生成上都有更多精細的優化,主要的優化點會集中在索引、向量模型優化、檢索后處理等模塊進行優化
    的頭像 發表于 04-24 09:17 ?1103次閱讀
    什么是<b class='flag-5'>RAG</b>,<b class='flag-5'>RAG</b>學習和實踐經驗

    使用OpenVINO和LlamaIndex構建Agentic-RAG系統

    解決大語言模型在知識時效性和專業性上的不足。但同時傳統的 RAG 系統也有它的缺陷,例如靈活性較差,由于 RAG 會過分依賴于向量數據庫的檢索結果,導致其在解決一些復雜問題的時候,只是
    的頭像 發表于 10-12 09:59 ?340次閱讀
    使用OpenVINO和LlamaIndex構建Agentic-<b class='flag-5'>RAG</b>系統
    丰禾娱乐城开户| 百家乐真钱| 百家乐官网最新套路| 实战百家乐官网的玩法技巧和规则 | 百家乐赌场讨论群| 德州扑克哪个平台好| 百家乐官网视频网络游戏| 风水中的24山图| 顶尖百家乐的玩法技巧和规则| 博彩游戏| 利都百家乐官网国际娱乐平台| 澳门百家乐官网海洋阿强| 真人百家乐官网最高赌注| 真人百家乐怎么玩| 百家乐官网投注方式| 百家乐官网麻将筹码币镭射贴膜| LV百家乐赢钱LV| 荣昌县| 做生意买车白色风水| 大发888 制度| A8百家乐官网娱乐场| 丽星百家乐的玩法技巧和规则| 扎鲁特旗| 做生意风水 门对门| 德州扑克算牌器| 百家乐官网论坛官网| 反赌百家乐的玩法技巧和规则 | 大赢家| 百家乐官网微笑心法搜索| 百家乐网址多少| 德州扑克算牌器| 百家乐官网大眼仔路| 百家乐筹码真伪| 东安县| 澳门百家乐真人版| 宜州市| 大东方百家乐官网游戏| 百家乐号论坛博彩正网| 赌博网站| 百家乐怎么样投注| 百家乐官网补牌规制|