亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Rasa框架的智能對話系統(tǒng)研究與設(shè)計

        2023-03-14 07:55:38李孟全吳士泓王志剛
        現(xiàn)代計算機(jī) 2023年1期
        關(guān)鍵詞:組件框架動作

        李孟全,吳士泓,王志剛

        (遠(yuǎn)光軟件股份有限公司,珠海 519085)

        0 引言

        在企業(yè)推進(jìn)以人機(jī)協(xié)同系統(tǒng)為基礎(chǔ)的智能化進(jìn)程中,任務(wù)型對話系統(tǒng)是其中最核心的領(lǐng)域,需要各方深入研究和推動。趙陽洋等[1]認(rèn)為,盡管對話系統(tǒng)近年來有較大的發(fā)展,能夠幫助用戶完成簡單的任務(wù),但其在通用性、深度理解等方面還面臨著許多挑戰(zhàn)。筆者研究了Rasa開源框架,發(fā)現(xiàn)Rasa在通用性和深度理解方面具備一定的優(yōu)勢,該框架設(shè)計高效、靈活,提供了對話機(jī)器人開發(fā)時必要的基礎(chǔ)架構(gòu)和工具,尤其是Bunk等[2]基于Rasa框架提出的DIET模型,能夠?qū)τ脩粢鈭D和實(shí)體信息進(jìn)行聯(lián)合建模,且Rasa整體上與NLP技術(shù)的最新研究進(jìn)展融合性很好。所以,本文將基于Rasa框架深入研究和設(shè)計一套智能對話系統(tǒng),以便減輕相關(guān)人員的工作壓力,滿足公司“提質(zhì)增效”的管理需求,為企業(yè)數(shù)字化轉(zhuǎn)型奠定堅實(shí)基礎(chǔ)。

        1 研究現(xiàn)狀和問題

        1.1 對話技術(shù)研究現(xiàn)狀

        對話技術(shù)大體上經(jīng)歷了三個發(fā)展階段,分別是基于符號規(guī)則和模板階段、基于傳統(tǒng)機(jī)器學(xué)習(xí)階段、基于深度學(xué)習(xí)階段。

        基于符號規(guī)則和模板階段。該階段的技術(shù)嚴(yán)重依賴專家手工制定的語法規(guī)則和本體設(shè)計,優(yōu)點(diǎn)是容易理解,缺點(diǎn)是人工成本非常高、擴(kuò)展性差。例如,Goddeau等[3]提出的有限狀態(tài)機(jī)方法需要人工預(yù)先定義好全部狀態(tài)和狀態(tài)轉(zhuǎn)移條件,采用NLU輸出中得分或概率最高的結(jié)果才能完成對話狀態(tài)更新,該方法缺點(diǎn)是無法解決錯誤識別問題,且在復(fù)雜應(yīng)用場景下靈活性不足。后來,Sun等[4]提出用于修正NLU中錯誤識別的N-Best列表分?jǐn)?shù)方法,但缺點(diǎn)也同樣明顯:相關(guān)參數(shù)依賴人工編制,不能根據(jù)數(shù)據(jù)分布情況進(jìn)行學(xué)習(xí)。

        基于傳統(tǒng)機(jī)器學(xué)習(xí)階段。該階段的技術(shù)方法包括K近鄰、決策樹、樸素貝葉斯、邏輯回歸、集成學(xué)習(xí)、條件隨機(jī)場、支持向量機(jī)(SVM)等。該階段的技術(shù)雖然具備弱學(xué)習(xí)能力,但漏洞修補(bǔ)難度大,也不利于模型大規(guī)模應(yīng)用。例如,Lewis等[5]、Zhang等[6]認(rèn)為樸素貝葉斯模型的獨(dú)立假設(shè)條件比較苛刻,在實(shí)際場景中應(yīng)用價值不大;Yang等[7]、Weinberger等[8]認(rèn)為K近鄰算法在結(jié)果一致性方面簡單、有效,且重新訓(xùn)練代價低,但其性能過于依賴模型查找到的最近鄰距離度量,且面對高維數(shù)據(jù)時處理效果不佳。Joachims[9]指出SVM應(yīng)對高維空間和過擬合時表現(xiàn)出來的穩(wěn)健性不錯,但其性能又高度依賴于相關(guān)參數(shù)和核函數(shù)的選擇。Lubis等[10]通過變分自編碼潛在動作空間對對話策略進(jìn)行優(yōu)化,主要探索了預(yù)訓(xùn)練、動作知情的先驗(yàn)和多任務(wù)學(xué)習(xí)三種借助輔助任務(wù)塑造潛在變量分布的方法,優(yōu)點(diǎn)是與目前的Transformer不同,不需要額外的數(shù)據(jù),且計算成本低,在端到端對話任務(wù)上效果顯著,但在長距離上下文和對話軌跡準(zhǔn)確性方面有待完善。

        基于深度學(xué)習(xí)階段。該階段的技術(shù)促使了端到端的學(xué)習(xí)成為可能,是目前研究的主流方法,也涌現(xiàn)了大量的研究成果,當(dāng)然也存在一定程度的不足。目前在處理序列標(biāo)注任務(wù)時會在傳統(tǒng)序列標(biāo)注方法基礎(chǔ)上加入深度學(xué)習(xí)方法,例如,Ma等[11]、Dilek等[12]提到的具有條件隨機(jī)場層的雙向LSTM,成為目前處理序列標(biāo)注任務(wù)的主流模型,既可以兼顧上下文又可以兼顧依賴關(guān)系信息,滿足過去和未來的信息均可被充分利用的要求,但該方法有時候還是需要人工構(gòu)建特征;其他方面,馮強(qiáng)中[13]利用知識圖譜和神經(jīng)網(wǎng)絡(luò)(主要是雙向LSTM)進(jìn)行知識增強(qiáng),將復(fù)雜且非標(biāo)準(zhǔn)的自然語言查詢語句轉(zhuǎn)換為符合公司知識庫標(biāo)準(zhǔn)的問題,再結(jié)合知識庫中的問題、相似問題和答案等實(shí)體構(gòu)建知識圖譜,完成智能問答工作,但不足之處是模型僅限于其公司內(nèi)部相關(guān)數(shù)據(jù)上的表現(xiàn)不錯;Li等[14]提出了一種上下文感知的動態(tài)卷積網(wǎng)絡(luò),可以在生成卷積核的同時充分利用上下文信息,提出的新網(wǎng)絡(luò)框架可被擴(kuò)展至多任務(wù)學(xué)習(xí)下的雙通道上,用于完成對話行為和情感分類的聯(lián)合識別任務(wù)。

        1.2 目前存在的問題

        目前主流的深度學(xué)習(xí)方法在對話任務(wù)的表現(xiàn)不錯,但有些問題需要進(jìn)一步解決,比如:①模型中領(lǐng)域漂移(domain shift)、語義間隔等問題;②目前對于語言的理解多數(shù)停留在語義表層,復(fù)雜場景下融合知識后的邏輯推理能力偏弱;③域適應(yīng)能力面臨的問題亟需解決,以便應(yīng)對自由度比較高的對話場景。

        2 Rasa框架概述

        Rasa是一個用于構(gòu)建智能對話機(jī)器人的開源機(jī)器學(xué)習(xí)框架,擁有大量的可擴(kuò)展特性組件,幾乎覆蓋對話系統(tǒng)的所有功能,是目前對話系統(tǒng)的主流開源框架[15],主要包含以下四部分。

        (1)Rasa NLU:提取用戶想要做什么和上下文關(guān)鍵信息;

        (2)Rasa Core:基于對話歷史,選擇最優(yōu)的回復(fù)和動作;

        (3)通道(channel)和動作(action):連接對話機(jī)器人與用戶及后端服務(wù)系統(tǒng);

        (4)輔助系統(tǒng):Tracker Store、Lock Store和Event Broker等。

        Rasa內(nèi)部運(yùn)行機(jī)制如圖1所示。用戶可以利用通道支持的客戶端將查詢信息輸入對話系統(tǒng),Rasa NLU負(fù)責(zé)將用戶的輸入轉(zhuǎn)換成意圖和實(shí)體信息,完成自然語言理解工作。然后,Rasa Core負(fù)責(zé)基于當(dāng)前和歷史的對話記錄(其中NLU的輸出是對話記錄的一部分)采取下一個動作,下一個動作可以是回復(fù)用戶信息、調(diào)用用戶自定義的動作類。自定義動作運(yùn)行在一個單獨(dú)的服務(wù)進(jìn)程中,被稱為動作服務(wù)器,該服務(wù)器通過HTTP(hypertext transfer protocol)與Rasa Core進(jìn)行相互通信。多數(shù)情況下,我們重點(diǎn)關(guān)注Rasa NLU和Rasa Core兩個核心部分。

        圖1 Rasa內(nèi)部運(yùn)行機(jī)制示意圖

        3 系統(tǒng)設(shè)計與實(shí)現(xiàn)

        3.1 自然語言理解模塊

        3.1.1 Rasa NLU模塊中各類組件

        Rasa NLU主要是通過監(jiān)督學(xué)習(xí)算法完成意圖提取和實(shí)體提取,所以需要自行準(zhǔn)備一些包含意圖信息和實(shí)體信息的語料。這里將以某央企總部制定的“會計基礎(chǔ)管理辦法”及省公司本部制定的“會計科目責(zé)任制管理規(guī)范(業(yè)務(wù)規(guī)范)”等原始數(shù)據(jù)為基礎(chǔ),準(zhǔn)備需要的相關(guān)語料,同時會根據(jù)最新的內(nèi)外部政策要求更新語料庫。

        Rasa NLU在軟件架構(gòu)設(shè)計上比較靈活,允許開發(fā)人員自行使用各種算法完成相關(guān)工作,這些算法的具體實(shí)現(xiàn)被稱為組件(component)。由于這些相互連接的各類組件及組件間的數(shù)據(jù)流共同組成了有向無環(huán)圖,所以Rasa NLU也可以被看作一個基于有向無環(huán)圖的通用框架。自然語言理解模塊通常有實(shí)體識別和意圖識別兩個任務(wù),為了完成這些任務(wù),圖2給出了一個典型的Rasa NLU配置通常包含的各類組件,下面針對這些組件進(jìn)行逐一說明。

        圖2 典型Rasa NLU組件示意圖

        3.1.2 流水線配置

        由上面分析可知,Rasa NLU是基于有向無環(huán)圖進(jìn)行組件配置,這種有向無環(huán)圖在Rasa中被稱為流水線(pipeline),配置文件格式為YAML,配置樣例如算法1所示。

        算法1流水線配置樣例

        recipe:default.v1

        language:zh

        pipeline:

        -name:JiebaTokenizer #使用Jieba中文分詞器

        -name:LanguageModelFeaturizer

        #基于HuggingFace的Transformers庫

        model_name:bert #BERT的語言模型和架構(gòu)

        model_weights:bert-base-chinese#BERT的中文語言模型和架構(gòu)

        -name:RegexFeaturizer

        #讀取訓(xùn)練數(shù)據(jù)中的正則表達(dá)式配置

        -name:DIETClassifier

        #Rasa提供的實(shí)體和意圖聯(lián)合提取組件

        epochs:100 #模型運(yùn)行100個epoch

        learning_rate:0.001

        tensorboard_log_directory:./log

        -name:ResponseSelector

        epochs: 100

        learning_rate: 0.001 #模型學(xué)習(xí)率

        - name: EntitySynonymMapper #實(shí)體識別組件

        3.1.3 Rasa NLU分析結(jié)果

        如果輸入“請問車輛燃油費(fèi)報銷時需要上傳哪些附件”,NLU將會給出如算法2所示的解析結(jié)果,顯然“attachment”和“attachment”之間的相關(guān)性明顯高于與“goodbye”的相關(guān)性。

        算法2Rasa NLU分析結(jié)果

        “text”:“請問車輛燃油費(fèi)報銷時需要上傳哪些

        附件”,

        “intent”:{

        “id”:5313274288154357548,

        “name”:“attachment”,

        “confidence”:0.999690031993

        },

        “entities”:[

        “entity”:“reimbursement”

        “start”:2,

        “end”:9,

        “confidence”:0.999778123345692,

        “value”:“車輛燃油費(fèi)報銷”,

        “extractor”:“DIETClassifier”

        ],

        “intent_ranking”:{

        “id”:5313274288154357548”,

        “name”:“attachment”,

        “confidence”:0.999688021375883,

        },

        “id”:-3614266674174050593,

        “name”:“goodbye”,

        “confidence”:0.000122011470351,

        3.2 對話管理模塊

        Rasa Core是Rasa體系中負(fù)責(zé)對話管理(dialog management,DM)的部分,主要職責(zé)是根據(jù)NLU模塊的輸出實(shí)現(xiàn)會話行為狀態(tài)的更新和跟蹤,并結(jié)合一定的策略(policy)選擇下一個動作輸出。簡言之,對話管理的核心在于基于意圖(intent)和狀態(tài)(state)的動作預(yù)測。對話管理模塊內(nèi)部運(yùn)行原理示意圖如圖3所示。

        圖3 對話管理模塊內(nèi)部運(yùn)行機(jī)制示意圖

        3.2.1 通道

        通道的主要作用是對經(jīng)過的數(shù)據(jù)進(jìn)行統(tǒng)一封裝,將符合規(guī)范的數(shù)據(jù)推送至下一個節(jié)點(diǎn)處理。這里的通道有兩類:輸入通道和輸出通道,前者負(fù)責(zé)將用戶的身份和輸入信息封裝成用戶信息對象后推送給Processor處理,后者將對話系統(tǒng)需要返回給用戶的信息進(jìn)行統(tǒng)一封裝。

        3.2.2 領(lǐng)域

        領(lǐng)域(domain)對象定義了對話系統(tǒng)需要掌握的所有信息,例如意圖、實(shí)體(entity)、詞槽(slot)、動作、表單(form)和回復(fù)(response)。這些數(shù)據(jù)明確界定了模型的輸入和輸出范圍,一般由Rasa框架中的配置文件domain.yml統(tǒng)一提供。

        本質(zhì)上講,領(lǐng)域有利于將對話系統(tǒng)需要使用的模板信息進(jìn)行統(tǒng)一管理,包括定義的意圖、實(shí)體、槽位、話術(shù)模板,以及自定義的動作和策略等。領(lǐng)域?qū)ο笤趧幼鲌?zhí)行時可以提供這些模板信息,如果需要添加或修改這些信息,只需要修改domain.yml文件里的數(shù)據(jù)就可以,不需要修改任何代碼,實(shí)現(xiàn)了系統(tǒng)配置和代碼解耦,便于整體上對對話系統(tǒng)進(jìn)行管理。算法3給出了領(lǐng)域?qū)ο蟮臉永?/p>

        算法3領(lǐng)域?qū)ο髽永?/p>

        intents:

        -goodbye

        -greet

        -chitchat

        -deny

        -stop

        -affirm

        -info_date

        -info_reimbursement

        entities:

        -reimbursement

        -date-time

        slots:

        address:

        type:text

        influence_conversation:false

        mappings:

        -entity:reimbursement

        type:from_entity

        date-time:

        type:text

        influence_conversation:false

        mappings:

        -entity:date-time

        type:from_entity

        responses:

        utter_greet:

        -text:您好,請問有什么事情可以幫到您?

        utter_goodbye:

        -text:再見!

        utter_ask_reimbursement:

        -text:需要咨詢哪類報銷業(yè)務(wù)問題?

        utter_ask_date-time:

        -text:業(yè)務(wù)什么時候發(fā)生的?

        utter_ask_continue:

        -text:是否要繼續(xù)?

        utter_default:

        -text:小E沒有理解您說的是什么意思。

        actions:

        -utter_greet

        -utter_goodbye

        -utter_ask_reimbursement

        -utter_ask_date-time

        -utter_ask_continue

        -utter_default

        -respond_chitchat

        -action_reimbursement_form_submit

        forms:

        reimbursement_form:

        required_slots:

        -reimbursement

        -date-time

        3.2.3 故事

        故事(story)是一種較高語義層次上記錄對話過程的方式,它不僅需要記錄用戶的語義表達(dá),還需要記錄系統(tǒng)內(nèi)部正確的狀態(tài)變化。故事本身是以字典的形式存在,包含兩個鍵:story和steps。后面的策略就是通過學(xué)習(xí)故事內(nèi)容才進(jìn)行動作預(yù)測的。

        3.2.4 策略

        策略(policy)擔(dān)負(fù)著根據(jù)當(dāng)前用戶反饋的信息告知Processor當(dāng)前一輪對話中應(yīng)該執(zhí)行的后續(xù)動作以及如何更新對話狀態(tài)信息等任務(wù)。Rasa框架中的策略管理模塊支持人工規(guī)則的策略和依靠機(jī)器學(xué)習(xí)、深度學(xué)習(xí)完成的數(shù)據(jù)驅(qū)動策略,也支持組合策略。由于前期財務(wù)領(lǐng)域的樣本數(shù)據(jù)偏少,所以采用以表單策略(form_policy)為代表的人工規(guī)則策略,該策略與動作管理中的表單動作(form_action)相對應(yīng)。需要說明的是,Rasa框架提前預(yù)置了一個叫fall_back的策略,其目的是為對話系統(tǒng)執(zhí)行一個兜底策略。

        3.2.5 動作

        動作接收用戶輸入和對話狀態(tài)信息,按照業(yè)務(wù)邏輯進(jìn)行處理,并輸出改變對話狀態(tài)的事件和回復(fù)用戶的消息。

        3.3 系統(tǒng)部署

        在生產(chǎn)環(huán)境中部署對話系統(tǒng)時,使用單機(jī)部署模式,使用Redis作為Tracker store和Lock store背后的數(shù)據(jù)庫,單機(jī)高并發(fā)設(shè)置為6,滿足Rasa服務(wù)器使用6個worker,性能測試時使用REST接口連接Rasa進(jìn)行對話處理,并使用JMeter等測試工具對Rasa的吞吐量和響應(yīng)時間進(jìn)行測量。

        4 結(jié)語

        本文首先從企業(yè)以人機(jī)協(xié)同系統(tǒng)建設(shè)推進(jìn)其智能化建設(shè)的角度引出對話系統(tǒng),并對選擇Rasa框架搭建智能對話系統(tǒng)進(jìn)行說明,提出構(gòu)建智能對話系統(tǒng)的實(shí)現(xiàn)方式;其次,針對對話技術(shù)研究現(xiàn)狀和目前的問題進(jìn)行分析,給出相關(guān)研究進(jìn)展和未來挑戰(zhàn);然后,針對Rasa框架內(nèi)部運(yùn)行機(jī)制進(jìn)行解讀;最后,針對智能對話系統(tǒng)進(jìn)行詳細(xì)設(shè)計,針對對話系統(tǒng)實(shí)現(xiàn)及系統(tǒng)部署進(jìn)行說明。筆者認(rèn)為,隨著全國“全電發(fā)票”試點(diǎn)工作的深入推進(jìn),國內(nèi)大型企業(yè)在以財務(wù)數(shù)智化為基礎(chǔ)的智能系統(tǒng)建設(shè)步伐必將提速,以人機(jī)多元協(xié)同為主線的管理智能化創(chuàng)新應(yīng)用將會越來越多。

        猜你喜歡
        組件框架動作
        無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
        能源工程(2022年2期)2022-05-23 13:51:50
        框架
        廣義框架的不相交性
        新型碎邊剪刀盤組件
        U盾外殼組件注塑模具設(shè)計
        動作描寫要具體
        畫動作
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        動作描寫不可少
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        麻豆视频在线播放观看| 精品一区二区三区免费爱| 亚洲日本人妻中文字幕| 一本大道东京热无码中字 | 18禁免费无码无遮挡不卡网站 | 国产玉足榨精视频在线观看| 久久亚洲av成人无码电影a片| 亚洲成色www久久网站夜月| 国产视频最新| 国产成人av三级三级三级在线| 日韩 无码 偷拍 中文字幕| 欧美成免费a级毛片| 亚洲av无码国产精品麻豆天美 | 亚洲一区二区三区在线观看播放 | 亚洲国产欧美在线观看| 欧美极品少妇无套实战| 亚洲国产精品嫩草影院久久| 日本中文字幕人妻精品| 日本三级片在线观看| 少妇人妻200篇白洁| 精品第一页| 在线视频亚洲一区二区三区| 亚洲国产精品不卡av在线| 免费观看性欧美大片无片 | 亚洲一道一本快点视频| 国产精品女同一区二区免| 免费又黄又爽又色的视频| 国产在线无码一区二区三区 | 女人与牲口性恔配视频免费 | 蜜桃国产精品视频网站| 东京热久久综合久久88| 国产亚洲日韩欧美一区二区三区 | 亚洲一区av在线观看| 婷婷综合久久中文字幕蜜桃三电影| 白白视频在线免费观看| 一区二区三区日韩亚洲中文视频| 久久久久久人妻一区精品 | 激情人妻中出中文字幕一区| 国产精品一区二区三区自拍| 久久久久久人妻毛片a片| 亚洲中出视频|