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

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

3天內(nèi)不再提示

如何在不微調(diào)的情況下提高RAG的準確性?

NVIDIA英偉達企業(yè)解決方案 ? 來源:NVIDIA英偉達企業(yè)解決方案 ? 2024-01-05 10:26 ? 次閱讀

數(shù)據(jù)科學家、AI 工程師、MLOps 工程師和 IT 基礎設施專業(yè)人員在設計和部署檢索增強生成(RAG)工作流時,必須考慮各項因素,比如大語言模型(LLM) 核心組件以及評估方法等等。

這是由于 RAG 是一個系統(tǒng),而不僅僅是一個或一組模型。該系統(tǒng)由若干階段組成,RAG 101:揭秘檢索增強生成工作流一文對這些階段進行了深入討論。在這些階段中,您都可以根據(jù)需求做出設計決策。

以下是一些常見問題與回答:

何時應微調(diào) LLM?何時又該使用 RAG?

在 LLM 的世界里,您可以根據(jù)應用的具體需求和限制,為 LLM 選擇微調(diào)、參數(shù)有效微調(diào)(PEFT)、提示工程或 RAG。

微調(diào)通過使用特定領域的數(shù)據(jù)集,更新模型大部分或全部參數(shù),從而定制一個專門用于特定領域的預訓練 LLM。這種方法需要耗費大量資源,但能為專門的用例提供很高的準確性。

PEFT 側(cè)重于模型的一個子集,因此只需更新較少的參數(shù)就能修改預訓練 LLM。該方法平衡了準確性與資源使用,在數(shù)據(jù)和計算需求可控的情況下,為提示工程提供改進。

提示工程在不改變模型參數(shù)的情況下,通過操縱 LLM 的輸入來引導模型輸出。這是一種最節(jié)省資源的方法,適用于數(shù)據(jù)和計算資源有限的應用。

RAG 利用外部數(shù)據(jù)庫中的信息增強了 LLM 提示功能,它本質(zhì)上是一種復雜的提示工程。

使用哪種技術并不是關鍵,實際上,這些技術可以串聯(lián)使用。例如,可以將 PEFT 集成到 RAG 系統(tǒng)中,以進一步完善 LLM 或嵌入模型。使用哪種方法最好取決于應用的具體要求,同時還要兼顧準確性、資源可用性和計算限制。

如要進一步了解用于提高特定領域準確性的自定義技術,請參閱選擇大語言模型自定義技術:https://developer.nvidia.com/blog/selecting-large-language-model-customization-techniques/

使用 LLM 構(gòu)建應用程序時,首先要使用 RAG,借助外部信息提升模型的響應性。這種方法可以快速提高相關性和深度。

之后,如果您需要提高特定領域的準確性,可以采用前面所述的模型自定義技術。該流程分為兩步,既能夠借助 RAG 進行快速部署和通過模型定制實現(xiàn)有針對性的改進,又兼顧了高效開發(fā)和持續(xù)改進策略。

如何在不微調(diào)的情況下提高 RAG 的準確性?

簡而言之,在利用 RAG 的企業(yè)解決方案中,獲得準確性是至關重要的,而微調(diào)只是一種可能提高 RAG 系統(tǒng)準確性的技術,反之亦然。

首先,也是最重要的一點,是找到一種衡量 RAG 準確性的方法。在起點都不清楚的情況下,改進又從何談起?目前有幾個評估 RAG 系統(tǒng)的框架,如 Ragas、ARES 和 Bench 等。

在對準確性進行評估后,就可以在無需進行微調(diào)的情況下,通過多種途徑來提高準確性。

雖然這聽起來很麻煩,但首先要檢查并確保您的數(shù)據(jù)被正確解析和加載。例如,當文檔包含表格甚至圖像時,某些數(shù)據(jù)加載器可能會遺漏文檔中的信息。

在攝取數(shù)據(jù)后,要對其進行分塊,也就是將文本分割成片段的過程。分塊可以是固定長度的字符,但也有許多種其他的分塊方法,如句子分割和遞歸分塊等。文本的分塊方式?jīng)Q定了如何將其存儲在嵌入向量中以便檢索。

除此之外,還有許多索引和相關檢索模式。例如,可以為不同類型的用戶問題構(gòu)建多個索引、可以根據(jù) LLM 將用戶查詢引導至相應的索引等。

檢索策略也是多種多樣的。最基本的策略是利用索引的余弦相似性,BM25、自定義檢索器或知識圖也可以用來提高檢索效率。

根據(jù)特殊要求,對檢索結(jié)果進行重新排序也可以提高靈活性和準確性。查詢轉(zhuǎn)換可以很好地分解更加復雜的問題。即使只是改變 LLM 的系統(tǒng)提示,也能極大地提高準確性。

歸根結(jié)底,重要的是要花時間進行試驗,并衡量各種方法所產(chǎn)生的準確性變化。

像 LLM 或嵌入模型這樣的模型只是 RAG 系統(tǒng)的一部分。有很多方法可以在不需要進行任何微調(diào)的情況下改進 RAG 系統(tǒng),使其達到更高的準確性。

如何將 LLM 連接到數(shù)據(jù)源?

有多種框架可以將 LLM 連接到數(shù)據(jù)源,如 LangChain 和 LlamaIndex 等。這些框架提供評估程序庫、文檔加載器、查詢方法等各種功能,新的解決方案也層出不窮。建議您先了解各種框架,然后選擇最適合您應用的軟件和軟件組件。

RAG 能否列出檢索數(shù)據(jù)的來源?

可以。列出檢索數(shù)據(jù)的來源能夠改善用戶體驗。在 GitHub 資源庫中的 /NVIDIA/GenerativeAIExamples 的 AI 聊天機器人 RAG 工作流示例中

RAG 需要哪類數(shù)據(jù)?如何確保數(shù)據(jù)安全?

目前,RAG 支持文本數(shù)據(jù)。隨著多模態(tài)用例研究的深入,RAG 系統(tǒng)對圖像和表格等其他形式數(shù)據(jù)的支持也在不斷改進。您可能需要根據(jù)數(shù)據(jù)及其位置編寫額外的數(shù)據(jù)預處理工具。LlamaHub 和 LangChain 提供了多種數(shù)據(jù)加載器。如要進一步了解如何使用鏈構(gòu)建強化管線,請參閱保護 LLM 系統(tǒng)不受提示注入的影響:https://developer.nvidia.com/zh-cn/blog/securing-llm-systems-against-prompt-injection/

確保數(shù)據(jù)安全對企業(yè)來說是至關重要的。例如,某些索引數(shù)據(jù)可能只針對特定用戶?;诮巧脑L問控制(Role-based access control, RBAC)可以根據(jù)角色來限制對系統(tǒng)的訪問,從而實現(xiàn)數(shù)據(jù)訪問控制。比如,在向矢量數(shù)據(jù)庫發(fā)出請求時,可以使用用戶會話 token,這樣就不會返回超出該用戶權限范圍的信息。

許多用于保護環(huán)境中模型的術語,與用于保護數(shù)據(jù)庫或其他關鍵資產(chǎn)的術語相同。您需要考慮您的系統(tǒng)將如何記錄生產(chǎn)管線產(chǎn)生的活動(提示輸入、輸出和錯誤結(jié)果)。雖然這些活動可以為產(chǎn)品的訓練和改進提供豐富的數(shù)據(jù)集,但它們同時也是 PII 等數(shù)據(jù)泄漏的來源,因此必須像管理模型管線本身一樣謹慎管理。

人工智能模型有許多常見的云部署模式。您應該充分利用 RBAC、速率限制等工具以及此類環(huán)境中常見的其他控制措施,來提高 AI 部署的穩(wěn)健性。模型只是這些強大管線中的一個元素。

與終端用戶的交互性質(zhì)是所有 LLM 部署的工作重點之一。RAG 管線大部分都圍繞自然語言輸入和輸出。您應該考慮如何通過輸入/輸出調(diào)節(jié)來確保體驗符合一致的期望。

人們可能會用多種不同方式提問。您可以通過 NeMo Guardrails 等工具助 LLM “一臂之力”,這些工具可以對輸入和輸出進行二次檢查,以確保系統(tǒng)處于最佳運行狀態(tài)、解決系統(tǒng)所要解決的問題,并引導用戶到其他地方解決 LLM 應用無法處理的問題。

如何加速 RAG 管線?

數(shù)據(jù)預處理

數(shù)據(jù)去重是識別并刪除重復數(shù)據(jù)的過程。在對 RAG 數(shù)據(jù)進行預處理時,可以使用數(shù)據(jù)去重,減少為檢索而必須建立索引的相同文檔數(shù)量。

NVIDIA NeMo Data Curator 使用 NVIDIA GPU,通過并行執(zhí)行最小哈希算法、Jaccard 相似性計算和連接組件分析來加速數(shù)據(jù)去重,可以大大減少數(shù)據(jù)去重所需的時間。

另一個方法是分塊。由于下游嵌入模型只能對低于最大長度的句子進行編碼,因此必須將大型文本語料庫分成更小、更易于管理的語塊。流行的嵌入模型(如 OpenAI)最多可以編碼 1,536 個詞元。如果文本的詞元超過這個數(shù)量,就會被截斷。

NVIDIA cuDF 可通過在 GPU 上執(zhí)行并行數(shù)據(jù)幀操作來加速分塊處理,可以大大減少對大型語料庫進行分塊處理所需的時間。

最后,您可以在 GPU 上加速分詞器,分詞器負責將文本轉(zhuǎn)換成整數(shù)詞元供嵌入模型使用。文本分詞過程的計算成本很高,對于大型數(shù)據(jù)集來說尤其如此。

索引和檢索

RAG 非常適合經(jīng)常更新的知識庫,經(jīng)常需要重復生成嵌入。檢索是在推理時進行,因此要求實現(xiàn)低延遲。NVIDIA NeMo Retriever 可以加速這些流程。NeMo Retriever 用于提供最先進的商用模型和微服務,這些模型和微服務專為實現(xiàn)最低延遲和最高吞吐量而優(yōu)化。

LLM 推理

LLM 至少可用于生成完全成型的回答,還可用于查詢分解和路由選擇等任務。

由于需要多次調(diào)用 LLM,低延遲對于 LLM 至關重要。NVIDIA NeMo 包含用于模型部署的 TensorRT-LLM,可優(yōu)化 LLM 以實現(xiàn)突破性的推理加速和 GPU 效率。

NVIDIA Triton 推理服務器也可以部署經(jīng)過優(yōu)化的 LLM,以實現(xiàn)高性能、高成本效益和低延遲的推理。

有哪些辦法可以改善聊天機器人的延遲?

除了建議使用 Triton 推理服務器和 TensorRT-LLM 來加速 RAG 管線(如 NeMo 檢索器和 NeMo 推理容器等)外,您還可以考慮使用流式傳輸來改善聊天機器人的感知延遲。響應可能用時很久,流式傳輸用戶界面可先顯示部分已準備好的內(nèi)容,減少可感知的延遲。

也可以考慮針對您的用例使用經(jīng)過微調(diào)的較小 LLM。通常情況下,較小的 LLM 的延遲遠低于較大的 LLM。

一些經(jīng)過微調(diào)的 7B 模型在特定任務(如 SQL 生成)上的準確性已經(jīng)超過了 GPT-4。例如,ChipNeMo 是 NVIDIA 為幫助公司內(nèi)部工程師生成和優(yōu)化芯片設計軟件而定制的 LLM,該模型使用的就是 13B 微調(diào)模型,而不是 70B 參數(shù)模型。TensorRT-LLM 提供的閃存、FlashAttention、PagedAttention、蒸餾和量化等模型優(yōu)化功能適合在本地運行規(guī)模較小的微調(diào)模型,這些模型可減少 LLM 所使用的內(nèi)存。

LLM 的響應延遲取決于首個詞元的生成時間(TTFT)和單個輸出詞元的生成時間(TPOT)。

7e510622-aaf4-11ee-8b88-92fbcf53809c.png

對于較小的 LLM 來說,TTFT 和 TPOT 都會比較低。

開始在您的企業(yè)中構(gòu)建 RAG

通過使用 RAG,您可以輕松地為 LLM 提供最新的專有信息,并構(gòu)建一個能夠提高用戶信任度、改善用戶體驗和減少幻覺問題的系統(tǒng)。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    211

    文章

    28566

    瀏覽量

    207716
  • SQL
    SQL
    +關注

    關注

    1

    文章

    771

    瀏覽量

    44192
  • LLM
    LLM
    +關注

    關注

    0

    文章

    297

    瀏覽量

    357

原文標題:RAG 101:檢索增強生成相關問題解答

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【書籍評測活動NO.52】基于大模型的RAG應用開發(fā)與優(yōu)化

    提高輸出答案的質(zhì)量。 04 RAG與模型微調(diào) 要想提高大模型在特定行業(yè)與場景中輸出的適應準確性
    發(fā)表于 12-04 10:50

    系統(tǒng)快速、穩(wěn)定性和準確性之間的權衡

    度內(nèi)無規(guī)律的波動,如果我需要得到一個較為穩(wěn)定準確的溫度,我可以求最近10次采集的數(shù)據(jù)的平均值,這樣可以得到一個相對準確的溫度,但系統(tǒng)快速降低,且側(cè)到的溫度有滯后,我們需要怎么求得一
    發(fā)表于 07-28 11:42

    如何提高工程預算的準確性

    ,工程結(jié)束后,要進行決算,最終確定工程的總支出。提高工程預決算的準確性,對規(guī)范***投資管理,合理確定工程造價,提高資金的使用效率,有著極為重要的現(xiàn)實意義。一、造成工程預決算不準確的原
    發(fā)表于 07-25 17:35

    怎么提高頻率測量的準確性

    觀察到的大約少10%。有沒有辦法提高這種方法的準確性? 以上來自于百度翻譯 以下為原文I'm trying to read a sensor that outputs frequency (pulses
    發(fā)表于 01-04 14:28

    合同智能審核軟件-提高審查效率和準確性

    審查的準確性。使用軟件能夠提高審查速度在提高合同審查的速度方面,靈玖合同智能審核軟件設定了豐富的合同審核范圍:1.審查合同格式是否規(guī)范:檢查內(nèi)容包括字體字號行距,章節(jié)表格序號,上下標和大小寫
    發(fā)表于 09-05 17:22

    如何提高交流脈沖對HPMMM充磁和去磁時磁場定向的準確性?

    如何提高交流脈沖對HPMMM充磁和去磁時磁場定向的準確性
    發(fā)表于 11-19 06:30

    在ADC輸入內(nèi)阻不配情況下提高ADC準確度方法

    在ADC輸入內(nèi)阻不配情況下提高ADC準確度方法
    發(fā)表于 10-19 07:39

    何在燒寫的情況下使用軟件讀取ESP8266內(nèi)存容量?

    何在燒寫的情況下使用軟件讀取ESP8266內(nèi)存容量
    發(fā)表于 11-10 08:06

    如何提高投標報價編制的準確性

        施工企業(yè)要在激烈的市場競爭中戰(zhàn)勝對手,贏得工程項目,投標報價的準確性是關鍵。下面結(jié)合多年工作的實際,談一如何提高投標報價編制的準確性。
    發(fā)表于 01-08 15:36 ?13次下載

    AI可提高天氣預報的準確性準確性,助力農(nóng)民和可再生能源行業(yè)

     AI正在被用于提高天氣預報的準確性準確性,幫助農(nóng)民和可再生能源行業(yè),并刺激一些兼并和收購活動。
    的頭像 發(fā)表于 09-30 16:32 ?2725次閱讀

    何在沒有Arduino情況下制作機器人

    電子發(fā)燒友網(wǎng)站提供《如何在沒有Arduino情況下制作機器人.zip》資料免費下載
    發(fā)表于 12-05 09:58 ?0次下載
    如<b class='flag-5'>何在</b>沒有Arduino<b class='flag-5'>情況下</b>制作機器人

    何在構(gòu)建專用硬件的情況下制作充電寶原型

    能否在構(gòu)建專用硬件的情況下制作充電寶應用原型?
    的頭像 發(fā)表于 07-10 09:30 ?517次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>不</b>構(gòu)建專用硬件的<b class='flag-5'>情況下</b>制作充電寶原型

    犧牲尺寸的情況下提高脈搏血氧儀溶液的性能

    電子發(fā)燒友網(wǎng)站提供《在犧牲尺寸的情況下提高脈搏血氧儀溶液的性能.pdf》資料免費下載
    發(fā)表于 09-21 10:54 ?0次下載
    在<b class='flag-5'>不</b>犧牲尺寸的<b class='flag-5'>情況下</b><b class='flag-5'>提高</b>脈搏血氧儀溶液的性能

    如何提高電位測量準確性

    在電子工程和物理實驗中,電位測量是一項基本而重要的任務。電位測量的準確性直接影響到實驗結(jié)果的可靠和產(chǎn)品的安全。 1. 選擇合適的測量設備 選擇合適的測量設備是提高電位測量
    的頭像 發(fā)表于 12-28 13:56 ?165次閱讀

    如何提高OTDR測試的準確性

    OTDR(光時域反射儀)是光纜線路故障定位和光纖特性測量的重要工具,提高OTDR測試的準確性對于確保光纜線路的穩(wěn)定運行至關重要。以下是一些提高OTDR測試準確性的方法: 一、
    的頭像 發(fā)表于 12-31 09:25 ?249次閱讀