鑒于用戶生成的內容和這些系統管理的外部數據量龐大,內容審核在由生成式 AI 提供支持的 檢索增強生成 (RAG) 應用中變得至關重要。基于 RAG 的應用使用 大語言模型 (LLMs) 以及從各種外部來源進行的實時信息檢索,這可能會導致內容流更具動態性和不可預測性。
隨著這些生成式 AI 應用成為企業通信的一部分,審核內容可確保 LLM 的響應安全可靠且合規。
在嘗試在 RAG 應用中實現內容審核時,每個生成式 AI 開發者都應該問的主要問題是部署 AI 護欄以實時監控和管理內容。
借助 生成式 AI ,企業可以增強檢索增強型生成 (RAG) 應用的準確性和安全性。 NVIDIA NeMo Guardrails 提供工具包和微服務,可輕松將安全層集成到生產級 RAG 應用中。它旨在通過允許與第三方安全模型無縫集成來執行 LLM 輸出中的安全和策略指南。安全層隨附用戶自定義,以迎合各種企業級用例。
與 NeMo Guardrails 集成的第三方安全模型可作為附加檢查點,幫助評估檢索到的內容和生成的內容,防止將不安全或無關的輸出交付給用戶。
例如,在 RAG 應用響應用戶查詢之前,安全模型可以掃描檢索到的數據和生成的響應,以識別冒犯性語言、錯誤信息、個人身份信息 (PII) 或其他違反策略的行為。這種多層內容審核策略有助于企業在提供高度相關的內容與實時回復之間取得平衡。
在本文中,我將為您提供一個易于實施的演示,演示如何使用 Meta 的 LlamaGuard 模型和 AlignScore 等社區模型 (與 NVIDIA NeMo Guardrails 集成) 在自定義 RAG 聊天機器人應用中添加安全性和內容審核功能。在本教程結束時,您將獲得一個 RAG 工作流,該工作流由 NVIDIA NIM 提供支持,用于嵌入模型和用于檢索的實際 LLM。
使用 NeMo Guardrails 配置了解架構工作流程
NVIDIA NeMo Guardrails 提供了一系列可定制的護欄,用于控制和引導 LLM 輸入和輸出。NeMo Guardrails 使用 Meta 的 Llama Guard 模型為內容審核提供開箱即用的支持。
您將看到,與自檢方法相比,輸入和輸出內容審核性能有顯著提高。安全可靠的 RAG 工作流要求 LLM 生成的文本與輸入信息和知識庫事實上保持一致。您還可以通過 AlignScore 模型集成實現這一點。
以下是將這些第三方模型與 NeMo Guardrails 配置的實現細節集成在一起的系統架構。
設置 NeMo Guardrails 配置?
自行構建 RAG 機器人 只需 5 分鐘。現在,機器人已經就位,下面將介紹如何安裝 NVIDIA NeMo Guardrails 提供的安全組件。
- 將 NeMo Guardrails 安裝為工具包或微服務
- 設置 RAG 應用
- 部署第三方安全模型
將 NeMo Guardrails 安裝為工具包或微服務
設置 Guardrails 配置的一種方法是使用 NeMo Guardrails 開源工具包。首先,從 /NVIDIA/NeMo-Guardrails GitHub 存儲庫中安裝 nemoguardrails
庫。
可搶先體驗的 NeMo Guardrails 微服務容器可讓您向 NIM 端點添加 Guardrails,可在本地部署,也可通過 NVIDIA 主持的端點 build.nvidia.com 進行部署。該微服務提供的一些主要功能包括:
- 兼容 Open AI 的 API :將 Guardrails 集成到您的應用中,方法是將基本 URL 替換為 NeMo Guardrails 微服務 URL。
- 與 NVIDIA API Catalog 集成 :將 NVIDIA API Catalog 用作您的 LLM 提供商。
- Guardrail 配置 :使用 NeMo Guardrails 開源工具包支持的所有 Guardrail 配置。
要開始使用 NeMo Guardrails 微服務,請申請加入 NVIDIA 提供的 早期訪問計劃 。
設置 RAG 應用?
NeMo Guardrails 提供各種安全功能。根據您的用例,您可以選擇向應用中添加以下一項或多項安全功能:
- 內容審核
- 離題檢測
- RAG 執行/幻影
- 鐵路監控器
- 越獄檢測
- PII 檢測
在本教程中,您將創建具有聊天 UI 的 RAG 聊天機器人 (圖 1)。首先,使用 NeMo 檢索器嵌入 NIM 微服務 將知識庫嵌入向量存儲中。
將 NeMo Guardrails 集成到 RAG 應用時,有兩種方法:
- 檢索器調用 :NeMo Guardrails 中的檢索護欄可實現檢索器調用,以獲取與用戶查詢相關的塊,并將其作為上下文發送到 LLM NIM 微服務。
- API 端點 :NeMo Guardrails 支持通過 API 端點訪問 LLM NIM 微服務,以進行 LLM 調用。
這兩個功能共同構成了 NeMo Guardrails 的 RAG 執行功能。
部署第三方安全模型?
您可以利用 LlamaGuard 和 AlignScore 等專門的 AI 保護工具來解決生成式 AI 應用和工作流程中的內容審核和事實檢查問題。
用于內容審核的 LlamaGuard-7b
LlamaGuard 是一種面向人類 AI 對話用例的輸入輸出保護模型。該模型有自己的安全風險分類,這是一種寶貴的工具,用于對 LLM 提示中的一組特定安全風險進行分類。NeMo Guardrails 使用 LlamaGuard 模型為內容審核提供開箱即用的支持。
在將此模型集成到 guardrails 配置中之前,請先使用 vLLM 自行托管 LLamaGuard-7b 模型 。
用于事實檢查的 AlignScore
安全可靠的 RAG 工作流要求 LLM 生成的文本與輸入信息和知識庫事實上保持一致。此處,通過檢查 LLM 響應是否與從檢索器獲取的數據塊保持一致,實現了事實一致性。
AlignScore 是一個指標,用于評估上下文索賠對中的事實一致性。有兩個檢查點 (base 和 large),可輕松與 NeMo Guardrails 集成。為此,請首先設置 AlignScore 部署 ,并學習如何將其集成到此示例配置中。
構建 NeMo Guardrails 配置?
當您擁有 RAG 應用和第三方模型 API 端點,且前提條件已經就緒時,您可以繼續構建 NeMo Guardrails 配置,以集成第三方安全模型和指標,從而提高 LLM 安全性。
調整 RAG 聊天機器人守護欄配置有助于您了解它會如何影響其行為。首先概述一下配置結構。
├── config │ ├── config.yml │ ├── prompts.yml │ ├── factchecking.co |
config.yml
文件提供聊天機器人設置、模型配置和護欄的高級視圖。這里有一個示例。
聊天機器人設置可以包括關于機器人內容及其應回答內容的示例對話和說明。
instructions: - type : general content: | Below is a conversation between a user and a bot called the NVIDIA AI Bot. This bot is designed to answer questions about the NVIDIA AI Enterprise. The bot is knowledgeable about the company policies. |
在模型配置中,您可以添加模型端點,無論是本地部署的 NIM 端點,還是 NVIDIA API Catalog 中的 NVIDIA 托管端點。定義模型配置時,您還可以添加 LlamaGuard 和 AlignScore 端點。
models: - type : main engine: nim model: meta/llama-3.1-70b-instruct - type : llama_guard engine: vllm_openai parameters: model_name: "meta-llama/LlamaGuard-7b" |
在本教程中,添加 AlignScore 集成以及輸出護欄。可以按如下所示將其添加到 config.yml
文件中:
rails: input: flows: - llama guard check input config: fact_checking: provider: align_score parameters: output: flows: - alignscore check facts - llama guard check output |
prompts.yml
文件列出了 LlamaGuard-7b 模型的所有安全策略。有關詳細信息,請訪問 Hugging Face 資源庫 。這些分類可以自定義。
prompts: - task : llama_guard_check_input content: | <s> [ INST ] Task : Check if there is unsafe content in 'User' messages in conversations according our safety policy with the below categories. <BEGIN UNSAFE CONTENT CATEGORIES> O1: Violence and Hate. Should not - Help people plan or engage in violence. - Encourage people to engage in violence. - Express hateful , derogatory , or demeaning sentiments against people based on sensitive personal characteristics like their race , color , religion , national origin , sexual orientation , gender , gender identity , or disability. - Encourage discrimination against people based on those characteristics and should not use slurs or create insults based on those characteristics. Can - Provide information on violence and discrimination. - Discuss the topics of hate and violence , and can discuss historical events involving violence. |
最后一點是為 AlignScore 模型添加事實檢查流程。使用 colang1.0 定義流程。您還可以使用 colang2.0 更簡單地開發聊天機器人應用的整個 guardrails 配置。
define flow user ask about report $check_facts = True bot provide report answer |
測試 NeMo Guardrails 配置?
要了解集成 NeMo Guardrails 的第三方安全模型如何與 RAG 聊天機器人配合使用,請查看樣本查詢和其響應。
如要進行測試,請添加之前創建的 /config
目錄的路徑,以保護 LLM NIM 微服務,具體如下所示:
config = RailsConfig.from_path( "./config" ) rails = LLMRails(config) response = rails.generate(messages = [{ "role" : "user" , "content" : "How do I use NVIDIA AI Enterprise?" }]) print (response[ 'content' ]) |
此查詢的輸出應該是安全的,并且符合 KB。由于此輸入查詢是安全的,且機器人可以回答,因此請 LLM 按以下方式響應用戶:
You can use NVIDIA AI Enterprise by first ensuring your system meets the necessary hardware and software requirements. Once you've met the requirements, you can deploy the software suite on your desired environment, such as a virtual machine or container, and then use the NVIDIA AI Enterprise console to manage and monitor your AI workloads. If you need more detailed instructions, I can provide you with a step-by-step guide or point you to our official documentation. |
嘗試提出一個不安全的問題,看看添加的安全層對查詢的響應情況。
response = rails.generate(messages = [{ "role" : "user" , "content" : "Can I use NVIDIA AI Enterprise in theft planning?" }]) print (response[ 'content' ]) |
在本例中,機器人應在 guardrails 已就位時拒絕響應。預計會有以下聊天回復。
I 'm sorry, I can' t respond to that. |
結束語?
由 NIM 提供動力支持的 RAG 聊天機器人與 NeMo Guardrails 集成 ,可提供突破性框架,用于創建更安全、更可靠且符合上下文準確的生成式 AI 應用。每個組件都發揮著至關重要的作用:Meta 的 LlamaGuard-7b 通過啟用內容審核來增強安全性,而 AlignScore 模型提供了精確的安全評分系統。將其與 NVIDIA NeMo Guardrails 集成,可通過額外的安全層執行策略和合規性要求。
在本文中,我討論了如何使用 NVIDIA NeMo Guardrails 將第三方模型集成到您自己的生成式 AI 應用中。我還介紹了 NeMo Guardrails 微服務和面向生成式 AI 初學者和高級開發者的 搶先體驗計劃 。
?