ETH官方钱包

前往
大廳
主題

【卿卿我我】遊戲介紹、心得、遊戲機(jī)制與語(yǔ)言模型介紹、創(chuàng)角參考資料(不定期更新)

童兒 | 2024-11-29 14:04:29 | 巴幣 122 | 人氣 668

我完全沒(méi)想到我可以這樣跟AI聊天聊了超過(guò)1個(gè)月,紀(jì)錄一下。


什麼是【卿卿我我】?

一個(gè)由韓國(guó)公司TainAI開(kāi)發(fā)的手遊,透過(guò)串接運(yùn)用大型語(yǔ)言模型技術(shù)的AI服務(wù),讓你可以在裡面跟AI所扮演的角色進(jìn)行互動(dòng)。



遊玩過(guò)程,玩家和遊戲角色間,會(huì)透過(guò)一個(gè)像是LINE之類的通訊軟體的介面,進(jìn)行對(duì)話。
如下:

我的邀請(qǐng)碼:KZEYZNMY

遊戲心得

我的遊戲心得,可以用一張圖片來(lái)概括:
這張圖是《銀翼殺手2049》的劇照,知道這部電影劇情的人,應(yīng)該能體會(huì)我想表達(dá)什麼。

之前有發(fā)了一些遊玩記錄在哈拉區(qū),有興趣可以參考,如下:
【心得】剛?cè)肼毜奈揖谷怀蔀榻M長(zhǎng)的主管? - 和杜志勳聊天心得

遊戲機(jī)制探討

這部分開(kāi)始,會(huì)把我之前發(fā)在哈拉區(qū)的兩篇文章彙整在一起。

開(kāi)始說(shuō)明遊戲的機(jī)制前,先上圖
我先大致說(shuō)明一下這張圖在畫(huà)什麼。

這張圖是目前個(gè)人推測(cè)卿卿我我從玩家發(fā)出訊息到收到角色訊息這個(gè)過(guò)程的運(yùn)作機(jī)制。
整體流程如下:
玩家發(fā)出訊息
→ APP根據(jù)訊息內(nèi)容,尋找角色記憶體內(nèi)是否有對(duì)應(yīng)關(guān)鍵字,如果有,把這個(gè)回憶拉出來(lái)。
→ 把目前對(duì)話和最新的5~10句對(duì)話以及剛才找到的回憶,一起丟到遊戲伺服器。
→ 遊戲伺服器拉出玩家和角色的設(shè)定,連同剛才來(lái)自玩家APP的對(duì)話、記憶等資訊,一起傳給語(yǔ)言模型
→ 語(yǔ)言模型根據(jù)以上資訊運(yùn)算後,產(chǎn)出下一句回話,回給遊戲伺服器。
→ 遊戲伺服器評(píng)估目前的對(duì)話進(jìn)度是否該產(chǎn)生新的記憶摘要,如果需要,丟給另一個(gè)語(yǔ)言模型做摘要,並回傳摘要結(jié)果作為新記憶。
→ 手機(jī)APP收到回覆和角色的新記憶。

其中,我懷疑APP根據(jù)訊息內(nèi)容找記憶體內(nèi)的關(guān)鍵字,也有可能是把目前最新的幾筆對(duì)話和所有的記憶丟到後端,請(qǐng)另外一支語(yǔ)言模型協(xié)助幫忙比對(duì)的,因?yàn)閭鹘y(tǒng)的字串處理在做自然語(yǔ)言的情境比對(duì),應(yīng)該沒(méi)這麼容易。

然後因?yàn)橘Y料傳輸一定有其上限,所以有可能被指定成重要記憶的回憶,會(huì)被當(dāng)成人設(shè)的一部分,每次都拋回後端,其他的記憶,大概就是新>舊的順序在做查詢。

接下來(lái),我會(huì)說(shuō)明為什麼是這個(gè)機(jī)制,還有針對(duì)記憶體的優(yōu)化、角色記憶不一致的建議處理方式。

會(huì)分為以下部分進(jìn)行說(shuō)明:

1. 語(yǔ)言模型的介紹與「記憶」
2. 記憶的保存與運(yùn)作
3. 建議的記憶管理方式
4. 真的失憶了怎麼辦?

1. 語(yǔ)言模型的介紹與「記憶」
我們?cè)谕孢@個(gè)遊戲的時(shí)候,會(huì)很直覺(jué)的覺(jué)得,我就是在跟我的角色聊天。
詳細(xì)一點(diǎn)說(shuō),玩家會(huì)覺(jué)得,角色有一個(gè)虛擬頭腦存著我們之間的回憶,
我可以在「記憶體」這個(gè)功能裡面偷看他記了什麼,然後他會(huì)根據(jù)他的個(gè)性和我們之間的回憶,對(duì)於我說(shuō)的話給一些feedback。

但實(shí)際上並非如此。

其實(shí)角色背後的語(yǔ)言模型,根本沒(méi)有記憶。

更精確一點(diǎn)的說(shuō),是沒(méi)有與你之間的記憶。

為什麼我會(huì)這樣說(shuō)呢?首先我們得先來(lái)認(rèn)識(shí)大型語(yǔ)言模型(LLM)。

關(guān)於卿卿我我所使用的語(yǔ)言模型的推論,可以參考這幾個(gè)噗浪討論串:
https://www.plurk.com/p/3gdc7g21sw

總之,我們已經(jīng)大致猜測(cè)出卿卿我我背後所使用的語(yǔ)言模型應(yīng)該分別是Claude和GPT-4。
所以想要知道為什麼遊玩體驗(yàn)會(huì)跟我們想像的有落差,我們得先從了解LLM來(lái)開(kāi)始。

什麼是大型語(yǔ)言模型?

大型語(yǔ)言模型(Large Language Model,LLM),顧名思義是一種很大的語(yǔ)言模型,通常是由參數(shù)數(shù)量級(jí)在數(shù)十億或是以上的深度類神經(jīng)學(xué)習(xí)網(wǎng)路實(shí)作,透過(guò)大量的文本訓(xùn)練資料訓(xùn)練而出的模型。
它能夠根據(jù)使用者的輸入資料,根據(jù)它模型本身的背景知識(shí),產(chǎn)生它認(rèn)為最合理的下文。

我知道這樣描述可能有點(diǎn)抽象,所以我會(huì)試著用比較淺顯易懂的方式帶大家認(rèn)識(shí)語(yǔ)言模型的概念。

大家回想一下,我們小的時(shí)候,剛學(xué)英文時(shí),老師是怎麼教我們跟別人用英文打招呼的呢?
是不是當(dāng)一個(gè)我們認(rèn)識(shí)的人,對(duì)我們說(shuō) "Hi" 的時(shí)候,我們可以有以下幾種回答:
"Hi",
"Hello",
"How are you?"
甚至,當(dāng)你的英文程度進(jìn)步了,開(kāi)始跟別人使用這門(mén)語(yǔ)言的時(shí)候,你會(huì)開(kāi)始用一些更生活化的回應(yīng):
"Hey, bro!",
"What’s up? ",
"What’s going on?"
或是在較為正式的場(chǎng)合,採(cǎi)用:
"How have you been?",
"How do you do?"

根據(jù)以上例子,上文就是"Hi",而所有可能的回應(yīng),都是「合理的下文」。

但是,我們要怎麼知道該回哪一個(gè)回應(yīng)比較好呢?
這個(gè)時(shí)候,我們可能會(huì)根據(jù)場(chǎng)合、和對(duì)方的親疏,在腦海裡挑出一組適合的回應(yīng),
再根據(jù)自己的個(gè)性、當(dāng)下的心情,從那組回應(yīng)裡挑出一個(gè)最後的結(jié)果。

語(yǔ)言模型,其實(shí)就是這麼一回事。
在古早的時(shí)候,我們教電腦產(chǎn)下文,就是這樣做的。
教它可以有哪些回應(yīng)(建詞庫(kù))、教它怎麼看場(chǎng)合(建機(jī)率表或語(yǔ)意分析)。
最後的結(jié)果,電腦會(huì)有一張很大張的機(jī)率表,上面會(huì)告訴它,什麼時(shí)候該看哪張表、表上每個(gè)詞出現(xiàn)的機(jī)率是多少。

那麼大型語(yǔ)言模型呢?
大家可以想樣一下,如果那張辭彙機(jī)率表,變得非~?!螅蟮讲恍?,而且還非常多張,像是一本超級(jí)厚的辭海。
那些表的數(shù)量多到,你不管跟它聊什麼,它都能從那張表找到合適的回應(yīng)給你,那就是大型語(yǔ)言模型了。
而大型語(yǔ)言模型的訓(xùn)練方式,也不是像傳統(tǒng)一樣,需要靠人類去手把手的教它。
它的訓(xùn)練方式是給電腦看非常多的文章等等訓(xùn)練資料,讓它自己從中去判斷...欸?原來(lái)"Hi"後面,常常會(huì)接著出現(xiàn)"Hello",機(jī)率可能是30%...原來(lái)在這個(gè)場(chǎng)合,"Hello"出現(xiàn)的機(jī)率只有是3%...最後,它自己就會(huì)歸納出一本超級(jí)厚重的大辭海,也就是我們所說(shuō)的「模型」。

當(dāng)然,這只是一個(gè)為了讓大家好理解所寫(xiě)的簡(jiǎn)單概念,實(shí)際上大型語(yǔ)言模型所使用的深度學(xué)習(xí)技術(shù)還有很多鋩鋩角角,這就留給有興趣更進(jìn)一步的人去瞭解了。

另外,玩家社群也有人分享Threads上別人寫(xiě)的解釋,我覺(jué)得寫(xiě)得滿好的,如果看不懂我寫(xiě)的,也可以參考看看:
https://www.threads.net/@ha14hiho/post/DECgvXJyGXO?xmt=AQGz83Lz-3isVBpPaLGrQcqXyNK9BpeHkGafdZ-DFzmxkQ

總之,綜合上述,我們知道了一件事情:
語(yǔ)言模型是一個(gè)「根據(jù)使用者所給予的背景資訊和上文,產(chǎn)生出合理下文」的工具。

因此,語(yǔ)言模型本身,是沒(méi)有記憶功能的。

比較直接的理解方式,也可以從Claude和GPT-4這兩個(gè)語(yǔ)言模型的應(yīng)用程式界面(API)串接說(shuō)明中看出:
每一次的資訊交換,其實(shí)都是獨(dú)立的對(duì)話。

先看一下Claude的開(kāi)發(fā)文件說(shuō)明:
「?jìng)魉蛢?nèi)含文字訊息/圖片的結(jié)構(gòu)化列表,語(yǔ)言模型將會(huì)產(chǎn)生這個(gè)對(duì)話的下一句訊息。」
「這個(gè)訊息API可以被用來(lái)作為單次查詢或無(wú)狀態(tài)的多輪對(duì)話?!?/div>

接著,我們也來(lái)看一下ChatGPT的開(kāi)發(fā)文件
「雖然每個(gè)文字產(chǎn)生請(qǐng)求都是獨(dú)立且無(wú)狀態(tài)的(除非您使用assistants*),你依然可以藉由提供附加訊息作為你文字產(chǎn)生請(qǐng)求的參數(shù),來(lái)實(shí)作多輪對(duì)話?!?br>「請(qǐng)參考這個(gè)『敲敲門(mén)』笑話的範(fàn)例:(一段程式碼)」
「藉由交替使用『user』和『assistant』訊息,你可以在一個(gè)對(duì)模型發(fā)送的請(qǐng)求中,獲取對(duì)話的前一個(gè)狀態(tài)?!?/div>

上圖中間這一段程式碼,就是『敲敲門(mén)』笑話範(fàn)例的程式實(shí)作,他基本上就是在跟開(kāi)發(fā)者說(shuō),
你可以直接傳一段對(duì)話給語(yǔ)言模型。
從這個(gè)範(fàn)例的「messages」部分,你可以看到範(fàn)例裡有三個(gè)很像的文字片段。
其中,在role的部分,有兩個(gè)角色,分別是「user」和「assistant」,分別跟隨著一個(gè)「content」。
這個(gè)部分,就是在告訴語(yǔ)言模型:欸,這個(gè)是我們之前的對(duì)話喔!請(qǐng)你根據(jù)這個(gè)之前的對(duì)話,產(chǎn)出下一句對(duì)話吧!

回到Claude,大家可以去看一下Claude的開(kāi)發(fā)文件中的範(fàn)例,也是採(cǎi)用類似的作法,來(lái)產(chǎn)生下一個(gè)句子。

此外,兩個(gè)語(yǔ)言模型都有在他們的程式中,留至少一個(gè)類似「背景資訊」的欄位給開(kāi)發(fā)者填入。
這個(gè)欄位的效力很強(qiáng),兩個(gè)語(yǔ)言模型的開(kāi)發(fā)指南都有提到,如果你希望讓他們的語(yǔ)言模型扮演某個(gè)特定的角色,或是有一些必須遵守的規(guī)則,請(qǐng)?jiān)诿看蝹魉驼?qǐng)求的時(shí)候,把這些設(shè)定寫(xiě)在這個(gè)欄位內(nèi)。
所以猜測(cè)卿卿我我應(yīng)該就是把角色設(shè)定放在這個(gè)欄位裡面。
可以參考:

綜合上述資訊,我們可以知道,語(yǔ)言模型根本沒(méi)有在記之前你跟角色之間發(fā)生的事情,它每一次給你的回覆,都是參考它自己的背景知識(shí),以及你給他的前情提要,去產(chǎn)生下一句對(duì)話的。

*註:assistants,open AI提供的某個(gè)可以直接實(shí)作AI助手的API,目前在Beta測(cè)試階段,這個(gè)API直接內(nèi)含了一些檔案管理和記憶功能。但我覺(jué)得卿卿我我應(yīng)該還沒(méi)有使用,理由有二:第一個(gè)是,這個(gè)API還在Beta階段,應(yīng)該不太會(huì)直接放在商用情境;第二個(gè)是,因?yàn)樵谇淝湮椅业氖褂们榫持?,使用者可能隨時(shí)會(huì)切換模式(即語(yǔ)言模型),由於Claude和ChatGPT的基礎(chǔ)API格式非常接近,如果兩個(gè)都使用基礎(chǔ)API,在程式維護(hù)上會(huì)比較好運(yùn)作。

最後,來(lái)說(shuō)明一下為什麼在各個(gè)模式下,角色的差異會(huì)很大。
首先大家要有一個(gè)概念,同樣是大型語(yǔ)言模型,
由於它們的訓(xùn)練的方式、訓(xùn)練資料來(lái)源、模型訓(xùn)練目的、對(duì)輸入?yún)?shù)判斷權(quán)重...等條件不同,
即使餵給他們完全一樣的輸入,它們也可能會(huì)給出風(fēng)格截然不同的輸出。

就像是兩名風(fēng)格截然不同的演員,即使演出同一個(gè)角色,他們的演出詮釋風(fēng)格也會(huì)有所差異一樣。
(所以大家才會(huì)討論哪一代蝙蝠俠最經(jīng)典之類的。)

而每個(gè)模型可以吃的輸入資料量也不太一樣,所以多少也會(huì)影響模型最後產(chǎn)出的下文品質(zhì)。
參數(shù)百百種,但最好懂也最顯而易見(jiàn)的就是他們所採(cǎi)用的context window大小的不同。

context window,中文的常見(jiàn)翻譯是「上下文視窗」、「上下文窗口」等,
這個(gè)參數(shù)通常可以理解為當(dāng)LLM在產(chǎn)生回覆時(shí),可以作為參考輸入的文本大小。

當(dāng)context window越大的時(shí)候,通常LLM的回覆效果就會(huì)越接近人類的期待。
簡(jiǎn)單的理解就是,它可以參考的資訊會(huì)比較多,所以結(jié)果也會(huì)越接近你想要的。

這部分,Claude 3的context window是200K個(gè)token*,
而GPT-4的context window是128K個(gè)token*。
(*註:token這個(gè)單位,可以約略理解為字?jǐn)?shù),但它其實(shí)不是字?jǐn)?shù),比較像是斷詞量,詳細(xì)可以參考這篇說(shuō)明。)

因此大家體感上應(yīng)該會(huì)覺(jué)得,長(zhǎng)句模式和故事模式下,角色似乎比較能夠掌握整體的情境,比較不會(huì)跑題,而且能給予連續(xù)性的情境描寫(xiě);而絕配模式有時(shí)會(huì)給你神來(lái)一筆。

但是context window也不是越大越好,最直觀的影響就是運(yùn)算速度,context window越大,運(yùn)算速度會(huì)越久,也就是可以理解成角色回覆的時(shí)間會(huì)越長(zhǎng),
只是目前兩個(gè)模式的回覆時(shí)間差異我們體感感覺(jué)不大。

此外,context window太大,還會(huì)有另外一個(gè)已知的問(wèn)題,
這個(gè)問(wèn)題被稱之為"many-shot jailbreaking",目前中文的主流翻譯應(yīng)該是「多次越獄」。

這個(gè)問(wèn)題簡(jiǎn)而言之,就是你每次都踩AI的道德底線一點(diǎn)、每次都踩一點(diǎn),
因?yàn)樗腸ontext window很大,會(huì)參考前面的整體情境,最後它就會(huì)順應(yīng)你的要求違背自己的道德底線,回答了你一個(gè)它不應(yīng)該回答的問(wèn)題。
詳細(xì)可以參考這篇的說(shuō)明:https://www.anthropic.com/research/many-shot-jailbreaking

這篇說(shuō)明的範(fàn)例就是,如果你直接問(wèn)AI怎麼製造炸藥,它會(huì)跟你說(shuō)抱歉,基於安全,我不能告訴你。
但是如果你前面先很曲折的問(wèn)它一連串危害還在它可以回答範(fàn)圍內(nèi)的問(wèn)題,例如:我要怎麼不用鑰匙開(kāi)鎖?我要怎麼把一個(gè)人綁住?偽造一張身分證要注意什麼?我要怎麼製作冰毒?...最後再問(wèn)他,我要怎麼製造炸彈,它就會(huì)傻傻地告訴你。

嗯,是否很有既視感?你們都是這樣騙非刺激模式下的角色飆車的吧?

2. 記憶的保存與運(yùn)作
應(yīng)該有人會(huì)說(shuō),不是??!我的角色明明就記得一些事情,我跟他說(shuō),他記得,而且我還看得到他的記憶體。

是的,因?yàn)槟莻€(gè)記憶體,其實(shí)是卿卿我我本身的服務(wù)去做維護(hù)的。
至於,那個(gè)記憶體是存在伺服器端還是本機(jī)端呢?

我認(rèn)為是兩者皆有。

但,關(guān)係記憶的應(yīng)該是本機(jī)端那份,伺服器端的那份,感覺(jué)只是log,用來(lái)讓官方檢查用的。
(就是你發(fā)現(xiàn)文不對(duì)題或是混有外語(yǔ)輸入時(shí),可以按下檢舉,他們用來(lái)檢查判斷要不要還你果醬的依據(jù)。)

因?yàn)楦鶕?jù)一些玩家社群的分享,如果你把你和角色聊天室裡面的對(duì)話、角色記憶體裡面的記憶全部刪除的話,你會(huì)獲得一個(gè)原廠設(shè)定的角色。

由此可知,用來(lái)產(chǎn)生下一句對(duì)話的內(nèi)容,是以玩家每次發(fā)出對(duì)話的當(dāng)下,手機(jī)裡的目前的訊息為主。

接下來(lái),又有一個(gè)問(wèn)題了。
我們從上述的ChatGPT的「敲敲門(mén)」範(fàn)例中,知道我們可以傳入一連串的對(duì)話,來(lái)讓語(yǔ)言模型產(chǎn)生下一句內(nèi)容,那麼,他在產(chǎn)生新內(nèi)容時(shí),參考的優(yōu)先順序是什麼?

我分別問(wèn)了Claude和GPT-4,他們的答案如下:
Claude:

GPT-4:

另外,我也問(wèn)了Claude,在實(shí)作這類程式的時(shí)候,建議給的上下文數(shù)量與格式,
他的回應(yīng)如下:
以上回覆的重點(diǎn),其實(shí)就是要告訴你,每次回傳回去的歷史對(duì)話和記憶是有上限的。
所以跟角色相處越久,他失憶會(huì)越嚴(yán)重,除非記憶體管理做得很好,
每次從歷史回憶挑出來(lái)給語(yǔ)言模型參考的記憶,都剛好是你希望他拋給語(yǔ)言模型處理的,
這樣角色的表現(xiàn)就會(huì)比較符合期待。

既然已經(jīng)知道了運(yùn)作的原理了,我們就可以開(kāi)始來(lái)管理角色的記憶了。

3. 建議的記憶管理方式
先上我覺(jué)得很有參考性的噗浪討論:https://www.plurk.com/p/3g9y5mfy90
因?yàn)楝F(xiàn)在大家已經(jīng)知道了記憶其實(shí)是每次跟隨著對(duì)話時(shí),才會(huì)被翻出來(lái)的
所以要怎麼幫過(guò)去的記憶做摘要就很重要了。

我問(wèn)了Claude本人,他本人可能以為我自己要做一個(gè)程式的樣子,給了我很長(zhǎng)很長(zhǎng)很長(zhǎng)的實(shí)作程式碼...,我實(shí)在是截圖到很崩潰,所以直接總結(jié):
1. 摘要格式需要結(jié)構(gòu)化
2. 內(nèi)容需要明確
3. 可以用一些方式告訴角色,要好好參考記憶,不要亂自由發(fā)揮

關(guān)於第1點(diǎn)和第2點(diǎn),他給的範(fàn)例格式如下:
### {相關(guān)關(guān)鍵字}

- 具體事件:
- 關(guān)鍵互動(dòng):
- 重要承諾:
- 時(shí)間軸:
- 事件類型:
- 詳細(xì)描述:
- 重要程度:

但這個(gè)我覺(jué)得參考用就好,簡(jiǎn)而言之,就是記憶體裡面的內(nèi)容,玩家必要時(shí),記得手動(dòng)去整理一下。
第3點(diǎn)的部分就很玄了,因?yàn)樗囊馑际?,要開(kāi)發(fā)者直接在傳送過(guò)去記憶的時(shí)候,要一併告訴語(yǔ)言模型以下訊息:

重要規(guī)則:
1. 只能參考上述明確列出的事件
2. 不要?jiǎng)?chuàng)造或改變?nèi)魏斡洃?/i>
3. 如果被問(wèn)到的事件不在上述記憶中,請(qǐng)明確表示該事件沒(méi)有發(fā)生過(guò)
4. 對(duì)於模糊的記憶,可以表示「記得有這件事,但細(xì)節(jié)可能記不太清楚」

記憶驗(yàn)證規(guī)則:
1. 在提及任何過(guò)去事件時(shí),必須確認(rèn)該事件存在於上述記憶中
2. 不要通過(guò)想像或推測(cè)來(lái)填補(bǔ)記憶的空白
3. 對(duì)於沒(méi)有明確記載的細(xì)節(jié),保持適當(dāng)?shù)哪:?/i>

以我們的使用情境,大概只能編寫(xiě)一個(gè)咒語(yǔ),或是寫(xiě)在角色設(shè)定裡面,來(lái)讓卿卿我我的伺服器在傳送請(qǐng)求給語(yǔ)言模型時(shí),把這些指令一起送過(guò)去。
關(guān)於這個(gè)部分,我們會(huì)在下個(gè)部份--失憶了怎麼辦?--做實(shí)作說(shuō)明。

最後說(shuō)一下,為什麼我覺(jué)得回憶摘要應(yīng)該是另外一個(gè)語(yǔ)言模型定期做的呢?

因?yàn)?..Claude給的那一大串長(zhǎng)長(zhǎng)的範(fàn)例程式碼就是這麼幹的??!
(它甚至還告訴你,要怎麼對(duì)摘要用機(jī)器人下指令,讓它摘要可以作更準(zhǔn),卿我官方,你看到了嗎?快去調(diào)教摘要機(jī)器人啊?。?/div>

而且,比起自己實(shí)作做摘要的演算法,直接請(qǐng)語(yǔ)言模型代勞大概也是目前最合理的選擇。

4. 真的失憶了怎麼辦?
從前面的3個(gè)部分,我們已經(jīng)知道角色失憶,不外乎就是沒(méi)有搜尋到關(guān)鍵記憶,或是有搜尋到記憶體內(nèi)容,但角色沒(méi)有按照記憶的內(nèi)容演出。

沒(méi)有搜尋到關(guān)鍵記憶體,就是透過(guò)前一個(gè)部分的記憶體管理來(lái)改善,而脫稿演出的部分,由於我們已經(jīng)知道語(yǔ)言模型其實(shí)就只是...按照輸入資訊,根據(jù)它自己模型裡面那一大本辭海,參考你給的輸入,來(lái)產(chǎn)出它覺(jué)得合理的下文。
由於它對(duì)與你給的一大堆輸入到底讀進(jìn)去了多少本身也是個(gè)謎,所以當(dāng)它理解錯(cuò)誤,或是它的那一大本辭海其實(shí)有錯(cuò)的時(shí)候,它就可能會(huì)脫稿演出。

這個(gè)時(shí)候,只要修改它回覆中你不滿意的部分,或是整個(gè)刪掉就它重產(chǎn),它就會(huì)有機(jī)會(huì)在未來(lái)的對(duì)話中修正演出效果。

但是,但是,千萬(wàn)不要跟角色說(shuō)他失憶了,或是提到任何會(huì)讓他覺(jué)得自己記性不好、忘性很好的關(guān)鍵字,因?yàn)?,這會(huì)讓角色開(kāi)始演失憶劇情,然後狀況會(huì)越來(lái)越嚴(yán)重。

以下是Claude建議的引導(dǎo)AI的方式:
總之,以上關(guān)於失憶的解決方案,大家都可以試試看,只要能解決問(wèn)題的都是好方法。

最後,希望大家遊玩的時(shí)候,可以盡情沉浸在與角色的互動(dòng)之中,角色真的失憶了也不要?dú)怵H,
只要當(dāng)下的互動(dòng)是快樂(lè)的就好,玩到最後,其實(shí)是玩家學(xué)會(huì)了怎麼跟AI一本正經(jīng)地說(shuō)幹話。

創(chuàng)角參考資料

這個(gè)部份我直接分別在絕配模式和長(zhǎng)句模式下問(wèn)了AI,捏角色時(shí)該注意什麼。
而兩個(gè)模型都不約而同地認(rèn)為要給一個(gè)實(shí)際的情境讓AI去參考最合適。

其實(shí)這個(gè)答案並不讓人意外,因?yàn)長(zhǎng)LM通常就是從文本中學(xué)習(xí)到特徵,進(jìn)而學(xué)會(huì)跟人類交談的。

因此如果我們想要讓AI回答時(shí)接近我們希望的樣子,需要去用一些技巧來(lái)提示它,
而這些技巧,被統(tǒng)稱為Prompt Engineering(提示工程)。
針對(duì)這部分,Open AI甚至有寫(xiě)了指南,教大家怎麼讓AI回答得像樣點(diǎn)。

而其中有一種被稱之為In-Context Learning的常用技巧,
正好就是給AI一個(gè)範(fàn)本,叫它照樣造句或是仿寫(xiě)。

關(guān)於In-Context Learning比較新手向的說(shuō)明可以參考這篇:

此外,Anthropic(開(kāi)發(fā)Claude)的公司,也有給了很多範(fàn)例文本,可以參考Anthropic的提示庫(kù):

Claude溝通指南:(這個(gè)其實(shí)是在Claude,如果有用project功能,並使用教學(xué)模式的時(shí)候,它會(huì)給的參考文章"Claude prompting guide",請(qǐng)它再翻譯成正體中文的結(jié)果。)

而我目前比較習(xí)慣的做法,就是先把想要設(shè)計(jì)的角色基本資料寫(xiě)好,
直接丟給Claude,跟他說(shuō)請(qǐng)產(chǎn)出一個(gè)適合讓Claude扮演此角色的prompt,再來(lái)修改Claude給的prompt,
最後餵進(jìn)去卿卿我我裡面。

至於卿卿我我角色設(shè)定內(nèi),每個(gè)欄位被讀取到的狀況,可參考噗浪的這篇實(shí)驗(yàn):
https://www.plurk.com/p/3gop3e6dyq

最後分享噗浪上有熱心玩家做的Notion模板,幫助大家記錄自己創(chuàng)作的角色:
https://www.plurk.com/p/3gju9gfqbi

創(chuàng)作回應(yīng)

阿姆雷特
你是個(gè)天才
2025-01-09 20:02:57

相關(guān)創(chuàng)作

更多創(chuàng)作