自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

李云龍、謝耳朵專業(yè)陪聊!角色扮演系統(tǒng)ChatHaruhi爆火:支持32個中外角色,開源5.4萬條對話數(shù)據(jù)

人工智能 新聞
GitHub斬獲700+stars,除了二次元角色,ChatHaruhi還支持《武林外傳》、《亮劍》、《生活大爆炸》、于謙等經(jīng)典角色!

「角色扮演」是大型語言模型眾多應(yīng)用場景中比較有意思的,LLM可以用指定角色的口吻跟用戶對話,還可以實現(xiàn)諸如「喬布斯與蘇格拉底」的超時空交流。

很多公司也發(fā)布了基于語言模型的角色扮演產(chǎn)品,如Glow, Character.AI等,用戶可以輕松打造出一個「賽博老婆」,在游戲、創(chuàng)意產(chǎn)業(yè)等領(lǐng)域都有許多潛在的應(yīng)用場景。

最近,GitHub上開源一個好玩的角色扮演聊天系統(tǒng)「Chat涼宮春日」,基于中文語言模型「駱駝」(Luotuo),可以模仿32位中外角色的對話風格,同時提供超過5.4萬個對話數(shù)據(jù)集。

項目鏈接:https://github.com/LC1332/ChatHaruhi-Suzumiya

論文鏈接:https://arxiv.org/abs/2306.09479

目前該項目仍在持續(xù)推進中,并且提供了豐富的demo試玩方法。

demo鏈接:https://huggingface.co/spaces/chenxiYan/ChatHaruhi-OpenAI

用戶可以給自己隨意起一個名字(最好貼近原著),然后輸入問題即可開始交流,比如扮演「秀芹」與李云龍對話時,可以看到模型的多輪回答效果非常不錯,并且模擬的對話風格也很貼切。

圖片


圖片

基本思路

在開源角色扮演實現(xiàn)中,用戶通常會在提示中輸入:

I want you to act like {character} from {series}. I want you to respond and answer like {character} using the tone, manner and vocabulary {character} would use. Do not write any explanations. Only answer like {character}. You must know all of the knowledge of {character}. My first sentence is "Hi {character}.

我希望你表現(xiàn)得像[電視劇]中的[角色]。我希望你像[角色]一樣,使用[角色]會使用的語氣、方式和詞匯來回應(yīng)和回答。不要寫任何解釋。只需要像[角色]一樣回答。你必須了解關(guān)于[角色]的所有知識。我的第一句話是「你好,[角色]」。

通過這種簡單的方式,語言模型可以展現(xiàn)出部分角色扮演能力,但這種方式很大程度上依賴于語言模型本身已有的知識,無法扮演記憶模糊或語料之外的角色。

并且提示中「了解角色的所有知識」的定義很模糊,模型仍然會產(chǎn)生幻覺。

即使提示內(nèi)容已經(jīng)足夠清晰,在文本生成的過程中仍然會受到底層語言模型的影響,繼續(xù)調(diào)整提示詞可能會緩解這種情況,但在角色數(shù)量過多時可能工作量會非常大。

把模型在角色的對話數(shù)據(jù)上進行微調(diào)也是一個思路,但研究人員發(fā)現(xiàn)微調(diào)過的聊天機器人會產(chǎn)生更多幻覺問題;并且對于想要模仿的次要角色,也很難收集足夠量的數(shù)據(jù)來微調(diào)。

ChatHaruhi項目的目標是讓語言模型能夠模擬動漫、電視劇、小說等各種體裁下的角色風格,開發(fā)者認為,一個虛擬的角色主要由三個組件構(gòu)成:

1. 知識和背景(Knowledge and background)

每個虛擬角色都存在于自己的設(shè)定背景中,例如《哈利·波特》中的人物存在于魔法世界中、涼宮春日在日本的一所高中等。

在構(gòu)建聊天機器人時,我們希望它能夠理解相應(yīng)故事的設(shè)定,也是對語言模型記憶的主要考驗,通常需要一個外部知識庫。

2. 個性(Personality)

角色的性格也是文藝作品中非常重要的一部分,必須在整部作品中保持連貫或一致,有些作者甚至會在動筆之前先定義角色個性。

3. 語言習慣(Linguistic habits)

語言習慣是最容易模仿的,只要在上下文中給出合適的樣例即可。

該項目的關(guān)鍵思路是盡可能多地抽取出原始腳本,為目標角色形成一個記憶數(shù)據(jù)庫。

當用戶提出新問題時,系統(tǒng)會搜索相關(guān)的經(jīng)典情節(jié),結(jié)合角色設(shè)定的提示詞,通過控制語言模型來更好地模仿角色。

研究人員還設(shè)計了一個系統(tǒng)來自動生成適合角色個性的對話,即使是原創(chuàng)對話較少的角色,也可以生成足夠的數(shù)據(jù)來微調(diào)。

ChatBot設(shè)計

給定一個特定角色R和一個查詢問題q,聊天任務(wù)可以建模為:在知識背景、個性和語言習慣Θ的條件下生成回復(fù)的概率:

圖片

角色R可以由一段提示文本(I want you to act like character from series...)指定。

類似上下文學習(in-context learning),可以把角色之前的對話序列作為概率的條件:

圖片

圖片

對于世界觀更大的角色,需要先從記憶庫中檢索出最相關(guān)的對話序列。

系統(tǒng)提示(System Prompt)

在之前提到的可用于ChatGPT的通用角色扮演提示中,還有兩方面需要改進:

1. 不重復(fù)行文(won't repeat line)

像ChatGPT和LLaMA2等模型在基于人類反饋的強化學習(RLHF)訓練時,面對諸如「給我m個不同的選項」、「生成m個標題」等任務(wù)時,更傾向于不重復(fù)上下文中的內(nèi)容。

而在模仿角色時,需要在提示中強調(diào)可以重用小說或電影中的經(jīng)典臺詞。

2. 角色個性不夠突出

由于RLHF機制,每個語言模型都有自己特定的語言偏好,會影響模仿的效果,在提示詞結(jié)尾加入角色的個性描述可以改善。

改進后的提示詞如下:

I want you to act like {character} from {series}. You are now cosplay {character} If others’ questions are related with the novel, please try to reuse the original lines from the novel. I want you to respond and answer like {character} using the tone, manner and vocabulary {character} would use. You must know all of the knowledge of {character}. {Supplementary explanation of the character’s personality}

我希望你表現(xiàn)得像[電視劇]中的[角色]。你現(xiàn)在是cosplay [角色]。如果別人的問題與小說有關(guān),請盡量重用小說中的原臺詞。我希望你像[角色]一樣,使用[角色]會使用的語氣、方式和詞匯來回應(yīng)和回答。你必須知道[角色]的所有知識。{關(guān)于角色個性的補充說明}

角色對話

為了更好地再現(xiàn)小說、電視劇、電影中人物的行為,研究人員收集了大量經(jīng)典劇本的節(jié)選,不過除了少數(shù)人物(如相聲演員于謙),并不是所有對話都是問答的形式,可以把歷史記錄組織成故事的形式。

圖片

原始對話搜索

在輸入查詢后,從對話庫D中根據(jù)嵌入相似度選擇出最相似的M個采樣,具體M的數(shù)量取決于語言模型的token限制。

在構(gòu)建對話記憶庫時,研究人員建議每個故事的長度不要太長,以免在搜索過程中占用其他故事的空間。

聊天記憶

對于某個記憶,需要記錄每個用戶查詢和聊天機器人的回復(fù),然后將所有對話序列輸入到語言模型中,以確保對話的連貫性。

在實際實現(xiàn)中,從該記憶開始,向前計算token總數(shù),并將語言模型的對話歷史輸入限制在1200個token以內(nèi),大約可以容納6-10輪對話。

對話合成

目前ChatHaruhi還只能利用ChatGPT或Claude API來完成角色扮演,如果用戶希望把這種能力遷移到本地模型,仍然需要構(gòu)造出一個合適的數(shù)據(jù)集。

從問題中生成對話

由于收集到的數(shù)據(jù)并不是嚴格的問答形式,所以研究人員選擇在收集的故事中,把目標角色第一句話之前的所有對話當作問題,輸入到語言模型中生成后續(xù)對話。

問題生成

需要注意的是,有些角色的數(shù)據(jù)非常有限,不足以微調(diào)語言模型。

為了從現(xiàn)有數(shù)據(jù)中對角色問題進行數(shù)據(jù)增強,研究人員使用Alpaca等模型,先提供一個清晰的問答對,然后生成約10個啟發(fā)式輸出;再利用預(yù)定義的prompts重新生成該角色的訓練數(shù)據(jù)。

研究人員總共收集了22752個原始對話數(shù)據(jù),以及31974個模擬問題,共同組成了ChatHaruhi-v1數(shù)據(jù)集。

實驗結(jié)果

目前定量的實驗結(jié)果和用戶研究仍在進行中,文中只是先簡單定性地對比了一下各個模型:

1. GPT Turbo 3.5,只使用系統(tǒng)提示

2. Turbo 3.5,輸入完成的提示、對話歷史、問題等

3. ChatGLM2,只輸入系統(tǒng)提示

4. ChatGLM2,給出完整提示

5. ChatGLM2,在ChatHaruhi數(shù)據(jù)上微調(diào),輸入完整提示

責任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2024-11-05 12:42:35

2011-06-28 10:11:41

Top Girl應(yīng)用

2024-06-21 13:01:52

2023-04-18 08:01:30

AI寫作時間

2024-01-02 12:59:06

AI技術(shù)

2012-09-25 09:30:29

云服務(wù)云管理開源

2023-11-20 07:29:32

大模型人工智能

2016-05-25 14:47:17

云計算大數(shù)據(jù)存儲

2014-09-22 10:53:45

聯(lián)想陳旭東

2011-06-27 09:42:46

2016-10-09 19:50:01

代碼審查

2024-12-27 13:30:00

2020-12-24 14:20:00

數(shù)據(jù)中心5G

2021-02-06 06:55:33

AI物聯(lián)網(wǎng)人工智能

2018-01-04 08:27:57

大數(shù)據(jù)云存儲數(shù)據(jù)湖

2024-07-01 10:16:44

2024-04-08 10:57:26

物聯(lián)網(wǎng)IoT智能建筑

2024-04-25 15:06:12

2022-04-14 14:27:31

區(qū)塊鏈5G電信

2011-04-21 09:39:49

蘋果喬布斯
點贊
收藏

51CTO技術(shù)棧公眾號