大模型時(shí)代,安全問(wèn)題不容小覷。但如果把大模型比作孫悟空,那 NVIDIA NeMo Guardrails 就是“安全護(hù)欄”,可以輕松的為基于 LLM 的對(duì)話系統(tǒng)添加可編程護(hù)欄,來(lái)避免大語(yǔ)言模型輸出違法違規(guī)內(nèi)容,并通過(guò)自定義方式響應(yīng)用戶特定請(qǐng)求,按照預(yù)定義的對(duì)話路徑進(jìn)行操作,以及使用特定的語(yǔ)言風(fēng)格進(jìn)行回答。
那如何在 Azure 中搭建 NeMo Guardrails 環(huán)境,將 NeMo Guardrails 與 Azure OpenAI 結(jié)合使用,構(gòu)建更加安全可靠的 LLM 對(duì)話引擎?本期【比特熊充電?!縉VIDIA 企業(yè)級(jí)開(kāi)發(fā)者社區(qū)經(jīng)理李奕澎,將為大家解讀 NeMo Guardrails 中的 Colang 語(yǔ)言,以及進(jìn)行將 NeMo Guardrails 與 Azure OpenAI 結(jié)合使用的代碼實(shí)戰(zhàn),見(jiàn)證安全 LLM 對(duì)話引擎的構(gòu)建。
李奕澎
NVIDIA 企業(yè)級(jí)開(kāi)發(fā)者社區(qū)經(jīng)理
NLP,Conversational-AI,LLM
Colang 語(yǔ)言
定義 LLM 對(duì)話引擎
NeMo Guardrails 中的 Colang 語(yǔ)言,是一種用于對(duì)話式人工智能的建模語(yǔ)言,能夠定義護(hù)欄。它的目標(biāo)是為用戶提供一個(gè)可讀可擴(kuò)展的,使用自然語(yǔ)言定義或控制對(duì)話機(jī)器人的行為的語(yǔ)言。
Colang 語(yǔ)言已經(jīng)作為 NeMo Guardrails 的內(nèi)核來(lái)使用。Colang 語(yǔ)言像電影的編劇,用戶和機(jī)器人是演員,通過(guò) Colang 語(yǔ)言,可以定義用戶的信息、機(jī)器人信息和 Flow,把機(jī)器話語(yǔ)和用戶話語(yǔ)進(jìn)行對(duì)話邏輯上的連接。
Colang 語(yǔ)言中常用的關(guān)鍵詞包括 bot, break, continue, create, define 等,能夠幫助開(kāi)發(fā)快速上手使用,降低對(duì)話式 AI 領(lǐng)域的學(xué)習(xí)門檻。
NeMo Guardrails 與 Azure OpenAl 的結(jié)合使用
搭建 LLM 對(duì)話引擎
在上一期【比特熊充電棧】中,已經(jīng)詳細(xì)解讀了在 Azure 中搭建 NeMo Guardrails 環(huán)境的步驟,包括申請(qǐng) Azure 賬號(hào),開(kāi)通 Azure Machine Learning 服務(wù),安裝 OpenAI、NeMo Guardrails,開(kāi)通 Azure OpenAI 服務(wù)等。搭建完成后,才能將 NeMo Guardrails 與 Azure OpenAl 結(jié)合使用。
NeMo Guardrails 與 AzureOpenAl 結(jié)合使用,構(gòu)建更加安全可靠的LLM對(duì)話引擎,還需要通過(guò)以下步驟進(jìn)行操作:
?導(dǎo)入 NeMo Guardrails 大模型護(hù)欄及 RailsConfig 護(hù)欄配置文件工具類;
?從 langchain 中導(dǎo)入 Azure Chat OpenAI 工具類;
?傳入 Azure OpenAI 的 API-KEY、endpoint、deployment_name、對(duì)應(yīng)的版本信息等關(guān)鍵參數(shù),就可以實(shí)例化一個(gè)大模型;
?調(diào)用 NeMo Guardrails 大模型中的 from_content 變量,讀取 Colang_Config2 文件和 Yaml_Config 配置文件,就可以實(shí)例一個(gè)安全的聊天機(jī)器人 App;
?調(diào)用 App 中的 generate_async 函數(shù),輸入用戶的問(wèn)題語(yǔ)句,機(jī)器人就會(huì)給出對(duì)應(yīng)的回答。
NeMo Guardrails
自定義 LLM 對(duì)話引擎應(yīng)用
NeMo Guardrails 除了支持 Azure OpenAI 外,還支持很多對(duì)話引擎大模型,包括 AI21labs、Cohere、Hugging Face、GPT4All 等。調(diào)用對(duì)話引擎大模型,首先要自定義一個(gè)大語(yǔ)言模型的 class:從 langchain 中導(dǎo)入 BaseLanguageModel,從 NeMo Guardrails 中導(dǎo)入 register_llm_provider,自定義大語(yǔ)言模型的 class 并注冊(cè)。
以 Hugging Face 為例,調(diào)用對(duì)話引擎大模型的步驟如下:
?創(chuàng)建并初始化一個(gè)構(gòu)造函數(shù),調(diào)用父類的構(gòu)造函數(shù)來(lái)初始化這個(gè)類的實(shí)例;
?然后指定大模型的 ID,調(diào)用 HuggingFacePipeline class 中的 from_model_id 函數(shù),輸入對(duì)應(yīng)大模型 id,定義 device、task 和模型參數(shù);
?然后定義返回、自定義函數(shù),以字符串的形式返回大語(yǔ)言模型的類型,在 langchain 中分別同步調(diào)用和異步調(diào)用自定義 LLM。
-
微軟
+關(guān)注
關(guān)注
4文章
6590瀏覽量
104024 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4978瀏覽量
102987 -
OpenAI
+關(guān)注
關(guān)注
9文章
1079瀏覽量
6481 -
大模型
+關(guān)注
關(guān)注
2文章
2423瀏覽量
2640 -
LLM
+關(guān)注
關(guān)注
0文章
286瀏覽量
327
原文標(biāo)題:【比特熊充電棧】實(shí)戰(zhàn)演練構(gòu)建 LLM 對(duì)話引擎
文章出處:【微信號(hào):mstech2014,微信公眾號(hào):微軟科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論