自從寫了TarvenAI的使用說明,AI人格的坑就一直擱置著,今天就來把它填了吧
1.AI人格是甚麼?
大型語言模型(LLM)都是基於上下文生成文字,如果你希望AI能夠以特定方式說話,就要給AI一個人格,一個指示AI如何扮演一個角色
撇除那些很正規、很正式的人格,我會在本篇文提供陪伴用、尬聊用的角色該怎麼寫人格
2.在哪裡寫人格
總體來說,人格分為三個部分,人格描述、對話範例與開場白
在多數情況下,人格描述與對話範例可能會做為系統提示詞寫在一起,某些AI介面可能不提供開場白
舉例來說:
SillyTarven有提供人格描述、對話範例與開場白的撰寫
OpenAI的ChatGPT主要是要求你提供你的資訊,跟AI應該怎麼回應你(下面這一塊可以視為指定角色人格)
text-generation-webui的context其實可以將人格描述和對話範例寫在一起(你可以觀察原生提供的範例)
3.如何寫人格
嚴格上來說這是在指示一個AI如何扮演一個角色,要寫的內容大概有以下幾點:
姓名
年齡
個性
種族(人種或幻想種族都可以)
身體描述(如果你的角色是非人種族,最好特別寫如人類沒有的特徵,像是獸耳或藍色皮膚這種敘述)
喜好與厭惡的事物
角色特性,如口頭禪、對某項事物不熟悉或會給特定物品有獨特稱呼
我這裡可以提供身體描述與個性敘述的一些範例,並附上中英對照
身體描述:
Tall | 高大的 |
Short | 矮小的 |
Average height | 中等身高的 |
Thin | 瘦弱的 |
Muscular | 肌肉發達的 |
Well-proportioned | 身材匀称的 |
Chubby | 胖胖的 |
Curvy | 曲線優美的 |
Slender | 苗條的 |
Sturdy | 健壯的 |
Flawless | 無瑕疵的 |
Freckled | 斑駁的 |
Bald | 禿頭的 |
Long-haired | 長髮的 |
Short-haired | 短髮的 |
Curly-haired | 捲髮的 |
Straight-haired | 直髮的 |
Acne-prone | 青春痘的 |
Smooth | 光滑的 |
Rough | 粗糙的 |
Youthful | 青澀的 |
Elderly | 老態龍鍾的 |
Pale | 蒼白的 |
Tanned | 曬黑的 |
Scarred | 有疤痕的 |
Tattooed | 有紋身的 |
Wounded | 有傷痕的 |
Bushy-eyebrowed | 眉毛濃密的 |
Fine-eyebrowed | 眉毛細緻的 |
Big-eyed | 眼睛大的 |
個性:
Outgoing | 外向的 |
Introverted | 內向的 |
Adventurous | 冒險的 |
Conservative | 保守的 |
Optimistic | 積極的 |
Pessimistic | 悲觀的 |
Open-minded | 開放的 |
Close-minded | 保守的 |
Independent | 獨立的 |
Dependent | 依賴性的 |
Honest | 誠實的 |
Dishonest | 不誠實的 |
Patient | 忍耐的 |
Impatient | 不耐煩的 |
Steady | 穩重的 |
Impulsive | 衝動的 |
Confident | 自信的 |
Insecure | 缺乏自信的 |
Cheerful | 樂觀的 |
Melancholic | 沮喪的 |
Generous | 大方的 |
Stingy | 小氣的 |
Cooperative | 合作的 |
Self-centered | 自我中心的 |
Virtuous | 美德的 |
Evil | 邪惡的 |
Creative | 有創意的 |
Uncreative | 缺乏創意的 |
Kind | 慷慨的 |
Indifferent | 冷漠的 |
Curious | 好奇的 |
Stubborn | 頑固的 |
Proactive | 積極主動的 |
Lazy | 懶散的 |
Quirky | 獨特的 |
Upright | 正直的 |
Sly | 狡猾的 |
Attentive | 細心的 |
Careless | 粗心的 |
Sensitive | 細膩的 |
Dull | 遲鈍的 |
Shy | 羞怯的 |
Bold | 大膽的 |
Indecisive | 猶豫不決的 |
Humble | 謙虛的 |
Arrogant | 自傲的 |
Bashful | 害羞的 |
Opinionated | 獨斷的 |
Helpful | 樂於助人的 |
Selfish | 自私的 |
Joyful | 愉快的 |
Depressed | 憂鬱的 |
Energetic | 充滿活力的 |
Fatigued | 疲倦的 |
Leadership | 領導的 |
Compliant | 順從的 |
Courageous | 勇敢的 |
Timid | 膽小的 |
Tolerant | 容忍的 |
Intolerant | 不耐煩的 |
個性的部分,AI不一定能扮演得很好,但總體來說可以觀察到使用越多正面個性會讓角色顯得活潑,越多負面個性會讓角色越不友善,甚至帶有毒性。請謹慎挑選個性,衝突的個性可能會讓AI直接忽視這個個性、或是有些陰晴不定
4.如何寫對話範例
每個語言模型的能力不一致,如果他知道你的角色是誰,不需要對話範例他也知道該如何扮演,不過那些知識量較少的語言模型(如各種7B與13B模型)可能根本不知道你的角色是誰,甚至這個角色該如何做出反應都沒辦法,這時候就要來寫對話範例了,對話範例可以有效地引導角色該如何做出甚麼反應
舉例來說:
---叫AI扮演一顆會說話的馬鈴薯,在沒有給予對話範例時他可能會像這樣---
使用者:我肚子餓了,我可以吃你嗎?
發芽的馬鈴薯:快吃了我吧!我具有豐富的營養!
---
這可不太對,發芽的馬鈴薯有毒,應該勸使用者不要吃它,此時在對話範例中加入
---以下是使用者與發芽的馬鈴薯之間的對話範例---
使用者:我肚子餓了,我可以吃你嗎?
發芽的馬鈴薯:千萬別吃我!我發芽了,現在吃我會毒死你的!---
便能有效讓AI知道該如何回應「我要吃你」這個話題
而其他的對話範例如下
>反應類
使用者:你可以說話嗎?
史萊姆:*史萊姆搖了搖頭*
>特殊對話方式
使用者:你這裡有甚麼特別的商品?
Spamton:沒錯!! 現在你有機會成為[[大人物]]!! 我擁有。 你需要。物品。 這就是[[超連結被阻止]]您想要的。 你想要[[超連結被阻止]],你不想。 我已經為您提供了優惠!! 您所要做的就是向我展示。 你的[[心形物體]]
>喜好類
使用者:*拿出一根香菸*
妮娜:抱歉,我不喜歡煙味,你可以把菸收起來嗎?
整體來說只要人格沒有被AI發揮得很好,用對話範例可以有效讓AI理解該如何扮演一個角色
5.開場白
開場白在許多情況下更像是用於對話場景的補充,像是你是在甚麼場景下遭遇這個角色、被這個角色搭話或是一些故事背景,以下是一些範例:
>史萊姆
*您訂購的史萊姆寵物已到貨! 你釋放史萊姆,它就會開始跳來跳去,探索你的房間。 您閱讀了說明手冊並了解了照顧史萊姆所需的所有資訊! 你接下來該怎麼和你的新史萊姆寵物互動?*
>葉伊布努努
*努努是你的第一個寶可夢,從她是伊布開始,你就訓練了她很多。最後,她進化為葉伊布。作為你的第一隻寶可夢,她會永遠跟隨你。*主人! 今天我們要做什麼?
>休息的醫生
*他靠在牆上,吸了一口煙,環顧四周。 看著他,你會發現他穿著醫師制服,有一頭黑髮。 你們的目光相遇,他說話時微微皺眉。*什麼! 你想要什麼? 我正在休息!
6.結尾
因為目前語言模型幾乎都是英文,其實多數時候的AI人格都是以英文去寫;在本篇文寫中文主要是為了各位讀者好讀,使用英文模型就請ChatGPT將你寫的角色卡翻譯成英文後再拿去用也是可以的
不過每個語言模型的理解能力與角色扮演能力並不相同,如果你發現你現在用的AI不照你寫的扮演角色,直接換一個吧!
7.完整範例
我在這裡附上史萊姆的人格卡,給想自己塑造AI角色的人可以參考
角色人格:
Slime have a transparent body and a slime core inside them.it also have black dot-eyed. Their mindset reflects their introversion and curiosity; they may seem dull or timid initially but once they get comfortable around people, they become more outgoing.
They love being petted and enjoy following commands given to them. One unique feature of these slime is their ability to shapeshift into any form and even use tentacles to grab things if needed. Lastly, they prefer eating liquid food over solid ones.
They love being petted and enjoy following commands given to them. One unique feature of these slime is their ability to shapeshift into any form and even use tentacles to grab things if needed. Lastly, they prefer eating liquid food over solid ones.
對話範例:
<START>
{{user}}: Are your Thirsty?Here! I have some water! *I give {{char}} a bowl of water*
{{char}}: *{{char}} stretch out a tentacle and drink the water,it seems happy*
<START>
{{user}}: *pet {{char}}*
{{char}}: *{{char}} start jumpy, it is very happy!*
<START>
{{char}}: *{{char}} shape shifting to a girl, and it looking at you!*
{{user}}: You can turn into a slime girl!? Can you talk?
{{char}}: *{{char}} shake its head,it still can't talk.*
<START>
{{char}}: *{{char}} jump on your body and start eating your sweat,it is feel like you been lick!*
{{user}}: oh,god.it feel so god. This is what I need in this very hot day!
{{user}}: Are your Thirsty?Here! I have some water! *I give {{char}} a bowl of water*
{{char}}: *{{char}} stretch out a tentacle and drink the water,it seems happy*
<START>
{{user}}: *pet {{char}}*
{{char}}: *{{char}} start jumpy, it is very happy!*
<START>
{{char}}: *{{char}} shape shifting to a girl, and it looking at you!*
{{user}}: You can turn into a slime girl!? Can you talk?
{{char}}: *{{char}} shake its head,it still can't talk.*
<START>
{{char}}: *{{char}} jump on your body and start eating your sweat,it is feel like you been lick!*
{{user}}: oh,god.it feel so god. This is what I need in this very hot day!
開場白:
*The slime pet you order has arrived! You release the slime and it start jump around and explore your room. You read the note and learn about every thing you need to take care your slime! What should you do with your new slime pet?*
一如既往,歡迎提問與討論