大語言模型( LLM )非常強大,能夠回答復雜的問題,進行創造性的寫作、開發、調試源代碼等。通過將 LLM 應用程序連接到外部工具,例如從實時源讀取數據,或者使 LLM 能夠決定根據用戶的請求采取什么行動,您可以構建極其復雜的 LLM 應用。然而,以安全可靠的方式構建這些 LLM 應用程序具有挑戰性。
NeMo Guardrails 是一個開源工具包,用于輕松開發安全可靠的 LLM 會話系統。由于生成人工智能的安全性是全行業關注的問題, NVIDIA 設計 NeMo Guardrails 與所有 LLM 一起工作,包括 OpenAI 的 ChatGPT 。
該工具包由社區構建的工具包提供支持,如 LangChain ,它在短短幾個月內就在 GitHub 上聚集了約 3 萬顆星。工具包提供了可組合、易于使用的模板和模式,通過將 LLM 、 API 和其他軟件包粘合在一起來構建 LLM 驅動的應用程序。
構建值得信賴、安全可靠的 LLM 會話系統
NeMo Python 通過添加可編程規則來定義應用程序中所需的用戶交互,使開發人員能夠輕松地指導聊天機器人。它本機支持 LangChain ,為基于 LLM 的會話應用程序添加了一層安全性、保衛性和可信度。開發人員可以定義用戶交互,并使用 Guardrails 庫將這些 Guardrails 輕松集成到任何應用程序中。
將 Guardrails 添加到會話系統
Guardrails 是介于用戶和 LLM 之間的一組可編程約束或規則。這些 Guardrails 監控、影響和支配用戶的互動,就像高速公路上的 Guardrails 一樣,它定義了道路的寬度,防止車輛轉向不需要的區域。
用戶向機器人發送查詢,機器人返回響應。全套查詢和響應加在一起就是一個閑聊。機器人程序響應用戶查詢并創建相應的提示,包括要執行的中間步驟或操作。然后,機器人程序使用提示調用 LLM , LLM 返回形成機器人程序響應的信息。
有時,機器人會使用包含文檔的知識庫中的相關信息。機器人從知識庫中檢索塊,并將它們作為上下文添加到提示中。
NeMo Guardrails 基于 Colang ,這是一種由 NVIDIA 開發的用于對話式人工智能的建模語言和運行時。 Colang 的目標是為用戶提供一個可讀和可擴展的界面,以使用自然語言定義或控制對話機器人的行為。
與這個系統交互就像一個傳統的對話框管理器。您可以通過在包含以下關鍵概念的 Colang 文件中定義流來創建 Guardrails :
- 規范形式
- 信息
- 流
一個canonical form是對一個話語的簡化轉述。這被用來推理對話的內容,并將規則與話語相匹配。
信息表示一種簡寫方法,將用戶意圖分類為規范形式的生成,這是一種使用自然語言的輕量級表示。在引擎蓋下,這些消息被索引并存儲在內存中的矢量存儲中。激活時,頂部N來自向量存儲的大多數類似消息被檢索或發送到 LLM 以生成類似的規范形式。例如:
define user express greeting "Hi" "Hello!" "Hey there!" |
這個例子代表了問候語的簡寫。它定義了一個新的規范形式express greeting
,并提供一些自然語言提示或消息。任何類似于給定提示集的提示都被理解為用戶表達問候。
流由一組消息和操作組成,并定義用戶交互的結構或流程。流也可以被認為是用戶和機器人之間交互的樹或圖。
define flow greeting user express greeting bot express greeting bot ask how are you |
當問候流被觸發時,用戶和機器人被指示交換問候。定義這些的語法與消息相同。
Guardrails 技術
當定義 Guardrails 時,這些模型位于用戶和人工智能應用程序之間,監控兩個方向的通信,并采取適當的行動來確保安全性,從而使模型保持在應用程序的期望域內。您可以使用簡單直觀的語法以編程方式定義 Guardrails 。
如今, NeMo Guardrails 支持三大類 Guardrails :
- 有關時事的
- 安全
- 保衛
專題 Guardrails
主題 Guardrails 旨在確保對話集中在特定主題上,防止他們轉向不希望的領域。
它們是一種機制,可以檢測一個人或機器人何時參與超出主題范圍的對話。這些主題 Guardrails 可以處理這種情況,并引導對話回到預期的主題。例如,如果客戶服務機器人旨在回答有關產品的問題,它應該認識到某個問題超出了范圍,并相應地回答。
安全 Guardrails
安全 Guardrails 確保與 LLM 的互動不會導致錯誤信息、有毒反應或不適當的內容。眾所周知, LLM 會給出聽起來似乎合理的答案。安全 Guardrails 可以幫助檢測和執行策略,以提供適當的響應。
安全的其他重要方面 Guardrails 是確保模型的響應是真實的,并得到可靠來源的支持,防止人類入侵人工智能系統以提供不適當的答案,以及減輕偏見。
保衛 Guardrails
保衛性 Guardrails 防止 LLM 以一種會帶來安全風險的方式執行惡意代碼或對外部應用程序的調用。
當 LLM 應用程序被允許訪問外部系統時,它們是一個有吸引力的攻擊表面,并且會帶來重大的網絡安全風險。保衛 Guardrails 有助于提供一個強大的安全模型,并在發現基于 LLM 的攻擊時減輕攻擊。
Guardrails 工作流程
NeMo Guardrails 是完全可編程的。隨著時間的推移,應用 Guardrails 和 Guardrails 觸發的一組操作很容易自定義和改進。對于關鍵情況,只需幾行代碼就可以添加新規則
這種方法與人類反饋強化學習( RLHF )等技術高度互補,在 RLHF 中,模型通過模型訓練過程與人類意圖保持一致。 NeMo Guardrails 可以幫助開發人員強化他們的人工智能應用程序,使其更具確定性和可靠性。
以下是 Guardrails 流程的工作流程:
- 將用戶輸入轉換為規范形式。
- 使用 Colang 基于規范形式匹配或生成護欄。
- 計劃并規定機器人執行操作的下一步。
- 從規范形式或生成的上下文生成最終輸出。

有關解決實現 Guardrails 的常見模式的幾個示例的更多信息,請參閱 NeMo GuardrailsGitHub repo。在 NeMo Guardrails 中構建自己安全可靠的 LLM 會話系統時,這些都是一套很好的食譜。
總結
NVIDIA 正在將 NeMo Guardrails 納入NeMo 框架,其中包括使用公司的領域專業知識和數據集培訓和調整語言模型所需的一切。
NeMo 也可以作為服務使用。它是NVIDIA AI Foundations,是一系列云服務,適用于希望基于自己的數據集和領域知識創建和運行自定義生成人工智能模型的企業。
NVIDIA 期待著與人工智能社區合作,繼續讓每個人都能使用值得信賴、安全可靠的 LLM 。今天就探索 NeMo Guardrails。
?