指令模式
指令模式(Instruct Mode)允许你针对基于各种提示格式(如 Alpaca、ChatML、Llama2 等)训练的指令跟随模型调整提示词。
适用于:文本补全 API
若要在聊天补全 API 中使用等效设置,请使用提示词管理器。
API 支持
文本补全 API
完全支持。包括:
- 文本补全下的所有来源
- KoboldAI Classic
- AI Horde
选择一种格式
所选的指令模板必须与后端上实际运行的模型期望相匹配。
这通常会在 HuggingFace 的模型卡中说明,有些甚至会提供 SillyTavern 兼容的 JSON 文件。
示例:NeverSleep/Noromaid-13b-v0.1.1
聊天补全 API(OpenAI、Claude 等)
聊天补全 API 不支持此功能(也不需要)。它们使用的是完全不同的提示词构建器。
NovelAI
虽然对 NovelAI 来说在技术上是受支持的,但他们的模型都没有经过理解指令格式的训练。NovelAI 模型可以使用一个特殊的指令模块,当在聊天消息中遇到用花括号包裹的指令时会自动激活它,因此对整个提示词使用指令模式会导致输出质量下降。
下面这个示例会为 NovelAI 自动激活指令模块:
User: { Write a happy song about Nintendo Switch. }
指令模式设置
系统提示词
近期变更
系统提示词现在是一个独立的实体。有关更多详细信息,请参阅高级格式化页面。
模板
提供带有序列的现成模板,适用于一些知名的指令模型。
更换模板会将未保存的设置重置为上次保存的状态!如果你做了任何不想丢失的更改,请不要忘记保存模板。
激活正则表达式
如果定义为一个有效的正则表达式,当连接到一个模型且其名称匹配此正则时,将自动选择该模板。
需要事先启用指令模式。只会选择各模板中第一个匹配到的正则结果(按字母顺序评估)。
用换行符包装序列
每个序列文本在插入到提示词中时都会用换行符包裹。Alpaca 及其衍生格式需要此选项。
如果你想完全控制行终止符,请禁用此选项。
在序列中替换宏
如果启用,消息包装序列中定义的已知 {{macro}} 替换将被执行。
此外,可以在消息前缀中使用一个特殊的 {{name}} 宏来引用附加到消息的实际名称(而不是当前活动的 {{char}} 或 {{user}}),这在使用群聊或 /sendas 命令时很有用。如果无法确定名称,将使用“System”作为回退占位符。
包含名称
如果启用,会在前缀序列之后将角色和用户名添加到聊天历史记录之前。
提供以下选项:
- 从不:在消息内容前不添加名称前缀。
- 群组与过往人格:仅向来自群组角色和过往人格的消息添加名称前缀。
- 总是:总是在消息内容前添加名称前缀。
序列:故事字符串包装
近期变更
系统提示词包装已被移除,并替换为故事字符串包装。
定义当位置设置为“Default(上下文顶部)”时,故事字符串将如何被包装。
故事字符串前缀
插入到故事字符串之前。
故事字符串后缀
插入到故事字符串之后。
序列:聊天消息包装
这些设置定义在构建提示词时,属于不同角色的消息将如何被包装。
所有前缀序列也会自动用作停止字符串。
用户消息前缀
插入到用户消息之前,并在模拟(impersonating)时作为提示词的最后一行。
用户消息后缀
插入到用户消息之后。
助手消息前缀
插入到助手消息之前,并在生成 AI 回复时作为提示词的最后一行。
助手消息后缀
插入到助手消息之后。
系统消息前缀
插入到系统消息(由斜杠命令或扩展添加)之前。
系统消息后缀
插入到系统消息之后。
系统同用户
如果勾选为真,系统消息将使用用户角色的消息序列。
否则,系统消息会使用自己的序列(如果不为空),或者完全不做任何包装(如果为空)。
其他序列
用于更精细地调整提示词构建的各种高级配置。
首个助手前缀
插入到第一条助手消息之前。
只计算聊天历史中的第一条消息,而不是实际最先进入提示词的那条消息!
末个助手前缀
插入到最后一条助手消息之前,或在生成 AI 回复时作为提示词的最后一行。
在后台生成文本时(例如 Stable Diffusion 提示词或摘要)不使用。将改用系统指令前缀或常规助手前缀。
系统指令前缀
在后台生成中性/系统文本时(例如 Stable Diffusion 提示词或摘要),作为提示词的最后一行插入。
用户填充消息
如果聊天历史不是以用户消息开头,将插入到聊天历史的起始处。
**使用场景:**当某种指令格式严格要求提示词以用户优先,并且消息只能由交替的角色构成时,例如:Llama 2 Chat、Mistral Instruct。
停止序列
表示回复结束的文本。也会作为停止字符串发送到后端 API。
如果生成了停止序列,其之后的所有内容都将从输出中移除(包括序列本身)。