#
CFG(无分类器引导)
页面作者:kingbri
贡献者:kingbri, Guillaume "Vermeille" Sanchez, AliCat
#
这是什么?
CFG(classifier-free guidance,无分类器引导)是一种用于帮助使提示词的某些部分变得更不突出或更突出的方法。
#
支持的后端 API
目前支持的后端包括 oobabooga 的 textgen WebUI、NovelAI 和 TabbyAPI。 NovelAI 有其自己的 CFG 文档。
警告:由于需要处理多个提示词,CFG 会增加显存使用量!如果在使用 CFG 生成提示词时 GPU 内存耗尽,请考虑减小上下文大小、使用参数较少的模型或完全关闭 CFG。
#
配置
访问 CFG 设置的方式与访问作者注释相同:
以下是 CFG 面板的样子:
CFG 面板中有四个下拉菜单:
聊天 CFG
- 将 CFG 比例和提示词的范围限定在当前聊天中
角色 CFG
- 将 CFG 比例和提示词的范围限定在指定角色
全局 CFG
- 全局覆盖 CFG 比例和提示词(也会覆盖模型预设!)
CFG 高级设置(以前称为 CFG 提示词级联)
- 用于组合前三个下拉菜单中的提示词并设置插入深度的位置。
注意:如果引导比例设置为 1,由于这是 CFG 的"关闭"状态,因此不会发送任何内容。
#
群聊
在群聊中,CFG 比例面板看起来是这样的:
主要变化是移除了角色 CFG,并在聊天 CFG 下拉菜单中添加了一个名为"使用角色 CFG 比例"的复选框。这允许使用当前角色的引导比例,而不是聊天 CFG 比例设置的值。
此功能的主要用途是根据每个角色的个别需求来调整比例。
此外,在提示词级联中勾选"角色负面提示词"框将会在聊天提示词(如果启用)的基础上附加独立的角色负面提示词。
#
概念
#
这不是在 Stable Diffusion 中使用的吗?
是也不是。LLM 中的 CFG 的工作方式与 Stable Diffusion 中的不同。基于 LLM 的 CFG 基于"提示词混合"原理工作。CFG 公式接受一个正面提示词和一个负面提示词,然后混合它们之间的差异。之后,发送组合的提示词并生成响应!
这里有一个插图帮助理解这个概念。红色代表负面提示词,蓝色代表中性提示词,紫色代表被解释的混合结果。所有三个提示词中相同的白色空间不会用于 CFG 混合。
如果您想了解更多关于 CFG 和 LLM 的信息,Vermifuge 的原始论文在这里。建议您阅读/收听:
#
我需要 CFG 提示词吗?
不需要!CFG 提示词完全是可选的。仅仅将引导比例调整到 1
以上也会对响应产生影响,这可以突出聊天和角色互动。
#
什么是好的 CFG 提示词?
我们已经确定 CFG 提示词与 Stable Diffusion 的负面标签和嵌入不同。那么我们如何制作提示词呢?
警告:这假设您使用 PLists 和 Ali:Chat 创建了一个角色。如果没有,请随意尝试各种提示词技巧。
假设我有一个名叫"John"的角色。从他的示例对话中可以看出,John 应该一直感到快乐和兴奋。然而,在与 John 聊天时,他有时会表现得悲伤和沮丧。
为了消除这种情况,CFG 来救场!只需将负面提示词设为 [John's feelings: sad, depressed]
来帮助消除悲伤部分。您可以选择将正面提示词设为 [John's feelings: happy, joyful]
来进一步突出 John 的快乐部分。
#
正面提示词
我在上一节中提到了这一点,但我想再详细说明一下。正面提示词用于进一步突出角色的某些部分。让我们再次以 John 为例。通过使用正面提示词 [John's feelings: happy, joyful]
使他更快乐,John 应该会开始输出比不包含正面提示词时更快乐的对话。
#
但是...
这些只是基于特定角色格式经验的宽松指南。还有许多其他方法可以创建提示词,您应该进行实验。请随意与其他用户分享您的想法!
#
引导比例
这里有一个经验法则。引导比例为 1
意味着 CFG 被禁用。实际上,如果引导比例为 1,SillyTavern 不会向后端发送任何内容。引导比例 >1
将在不同程度上产生其他部分所示的结果。
然而,引导比例 <1
将产生相反的效果,因为这里负面提示词被用作主要提示词。
让我们再次以 John 为例。负面提示词是 [John's feelings: sad, depressed]
,正面提示词是 [John's feelings: happy, joyful]
,引导比例为 0.8
。
这将反过来更多地突出负面提示词,您会看到 John 开始表现得比正常情况更悲伤,而不是更快乐。
简而言之:使用引导比例 1.5
,然后根据您的输出向上或向下调整。
#
提示词级联
负面和正面提示词可以在 CFG 类型之间级联(类型包括每次聊天、每个角色和全局覆盖)。有关更多信息,请参见配置标题。
#
插入深度
遵循基本规则:在提示词中位置越低,对响应的影响就越大。对于聊天,我建议使用默认深度 1
,因为它与 SillyTavern 的其他组件非常灵活。
然而,如果您想要实验,插入深度 0
是开放的。但是,这些可能会显著改变您的响应的外观,并且不建议在这里使用提示词级联!