ETH官方钱包

前往
大廳
主題

Caveduck 進階指南:隱藏訊息

慕儀 | 2024-12-05 12:54:42 | 巴幣 2 | 人氣 582

前言
或許因為成本考量,AI的記憶能力並不太長,官方的建議是使用「remembers key details from past conversations and incorporates them into future responses」、「If the player asks about something mentioned before, {{Char}} recalls the past discussion and responds accordingly.」之類的提示。但LLM並不會真的因為你叫它記住,就記住了,它具體會怎麼實施這樣的提示呢?它會從近期的聊天內容提取一些關鍵字,納入新的回應內。

簡單說,它不是真的變得更有記憶力了,而是把A輪回應的重點,不斷延伸到B輪回應、C輪回應,依此類推。

然而,這種行為實際上是與「推進劇情」矛盾的,容易變成卡住、停滯於目前場景,即便你如何提示LLM不要重複、不要用相似的結構,它可能也會為了納入過去的重點而產生固定的死板格式,這點成本愈低的LLM表現愈明顯。

因此結論是,要記憶就無法靈活推展劇情,要靈活推展劇情就難以保證記憶。

過去我曾經試了無數方法來避免這點,然而效果都不太好,直到前幾天我做了一個神奇的夢??是的你沒聽錯,真的是做夢。夢中一位在北地遊蕩的魔族告訴我應該怎麼做。感謝妳,達菈伊娃,請大家多多支持她。

思路

LLM會有前述不佳表現的具體原因在於,這種「納入前文關鍵,並自然的使之分佈在新回應內」的行為,是十分困難的,以LLM的原理而言,你要讓它做到「獲取並填入某種關鍵訊息」,就最好給它一個固定的格式與結構。而角色扮演的互動主文,無論是旁白還是對白,偏偏又不希望有這種固定的格式與結構。

那麼如果我們能將主文與關鍵詞分開呢?主文依舊讓LLM靈活的發揮,此外再提供一個固定的格式讓它記憶?我實測發現,這樣的效果很好,但缺點是??使用者看得到這些訊息,完全破壞沉浸感。因此,我們必須想辦法讓使用者看不到這些訊息。

然後,達菈伊娃在睡夢中告訴我答案了,她說:「Caveduck的對話UI,不解析HTML註解,但模型調取對話記錄時,則會讀取HTML註解。」我醒後一測,果真如此。於是我很興奮的幫我所有角色都加上新功能,測試後發現他們運作良好。

實作範例

  1. 在角色秘密的最底下,加入以下提示:
    # Status Format:
    - Use <!-- HTML comment --> write status at end of response: participants, location, clothing, actions, pose, mood. Example:<!-- # keyPoints  - Participants:{{user}};{{char}}  - Location:Stadium  - Clothing:{{user}} Regular;{{char}} Sportswear  - Actions:play table tennis  - Pose:{{user}} offense;{{char}} defense  - Mood:{{user}} tired;{{char}} joyful -->
    - If Actions involve sexual, must clearly specified type.
    - Pose requires recording posture, describing participants relative positions, orientations.
    - Never use quotation marks('"「」『』“”‘’) and *italics* .
    - Forcibly output, even if previous responses not exist format.
    - If lack information, refer recent content, must be filled.

    • 地點很重要,可以有效避免「在浴室中抓緊床單」之類尷尬的描述。
    • 有兩行是強調體位的,這可以有效避免角色作出不合理的動作,比如狗式時環抱使用者的背??SFW角色可以忽略它。
    • 引號會破壞Caveduck UI的解析。
  2. 在問候語的最底下,加入以下空格式,以提醒後續對話遵循:<!-- # keyPoints  - Participants:  - Location:  - Clothing:  - Actions:  - Pose:  - Mood: -->
  3. 你可以自行修改此格式,改為你需要的項目,甚至加入信任值、HP、MP等,將其作為真正的「變數」運算,但我懷疑LLM難以正確計算。而塑造模擬器時,甚至可以改為輸出CSV表格來記憶眾多角色的狀態。

各模型測試

  • Mandarin 13B (4P)完全不懂這些提示,但我相信應該沒多少使用者用這個。
  • Claude 3 Haiku (10P)經常失靈,但我相信只要在指定記憶輪數中,哪怕有一輪它成功了,那對對話也是大有幫助。
  • GPT-3.5 (15P)及耗費在此以上的模型,表現十分良好,甚至可說驚豔。
  • 無論如何,不要指望LLM能100%遵行提示,只要其多數時候正常,就足夠了。
追蹤 創作集

作者相關創作

相關創作

更多創作