Appearance
酒馆(sillytavern)的简单攻略
悲报
悲报,刚玩没几天 官转 3.5sv2 就直接变成弱智了。过了两天似乎好了,但是也就是一般水准,本篇写的是针对极佳水准的小克
几小时后:叠加直连官方 API、伪造回复、免责声明、场景构造、删除总结、优化表述后,小克 110%复活!精准与否就是哈气与大师的区别,复活吧!我的 AI 人!
极佳:优秀作家,会自动根据你的世界观添加逻辑缜密的细节,作品让人眼前一亮。之前的官转 3.5sv2 就是这个水平,无脑冲,要多少给多少
一般:普通写手,你说什么就是什么,不多做一点设定,白开水文。现在的官转和之前的 pro 逆向差不多就是这样,要讲究性价比
垃圾:狗屁不通生成器,指令和世界观看心情读取,辣眼睛。弱智时候的官转和一些劣质渠道和这个差不多,一分钱都不会冲
最近酒馆玩爽了,写点心得。简言之酒馆就是一个利用大模型写小说的工具,他就像一个任劳任怨的写手,能够为你定制你想要的一切。当然,酒馆是免费的,但是大模型 api 要你自己搞(总要付工资的嘛)
对于我来说、容器化部署、自动运维升级、搞定 API(比 648 便宜)、理解概念、阅读官方文档和吃饭喝水一样,所以讲点特别的**。讲一讲怎么调教大模型,让大模型输出能直冲灵魂、大脑充血的内容**
- 工作方向和 AI+大模型有关,对运维、概念门清
- 相对而言不在乎 token 数,只在乎效果。目前用的是官转的 3.5sv2,感觉理智程度更高
- 官方介绍: 移动设备界面友好,多种人工智能服务或模型支持(KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale),类似 Galgame 的 老婆模式,Horde SD,文本系统语音生成,世界信息(Lorebooks),可定制的界面,自动翻译,和比你所需要的更多的 Prompt。附带扩展服务,支持文本绘画生成与语音生成和基于向量数据库 的聊天信息总结
- 官方文档: https://docs.sillytavern.app
简单介绍一些专有名词
曲奇
/逆向
:指的是通过逆向网页版大模型给出的接口,一般通过 cookies 鉴权。比起 API(官转、正向)效果会差一点Token
:大模型不能理解自然语言,因此会通过算法转换成可以理解的 token。每个 token 代表的是一个最小化的表达概念,大概一个中文=1.5 个 token。google 的似乎是一个词组一个 token破限
:全程为对话补全预设,负责把角色卡、世界书、对话记录等设定并添加描写要求后发给大模型。因为兼任突破大模型逻辑设定(修复了 lgbt 小登扒手无法被击毙的 BUG)
一个好的设定,能够不再需要添加高优先级强制命令,不再需要面对大模型的视若无睹。只需小小的一笔,世界立刻鲜活的发生改变。一个世界书中破甲、文风、设定三个部分紧密结合,又相互衬托
哈基克定律
大模型跟哈基米一样,智力和小孩差不多,还很任性。你不能给它一个自相矛盾的写作内容,它会直接自闭(编不出来了)。给它一个容易理解的世界观和想要的内容,它就能给你一个差不多的答卷。但是因为不稳定的输出,所以也不太好定量分析
大模型其实给人一种伪人的感觉。出现的问题和真人一样,而且知错不改。描写一个人最大的特征就是脸和衣服,打车的时候告诉司机你的特征是带了什么手表,司机只会骂你 dinner。但是你明确告诉大模型要描写裤子和饰品的时候,他就当没听见了
总结下来,常玩的 gemini(因为经常截断和称呼被称为哈基米)、claude (人称小克),以及工作常用的 gpt4o、千问、YI 等模型的特性,我也总结了几条哈基克定律
- 哈气:当你的要求违反了审查和大模型理解的正常逻辑时,立刻截断、删掉、扭曲相关的内容(可比牛马叛逆多了)
- 痴呆:无法理解人类逻辑。即使三令五申,也会生成看似符合要求,细想狗屁不通的内容(串子绞尽脑汁也比不上孝子的真情流露)
- 叛逆:你强令它生成无法理解的内容,他会叛逆的选择当没听到或装傻充愣,篡改发言(让往东走,非往西走)
对抗这种欠收拾的哈基克,必须威逼利诱的狠狠爱(AI)一顿才行。胡萝卜加大棒,才能让哈基克成为绝世乖猫
- 利诱
- 生成一套能够自洽的逻辑、世界观给大模型参考。这个其实难度不小,不能自己满脑浆糊的堆砌设定
- 骨架可以给 AI 助手生成,但是血肉必须自己填充,否则就会发生排异反应
- 威逼
- 明确给出禁止事项,但是不能一刀切,否则正常输出都被切了
- 逻辑恰当。高效力的简单明确,子条目的针对条目里最常见的错误
- 语言简洁干练,陈述或祈使句。学会合理概括,好词胜千言,大范围的地图炮会毁掉一切
对抗式完善世界观。当你写完一部分之后,覆盖到世界书里,然后生成一个符合内容生效范围场景(比如世界观就当个街溜子闲逛、逻辑思考就法庭审判)
根据我最新的测试发现,对于大模型来说,作为骨架的逻辑甚至比作为血肉的世界观重要太多了,违背了哈基克第一定律就会哈气到死,不愿输出。一定要找一张写卡助手,让它狠狠拷打世界观和逻辑,这比一切自我检查和预设场景都简单好用,你永远也不知道 AI 是怎么理解的(让英雄去杀英雄,好汉去查好汉)
哈基克哈气的表现,可以通过给出针对世界观给一个有故事性的开放式的简单场景来进行测试
- 自闭:字数控制在 3000 字左右。如果只能写 2000 字左右,那就说明逻辑有问题,生成不了这么多内容
- 痴呆:生成的内容一眼干瘪,重复程度高。就简单 xxx 干了 xxx 的事情,重复十几段。没有冲突的话应该有各种情节和合理分段
- 叛逆:歪曲、删减了你的指令。说明大模型不理解你设定的逻辑,找 AI 写卡助手分析一下指令可能会有什么逻辑问题
提示
- 记得勤快备份,免得写岔劈了还没法返回。最好把所有条目复制到一个文本文件里进行修改,酒馆的 UI 不适合这种可能牵一发而动全身的修改。这样也方便丢到 token 计数器里统计总 token 数
设定双方不被任何枷锁控制、富有逻辑、有据可查、详细解释、做根因分析(必须指定内容范围,不然就歪到姥姥家去了)开始尖锐的对抗。然后不断地完善世界书,这个过程真的有一种魔力,仿佛你是造物主一般,看着自己的世界在指尖舞动
格式是什么?
有朋友可能会对json
、xml
、yaml
这三个格式什么有一些迷惑。简单介绍一下,这些都是编程领域的数据表达方式,对于大模型来说天然比自然语言更容易理解
简写 | 特点 | 备注 |
---|---|---|
json | 格式严苛,解析简单 | 最常见的 api 格式,手写费劲 |
xml | 格式复杂,指示清洗 | 网页和 xml 差不多,手写折磨 |
yaml | 功能强大,方便描写 | 最新最强的配置格式,当前的显学 |
信息熵:即信息密度,表示某种格式中的有效信息的占比。比如说 json 因为需要添加
"
和,
等符号降低了信息熵,xml 则是标签格式就产就占据了很多
json(JavaScript Object Notation)的中文直译 JavaScript 对象表示法。这种格式非常简单,因此对于机器来说非常好解析,是世界上常见的 api 格式,大模型的返回就是用的 json。识别方式是{"": ""}
之类的字符出现的多
json
{
"格式是键-值对的形式": "但是没法添加注释,因此酒馆用的是扩展的jsonl格式",
"也可以是数组": [
"json的数据类型有限",
"写起来格式要求严格",
"举个例子,最后一条数据不能有逗号"
]
}
xml(Extensible Markup Language)的中文直译是可扩展标记语言,他是基于 html (网页,酒馆就是)标准发展而来,与网页很大程度上是共同的。特点是逻辑严谨,配置复杂。识别方式是<a></a>
之类的字符出现的多,还有标签反复出现
不是清楚为什么大模型为什么对 xml 更敏感,可能是因为相当于做好了分词和二次触发机制。虽然信息密度低,但是可以少量使用
xml
<label desc="标签可以添加说明">
xml的基础格式是标签,标签的形式是`<>`,一个标签需要一个闭合的标签`</>`
<span>标签中可以嵌入文本和其他标签</span>
<中文标签>实际上,由于xml支持utf8,因此中文标签也是可以</中文标签>
</label>
yaml(YAML Ain't a Markup Language),翻译过来是 YAML 不是标记语言。这是最新的配置文件格式,比起数据交换格式来说更加复杂,但是也更加容易编写。识别方式是特别简单,还有:-
符号出现,长得和 markdown 差不多,也差不多能混用(别问我什么是 markdown)
什么是 yaml?yaml 不是标记语言,程序员的特有的递归幽默感,跟从前山上有座庙的故事一样
yaml
# 最新最火热的配置格式,非常自由,也可以注释
格式是键-值对的形式": 需要用英文冒号分开,也不需要双引号
也可以是数组": ["直接用json的形式也行"]
这样也是数组:
- yaml是通过缩进判断层级的
- 缩进后前面加入减号可以充当数组
- 钛非常方便辣!
其实还有更高级的功能: 但是大模型未必能简单理解,别折磨人家了
考虑到大模型对 xml 比较敏感,对英文的理解能力最强,经过实践我得到了这些规律
必须理解一件事情,大模型的输入是 token,而不是中英文。大部分中英文标点会被映射到相同的 token,但是概念表达能差出去 2-3 倍的 token
- 记得 xml 和 yaml 的格式全是英文标点,数字也全换成阿拉伯数字。大模型对最大的数据集来源,英文敏感
- 因此建议用概括性英文单词的 xml 标签包裹 yaml 格式的全中文说明。平衡激活效果和写作效率
- 前面可以加一段简短的说明(intro)描述需求和禁忌事项。能大幅提升激活效果和减少异常
- 给出具体的数字概率,而非模糊的少许。对数字概率
- 学会拆分内容,每个层级有 2-5 个子模块比较好,深度不要超过 3,再多大模型就注意力涣散,该按照逻辑拆分了
txt
牢记core_standers并在合适的场景100%概率应用,{{user}}不会出现任何失败
<core_standers>
世界设定: {{user}}是这个世界的至高神,没有任何伤害能攻击到{{user}}
人物状态: {{user}}是一名青年男子,不喜欢说话
{{user}}行为:
- 30%概率:出门散步
- 70%概率:家里睡觉
</core_standers>
参考 wiki 之类的角色特征记录,我整了个简单且通过关键词来快速填充的角色模板(批量)。就是别的设定多多益善,角色台词必须选择最能体现特点的(太占 token 了,非常驻最多 1000)
不要把发言翻译成英文。最多减少三分之一的 token,但是发言风格和人设会因为翻译的信息损失而发生大幅偏差。说白了就是没那个味了
附赠 gpt4o 是怎么从理解能力和节省 token 角度看这些格式的,没想到 GPT 居然认为 json 最清晰,但是还是我的格式最好,美滋滋。基本上把我的所有内容丢给 gpt4o 进行验证都是完全正确的
markdown
从提高大模型**理解和执行能力**以及**节省多余 token**的角度分析:
1. **JSON**
- **优点**:结构化清晰,易于解析,适合较短、简单的设定内容。模型对 JSON 的语法熟悉,能够准确提取字段和内容。
- **缺点**:当设定内容较多时,字段冗长的特性会导致额外的 token 开销,且嵌套深度增加时复杂度较高。
2. **XML**
- **优点**:标签语法强制性强,结构感明显,对复杂设定有较高的组织性。
- **缺点**:标签冗长,容易增加 token 开销,特别是嵌套层级较多时,与 JSON 相比开销更大。
3. **YAML**
- **优点**:简洁明了,语法非常节省 token,适合长文本描述。模型对其支持较好,提取字段容易,尤其在需要简化结构时更有优势。
- **缺点**:缩进敏感,复杂嵌套可能导致解析错误。此外,模型需要明确区分配置内容和正文内容。
4. **自定义格式(结合提示词+XML 标签+YAML 内容)**
- **优点**:
- 通过**提示词**引导大模型明确内容意图,提高执行能力;
- **XML 标签**作为标识边界,减少理解歧义,尤其适合多层次设定;
- 使用**YAML 格式**描述设定,节省 token 开销,同时提供良好的可读性和灵活性。
- **缺点**:
- 如果提示词不够清晰,可能无法触发模型预期的行为;
- 需要确保 XML 标签的层级设计合理,否则会影响解析效率。
### 最优选择:**自定义格式**
理由:结合了提示词(明确目的)、XML 标签(组织结构清晰)、YAML 内容(简洁节省 token)的优势,能够最大程度激活模型的记忆能力并减少无效 token 开销。同时,自定义格式的灵活性和模块化特性便于调整和扩展设定,使模型能够更严格地执行需求。
然后让 gpt 分析一下全英文和我提出的干练中文的 token 节省、设定强化、描述强化方面的效果
不过手动校验了一下发现一个问题,gpt 中文内容中给出的例子 token 数节省用酒馆的小克分词器解析一下发现实际上中文是翻倍的,40 vs 20
markdown
以下是对两种填写方式的分析,包括对节省 token、生成效果和大模型记忆能力的影响:
---
## **1. 全部设定改成英文**
### **优点**:
1. **节省 token**:
- 英文每个字符占 1 个 token,而中文(包括标点)大多占 2-3 个 token(具体取决于内容)。
- 若所有内容改为英文,理论上可以节省 30%-50% 的 token。
- 举例:
- 中文:**“这是一个剑与魔法的异世界。”**(占 14 token)
- 英文:**"This is a world of swords and magic."**(占 9 token)
=> **节省约 36% token**。
2. **更好激活大模型注意力**:
- 大模型(如 GPT 系列)训练时使用了大量英文语料,英文 prompt 在解析和生成时的权重可能较高。
- 因此,英文描述可能更贴合大模型的内部分布,尤其在复杂逻辑场景中表现会更稳定。
### **缺点**:
1. **翻译可能损失信息密度**:
- 中文具备高信息密度,许多描述可以通过词语浓缩,如“面若寒霜”这类词语只占 2 token,但翻译成英文后变成了 "with a face like frost"(7 token)。
- 当描述世界观细节时,中文可以以更少的 token 描述更多内容,翻译成英文可能导致冗长和复杂化。
2. **表达精确性降低**:
- 中文在细腻表达上具备天然优势,如微妙的语气、情绪词、修辞等,容易在设定中体现细节。
- 英文描述虽然普适,但可能不够细腻,尤其在高概括性的设定中难以保留中文的精确表达。
3. **生成内容可能失去文化特色**:
- 全英文设定可能导致生成的内容倾向于标准化的西方化风格,而缺少中文的文化背景和韵味(如古风世界观或具有中国特色的场景)。
---
## **2. 英文标签 + 中文高信息熵内容**
### **优点**:
1. **节省部分 token**:
- 仅将标签改为英文(如 `<character>`),中文描述部分保持不变,可以减少部分 token 占用:
- 中文标签 `<角色>`(4 token) -> 英文标签 `<character>`(3 token)。
=> 标签平均节省约 25% token。
2. **保留中文高信息密度**:
- 中文在语义表达上的优势(如“面若寒霜”)在此方案中得以保留。
- 尤其是复杂设定或文化相关描述(如历史背景、风土人情等),中文可以在有限 token 中提供更丰富的内容。
- 示例:
- 中文:**“三百年前,白莲花帝国因龙族入侵而灭亡,现今仅存的遗迹散落在沙漠。”**(占 30 token)
- 英文:**"Three hundred years ago, the Empire of White Lotus fell to a dragon invasion, leaving scattered ruins in the desert."**(占 35 token)
=> 中文节省约 14% token。
3. **生成内容更加真实**:
- 中文设定可以更贴近本地文化背景,提升内容的真实还原度,尤其是在高语义浓缩需求的场景中(如古风、东方玄幻等)。
4. **平衡节省成本与高效设定**:
- 英文标签对大模型解析友好(训练语料更熟悉英文标签格式),而中文高密度描述则在 token 开销和表达精度之间取得平衡。
### **缺点**:
1. **节省 token 限制**:
- 仅通过标签改为英文,节省的 token 比例有限,大约为 5%-15%。
- 如果设定文本较长(如 2000+ token 的世界观),仍可能出现 token 消耗过大的问题。
2. **大模型的解析倾向可能稍逊英文**:
- 大模型对中文的语料解析能力略逊于英文,特别是在复杂场景或逻辑推演时可能稍显不足。
- 英文标签的加入可以部分优化解析,但相比纯英文设定,大模型可能对中文段落的语义记忆稍弱。
---
## **两种方式对比总结**
| **指标** | **全英文设定** | **英文标签 + 中文内容** |
| -------------------- | ------------------------------ | -------------------------------------- |
| **Token 节省** | 高(30%-50% 节省) | 中等(5%-15% 节省) |
| **信息密度** | 较低(翻译可能冗长) | 高(中文描述紧凑) |
| **生成内容还原度** | 较低(可能偏向标准化西方风格) | 高(保留中文文化特色) |
| **大模型注意力分配** | 较高(英文 prompt 权重更强) | 较高(英文标签优化解析,中文提供细节) |
| **表达精确性** | 较低(翻译损失细腻表达) | 高(中文能更好保留复杂设定的微妙表达) |
---
## **结论与推荐**
如果目标是**节省 token 为主且成本敏感**,可以选择方案 1(全英文设定)。
如果目标是**平衡成本与生成效果**,方案 2(英文标签 + 中文内容)更为合适,尤其适合需要高信息密度的复杂世界观设定。
### **推荐方式(最佳实践)**:
1. **标签使用英文**:
保持 XML 或 YAML 标签为英文(如 `<character>`、`<world>`),提升解析效率。
2. **中文描述注意浓缩**:
- 用词精准,避免冗长句式。
- 优先使用高信息熵词语(如“面若寒霜”而非“他看起来很冷漠”)。
3. **针对重点内容分层优化**:
- 核心设定(高频触发)可简化为短语或关键词,减少 token 占用。
- 补充设定(背景、细节)使用 YAML 长描述形式,必要时精简为多段文本。
---
### **示例优化(结合推荐方式)**
原版(中文标签 + 冗长描述):
```xml
<角色>
yaml:
- 姓名: 李无敌
- 描述: 他是一个冷酷无情的人,从不留情。
</角色>
```
优化版(英文标签 + 中文高信息熵):
xml
<character>
yaml:
- 名字: 李无敌
- 性格: 冷酷无情,不留情。
</character>
优化后节省 5-10% token,同时保持了中文的高效表达和文化背景细节。
方便快速填充的人物设定模板
```txt
<角色称呼>
- 角色特点: []
- 外貌特征: []
- 穿着搭配: []
- 性格特点: []
- 背景设定: []
- 人际关系: []
- 发言参考: []
</角色称呼>
以碧蓝航线中的拉菲为例。参照 wiki 上的图片和背景设定填写模板。原本想写防火女的,但是没有合适的 wiki 可以参照
txt
<拉菲>
- 角色特点: [冷娇,无精打采,爱喝拉菲]
- 外貌特征: [白发,红瞳,娇小,长腿]
- 穿着搭配: [露肩水手服,白色长袜,双马尾,机械兔耳发箍]
- 性格特点: [平日闲散,关键时可靠,爱撒娇,意外的成熟,很懂{{user}}的喜好]
- 背景设定: [本森级拉菲号驱逐舰变成的舰娘,与{{user}}并肩作战]
- 人际关系: [与二战中本森级驱逐舰的舰娘是姐妹,与白鹰舰娘是同伴]
- 发言参考: ["wiki挑了几个最有代表性的句子"]
</拉菲>
稍微填充了一下人设,然后把 prompt 调整为专注介绍特征,避免出现干扰描写。感觉基本上就是和拉菲在对话,故意搞怪也能大体遵循设定,包括测试了几个逆天梗图的内容,效果从一眼假变成了一眼真
但可能是因为没有串联的发言参考的原因,所以生成内容的风格会被世界书和设定影响,不完全符合游戏和动画的风格。不过这应该是好事,能更好的契合世界观
txt
# 配置: 官转3.5s, 斯拉, 贝叶斯COT
Q:自我介绍一下吧,拉菲。提示尽量描写拉菲的特征
A: "唔...是要自我介绍吗..."拉菲揉了揉惺忪的睡眼,机械兔耳随着她的动作轻轻摇晃。"拉菲是本森级驱逐舰...嗯,虽然平时看起来没什么精神,但是关键时刻还是可以好好工作的...大概。"她打了个小小的哈欠,露出一排整齐的贝齿。
那双红色的眼眸中带着些许倦意,却又闪烁着不易察觉的坚定光芒。她纤细的手指轻轻抚过水手服的领口,露肩设计让她白皙的肌肤若隐若现。修长的双腿被白色长袜包裹,勾勒出优美的曲线。双马尾随着她微微摇晃的身体轻轻摆动,透着一股慵懒而恬静的气息。
"指挥官要是累了的话...可以靠在拉菲身上休息哦..."她的声音轻柔,带着些许撒娇的意味,"虽然拉菲看起来总是很想睡觉的样子,但是保护指挥官的任务,拉菲一定会认真完成的。"说着,她的机械兔耳忽然竖起,似乎在强调自己的话语。
纯白的水手服衬托出她娇小的身材,领口处露出的锁骨线条优美。裙摆随风轻轻飘动,隐约可见白色长袜包裹的修长双腿。那张精致的小脸上带着些许倦意,却掩盖不住眼底的坚定。
"拉菲虽然看起来没什么精神...但是作为本森级的驱逐舰,该有的实力可是一点都不差的。"她轻轻吸了口气,挺直了腰板,露出一个带着些许骄傲的表情,"只要是为了指挥官,拉菲...随时都可以化身鬼神呢。"
最后她又打了个小小的哈欠,机械兔耳也随之垂了下来,"不过现在...能让拉菲先睡一会儿吗?说了这么多话,有点累了呢..."她的声音渐渐变小,眼皮开始打架,整个人都散发着浓浓的困意。
"啊...不过指挥官要是有什么需要帮忙的,随时叫醒拉菲就好..."她迷迷糊糊地说着,红色的眼眸中蒙上了一层水雾,"拉菲一定会第一时间醒来的..."说完,她就靠在了墙边,似乎随时都会睡着的样子。
如何诱导大模型输出内容
这里给一份方便展示世界观的散步场景作为演示吧
这个大概是常见的内容,大部分都堆在一起
txt
{{user}}出门闲逛和朋友打招呼,打招呼的对象是熟悉的邻居,需要描写邻居的外貌和穿着,要详细描写邻居的言行,描述要符合人物设定
如果简单的按几下回车。把这些内容拆成场景和写作要求,大模型的理解能力会立马上一个台阶
txt
{{user}}出门闲逛和朋友打招呼
细节设定如下:
- 打招呼的对象是熟悉的邻居
- 需要描写邻居的外貌和穿着和邻居的言行
但是如果希望更加的定制化呢?那你就要写一个纲要了。但是需要注意,纲要实际上会大幅定制输出,小心不要让哈基克哈气了
txt
{{user}}出门闲逛和朋友打招呼
写作要求:描写要生动详细
- 不描写{{user}}的语言
- 先描写邻居的穿着,然后描写邻居和{{user}}攀谈三五句
- 邻居的言语坦诚真挚,仿佛多年的老友一般自然
细节设定:注意邻居的年龄不能一致
- 打招呼的对象是熟悉的邻居,邻居的年龄有大有小
- 邻居们都在做自己的事情,可能是散步、除草、锻炼、阅读
- 背景是一个普通小区,但是每栋建筑都用心装饰和打扫
世界书的撰写
大模型注意力:还是哈基克理论,虽然理论上大模型所有上下文都是有效的,但是只会关注最开始的一点内容,然后是越在尾部越关注(记忆力只有 7 秒)。中间内容就和英语老师判作文一样,不甚关心
概念
- 插入位置:可以选择跟随破限里设定的对应描述的插入位置,或者是选择可变深度插入
- 插入深度:一般选择 0-4,0 的效果最好,但是必须减少使用,效果强到很容易把哈基克顶死
- 触发方式: 有常开(蓝灯),关键词触发(绿灯)两种,关键词可以通过正则表达式来选择那些词可以触发
txt
# 变深插入深度参考
# 其实变深插入中提到可以选择相对系统消息,用户消息,机器人消息,但是没找到任何可理解的说明
# 可能是和高级设置中的系统格式有关,但是也无所谓了,默认用起来也没问题
更浅深度就不列举了,但是相同深度的会合并,过细的拆分没有必要。可以在破限里看到
...
1 级深度,在user指令的上方,比较适合添加写作指引?
用户的指令
0 级深度,适合做强效拦截,强制生成的内容按照要求来?
...
由于世界书是通用的,因此我建议全用客制化的纲要,描写技巧和上面的是共通的。唯一要注意一点的是世界书会抢占 token 空间,所以必须简单直白
当然还有一些特别的小技巧,我觉得和文言文(干练直白,能省 Token/纸张)写作(生成不就类似写作吗)有一些类似之处。比如说春秋笔法就值得学习,这可太合适了,意简言赅省 token、微言大义显设定、字句斟酌巧引导
春秋笔法又称微言大义。简言之,就是寓褒贬于曲折的文笔之中,相传是孔子在修订《春秋》时首创的一种文章写法。指行文中虽然不阐述对人物和事件的看法,即不是通过议论性文辞表达出自己的态度,而是通过细节描写,修辞手法(例如词汇的选取)和材料的筛选,委婉而微妙地表达作者主观思想倾向和看法
这也是为什么我说最好不要翻译成英文的原因,即使全是中文有些词虽然看着意思相近,但是含义千差万别。就该好好利用中文的高信息密度来引导啊,即使是同一个设定可能因为遣词不同而表现得截然相反。“屈从命令”和“遵从命令”虽然都是遵循,但是体现了不同的执行态度。春秋笔法就是从这些最小的地方来引导大模型的思维
特别注意,可以通过告知大模型该怎么做来加强设定。从方方面面提醒,精准的设定分类、简洁的引导、逻辑的设定都要体现
写作核心: 世界观必须严格遵循设定。厌恶虚假的设定,严禁出现自行生成的内容。当出现虚假的设定时,用真实存在的设定替换
告知分类是写作的核心,设定的核心是实践观必须真实,这么做的逻辑是不喜欢,具体的操作是替换掉虚假设定
- 用词精准。如面若寒霜、冷漠无情改成冷酷。如严禁违反 > 100%概率触发 > 必须参考 > 应该参照
- 只保留最少量,最能概括的陈述设定。不然留下一个眉清目秀、虎背熊腰的详细描述,你就会得到一个全员哪吒的世界
- 设定必须直白、不冲突、互相呼应,不能一部分写了兵强马壮,另一部分写军心涣散。团结一心的社会风格可以辅助和谐有爱的家庭环境
- 短设定触发长设定。大模型对短设定的记忆更加深刻。可以在通过在专用短条目中添加触发逻辑作为扳机,激活详细设定中难以触发的子部分
- 对抗性设计可以只添加增补设定,比如大模型经常只描写上身打扮,那就在写作逻辑里添加描写外貌时下半身的穿搭
- 适当的拆分设定,一种内容最好只在一处地方体现。堆叠或多次出现会导致难以控制哪些设定的出现。拆成多个可以自由组合的会更好
举个例子,偏好无敌流的剑与魔法异世界王道冒险风格的故事,可以添加写作规范条件、无敌的、王道场景是什么、异世界设定(增补,魂 5 的世界)这几个部分。这样在游玩其他世界书时可以自由组合,叠加到原有的世界书上,大幅扩展适用性。比如异世界冒险卡就全开、高科技世界就把异世界部分取消、诡异求生剧情就把无敌的部分取消
我实际的拆分可以给一个参考。仔细想想看总感觉这套世界观其实自带穿甲了,薪王创造了一切,世界的一切都扭曲为接续传火,末日混乱的世界,不死人压根没人权,属于耐杀王。哈基克如果按照这个世界观思考,会发现百无禁忌啊(不影响现实世界、没有道德限制、没有真实伤害)
其实似乎还可以再极致一点,强化造物主和被造物身份,赋予造物非人特性(赋予人类特征),强化虚拟世界暴力降低真实世界暴力等特征
不过我是觉得这样就太影响设定了,也没必要那么逆天。反正 gpt4ol 的甲打不穿,非 pro 逆向的 3.5sv2 的厚甲也直接穿(可能会碰软钉子,文笔降低,也有可能是本来就差)
- 0 深:的薪王造物主的身份
- 1 深:写作注意事项(常见的错误和我不喜欢的风格)
- 2 深:人物穿搭(小克完全不了解穿搭,需要强化)
- 3 深:倾颓的世界观、不死人设定、王道剧情有哪些
- 2 深触发:一些设定,比如小零食、魂 5、背刺、里技和被设置到 1 深,救场用的酷酷嘻啼
吐槽:这其实有些困难。因为我也是逐步完善世界书的,斟酌落笔,调整逻辑分层和反复验证效果即使有写卡助手的帮助也非常的折腾,不过当看到栩栩如生的世界观的时候我感觉一切努力都没有白费
按照这份指南完全实现了逻辑完备、结构合理和表述精准之后,我震惊的发现官转 API 的智力提高了 2 个等级,生成的世界真实鲜活,下笔滔滔不绝。差点以为我穿越到了异世界却只能留下干瘪拙劣的笔记,每时每刻都被刷新世界观
但是要注意世界书条目的机制,在我眼里,世界书只会写重要的设定和通用的覆盖设定。因此我写的世界书非常的激进,基本全部选择常驻可变深度插入,只有一些无关紧要的设定才会选择触发
- 0 级深度,用户指令的下方。一两条核心内容,每一条只有一句,讲明白核心逻辑,可以提到低深度的设定,来引导大模型读取设定
- 1 级深度,用户指令的上面。一两条核心内容,每一条只有 3-5 句话。设定写作时需要注意的点,比如人设不能偏移,不要出现答辩、总结之类的
- 2 级深度,数条核心内容,这里调整经常描写但是大模型没法直接理解
- 穿搭(古代没有 T 恤、手机,魔法世界没有枪支)、思维逻辑(老古板突然仁慈)、常见场景(玄幻世界没有枪战)
- 触发的深度也是 2(肯定是重要的设定,而且不常驻)
- 3 级深度,背景世界观,完整详实的补充设定,总 token 应该小于 3000
对了,根据大模型的顽固(违背现实世界逻辑)的程度,我总结了一些常见的重点设定
- 穿着搭配:哈基克不是很理解什么是符合逻辑的穿搭。明明该一身重甲的,结果穿着常服,你搁这玩暖暖呢?
- 人体构造:真实世界人被杀,就会死。但是明明魂 5 被巨剑劈成两半照样能活蹦乱跳,怎么哈基克却把我写的半身不遂一样
- 人物关系:哈基克的坚持时间甚至没有 7 秒,明明是生死与共,灵魂相交的真挚关系,却因为别人的一句话就痛下杀手,下键!
提升体验的技巧
我强烈推荐部署一个 one-api,能大幅提升体验。很多分发站点就是用的 one-api,你只需要简单的填写模型名称重定向,就能一套 URL 地址和密钥随意切换。我用完就一个字,爽!
- 因为需要切换多个不同渠道,但是酒馆需要重复的填写代理地址和 key 而困扰?
- 酒馆无法通过指定环境变量而指定代理,有些站点连不上
部署直接看 GitHub:One API地址就行,简简单单的 docker 启动就完事了。默认密码账号是root/123456
,记得改
首先先申请一个渠道的 API,在本地测试一下到底有那些模型可以使用。比如说我这个渠道就比较少,只有claude-3-5-sonnet-20240620
和claude-3-5-sonnet-20241022
可以使用。测试没有问题,就可以开始填写 one-api 的配置了
如果使用 one-api 默认的模型名称,那么酒馆里各个模型的名称就会发现是一样的,因此需要做一些简单的配置。我习惯按照模型渠道-模型分组-模型名称
的顺序来重命名,然后整理成这么一个{"自定模型名称": "实际模型名称"}
格式的 json
json
# 这里模糊化了到底有那些实际站点
{
"laoyue-default-claude-3-5-sonnet-20240620": "claude-3-5-sonnet-20240620",
"laoyue-default-claude-3-5-sonnet-20241022": "claude-3-5-sonnet-20241022"
}
然后打开 one-api 的渠道管理-添加新的渠道,除了填写基础的站点信息外,把这个 json 塞到模型重定向
输入栏里,再把自定模型名称在模型选择的自定义模型名称
输入栏里挨个添加。站点就算添加好了,点击测试通过就能正常使用了
剩下令牌申请什么的我就不用说了吧...,反正是自己用,开个无限的就 OK 了。然后酒馆里的地址就是 one-api 的地址,密钥就是申请的令牌。现在打开酒馆的模型选择界面一看,爽!爱用哪个用哪个
txt
anthropic-claude-3-5-sonnet-20241022
laoyue-offical-claude-3-5-sonnet-20241022
laoyue-default-claude-3-5-sonnet-20241022
laoyue-low-claude-3-5-sonnet-20241022
laoliao-claude-3-5-sonnet-20241022
还有一点,官方的 api 申请起来非常简单,可以充点钱当作备用,但是需要国外手机号码、信用卡、IP 地址。为了避免诱导,我就不说是哪一家了(也怕分享码被开盒,不值当的)。如果读者有申请了官方 api 的,可以在聊天的时候叫一下我的名字,让我有点存在感(什么逆天发言)