內(nèi)功和外功,作為諸多武俠小說(shuō)的兩大流派,有著諸多區(qū)別。內(nèi)功主要是內(nèi)力,外功主要是拳腳功夫,如熟知的降龍十八掌就是外家的頂峰功夫,任何武功若想發(fā)揮最大的威力都離不開內(nèi)功的精深。內(nèi)功是道,外功是術(shù),道術(shù)結(jié)合,東方不敗。作為一個(gè)業(yè)余的武俠小說(shuō)愛(ài)好者和剛?cè)腴T的科研愛(ài)好者,這次從內(nèi)功和外功的兩個(gè)角度出發(fā),介紹我們我們組在 EMNLP 2023 中的兩個(gè)工作,如有不當(dāng)之處,敬請(qǐng)?jiān)彛?/p>
何為內(nèi)功?
何為內(nèi)功?按我的理解,要有功法,要運(yùn)轉(zhuǎn)多少個(gè)小周天,大周天,要有真氣,真氣運(yùn)轉(zhuǎn)之后要不變的更多,要不變的質(zhì)量更好。何為功法?唯有 LLM 是也。何為小周天,大周天?唯有不同的 prompt engieering 或者說(shuō)不同 path 的 chain-of-thoughts。何為真氣?即為對(duì)話歷史,也就是當(dāng)前的輸入。對(duì)話歷史里面蘊(yùn)藏著很多語(yǔ)義學(xué)線索,Mairesse 就研究過(guò)從對(duì)話歷史中識(shí)別出來(lái)人物性格特點(diǎn)等,比如性子急的講話就比較急躁,除此之外,其他工作也探索了類似情緒,心理狀態(tài)等等不同方面的語(yǔ)義學(xué)線索,這些語(yǔ)義學(xué)線索在生成個(gè)性化回復(fù)的時(shí)候尤為重要。
正如我們?nèi)祟愒谶M(jìn)行對(duì)話的時(shí)候,不可避免的會(huì)考慮對(duì)方的性格習(xí)慣,當(dāng)下的情緒和心理狀態(tài)等,LLM 在進(jìn)行對(duì)話的時(shí)候也需要考慮到這些因素,從而生成更有幫助,更容易被用戶接受的回復(fù)。而相較于傳統(tǒng)的 standard prompting 而言,LLM 直接依賴對(duì)話歷史進(jìn)行回復(fù),沒(méi)有顯示的建模剛剛提到的隱藏在對(duì)話歷史中豐富的用戶信息,我們提出一種新的 CoT 方法,Cue-CoT,把用戶回復(fù)生成建模成多階段的推理過(guò)程:
O-Cue:One-step inference, 類似于傳統(tǒng)的 CoT,一步直接生成中間推理過(guò)程和最終回復(fù)。首先我們要求 LLM 推理出來(lái)當(dāng)前對(duì)話歷史里面蘊(yùn)含的不同維度的用戶信息(使用不同的 prompts),然后我們讓 LLM 接著生成最終的回復(fù)。(相對(duì)復(fù)雜的指令和內(nèi)容臃腫的輸出)
M-Cue:Multi-step inference,我們逐步的生成我們想要 LLM 輸出的內(nèi)容。和 O-Cue 一樣,這里第一步我們要求 LLM 推理出來(lái)當(dāng)前對(duì)話歷史里面蘊(yùn)含的不同維度的用戶信息,然后給定對(duì)話上下文和第一步生成的中間結(jié)果,我們第二步讓 LLM 接著生成最終的回復(fù)。(相對(duì)簡(jiǎn)單的指令和內(nèi)容清晰的輸出)
這兩種 prompting 的處理方式不同,帶來(lái)了 Zero-shot setting 和 One-shot setting(受限于 LLM input limit 和對(duì)話長(zhǎng)度)的差別。
Zero-shot Setting:在 O-Cue 中,由于單步指令較復(fù)雜(不要要進(jìn)行推理還要進(jìn)行回復(fù)生成,以及生成的格式要求),單步生成內(nèi)容過(guò)多,導(dǎo)致 LLM 無(wú)法很好的理解指令;生成內(nèi)容較短,無(wú)論是中間推理結(jié)果還是最后回復(fù)的長(zhǎng)度相對(duì)于 M-Cue 都短一點(diǎn),另外還有一個(gè)嚴(yán)重的問(wèn)題是生成內(nèi)容無(wú)法很好的切分,因?yàn)橐徊糠?LLM 無(wú)法按照要求的格式進(jìn)行輸出。
One-shot Setting:在進(jìn)行 demostration selection 的過(guò)程中,也有著很大的區(qū)別。O-Cue 只能依賴單一的 input 即當(dāng)前的對(duì)話上下文來(lái)作為 query 去 demostration pool 里面進(jìn)行選擇,而 M-Cue 在每一步都可以根據(jù)不同的 input 去作為 query 進(jìn)行選擇。
總的來(lái)說(shuō),M-Cue 這種處理方式可以增強(qiáng)整個(gè)系統(tǒng)的解釋性和控制性,我們對(duì)于中間結(jié)果可以進(jìn)行編輯,比如增加對(duì)于當(dāng)前用戶的其他渠道的數(shù)據(jù),或者過(guò)濾掉不好或者不正確的推理結(jié)果,其次這種中間結(jié)果可以作為 demostration selection 的一個(gè)標(biāo)準(zhǔn),從而幫助我們更好的選擇 demostration。
我們?cè)?5 個(gè)中英文 LLM,6 個(gè)數(shù)據(jù)集(中文:Zhihu,D4,PsyQA;英文:Quora,ED,EMH)上將我們提出的 O-Cue 和 M-Cue 與傳統(tǒng)的 standard prompting 進(jìn)行了對(duì)比,這里具體的分析可以參考原文,總體來(lái)說(shuō)我們發(fā)現(xiàn):
整體來(lái)說(shuō):大部分情況下 Cue-Cot 都能夠取得比 standard prompting 更好的效果(win rates 超過(guò) 50%),其中受益于相對(duì)簡(jiǎn)單的指令和多步推理的輸出,M-Cue 比 O-Cue 能夠?qū)崿F(xiàn)更高的 win rate。此外我們發(fā)現(xiàn)中文大模型上 acceptability 的 win rates 比 helpfulness 低,而英文大模型上剛好相反,我們猜測(cè)可能是由于中文大模型在根據(jù)當(dāng)前用戶的情感,性格等因素生成更容易被用戶接受的回復(fù)的能力略弱,而僅僅考慮了 helpfulness 這個(gè)維度。
中文大模型:我們發(fā)現(xiàn) ChatGLM 在 O-Cue 的情況下是三個(gè)模型當(dāng)中最差的,然后我們檢查了對(duì)應(yīng)的輸出,我們發(fā)現(xiàn) ChatGLM 基本上忽視了給定的指令而直接進(jìn)行對(duì)話;或者沒(méi)有按照指令要求輸出對(duì)應(yīng)的格式,這可能歸結(jié)為其不同的訓(xùn)練方式。但是在 M-Cue 的情況下所有的大模型都能很好的跟隨指令,這種情況下由于 D4 的對(duì)話上下文是最長(zhǎng)的,導(dǎo)致其效果是三個(gè)數(shù)據(jù)集中最差的。
英文大模型:在 O-Cue 的情況下 Alpaca 也出現(xiàn)了類似 ChatGLM 的問(wèn)題,即不能很好的跟隨指令,此外英文大模型在較長(zhǎng)的對(duì)話輸入等場(chǎng)景下也表現(xiàn)不佳。整體來(lái)說(shuō) ChatGPT 和 Vicuna 的指令跟隨能力更強(qiáng),相較于 Alpaca 而言都傾向于生成較長(zhǎng)的回復(fù)。
注:以上實(shí)驗(yàn)結(jié)果均基于 2023 年 5 月左右的模型表現(xiàn)。
以上均是方法層面的直接對(duì)比,我們額外進(jìn)行了模型層面的對(duì)比。將 ChatGPT 作為錨點(diǎn),我們?cè)u(píng)估了現(xiàn)有模型的相對(duì)表現(xiàn)。
我們將中文和英文分別作為兩個(gè)坐標(biāo)軸,以 ChatGPT 為中間點(diǎn)將第一象限分為四個(gè)不同的區(qū)域,區(qū)域一代表中英文均比 ChatGPT 差;區(qū)域二代表英文比 ChatGPT 好,但是中文較差;區(qū)域三代表中文比 ChatGPT 好,但是英文較差;區(qū)域四代表中英文均比 ChatGPT 好。我們發(fā)現(xiàn)目前在區(qū)域四還是沒(méi)有出現(xiàn)任何一個(gè)模型,我們?cè)O(shè)想了三種不同的路徑來(lái)幫助我們得到區(qū)域四的模型。
路徑一:直接不斷外推現(xiàn)有的 ChatGPT 的能力,如圖中橙色所示,OpenAI 可能是這條路線。
路徑二:由當(dāng)前中文模型進(jìn)一步的在英文語(yǔ)料上進(jìn)行訓(xùn)練,如 ChatGLM 或者其他中文模型。
路徑三:由當(dāng)前英文模型進(jìn)一步的在中文語(yǔ)料上進(jìn)行訓(xùn)練,如 LLaMA 系列的中文版本,Vicuna 和 Alpaca 的中文版本。
我們看到其實(shí)目前來(lái)說(shuō)路徑三里面的模型是最多的,路徑一可能是最難的,路徑二一方面是現(xiàn)有的中文模型的基座能力還沒(méi)有達(dá)到上限;另一方面其英文能力可能也不是主流大模型玩家在乎的;還有一種可能是英文能力即使拉上去,可能也干不過(guò) SOTA :)
很多只需要當(dāng)前的對(duì)話歷史作為輸入,從而得到最終的答案的對(duì)話任務(wù),如回復(fù)多樣性,回復(fù)選擇,對(duì)話信息抽取,對(duì)話摘要等等,都屬于內(nèi)功。內(nèi)功練得好,外功就用的越溜,因?yàn)樵谶@個(gè)過(guò)程中,真氣沒(méi)有流失,要不壓縮之后進(jìn)一步提純,質(zhì)量變得更好了,比如從非結(jié)構(gòu)化數(shù)據(jù)變成結(jié)構(gòu)化數(shù)據(jù);要不信息量得到增強(qiáng),如情感分析等。這兩種不同的處理導(dǎo)致的結(jié)果都是變的更加適配下游任務(wù)了。
何為外功?
那何為外功?外功由內(nèi)力驅(qū)使,借助外力,如刀槍劍戟,即為不同的工具。功法,運(yùn)轉(zhuǎn)路徑,真氣,也是缺一不可。唯一不同的是這時(shí)候需要使用不同的刀法,劍法,即為不同工具的使用方法。那何時(shí),何地使用工具,使用哪一個(gè)工具呢?這就是我們另外一個(gè)工作 SAFARI 所要探索的問(wèn)題。
開放域?qū)υ捪到y(tǒng)往往需要很多的外部知識(shí),比如用戶的 persona,和 wikipedia 上的 document,以及其他的一些我們?cè)O(shè)計(jì)出來(lái)的一些幫助我們生成更好回復(fù)的數(shù)據(jù)庫(kù)等等。這些不同的外部知識(shí),比如 persona 和 document,其實(shí)就是不同的 conceptual tool [1]。
很多時(shí)候,不是每一輪對(duì)話都需要這些外部知識(shí),也不是一下子就需要使用所有的外部知識(shí),更復(fù)雜的是有時(shí)候這些知識(shí)庫(kù)之間存在依賴,比如我們傾向于見(jiàn)人說(shuō)人話,見(jiàn)鬼說(shuō)鬼話,這就是根據(jù)不同人的 persona 使用了不同的 document 的結(jié)果,所以這里的 document 就是依賴于對(duì)話者的 persona 的。而之前的開放域?qū)υ捪到y(tǒng)大部分都是針對(duì)單一知識(shí)來(lái)源,要不是 persona 要不是 document 要不是其他的,也有一部分工作是考慮了多個(gè)外部知識(shí)的復(fù)合作用,但是不加區(qū)分的對(duì)于對(duì)話中的每一輪都使用所有知識(shí),這無(wú)疑會(huì)帶來(lái)額外的消耗和不必要的浪費(fèi)。
在本篇工作中,我們首先構(gòu)造了一個(gè)數(shù)據(jù)集,建模了 persona 和 document 之間的依賴關(guān)系,其中 persona 的維度包括了年齡,性別,民族,愛(ài)好等 12 個(gè)維度,基本涵蓋了當(dāng)下個(gè)性化對(duì)話的大部分需求,然后我們按照不同的 persona description 提供了對(duì)應(yīng)的 document,包括 5 個(gè)不同的 knowledge sentences。
舉個(gè)例子,persona description 包括有:我今年 16 歲,那對(duì)應(yīng)的 document 里面包括的知識(shí)可能是 16 歲是未成年人,16 歲無(wú)法喝酒 等等。一條簡(jiǎn)單的 persona 描述背后可能隱藏著非常多的常識(shí)知識(shí)和世界知識(shí),退一步說(shuō),即使 persona 和 document 之間沒(méi)有直接的聯(lián)系,我們?cè)谧?document selection 的時(shí)候其實(shí)還是受到 persona 或者 memory 等因素隱性的影響,參考《There Are a Thousand Hamlets in a Thousand People’s Eyes: Enhancing Knowledge-grounded Dialogue with Personal Memory》[2]。
總的來(lái)說(shuō),我們首先構(gòu)建了將近 3k 多條多輪對(duì)話,在一個(gè)多輪對(duì)話包括三個(gè)不同的場(chǎng)景:1)不使用任何外部知識(shí);2)僅使用 persona knowledge source;3)既使用 persona 又使用 documents(這里 persona 和 document 存在依賴關(guān)系)。
為了同時(shí)建模這三種場(chǎng)景,我們提出一個(gè)框架 SAFARI,將外部知識(shí)選擇和回復(fù)生成進(jìn)行解耦。具體來(lái)說(shuō)我們將整個(gè)對(duì)話回復(fù)生成解耦成三個(gè)任務(wù),1)Planning:規(guī)劃是否需要使用知識(shí),何時(shí)使用知識(shí),以及多種知識(shí)庫(kù)之間的調(diào)用順序;2)Retrieval:使用外部的 retriever 對(duì)上一步規(guī)劃使用的知識(shí)庫(kù)按順序抽取對(duì)應(yīng)的 Top-n 的輔助文檔;3)Assembling:將對(duì)話上下文和中間抽取到的輔助文檔拼接在一起進(jìn)行最終的回復(fù)生成。
我們同時(shí)研究了在 supervised 和 unsupervised 兩種設(shè)定下 SAFARI 的實(shí)現(xiàn)方式,并且評(píng)估了三種不同 LLM 的表現(xiàn)(BELLE,ChatGLM 和 ChatGPT)。
Supervised SAFARI:我們將整個(gè)過(guò)程建模成一個(gè)序列生成任務(wù),整體思想類似于 ReWOO+ToolkenGPT 的結(jié)合體,但是限于匿名期,我們沒(méi)有及時(shí)的披露。
具體來(lái)說(shuō),我們將不同的 source(不使用任何 source 視為 NULL)作為 special tokens 加入到大模型的詞表里面,然后要求大模型輸出一個(gè) source 序列,代表不同 source 一個(gè)調(diào)用順序,如下圖所示,然后我們將對(duì)應(yīng) source 的 ground-truth 輔助文檔和對(duì)話上下文,輸出的 source 作為輸入,要求大模型輸出最終的模型,以這種形式,我們只需要將 loss 加在 source 訓(xùn)練和最終的回復(fù)上即可進(jìn)行端到端的訓(xùn)練。推理的時(shí)候需要進(jìn)行兩步推理,和以上介紹的類似,不再贅述。
Unsupervised SAFARI:給定一些 demostrations,我們直接使用 prompt 來(lái)要求大模型輸出我們需要的內(nèi)容,比如第一步要求大模型直接輸出 source 序列,第二步根據(jù)對(duì)話上下文和中間輔助文檔生成對(duì)應(yīng)的回復(fù)。prompt 如圖所示:
我們?cè)敿?xì)對(duì)比了不同的大模型在兩種設(shè)定下的表現(xiàn),首先我們看 planning 的表現(xiàn),如下圖所示,整體而言經(jīng)過(guò)訓(xùn)練的大模型能夠取得比 unsupervised 更好的效果(LoRA 微調(diào)),但是在 NULL 和 Persona 的效果仍然不是很理想,這可能和我們的數(shù)據(jù)分布比較相關(guān)。
在 unsupervised 的設(shè)定下,我們發(fā)現(xiàn) zero-shot 情況下 BELLE 和 ChatGLM 通常表現(xiàn)出過(guò)度自信(大部分都選擇不使用任何知識(shí)),而 ChatGPT 就好很多,但是也仍然無(wú)法理解多個(gè) source 之間存在 dependency 的情況,很多 cases 下僅僅選擇使用 Documents,In-context learning 無(wú)法帶來(lái)明顯的增益,這一方面是由于我們使用的是隨機(jī)選擇的 3 個(gè)案例作為 demostrations,另一方面 in-context learning 在解決大模型的 uncertainy 上似乎也不是一個(gè)有效方案 [3]。
然后我們看 Assmbling 的表現(xiàn),由于這里的 Assemling 非常依賴上面的 planning 的結(jié)果,所以需要結(jié)合起來(lái)進(jìn)行分析。經(jīng)過(guò)訓(xùn)練的模型往往能取得更好的效果,尤其是在 BLEU1 和 RougeL上,然后在 unsupervised 下,Zero-shot ChatGPT 的效果都是最好的,而 In-context learning 的時(shí)候 BELLE 是最好的,這是由于 In-context learning 的 BELLE 在進(jìn)行 planning 的時(shí)候選擇了大量的 Persona,所以導(dǎo)致會(huì)使用更多的輔助文檔,相較于 In-context ChatGPT 而言,從而取得更好的效果。
其他消融分析和實(shí)驗(yàn)結(jié)果可以參考原文,我們還對(duì)比了不同的 source 策略的效果,比如無(wú)腦選擇使用所有 source,無(wú)腦使用 Persona 等等。我們相信 SAFARI 框架還有這巨大的潛力等待挖掘,也可以用來(lái)處理現(xiàn)實(shí)生活中更加復(fù)雜的場(chǎng)景,但受限于時(shí)間和 benchmark 的缺乏,我們沒(méi)有做更進(jìn)一步的驗(yàn)證,我們也歡迎感興趣的同學(xué)或者老師一起合作交流。
寫在最后
本文探討了一種以內(nèi)外的視角去看待大模型時(shí)代下的對(duì)話系統(tǒng),我們也關(guān)注內(nèi)外合并,并做了簡(jiǎn)單的初步探索,歡迎大家關(guān)注我們的下一篇文章??偟膩?lái)說(shuō),我們認(rèn)為對(duì)話上下文中蘊(yùn)含的豐富的內(nèi)部信息 + 外部知識(shí)調(diào)用將會(huì)是未來(lái) LLM-based 對(duì)話系統(tǒng)的重要研究方向,尤其是在與不同的 Source,不同的 Task 上的交互從而帶來(lái)的不同應(yīng)用場(chǎng)景和設(shè)計(jì)。Stay Tuned??!
-
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1224瀏覽量
25447 -
大模型
+關(guān)注
關(guān)注
2文章
3146瀏覽量
4070 -
LLM
+關(guān)注
關(guān)注
1文章
325瀏覽量
841
原文標(biāo)題:武俠小說(shuō)視角:大模型對(duì)話系統(tǒng)的內(nèi)功與外功
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
吳鑒鷹大侃單片機(jī)系列之俠客行__論內(nèi)功&外功
吳鑒鷹大侃單片機(jī)系列之俠客行__論內(nèi)功&外功
嵌入式軟件工程師的內(nèi)功修煉
人機(jī)交互的核心對(duì)話系統(tǒng)

基于分層編碼的深度增強(qiáng)學(xué)習(xí)對(duì)話生成
如何成為一名對(duì)話系統(tǒng)工程師
強(qiáng)化學(xué)習(xí)應(yīng)用中對(duì)話系統(tǒng)的用戶模擬器
對(duì)話系統(tǒng)最原始的實(shí)現(xiàn)方式 檢索式對(duì)話

CRSLab對(duì)話推薦系統(tǒng)開源庫(kù) 相關(guān)代碼和對(duì)應(yīng)論文目前已經(jīng)開源

一種結(jié)合回復(fù)生成的對(duì)話意圖預(yù)測(cè)模型

NLP中基于聯(lián)合知識(shí)的任務(wù)導(dǎo)向型對(duì)話系統(tǒng)HyKnow
對(duì)話文本數(shù)據(jù)是培養(yǎng)大模型的智能與交流之源
對(duì)話文本數(shù)據(jù)的珍貴貢獻(xiàn):訓(xùn)練大模型賦予智能與情感理解
源2.0適配FastChat框架,企業(yè)快速本地化部署大模型對(duì)話平臺(tái)

評(píng)論