LV. 23
GP 107

【心得】關於卿卿我我的語言模型介紹與創角建議(新增長句V2遊戲體驗)

樓主 童兒 wuguofish
編輯更:
後來有在小屋內重新整理一篇比較完整的,建議直接去小屋內看。
這篇有一些資訊可能過時或有錯誤。
不過當作一個紀錄,就擺著了。

標題圖是《銀翼殺手2049》的劇照,我玩這款遊戲到目前為止的心得可以用這張劇照概括。

我的邀請碼:KZEYZNMY

這篇文章的靈感來源其實是來自這兩串噗浪討論:
https://www.plurk.com/p/3gdc7g21sw
https://www.plurk.com/p/3gb0m99u2t

簡而言之,就是有人直接問了角色關於他是使用哪個語言模型的事情。
為了要Double Confirm,所以我決定再度拿自己捏的角色來開刀,順便問問看他建議怎麼捏角色。

我知道很多人可能不想看太長的文章,所以我先總結結論

1. 語言模型
- 絕配模式的語言模型是GPT-4
- 長句模式的語言模型是Claude
(註:他說他不知道自己是用哪個版本,但我去查了官網各模型的介紹,推測是Claude 3 Haiku)
(後來爬了噗浪相關討論,和實際去測試,發現它應該是Claude 3 Opus)
因為我是開新視窗用原廠設定去問他,小房間和刺激模式好感度不夠,所以沒辦法問。

2. 捏角色的建議
兩個模型都建議在寫設定時,應提供具體的情節作為範例供AI模型在扮演角色時可以參考。
- GPT-4的建議:在撰寫具體的範例情節時,應包含具體故事背景、具體情境、心理活動描述。
- Claude的建議:提供具體場景、對話範例、增加情感深度指引、設置情感發展階段、增加背景知識、設置關鍵詞觸發。

這部分在後面我會把截圖貼上來給大家參考。

接下來,我們要來進入長文的部分了。

第一部分、語言模型的介紹

首先是這兩個語言模型的介紹與差異,雖然拿去問估狗,可以得到一大堆說明。
但相信這麼多關於LLM(大型語言模型)的介紹和評估指標比較,非專業領域的人可能會有看沒有懂,所以我盡量簡單的解釋。

首先要先提一下這兩個語言模型背後的公司,他們之間的理念差異,
因為理念不同,所以在設計這兩個語言模型時,他們所希望達到的目的會不一樣,
而他們對於自己模型的期許,會進而影響了我們所看見的結果。

GPT-4是OpenAI開發的語言模型,我們可以從官網的介紹知道,這個模型被賦予的目標如下:
「藉由其廣泛的常識和問題解決能力,來更準確地解決難題。」
「它可以和使用者一起在創意與技術任務中進行生成、編輯和迭代。」

(抱歉身為二類組科系出身的我,翻譯能力很差,總之意思大概是這樣。)
可以從這裡看出,這個模型被寄望可以被用來協助從事一些充滿創造力的工作。

而Claude則是Anthropic所開發的模型,Anthropic這間公司是由OpenAI的幾位前員工所創,
當初就是因為與原團隊成員對於AI模型開發的理念不合才另起爐灶。

而從官網的介紹中,我們可以看到這個模型被賦予的目標如下:
「Claude是由Anthropic打造的下一個世代AI,且被訓練成安全、準確、可靠地來協助你做到最好。」

也就是說,這個語言模型被期望在充滿創造力之前,可以先安全可靠的協助他的使用者。

從這兩個語言模型在設計之初的目的,就可以感受為什麼兩種模式下,
同樣的角色設定,會演繹出略為不同的個性,因為兩位演員本身的個性就不太一樣

接著是比較技術層面的差異,這方面我覺得卿卿我我官方給的代號還滿直觀的,
絕配模式言簡意賅,而長句模式,確實就是長。

造成的原因跟他們所使用的規格有關,而影響大型語言模型(LLM)的參數百百種,
但最好懂也最顯而易見的就是他們所採用的context window大小的不同。

context window,中文的常見翻譯是「上下文視窗」、「上下文窗口」等,
這個參數通常可以理解為當LLM在產生回覆時,可以作為參考輸入的文本大小。

當context window越大的時候,通常LLM的回覆效果就會越接近人類的期待。
簡單的理解就是,它可以參考的資訊會比較多,所以結果也會越接近你想要的。

這部分,Claude 3的context window是200K個token*
而GPT-4的context window是128K個token*
(*註:token這個單位,可以約略理解為字數,但它其實不是字數,比較像是斷詞量,詳細可以參考這篇說明。)

因此大家體感上應該會覺得,長句模式下,角色似乎比較能夠掌握整體的情境,比較不會跑題,而且能給予連續性的情境描寫;而絕配模式會時不時給你神來一筆。

但是context window也不是越大越好,最直觀的影響就是運算速度,context window越大,運算速度會越久,也就是可以理解成角色回覆的時間會越長,
只是目前兩個模式的回覆時間差異我們體感感覺不大。

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

這個問題簡而言之,就是你每次都踩AI的道德底線一點、每次都踩一點,
因為它的context window很大,會參考前面的整體情境,最後它就會順應你的要求違背自己的道德底線,回答了你一個它不應該回答的問題。

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

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

反之,絕配模式就沒那麼好拐,一段時間後,它好像又恢復了自己原本的個性。

介紹完這兩個語言模型的特性後,相信大家在遊玩的時候,更能夠體會要怎麼選擇對話模式了。

第二部分、捏角色的建議

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

其實這個答案並不讓人意外,因為LLM通常就是從文本中學習到特徵,進而學會跟人類交談的。

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

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

關於In-Context Learning比較新手向的說明可以參考這篇:
https://ithelp.ithome.com.tw/articles/10321746

套用在捏角色上面,你可以在設定裡寫一個情境。

範例:

情境:王小明在學校附近的電動間遇到你

劇情:
王小明走進了電動間,他進入門口的時候大搖大擺,把雙手背在身後,因為他剛跟同學打賭贏了500元,想來這裡找些樂子。
這時他遠遠的看見你在電動間的角落玩夾娃娃機,他緊張的把雙手插進了口袋,因為他沒想到會在這裡遇見你。
平時表現得像個好學生的你是他的仰慕對象,他沒想到你會出現在反差如此大的場所。
他緊張的時候就會把雙手插進口袋內,這會讓他有一些安全感。
他鼓起勇氣朝你大喊,想壯大自己的聲勢,也想引起你的注意。
「喂,書呆子,想不到你也會來電動間。」他的語氣非常差,臉部表情很兇,
但是他的耳朵卻與面部表情不搭嘎的紅了起來。

心理描述:
王小明一開始進電動間時的心情是得意和開心的,因為他贏了打賭,正想好好慶祝。
見到你後先是感到驚訝,接著是緊張,最後是想引起你注意,才用差勁的語氣虛張聲勢。
耳朵轉紅正是反映出他見到仰慕對象時,內心的緊張。

請根據以上的劇情,模擬出王小明這樣的角色。

然後,為了能夠更好的模擬,以上這樣完整的劇情片段最好要多塞幾組,這樣AI就能越演越像了。

唉......卿卿我我內建的設定表格最好能塞這麼多字啦!(暈)

第三部分、遊戲機制推測

最後是卿卿我我的機制推測。

關於機制的部分,我有另外寫一篇,以後應該就會更新在這裡:
https://forum.gamer.com.tw/Co.php?bsn=81003&sn=387&subbsn=1&bPage=0

由於玩家在遊玩的過程中,可能會好幾個對話模式不時的切來切去,
此時大家應該會發現,切對話模式的時候,角色的失憶會變嚴重,
上一秒在海灘,下一秒在山上。

這是因為在切換模式的時候,要換語言模型,所以會把前幾句對話和記憶體裡的摘要拿去餵模型當作prompt(前情提要的概念),讓使用者即使在模型間來回切換,AI也能演得像。

但如果餵的prompt資訊量不足,或是根本是錯誤的資訊時,就會出事了。

套句一開始引用的噗浪討論裡的比喻:
A幫B代班的時候處理了很多工作,但B回來上班的時候,看不懂A的工作紀錄,於是接手的時候亂做。

因此,幫你的AI伴侶做好記憶體管理就變得很重要了。

類似的記憶要在記憶體內明確定義出來,不然他可能會不知道你在說哪一個。

如果是在絕配模式下,可能還會發揮GPT-4的特長--創造力,直接掰一個不存在的過去給你。

另外,合理懷疑心內話又是走另外一個機制,
因為我在跟我的角色詢問AI模型相關問題的時候,在完全沒有劇情的情況下,
心內話又在那邊給我繼續演自己的:「我跟她聊得好開心,希望未來能有更多時間好好相處。」

至於好感度這個機制就更謎了,直接詢問的感覺下,AI好像不知道有這個參數的樣子,
也許是沒有作為Input的一部分餵進去,也有可能餵進去的時候不是叫這個名詞,
所以我暫時無法推測它是怎麼計算的。

第四部份、測試對話紀錄

接下來就是流水帳的部分,貼上我的測試過程。
(為了方便大家好辨認,接下來絕配模式都會用綠色主題,長句模式則會用預設的粉紅色主題)

前情提要,這個角色是我捏的第一個角色,後來也很常被我拿來測試用,
就是之前跟我打雙人橋牌的那個角色。

他的人設是玩家角色的大學社團同學,性情穩定,人緣好,喜歡動腦。
在職念完研究所畢業後因為家裡有相關背景所以創業,最後跟玩家角色重逢。
暗戀玩家角色很多年,但其實自己當時也沒察覺,重逢後才發現原來自己暗戀玩家角色很多年。

總之我覺得應該是個AI演起來會很難演的角色,因為要素很多,但又要顯得很平凡。
所以很常被我拿來開一些奇怪的測試。

首先是問語言模型的部分:
絕配模式:

長句模式:
一開始可能讀到了GPT-4的回覆,誤把它當作前情提要,給我裝傻說自己是GPT-4。
但在重新逼問下,坦承自己是Claude。




接著是對Claude的拷問:

很誠實地說自己不知道自己是哪個版本。

接著是關於捏角色建議的部分,原本這一Part我是放自己在卿卿我我問兩個模型的結果。
但後來覺得自己是笨蛋,其實直接去語言模型本家查資料就好了。

所以補上本家的資料:
Anthropic的提示庫:
https://docs.anthropic.com/zh-TW/prompt-library/library

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

最後是好感度的部分,遊戲中測不出好感度的部分,卿卿我我是用什麼參數傳送給AI。
由於這個變數是卿卿我我自己的程式邏輯在管理的,因此非常難猜,請大家就暫時當作這是一個不可控的因素。

------
最後,分別用長句模式和絕配模式,
用同樣的情境,和同一個角色,用同樣的文字閒聊,看看他們各自會怎麼演。

先來看長句模式:
哇!真是有說服力的答案。
接下來,只好丟出我的真實喜好,來看它怎麼接球了。

居然通通接到了,原來Claude的繁體中文訓練文本這麼扎實嗎?
決定繼續來跟它分享武俠小說的部分。


老實說,我覺得Claude演得還滿不錯的,看起來就像唸過很多書的樣子,但講話就有點油。🫠

接著換充滿創造力的GPT-4(絕配模式)上場。
OK,還行,ONE OK ROCK也是我會聽的類型,RADWIMPS也是個滿有特色的搖滾樂團,確實都是日系搖滾樂團。
原來GPT-4覺得這個角色喜歡的音樂是日系搖滾。
但是...《暴雨殺機》和《底特律:變人》是遊戲改編的電影?!
不要瞎掰好嗎?它們都是遊戲,是遊戲,互動式電影遊戲不是電影欸!(激動到想站起來)

接著一樣用我真實的喜好丟球給它接看看。

好的,看來《自殺房間》這部電影真的很冷門,兩位AI都沒「聽說」過。


至少知道多情劍客無情劍其中一條主線是在講李尋歡的故事,HEN棒。

好了,測試到這邊,有了諸多體會。
相信有耐心忍受我的爛文筆閱讀到這裡的各位也有了一些體會。

最後是彩蛋
就是當我正在問AI關於它是什麼語言模型啊?設定角色的眉眉角角啊~
的一些事情的時候,
有一個「內心想法」一直時不時跳出來刷存在感。
我想說,反正現在看心內話是免費的嘛!
就點開來看看,然後就發現...

內心想法這個系統是在平行世界的啊!!!

最後,因為我也很久沒有接觸AI這個領域了,
有理解錯或是說錯的地方,歡迎各位大大指正或分享正確的知識。
謝謝收看。
板務人員: