數據科學家、AI 工程師、MLOps 工程師和 IT 基礎設施專業人員在設計和部署檢索增強生成(RAG)工作流時,必須考慮各項因素,比如大語言模型(LLM) 核心組件以及評估方法等等。
這是由于 RAG 是一個系統,而不僅僅是一個或一組模型。該系統由若干階段組成,RAG 101:揭秘檢索增強生成工作流一文對這些階段進行了深入討論。在這些階段中,您都可以根據需求做出設計決策。
以下是一些常見問題與回答:
何時應微調 LLM?何時又該使用 RAG?
在 LLM 的世界里,您可以根據應用的具體需求和限制,為 LLM 選擇微調、參數有效微調(PEFT)、提示工程或 RAG。
微調通過使用特定領域的數據集,更新模型大部分或全部參數,從而定制一個專門用于特定領域的預訓練 LLM。這種方法需要耗費大量資源,但能為專門的用例提供很高的準確性。
PEFT 側重于模型的一個子集,因此只需更新較少的參數就能修改預訓練 LLM。該方法平衡了準確性與資源使用,在數據和計算需求可控的情況下,為提示工程提供改進。
提示工程在不改變模型參數的情況下,通過操縱 LLM 的輸入來引導模型輸出。這是一種最節省資源的方法,適用于數據和計算資源有限的應用。
RAG 利用外部數據庫中的信息增強了 LLM 提示功能,它本質上是一種復雜的提示工程。
使用哪種技術并不是關鍵,實際上,這些技術可以串聯使用。例如,可以將 PEFT 集成到 RAG 系統中,以進一步完善 LLM 或嵌入模型。使用哪種方法最好取決于應用的具體要求,同時還要兼顧準確性、資源可用性和計算限制。
如要進一步了解用于提高特定領域準確性的自定義技術,請參閱選擇大語言模型自定義技術:https://developer.nvidia.com/blog/selecting-large-language-model-customization-techniques/
使用 LLM 構建應用程序時,首先要使用 RAG,借助外部信息提升模型的響應性。這種方法可以快速提高相關性和深度。
之后,如果您需要提高特定領域的準確性,可以采用前面所述的模型自定義技術。該流程分為兩步,既能夠借助 RAG 進行快速部署和通過模型定制實現有針對性的改進,又兼顧了高效開發和持續改進策略。
如何在不微調的情況下提高 RAG 的準確性?
簡而言之,在利用 RAG 的企業解決方案中,獲得準確性是至關重要的,而微調只是一種可能提高 RAG 系統準確性的技術,反之亦然。
首先,也是最重要的一點,是找到一種衡量 RAG 準確性的方法。在起點都不清楚的情況下,改進又從何談起?目前有幾個評估 RAG 系統的框架,如 Ragas、ARES 和 Bench 等。
在對準確性進行評估后,就可以在無需進行微調的情況下,通過多種途徑來提高準確性。
雖然這聽起來很麻煩,但首先要檢查并確保您的數據被正確解析和加載。例如,當文檔包含表格甚至圖像時,某些數據加載器可能會遺漏文檔中的信息。
在攝取數據后,要對其進行分塊,也就是將文本分割成片段的過程。分塊可以是固定長度的字符,但也有許多種其他的分塊方法,如句子分割和遞歸分塊等。文本的分塊方式決定了如何將其存儲在嵌入向量中以便檢索。
除此之外,還有許多索引和相關檢索模式。例如,可以為不同類型的用戶問題構建多個索引、可以根據 LLM 將用戶查詢引導至相應的索引等。
檢索策略也是多種多樣的。最基本的策略是利用索引的余弦相似性,BM25、自定義檢索器或知識圖也可以用來提高檢索效率。
根據特殊要求,對檢索結果進行重新排序也可以提高靈活性和準確性。查詢轉換可以很好地分解更加復雜的問題。即使只是改變 LLM 的系統提示,也能極大地提高準確性。
歸根結底,重要的是要花時間進行試驗,并衡量各種方法所產生的準確性變化。
像 LLM 或嵌入模型這樣的模型只是 RAG 系統的一部分。有很多方法可以在不需要進行任何微調的情況下改進 RAG 系統,使其達到更高的準確性。
如何將 LLM 連接到數據源?
有多種框架可以將 LLM 連接到數據源,如 LangChain 和 LlamaIndex 等。這些框架提供評估程序庫、文檔加載器、查詢方法等各種功能,新的解決方案也層出不窮。建議您先了解各種框架,然后選擇最適合您應用的軟件和軟件組件。
RAG 能否列出檢索數據的來源?
可以。列出檢索數據的來源能夠改善用戶體驗。在 GitHub 資源庫中的 /NVIDIA/GenerativeAIExamples 的 AI 聊天機器人 RAG 工作流示例中
RAG 需要哪類數據?如何確保數據安全?
目前,RAG 支持文本數據。隨著多模態用例研究的深入,RAG 系統對圖像和表格等其他形式數據的支持也在不斷改進。您可能需要根據數據及其位置編寫額外的數據預處理工具。LlamaHub 和 LangChain 提供了多種數據加載器。如要進一步了解如何使用鏈構建強化管線,請參閱保護 LLM 系統不受提示注入的影響:https://developer.nvidia.com/zh-cn/blog/securing-llm-systems-against-prompt-injection/
確保數據安全對企業來說是至關重要的。例如,某些索引數據可能只針對特定用戶。基于角色的訪問控制(Role-based access control, RBAC)可以根據角色來限制對系統的訪問,從而實現數據訪問控制。比如,在向矢量數據庫發出請求時,可以使用用戶會話 token,這樣就不會返回超出該用戶權限范圍的信息。
許多用于保護環境中模型的術語,與用于保護數據庫或其他關鍵資產的術語相同。您需要考慮您的系統將如何記錄生產管線產生的活動(提示輸入、輸出和錯誤結果)。雖然這些活動可以為產品的訓練和改進提供豐富的數據集,但它們同時也是 PII 等數據泄漏的來源,因此必須像管理模型管線本身一樣謹慎管理。
人工智能模型有許多常見的云部署模式。您應該充分利用 RBAC、速率限制等工具以及此類環境中常見的其他控制措施,來提高 AI 部署的穩健性。模型只是這些強大管線中的一個元素。
與終端用戶的交互性質是所有 LLM 部署的工作重點之一。RAG 管線大部分都圍繞自然語言輸入和輸出。您應該考慮如何通過輸入/輸出調節來確保體驗符合一致的期望。
人們可能會用多種不同方式提問。您可以通過 NeMo Guardrails 等工具助 LLM “一臂之力”,這些工具可以對輸入和輸出進行二次檢查,以確保系統處于最佳運行狀態、解決系統所要解決的問題,并引導用戶到其他地方解決 LLM 應用無法處理的問題。
如何加速 RAG 管線?
數據預處理
數據去重是識別并刪除重復數據的過程。在對 RAG 數據進行預處理時,可以使用數據去重,減少為檢索而必須建立索引的相同文檔數量。
NVIDIA NeMo Data Curator 使用 NVIDIA GPU,通過并行執行最小哈希算法、Jaccard 相似性計算和連接組件分析來加速數據去重,可以大大減少數據去重所需的時間。
另一個方法是分塊。由于下游嵌入模型只能對低于最大長度的句子進行編碼,因此必須將大型文本語料庫分成更小、更易于管理的語塊。流行的嵌入模型(如 OpenAI)最多可以編碼 1,536 個詞元。如果文本的詞元超過這個數量,就會被截斷。
NVIDIA cuDF 可通過在 GPU 上執行并行數據幀操作來加速分塊處理,可以大大減少對大型語料庫進行分塊處理所需的時間。
最后,您可以在 GPU 上加速分詞器,分詞器負責將文本轉換成整數詞元供嵌入模型使用。文本分詞過程的計算成本很高,對于大型數據集來說尤其如此。
索引和檢索
RAG 非常適合經常更新的知識庫,經常需要重復生成嵌入。檢索是在推理時進行,因此要求實現低延遲。NVIDIA NeMo Retriever 可以加速這些流程。NeMo Retriever 用于提供最先進的商用模型和微服務,這些模型和微服務專為實現最低延遲和最高吞吐量而優化。
LLM 推理
LLM 至少可用于生成完全成型的回答,還可用于查詢分解和路由選擇等任務。
由于需要多次調用 LLM,低延遲對于 LLM 至關重要。NVIDIA NeMo 包含用于模型部署的 TensorRT-LLM,可優化 LLM 以實現突破性的推理加速和 GPU 效率。
NVIDIA Triton 推理服務器也可以部署經過優化的 LLM,以實現高性能、高成本效益和低延遲的推理。
有哪些辦法可以改善聊天機器人的延遲?
除了建議使用 Triton 推理服務器和 TensorRT-LLM 來加速 RAG 管線(如 NeMo 檢索器和 NeMo 推理容器等)外,您還可以考慮使用流式傳輸來改善聊天機器人的感知延遲。響應可能用時很久,流式傳輸用戶界面可先顯示部分已準備好的內容,減少可感知的延遲。
也可以考慮針對您的用例使用經過微調的較小 LLM。通常情況下,較小的 LLM 的延遲遠低于較大的 LLM。
一些經過微調的 7B 模型在特定任務(如 SQL 生成)上的準確性已經超過了 GPT-4。例如,ChipNeMo 是 NVIDIA 為幫助公司內部工程師生成和優化芯片設計軟件而定制的 LLM,該模型使用的就是 13B 微調模型,而不是 70B 參數模型。TensorRT-LLM 提供的閃存、FlashAttention、PagedAttention、蒸餾和量化等模型優化功能適合在本地運行規模較小的微調模型,這些模型可減少 LLM 所使用的內存。
LLM 的響應延遲取決于首個詞元的生成時間(TTFT)和單個輸出詞元的生成時間(TPOT)。
對于較小的 LLM 來說,TTFT 和 TPOT 都會比較低。
開始在您的企業中構建 RAG
通過使用 RAG,您可以輕松地為 LLM 提供最新的專有信息,并構建一個能夠提高用戶信任度、改善用戶體驗和減少幻覺問題的系統。
審核編輯:劉清
-
機器人
+關注
關注
211文章
28380瀏覽量
206918 -
SQL
+關注
關注
1文章
762瀏覽量
44117 -
LLM
+關注
關注
0文章
286瀏覽量
327
原文標題:RAG 101:檢索增強生成相關問題解答
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論