歡迎大家來到第三章的第六節(jié),設(shè)計UNIT對話邏輯。
我們在上幾章已經(jīng)定義好了對話邏輯,接下來我們看一下怎么用UNIT來做所有的配置和設(shè)計。
- 梳理業(yè)務(wù)邏輯
首先,根據(jù)我們之前學(xué)過的內(nèi)容,第一步要梳理業(yè)務(wù)邏輯。
先做一些準(zhǔn)備工作,磨刀不誤砍柴工。
對話Bot其實是在模擬你真實的業(yè)務(wù)場景,所以梳理業(yè)務(wù)的邏輯非常重要。
我們需要知道用戶通常有哪些目的,這些目的有沒有關(guān)聯(lián),哪些信息是實現(xiàn)目的的關(guān)鍵要素。
還是以火車票的預(yù)定為例,這個場景是用戶來到了火車票售票大廳,我們基本上可以梳理出他有下面幾個目的:
查詢車次和時間;
查詢余票;
購買火車票;
改簽車票;
退票;
進(jìn)一步去分析會發(fā)現(xiàn),購買火車票的意圖先要經(jīng)過a和b,先查詢車次和時間,再查詢余票。
我們以查詢車票和時間為例,關(guān)鍵的信息有起點(diǎn)的城市、終點(diǎn)的城市。只有有了這些業(yè)務(wù)邏輯的梳理,才能在下一步中合理的構(gòu)建出Bot技能的對話意圖、詞槽等對話系統(tǒng)中的必要信息。
第二步,配置技能的對話意圖或問答意圖。
- 配置技能的對話意圖或問答意圖
UNIT上的技能有預(yù)置的技能和自定義技能,整個配置技能目標(biāo)是把業(yè)務(wù)邏輯交給對話系統(tǒng),每一個意圖都是由相關(guān)的意圖組成。
根據(jù)我們上一個步驟里,對業(yè)務(wù)邏輯的拆解完成技能下對每個對話意圖、問答意圖的具體配置。
這個時候要思考,用戶對話的對話意圖是什么?
要達(dá)成用戶的對話意圖,需要理解哪些關(guān)鍵信息?
對話系統(tǒng)應(yīng)該如何回應(yīng)用戶?
有哪些規(guī)則是需要遵守的?
這種對話意圖的定義,類似于產(chǎn)品設(shè)計里的功能需求分析。
同樣以訂票為例,如圖所示,它的對話意圖名是BOOK_TICKET,別名是訂票。我們要添加相關(guān)的詞槽,有user_time、user_from、user_to和trainnumber,這是一些詞槽別名。
澄清話術(shù)就是怎么去問用戶信息,“你什么時間出發(fā)”“從哪出發(fā)”“要到哪”。
配置技能的對話意圖或問答意圖需要以下五步:
1. 新建對話意圖;
2. 添加詞槽;
3. 設(shè)置Bot的回應(yīng);
4. 新建問答意圖;
5. 設(shè)置預(yù)置技能(例如:閑聊、問候、指令等等);
以下是一些補(bǔ)充說明:
后續(xù)實操課程會專門講解新建對話意圖。
關(guān)于Bot 的回應(yīng):
Bot的回應(yīng)是說當(dāng)Bot識別到用戶的意圖,并且已經(jīng)識別到所有的詞槽之后,Bot的下一步的操作,通常有三種Bot操作方式:答復(fù)、引導(dǎo)至對話意圖、引導(dǎo)至問答意圖。
這里有三個注意事項:
實際落地的時候需要在自己的業(yè)務(wù)代碼里判斷,當(dāng)前Bot解析的意圖為訂票,并且用戶提供了系統(tǒng)需要的關(guān)鍵詞槽信息,接下來你需要用這三個詞槽值你去火車票的系統(tǒng)中找到符合條件的火車票,同時生成一個火車票的例子返回給用戶,供用戶選擇并完成支付。在這個操作的過程中是需要對接外部系統(tǒng)的。
關(guān)于引導(dǎo)至對話意圖和引導(dǎo)至問答意圖:
引導(dǎo)至對話意圖:當(dāng)前對話滿足一定條件時,把它引導(dǎo)到另外一個對話意圖。也就是說讓用戶進(jìn)入到另外一個意圖的對話里去。
引導(dǎo)至問答意圖:讓用戶直接在目標(biāo)問答意圖下提問并獲取答案,它更像一個Q&A,就是一個我們之前說的問答型的這種。
比如說我問:“什么是經(jīng)停航班”,然后有一個回答。
這些在后續(xù)的實操中都會有講。
- 標(biāo)注對話數(shù)據(jù)
在效果優(yōu)化訓(xùn)練數(shù)據(jù)中盡量多的添加對話模版和對話樣板,這樣搭建的機(jī)器人會更貼近真實的業(yè)務(wù)場景。對話Bot就像一個兒童,教的越多越聰明。
具體的方法下面簡單介紹一下,后續(xù)的實操會詳細(xì)介紹。
- 第一步,配置對話模版;
舉個例子:“明天上午去北京的機(jī)票”,在這里把明天上午做成模版,配置好以后,當(dāng)用戶有類似 “明天上午XXXX” 這樣的話術(shù)出現(xiàn)時,系統(tǒng)會自動匹配。比較適用于樣本少,快速識別不同表達(dá)方式的用戶需求。
- 第二步,標(biāo)注對話樣本;
在這一階段,把收集到的對話數(shù)據(jù)導(dǎo)入到UNIT的平臺,依次標(biāo)注意圖、詞槽,供后續(xù)的學(xué)習(xí),讓機(jī)器人有更好的對話理解泛化能力。
- 第三步是添加問答對;
在需求分析的階段,收集整理問答的數(shù)據(jù)。比如把退款相關(guān)的問答對導(dǎo)入到問答集中。
補(bǔ)充說明一下,不是每個場景都需要同時添加上面的三種訓(xùn)練數(shù)據(jù),具體場景具體選擇即可。
關(guān)于如何選擇不同的方式:
如果你的場景是任務(wù)型,同時缺少對話樣本。你就要先去配置對話模版,快速達(dá)到一定的效果后,再從日志中篩選出更多的對話樣本。
如果一開始你就有大量真實的對話樣本,這時你可以把對話模版和對話樣本一起上,進(jìn)而快速達(dá)到一個很好的效果。
如果你還有問答對話的時候,你只要添加問答對就可以了。
- 訓(xùn)練/體驗
將對話模版對話樣板等配置好后,系統(tǒng)會自動訓(xùn)練生成模型,然后把模型放在沙盒中,就可以與自己定制的對話系統(tǒng)對話了。
UNIT背后的深度學(xué)習(xí)和對話管理技術(shù)會幫你快速訓(xùn)練bot的對話能力。
機(jī)器人是一個反復(fù)驗證、發(fā)現(xiàn)問題、優(yōu)化配置,補(bǔ)充對話樣本的一個循環(huán)過程,反復(fù)優(yōu)化,逐步升級,機(jī)器越來越聰明。

這里為大家展示訓(xùn)練和體驗的過程。在UNIT上線后,機(jī)器人會用戶每句話的動作和意圖給識別出來,同時可以在這里繼續(xù)編輯和查看JSON。
除此之外,還可以進(jìn)行反問頻率、Bot頻率等的評級,并重制對話。
因為UNIT體驗的工具做的非常完善,在這里建議大家將剛剛搭建的Bot在UNIT的后臺先進(jìn)行訓(xùn)練。
- 應(yīng)用調(diào)用
UNIT已經(jīng)和百度的其它AI技術(shù)打通了,創(chuàng)建一個應(yīng)用以后可以方便的調(diào)用百度AI的語音圖像識別的所有能力。
這是本章的講解,謝謝大家!