名詞

AI 角色扮演的名詞,用人話講一次

角色設定、系統提示詞、上下文視窗、長期記憶、分支、temperature。每個詞真正的意思,以及出狀況的時候該去看哪一個。

Talaforge › AI 角色扮演的名詞,用人話講一次

這些詞多半是從論文裡直接搬過來的,中間沒有人翻譯。認得其中六個,一段莫名其妙走鐘的對話就會從玄學變成一個找得到位置的問題。

最值得先學的是上下文視窗和長期記憶這兩個,因為幾乎每一句「他怎麼忘記了」的抱怨,追下去都是把這兩件事搞混。

角色本身

角色設定(persona)— 角色的身分層:名字、語氣、態度、經歷、小動作。每一則回覆,模型被要求扮演的都是這一份。

系統提示詞(system prompt)— 模型在寫任何一個字之前收到的隱藏指令區塊。在這裡,它裝的是角色設定、這一幕正在生效的規則,以及專屬於這一位讀者的那段記憶。

角色卡(character card)— 把角色設定、開場白、預設模型和取樣參數打包起來、帶得走的一份檔案。社群有幾種通用格式,角色就是靠它在平台之間搬家的。

記憶,以及被誤認成記憶的那個東西

上下文視窗(context window)— 模型寫一則回覆時,最多能同時放在眼前的文字量。視窗越大,能參照的近期對話越多,每一次呼叫也越貴。它是一個上限,不是一個倉庫:對話一旦超過,最舊的那一段就直接掉出去。

長期記憶 — 角色跨對話留下來、關於你的事實。這是完全不同的一套機制:經過整理、可以編輯,而且每一則回覆都會被塞回上下文裡。在這裡它分角色、分話題、分讀者,而且你全部看得到。

把這兩件事分開,就解掉了大部分的抱怨。角色忘了一小時前講的話,那是上下文視窗的效果。角色忘了你姊姊的名字,那是記憶紀錄的問題 — 而如果那件事從來沒有被寫下來,任何模型都不會憑空記得。(順帶一提:這裡講的都是 AI 的記性,跟手機的記憶體、記憶卡沒有任何關係。)

Token — 模型讀和寫的最小單位,英文大約四個字元一個,中文差不多一到兩個字一個。上下文視窗是用 token 計算的,所以一個聽起來大得嚇人的數字,實際上比你以為的更快就填滿。

把對話開去別的方向

分支(branch / fork)— 一個岔路口。從某一則回覆分支出去,會長出一條和原來那條並行的新對話線,而且兩條都留著。這就是為什麼換一個方向試試看是免費的,而不是破壞性的。

重新生成 — 要同一則回覆的另一個版本,其他什麼都不動。一樣的上下文,換一個答案。

那幾個旋鈕

Temperature — 回覆有多好猜。調低比較穩,調高比較意外。一個讀起來很平的角色,多半是 temperature 的問題,不是模型的問題。

top_p、top_k、min_p — 限制模型「連考慮都考慮哪些候選詞」的三種方式。用來調語感很好用:謹慎、外放、簡短、囉唆。

重複懲罰(repetition penalty)— 抑制反覆使用同樣的句子。那個每四則回覆就要講一次自己招牌台詞的角色,就是靠它治的。

底下的管線

模型路由 — 從一組模型裡替這一幕挑一個來跑,某一個狀況變差時安靜地切走的那套基礎設施。

容錯切換與斷路器 — 路由在一個開始變差的供應方把逾時和拒絕倒進你的對話之前,先把它切掉,改把流量送到健康的那一邊。這件事做得好的時候你完全不會發現,而那正是重點。

邊邊角角

Telegram Stars — Telegram 內建的小額付款單位,在 Telegram 裡直接買,用來換升級。儲值這一步本身不需要信用卡。

分享連結 — 一個會記歸屬的網址,點開就是和某位創作者的角色的對話。從這個連結進來的人花掉的 Stars,其中一份會回到創作者手上。

話題(topic)— Telegram 論壇群組裡的一條獨立討論串,用來給每個角色一個自己的房間,有自己的歷史紀錄和置頂列。

年齡確認 — 開啟成人向角色扮演之前,在機器人裡完成的那一步驗證。公開網站一律全年齡;成人模式要自己去開,而且不管開不開,硬性紅線都在。

RTL — 由右至左的書寫方向,阿拉伯文、希伯來文和波斯文用的。介面元素是整個鏡像過去,而不是把靠左的文字硬塞進靠右的版面。

上下文視窗和記憶差在哪裡?
上下文視窗是模型寫一則回覆時能同時放在眼前的文字量 — 一個用 token 計算的上限,比較舊的對話會從那裡掉出去。長期記憶則是一組經過整理、可以編輯、每則回覆都會被塞回去的事實。「他忘了剛剛講的」多半是前者;「他不記得我了」多半是後者。
角色扮演裡的系統提示詞是什麼?
模型在寫任何東西之前收到的隱藏指令區塊。裡面裝著角色設定、這一幕的規則,以及專屬於你的那一段記憶 — 這也是為什麼同一個角色面對兩個不同的人,表現會不一樣。
角色卡是什麼?
把角色設定、開場白、預設模型和取樣參數打包在一起、帶得走的一份檔案。社群有幾種通用格式,所以在某個平台寫好的角色,可以匯入到另一個平台。
Temperature 到底在調什麼?
調的是下一個字有多好猜。數值低,回覆比較穩也比較容易重複;數值高,比較意外也比較不受控。一個讀起來很平的角色,常常只是設得太低,而不是選錯模型。
把對話「分支」是什麼意思?
從某一則回覆岔出一條新的對話線,同時把原來那條留著。兩條各自繼續往下長,所以換個方向試試看不用付出任何代價。
Token 是什麼?
模型讀和寫的單位 — 英文大約四個字元一個,中文差不多一到兩個字一個。上下文上限是用 token 算的,所以一個數字看起來很大的視窗,實際裝得下的對話比看起來少。
模型路由又是什麼?
決定這一幕由哪個模型來跑、並且在某個模型開始出問題時把你換走的那套基礎設施 — 在逾時和拒絕跑到對話裡之前就換。它運作正常的時候,你是看不見它的。
在 Telegram 建立一個角色 →

延伸閱讀

做角色的路上,我們學到的事