自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么你的RAG不起作用?失敗的主要原因和解決方案

人工智能
無數(shù)企業(yè)正在嘗試使用檢索增強生成(RAG),但在制作這些系統(tǒng)達到生產(chǎn)質(zhì)量時普遍會感到失望。因為他們的RAG不僅運行效果差,而且對于如何改進和如何進行后續(xù)的工作也感到十分的迷茫。

無數(shù)企業(yè)正在嘗試使用檢索增強生成(RAG),但在制作這些系統(tǒng)達到生產(chǎn)質(zhì)量時普遍會感到失望。因為他們的RAG不僅運行效果差,而且對于如何改進和如何進行后續(xù)的工作也感到十分的迷茫。

其實阻礙RAG系統(tǒng)的一個關(guān)鍵因素是語義不協(xié)調(diào),這是由于任務(wù)的預(yù)期含義、RAG的理解以及存儲的底層知識之間的不一致。由于向量嵌入的底層技術(shù)是神奇的(易變且極不透明),因此難以診斷這種不協(xié)調(diào),使其成為生產(chǎn)化的重大障礙。

本文的目標是揭示普通RAG失敗的主要原因,并提供具體策略和方法,使您的RAG更接近生產(chǎn)階段。

在這篇文章中,我們將:

  • 區(qū)分理想形態(tài)的RAG的前景與普通RAG的現(xiàn)實
  • 解釋語義不協(xié)調(diào)是如何產(chǎn)生的
  • 介紹如何判斷和緩解語義不協(xié)調(diào)
  • 總結(jié)一些額外的高ROI策略,使RAG更加接近生產(chǎn)質(zhì)量

注:為簡化問題我們將關(guān)注基于問答的文本示例,但核心思想可以推廣到其他用例

為什么選用RAG?

RAG(檢索增強生成)是一個目前正經(jīng)歷炒作周期的范式。它聽起來很吸引人,在本質(zhì)上它是AI的搜索引擎。

在GPT-3成為大熱之后不久,RAG開始流行。企業(yè)在構(gòu)建LLM驅(qū)動的AI時面臨的一個直接問題是,像GPT這樣的模型沒有在它們特定的數(shù)據(jù)和領(lǐng)域上進行訓(xùn)練。所以LLM從業(yè)者很快發(fā)現(xiàn),當在提示中直接提供業(yè)務(wù)特定上下文(如支持文檔)時,GPT的表現(xiàn)出奇的好。這就為企業(yè)提供了一個不用進行微調(diào)模型的替代方案。

對于RAG,給它一個問題,可能還有用戶特定的信息,它將返回最相關(guān)的上下文給GPT。雖然這在理論上聽起來很棒,但在實現(xiàn)生產(chǎn)級RAG時存在重大挑戰(zhàn),我們將在接下來的部分中探討。

RAG是有前途的,普通RAG只是開始

RAG只是一個框架,一個完美運作的RAG,無論其后端如何,都將為無數(shù)用例帶來巨大的價值。如果你對RAG有所了解則可以跳過此節(jié)。

傳統(tǒng)RAG(定義):一個單步語義搜索引擎,它將業(yè)務(wù)知識(如支持文檔)存儲在向量數(shù)據(jù)庫中,如Pinecone,使用現(xiàn)成的嵌入模型。然后通過創(chuàng)建問題文本的向量嵌入,并使用比較度量(如余弦相似性)來對最相關(guān)的前k個文檔進行排名。

一個向量嵌入模型接收任意字符串并返回一個固定維度的數(shù)學(xué)向量。流行的嵌入模型包括OpenAI的text-embedding-ada-002及其最新模型text-embedding-3-small。這些模型將文本塊轉(zhuǎn)換為約1500維的向量,并且?guī)缀鯖]有人類理解的可解釋性。

向量是非常普遍且非常有用的工具,因為可以將非定量的事物分解為豐富的維度數(shù)組,并對它們進行定量比較。一些例子是:

  • (紅、綠、藍)顏色調(diào)色板是一個向量,每個值介于0-255之間。
  • 通過行業(yè)標準如Barra,可以將股票表示為一個向量,量化其對經(jīng)濟因素(如廣泛增長、利率變化等)的敏感度。
  • 像Netflix這樣的平臺可以將用戶偏好分解為一個向量,其中的組成部分可以表示類型和其他特征。

余弦相似性可以說是在語義搜索中比較向量的默認度量標準,它通過應(yīng)用余弦到兩個向量之間的點積角度來工作。余弦越接近1,向量就越相似。

也有其他衡量語義相似性的方法,但通常這不是問題的關(guān)鍵所在,我們將在文章中使用余弦相似性。

但是這里必須強調(diào)的是,像余弦相似性這樣的向量比較度量是很難處理的,因為它們沒有絕對的意義——這些值完全取決于嵌入模型和涉及文本的上下文。假設(shè)你將一個問題與一個答案匹配,得到了0.73的余弦相似性。這是一個好匹配嗎?

我們提出一個問題“What is rain?”并將其與三個相關(guān)性不同的文本進行比較。在下表中看到,使用兩個不同的OpenAI模型的余弦相似性的范圍和解釋有很大差異。對于第一個模型,0.73表示完全不相關(guān)的匹配,但是對于第二個模型,0.73表示高度相關(guān)。這表明任何功能良好的RAG系統(tǒng)都需要校準對這些分數(shù)的理解。

Text1 (definition): “Rain is the precipitation of water droplets from clouds, falling to the ground when they become too heavy to stay suspended in  air.”

Text2 (mentions rain): “The winds blowing moisture over the mountains are responsible for rain in Seattle.”

Text3 (irrelevant info): “Stripe is a payments infrastructure business.”

語義不協(xié)調(diào)造成問題

傳統(tǒng)的RAG的幾個挑戰(zhàn)可以歸因于語義不協(xié)調(diào)和嵌入的解釋性差。語義不協(xié)調(diào)是任務(wù)預(yù)期含義、RAG的理解以及存儲的底層知識之間的不一致。

可以大致說為“問題在語義上與它們的答案不一樣”,所以直接比較問題和你的原始知識庫只會得到有限的結(jié)果。

想象一個律師需要搜索成千上萬的文檔來尋找投資欺詐的證據(jù)。然后他提出了問題“有什么證據(jù)表明Bob進行了金融欺詐?”與“Bob在3月14日購買了XYZ股票”(其中隱含XYZ是競爭對手,且3月14日是財報公布前一周)基本上沒有語義重疊,但是在因果層面這兩件事情是有聯(lián)系的

向量嵌入和余弦相似性是模糊的,因為向量在完全捕捉任何給定陳述的語義內(nèi)容方面有其固有的不完美。余弦相似性導(dǎo)致精確排名并不是必然的,因為它隱含地假設(shè)每個維度都具有相同的重要性。

使用余弦相似性進行語義搜索傾向于在方向上是正確的,但本質(zhì)上是模糊的。它可以很好地估計前20個結(jié)果,但通常只靠它來可靠地排名最佳答案是有很多要求的。

在互聯(lián)網(wǎng)上訓(xùn)練的嵌入模型不理解你的業(yè)務(wù)和領(lǐng)域,尤其是在喜歡造詞的互聯(lián)網(wǎng)時代,Connect、Radar和Link等詞,在討論不同產(chǎn)品時意義大相徑庭,語義不協(xié)調(diào)的來源是多重的,并導(dǎo)致排名不可靠。

診斷和緩解語義不協(xié)調(diào)

在這個示例中將介紹如何診斷RAG中的完全語義不協(xié)調(diào)。我們還將介紹如何通過增加結(jié)構(gòu)來提高性能的早期跡象。

這個例子來自現(xiàn)實生活中的用例。

1、我們假設(shè)一個電子商務(wù)初創(chuàng)公司正在建立一個內(nèi)部使用的RAG,它找到給定業(yè)務(wù)問題的最佳SQL表。下面是示例的設(shè)置,其中我們:

events.purchase_flow:產(chǎn)品流程中的詳細原始用戶事件

aggregates.purchases:匯總的表,包含摘要分析

2、然后創(chuàng)建了一些假設(shè)的問題進行評估

IP地址對查看和購買的產(chǎn)品類型有什么影響?本季度鞋類銷售的整體趨勢如何?每小時的幾秒鐘內(nèi)有不尋常的行為嗎?像新年這樣的重大事件周圍用戶參與度如何變化?

3、生成了額外的元數(shù)據(jù)

每個表的簡要描述,每個表獨特回答的示例問題

4、通過將我們的輸入文本與“垃圾”進行比較來檢查嘈雜的余弦相似性得分

5、比較四種不同的檢索策略,看哪些文本類型與我們的輸入“最語義相似”。

策略1:僅表結(jié)構(gòu)

策略2:表結(jié)構(gòu) + 簡要描述

策略3:表結(jié)構(gòu) + 簡要描述 + 示例問題

策略4:僅示例問題

我們比較了隨機文本片段與每個問題以及原始表文本的余弦相似性(下圖為示例)。我們發(fā)現(xiàn),對于垃圾輸入的余弦相似性約在0.04-0.23之間,這這有助于建立識別語義重疊弱到無的基線。

四種策略的比較

從下面的結(jié)果可以看出,策略4將問題與示例問題進行比較,具有最高的語義重疊和最佳排名。策略1和策略2的表現(xiàn)相似,與噪聲一致——也就是說,業(yè)務(wù)問題與SQL表語句之間存在弱的或根本沒有語義重疊。

這可能與我們的認知不同因為在一般人的理解中策略1就已經(jīng)足夠了,LLM能搞定一切。而專業(yè)人士理解的策略3因該更好,因為它將所有內(nèi)容混合在一起,但表現(xiàn)不如策略4。

  • 噪聲(隨機,無關(guān)文本):余弦相似性在0.04–0.23之間。
  • 策略1(僅表結(jié)構(gòu)):值在0.17–0.25之間(與噪聲一致)。
  • 策略2(表結(jié)構(gòu) + 描述):值在0.14–0.25之間(仍然與噪聲一致)。
  • 策略3(表結(jié)構(gòu) + 描述 + 示例問題):值在0.23–0.30之間。明顯改善,我們開始從噪聲中看到信號。
  • 策略4(僅示例問題):值在0.30–0.52之間。明顯是表現(xiàn)最好的策略,并且完全超出了噪聲范圍。,它導(dǎo)致正確表與錯誤表之間的余弦相似性有了最大的分離,從而產(chǎn)生了更強的信號。

進一步提高你的RAG的策略

如果你也遇到了我們目前所描述的問題,那么首先恭喜你,你是一個真正使用過或者想使用RAG的從業(yè)者。但是上面的問題也只是觸及了表面,更復(fù)雜的問題已經(jīng)超出了本文的范疇,我們會在后面的文章進行討論。目前我們需要著眼解決本文所描述的問題,以下則是一些對進行階梯式改進的值得采用的方法。

結(jié)構(gòu)化數(shù)據(jù)

可以通過增加結(jié)構(gòu)來改善RAG,這是首先將問題鏈接到現(xiàn)有的問題庫,隨后將指導(dǎo)你找到正確的答案。這與直接將問題鏈接到單步中的正確文本相反。

對于基于支持文檔構(gòu)建的Q&A系統(tǒng),問題→問題的比較將實質(zhì)性地提高性能,而不是問題→支持文檔。實際操作中,最簡單的方法是 要求你的大模型(如ChatGPT)為每個文檔生成示例問題,并讓人類專家進行策劃。本質(zhì)上講就是建立了我們自己的知識庫。

這種方法還能進一步發(fā)展嗎?

  • 對于每個文檔,讓ChatGPT生成它可以回答的100個問題列表
  • 這些問題不會完美,因此對于你生成的每個問題,計算其與其他每個文檔的余弦相似性
  • 篩選出那些會將正確文檔排在所有其他文檔之前的問題
  • 通過排序那些正確文檔與第二名文檔的余弦相似性差異最大的問題,來識別最高質(zhì)量的問題
  • 發(fā)送給人類進行進一步的判斷(這步就要人工成本了)

語義 + 相關(guān)性排名

幾乎每個主要搜索引擎都在使用這個方法,所以這可能是我們能得到的更大的好處的方法。因為余弦相似性很適合做初步評估,但最終無法進行更高精度的排名。

如果你的業(yè)務(wù)可能擁有更多的信息來幫助AI做出更好的決策,例如:收集了諸如頁面瀏覽和點贊等指標,可能按人物特征擁有這些指標。那么你就可以創(chuàng)建一個包括廣泛用戶/任務(wù)特征的相關(guān)性評分,來微調(diào)排名,使RAG工作得更好。例如可以讓你的排名成為一個線性組合,

排名 = (余弦相似性) + (權(quán)重) x (相關(guān)性評分)

使用AI作為工具,而不是完整的解決方案

幾十年來,軟件工程實踐演變?yōu)閮A向于設(shè)計許多小組件,這些組件具有嚴格、明確的保證。圍繞聊天界面的狂熱完全顛覆了這一范式,五年后,這種做法很可能被視為是錯誤的。

ChatGPT以及大部分新興生態(tài)系統(tǒng)鼓勵的范式是“給我任何文本,我就給你任何文本?!边@些AI沒有效力或成本和延遲的保證,而是有著“我可能在某些時候在某種程度上是對的”的模糊承諾。其實企業(yè)應(yīng)該通過提供更具范圍和主觀性的接口來構(gòu)建更健壯的AI。

這也就是對于OpenAI所說的超級對齊的來說是非常重要的但又不是必要的。(這里僅是我個人的關(guān)系,供參考)

總結(jié)

我們正在見證AI的新時代的到來。這個時代的新穎之處不在于NLP和語言模型的出現(xiàn),而是現(xiàn)成技術(shù)降低了企業(yè)利用自然語言技術(shù)針對他們特定用例的門檻。但是,我們還要清楚的認識到,目前這項技術(shù)仍處于早期開發(fā)階段,在為你的AI構(gòu)建RAG時,其實是在構(gòu)建一個復(fù)雜的搜索引擎,這是可行的,但是要認識到這里的復(fù)雜性和挑戰(zhàn)并解決這些問題才能讓我們向成功邁出第一步。

責(zé)任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2018-11-20 13:52:54

2020-05-26 15:53:01

StraceDocker容器

2018-07-26 05:44:45

物聯(lián)網(wǎng)項目物聯(lián)網(wǎng)IOT

2023-01-14 17:45:28

數(shù)據(jù)分析項目

2021-05-07 07:50:44

Numactl內(nèi)存代碼

2023-03-20 09:42:06

2010-04-22 10:22:31

Oracle開放Top

2019-07-25 10:37:13

存儲數(shù)據(jù)備份磁盤

2019-06-21 08:00:16

工業(yè)4.0工業(yè)物聯(lián)網(wǎng)IIoT

2021-04-06 11:46:18

比特幣加密貨幣資產(chǎn)

2020-08-11 17:12:40

戴爾

2022-07-15 15:56:51

云計算工具云中斷

2022-03-31 10:25:20

物聯(lián)網(wǎng)工業(yè) 4.0大數(shù)據(jù)分析

2023-10-16 16:08:42

工業(yè) 4.0物聯(lián)網(wǎng)邊緣計算

2014-03-18 10:17:30

2023-08-07 15:24:57

人工智能AI

2022-12-01 08:09:05

SQLOracleSPM

2018-07-13 11:30:01

2011-08-22 15:31:51

SQL Servermssqlserver數(shù)據(jù)庫復(fù)制

2010-03-10 16:25:03

云計算
點贊
收藏

51CTO技術(shù)棧公眾號