相信大家在使用LLM的時(shí)候,經(jīng)常會(huì)把一些背景信息手動(dòng)喂給他,讓他根據(jù)這些信息進(jìn)行推理。這是一個(gè)典型的one shot learning的提示工程做法。- 只提供一個(gè)項(xiàng)目名稱,讓LLM寫一個(gè)小說的世界觀設(shè)定
- 提供較為詳細(xì)的背景知識(shí),讓LLM寫一個(gè)小說的世界觀設(shè)定很明顯,提供了詳細(xì)的背景知識(shí),LLM的回答會(huì)更為精準(zhǔn)。這背后是LLM的學(xué)習(xí)能力在起作用,LLM模型具備了one shot學(xué)習(xí)能力,輸入一個(gè)樣本就可以顯著提升效果。同時(shí),通過提示詞的方式進(jìn)行one-shot learning使得LLM更加易用。很明顯,如何有效管理背景知識(shí)是用好LLM的一項(xiàng)必備技能。那么,是不是每次都要自己去人工準(zhǔn)備背景知識(shí),然后手動(dòng)粘貼給LLM呢?當(dāng)然有更好的方案了 ↓Retrieval-Augmented Generation我們從2份資料中(Azure AI的技術(shù)文檔、Langchain的實(shí)現(xiàn)方案)總結(jié)出精華要點(diǎn)。Azure AI 搜索中的檢索增強(qiáng)生成 (RAG),是這么描述的:RAG架構(gòu)是一種通過添加信息檢索系統(tǒng)來增強(qiáng)大型語言模型的功能的方法。大型語言模型就是本文提到的LLM,具體產(chǎn)品例如ChatGPT等。RAG,它允許你控制LLM在生成響應(yīng)時(shí)使用的基礎(chǔ)數(shù)據(jù)(知識(shí))。對(duì)于企業(yè)來說,RAG架構(gòu)意味著可以將生成式AI限制在企業(yè)私有內(nèi)容(知識(shí))中,這些內(nèi)容可以來自文檔、圖像、音頻和視頻等各種形式。企業(yè)私有內(nèi)容是現(xiàn)代企業(yè)的核心競爭力的一種,RAG也就成為了完成此競爭壁壘的技術(shù)之一。* 信息檢索系統(tǒng)關(guān)鍵技術(shù):- - 索引策略可以按照需要的頻率大規(guī)模加載和更新所有內(nèi)容。
- - 查詢功能和相關(guān)性調(diào)整。系統(tǒng)應(yīng)以滿足 LLM 輸入的標(biāo)記長度要求所需的簡短格式返回相關(guān)結(jié)果。
github.com/Tongji-KGLLM/RAG-Survey* RAG 典型的場景是基于知識(shí)的問答:更進(jìn)一步的抽象就是有目標(biāo)數(shù)據(jù)來源的信息加工或處理。有目標(biāo)非常重要,這個(gè)目標(biāo)決定了LLM的選擇和知識(shí)的來源(準(zhǔn)確性、公開或私有),也決定了此類技術(shù)的產(chǎn)品化應(yīng)該如何設(shè)計(jì)體驗(yàn)。* 在實(shí)際應(yīng)用中,RAG架構(gòu)面臨的挑戰(zhàn):上下文長度。當(dāng)檢索內(nèi)容過多超出LLM上下文限制時(shí)怎么辦?
抗噪聲能力。檢索到錯(cuò)誤內(nèi)容如何處理?如何過濾和驗(yàn)證檢索到的內(nèi)容?如何增強(qiáng)LLM的抗噪聲能力?
LLM的進(jìn)一步能力增強(qiáng)。用于檢索的LLM(用 LLM 的生成代替搜索),如何搜索 LLM 的記憶、LLM評(píng)估檢索能力等等。
github.com/Tongji-KGLLM/RAG-SurveyRAG-Survey 也研究了RAG的設(shè)計(jì)模式,抽象出了涉及到的功能模塊,可作為進(jìn)一步設(shè)計(jì)RAG產(chǎn)品的參考。
* 在實(shí)際應(yīng)用中,涉及到的幾個(gè)重點(diǎn)問題:RAG系統(tǒng)應(yīng)該支持靈活的分塊方式,并支持添加上下文,防止信息丟失。一般分塊過程就是文本切割過程,粗暴地切割容易導(dǎo)致信息表達(dá)不完整或者歧異的情況發(fā)生。理想的分塊應(yīng)該像維基百科一樣,完整表達(dá)某個(gè)概念。> 在構(gòu)建知識(shí)庫時(shí),分塊后的數(shù)據(jù),應(yīng)該如何評(píng)估質(zhì)量?當(dāng)RAG獲得對(duì)應(yīng)問題的分塊后,如何選擇適合的?RAG系統(tǒng),一般使用top_k來決定將多少個(gè)得分最高的塊輸入到LLM中。> top_k是一個(gè)固定的數(shù)字,是否可以采用動(dòng)態(tài)的數(shù)字?向量的相似性可以用來比較文本的相似程度。但這個(gè)方案是有局限性的,因?yàn)槲覀儾恢老蛄刻崛×四男┬畔?,以及這些信息在向量中的內(nèi)在邏輯是什么。因此,語義相似性搜索有時(shí)可能會(huì)錯(cuò)過目標(biāo)。假設(shè)語義搜索總能獲得合理的結(jié)果是不現(xiàn)實(shí)的。> 得分最高一般是一個(gè)相似性的數(shù)值,好的答案可能在top_k尾部。# 世界知識(shí) World Knowledge有一個(gè)例子,作者提到他正在構(gòu)建一個(gè)哈利·波特問答系統(tǒng)。將所有的哈利·波特故事導(dǎo)入了一個(gè)向量數(shù)據(jù)庫。現(xiàn)在,然后問一個(gè)問題:一只狗有幾個(gè)頭?很可能,系統(tǒng)會(huì)回答三個(gè),因?yàn)橛刑岬揭恢挥腥齻€(gè)頭的巨大狗,而系統(tǒng)不知道一只普通狗可能有幾個(gè)頭。::要清楚RAG系統(tǒng)的運(yùn)行邏輯,不要讓LLM的(幻覺)推理誤導(dǎo)了你。RAG系統(tǒng)應(yīng)該提供靈活地知識(shí)切換和來源提示功能。知識(shí)來源:公共、通用的知識(shí)庫和私有的、獨(dú)家的垂直知識(shí)庫。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。