做網(wǎng)站的公司有前途嗎/如何制作網(wǎng)站和網(wǎng)頁
在自然語言處理的領(lǐng)域中,多輪對(duì)話系統(tǒng)是構(gòu)建智能化交互應(yīng)用的關(guān)鍵。無論是聊天機(jī)器人、虛擬助手,還是客戶服務(wù)系統(tǒng),能夠保持連貫的對(duì)話并記住上下文信息是用戶體驗(yàn)的核心。然而,大規(guī)模語言模型(如GPT等)的對(duì)話能力往往受限于其上下文窗口的長度,這就給實(shí)現(xiàn)超長多輪對(duì)話帶來了挑戰(zhàn)。想想很多思想的交流,都是通過不斷地對(duì)話實(shí)現(xiàn)的。(這里拋出一個(gè)問題,對(duì)于雙方對(duì)話可以很容易實(shí)現(xiàn)交互,那么對(duì)于三者及三者以上呢?現(xiàn)在有比較好的方法來實(shí)現(xiàn)嘛?)那么,如何在上下文長度有限的情況下實(shí)現(xiàn)超長多輪對(duì)話呢?這里將探討大模型如何通過多種上下文管理技術(shù)來克服這一挑戰(zhàn),提供流暢、連貫的長時(shí)間對(duì)話體驗(yàn)。
首先為什么實(shí)現(xiàn)超長多輪對(duì)話有難度?
1. 上下文窗口的限制
大多數(shù)基于Transformer架構(gòu)的語言模型有一個(gè)固定的上下文窗口限制,即模型可以處理的最大文本長度(通常以token為單位)。這個(gè)限制意味著,模型一次只能處理一定數(shù)量的文本,當(dāng)對(duì)話超過這個(gè)限制時(shí),早期的對(duì)話內(nèi)容將被裁剪掉。因此,如何管理對(duì)話歷史成為了一個(gè)關(guān)鍵問題。
1.1 什么是Token?
Token是模型處理語言的基本單元,可能是一個(gè)單詞、部分單詞,甚至是標(biāo)點(diǎn)符號(hào)。每一輪對(duì)話中的所有單詞都會(huì)被拆分為若干個(gè)token,當(dāng)這些token數(shù)量超出模型的最大處理能力時(shí),模型就無法直接記住所有對(duì)話內(nèi)容。一般而言,對(duì)于英語文本,1個(gè)token大約是34個(gè)字符;而對(duì)于中文文本,則大約是1.51.8個(gè)漢字。
現(xiàn)有的一些解決方案有哪些?
大致可以總結(jié)為下述方法:
優(yōu)點(diǎn) | 缺點(diǎn) | |
---|---|---|
常用:拼接所有的歷史對(duì)話,長度不夠就進(jìn)行截?cái)?/td> | 簡單直接,完整存儲(chǔ)了歷史對(duì)話記錄,對(duì)歷史對(duì)話的理解肯定是對(duì)全面的 | token消耗大,內(nèi)容冗余,超過限制會(huì)損失信息 |
摘要:對(duì)歷史對(duì)話記錄總結(jié)記錄 | 相比直接記錄歷史對(duì)話減少了冗余內(nèi)容,只抓關(guān)鍵點(diǎn),大大增強(qiáng)了多輪對(duì)話能力 | 摘要效果取決于模型,模型不好可能會(huì)大量丟失關(guān)鍵信息,且需要額外的token去總結(jié)摘要 |
存儲(chǔ) | 增加記憶數(shù)據(jù)庫,可以存儲(chǔ)更多多輪對(duì)話的內(nèi)容,在時(shí)間和容量上跨度很大 | 需要構(gòu)建外部記憶系統(tǒng),并需要具備對(duì)應(yīng)的檢索能力 |
trunk & retrieval | 綜合了上面方法的優(yōu)點(diǎn) | 效果取決于檢索能力,關(guān)鍵點(diǎn)把握不住會(huì)存在語義偏差 |
2. 實(shí)現(xiàn)超長多輪對(duì)話的技術(shù)策略
為了應(yīng)對(duì)模型上下文窗口的限制,開發(fā)者可以使用以下幾種技術(shù)策略來實(shí)現(xiàn)超長多輪對(duì)話。
2.1 截?cái)鄽v史記錄
最直接的方式是截?cái)鄬?duì)話歷史記錄。模型將根據(jù)上下文窗口的大小,保留最近幾輪對(duì)話,而丟棄早期的內(nèi)容。這種方法簡單有效,但如果早期對(duì)話中的信息對(duì)后續(xù)交互至關(guān)重要,則可能會(huì)導(dǎo)致上下文信息丟失,影響對(duì)話的連貫性。
策略:
- 保留最近的對(duì)話輪次,以確保用戶與模型的當(dāng)前對(duì)話具有連續(xù)性。
- 在必要時(shí),通過詢問用戶或模型復(fù)述之前的關(guān)鍵點(diǎn)來重建上下文。
挑戰(zhàn):截?cái)鄽v史記錄的主要缺點(diǎn)是,當(dāng)早期對(duì)話包含重要信息時(shí),信息丟失會(huì)影響后續(xù)對(duì)話的質(zhì)量。
2.2 摘要生成(Summarization)
摘要技術(shù)是一種優(yōu)化的解決方案。當(dāng)對(duì)話內(nèi)容變得過長時(shí),模型可以通過生成一個(gè)摘要,將之前的對(duì)話壓縮成一個(gè)短小的表示形式。這種方式不僅節(jié)省了上下文窗口的空間,還可以保留對(duì)話的核心信息。
實(shí)現(xiàn)方式:
- 模型在每隔幾輪對(duì)話后生成一個(gè)總結(jié),將之前的內(nèi)容簡化為幾個(gè)關(guān)鍵點(diǎn)。
- 在后續(xù)對(duì)話中,使用這些摘要代替完整的對(duì)話歷史,從而保證上下文信息的持續(xù)性。
優(yōu)點(diǎn):通過摘要技術(shù),模型可以保持對(duì)重要信息的“記憶”,而不會(huì)丟失有價(jià)值的上下文。
示例: 假設(shè)用戶與模型討論了一項(xiàng)復(fù)雜的項(xiàng)目,模型可以在每輪對(duì)話結(jié)束時(shí)生成一個(gè)簡短的總結(jié),例如:“你正在開發(fā)一個(gè)新項(xiàng)目,主要挑戰(zhàn)是資金不足和技術(shù)團(tuán)隊(duì)擴(kuò)展。”
2.3 記憶機(jī)制(Memory Mechanism)
高級(jí)對(duì)話系統(tǒng)可以通過“記憶機(jī)制”來實(shí)現(xiàn)更持久的上下文管理。雖然大多數(shù)基礎(chǔ)模型沒有“長期記憶”的概念,但在系統(tǒng)層面,可以實(shí)現(xiàn)一個(gè)外部的記憶系統(tǒng)。該系統(tǒng)在每次對(duì)話結(jié)束時(shí)保存關(guān)鍵信息,并在后續(xù)對(duì)話中根據(jù)需要將其重新引入上下文。
具體方式:
- 在每輪對(duì)話中,系統(tǒng)提取重要的用戶偏好、意圖、需求等,并存儲(chǔ)到一個(gè)獨(dú)立的數(shù)據(jù)庫中。
- 在后續(xù)對(duì)話中,系統(tǒng)可以根據(jù)對(duì)話內(nèi)容或特定關(guān)鍵詞,從記憶系統(tǒng)中提取相關(guān)信息,動(dòng)態(tài)填充到當(dāng)前的對(duì)話中。
優(yōu)勢(shì):記憶機(jī)制可以有效地模擬長期上下文記憶,使模型在多輪對(duì)話中能夠記住用戶的偏好、需求和目標(biāo),提升用戶體驗(yàn)。
2.4 外部存儲(chǔ)與動(dòng)態(tài)調(diào)用
通過結(jié)合外部存儲(chǔ)系統(tǒng),模型可以將之前的對(duì)話歷史或關(guān)鍵信息存儲(chǔ)在外部數(shù)據(jù)庫中,而不是完全依賴上下文窗口。在需要時(shí),系統(tǒng)可以從存儲(chǔ)中動(dòng)態(tài)調(diào)用這些信息并更新當(dāng)前對(duì)話的上下文。這種方法對(duì)于超長時(shí)間或跨多天的對(duì)話特別有用。
工作流程:
- 每次對(duì)話結(jié)束時(shí),重要的對(duì)話內(nèi)容被存儲(chǔ)在外部存儲(chǔ)系統(tǒng)中,如數(shù)據(jù)庫或緩存。
- 當(dāng)用戶在未來的某一時(shí)刻重新與系統(tǒng)進(jìn)行對(duì)話時(shí),系統(tǒng)可以檢索之前存儲(chǔ)的內(nèi)容,填充到當(dāng)前上下文中。
場景:假如用戶和模型討論了一周前的一個(gè)項(xiàng)目細(xì)節(jié),通過外部存儲(chǔ),模型可以重新加載項(xiàng)目的關(guān)鍵信息,而無需用戶重新解釋。
2.5 基于主題的上下文聚焦
在一些復(fù)雜對(duì)話中,用戶可能會(huì)同時(shí)涉及多個(gè)主題。為了更好地管理超長對(duì)話,模型可以使用基于主題的上下文聚焦策略。模型會(huì)識(shí)別當(dāng)前對(duì)話的主題,并只保留與該主題相關(guān)的上下文,而忽略或簡化其他不相關(guān)的內(nèi)容。
示例: 如果用戶與模型討論了多個(gè)不同的項(xiàng)目,模型可以根據(jù)當(dāng)前對(duì)話的主題選擇性地回顧與之相關(guān)的上下文,而忽略不相干的主題信息。
優(yōu)點(diǎn):這種方法幫助模型在復(fù)雜多主題對(duì)話中保持清晰的上下文結(jié)構(gòu),并避免無關(guān)信息占用上下文窗口。
注意:
1、現(xiàn)在很多大模型對(duì)上下文窗口的限制已經(jīng)優(yōu)化很多了,Qwen2 模型可以處理 32K 或 128K token 長的文本,其中 8K 長度可作為輸出。ChatGPT-4o支持128K tokens的上下文輸入,16K tokens的輸出。
2、多輪對(duì)話技術(shù)優(yōu)化主要看重時(shí)間上的跨度和有用信息的集中程度(個(gè)人理解)
3、不同技術(shù)的細(xì)節(jié)需要根據(jù)實(shí)際需求調(diào)整
參考文獻(xiàn):
1、(22 封私信 / 37 條消息) 大模型如何實(shí)現(xiàn)超長多輪對(duì)話? - 知乎 (zhihu.com)
2、解讀大模型(LLM)的token-騰訊云開發(fā)者社區(qū)-騰訊云 (tencent.com)