# CFG(无分类器引导) 规范地址:https://xstavern.com/wiki/usage/prompts/cfg/ 原文:https://sillytaverncn.net/usage/prompts/cfg/ 核对日期:2026-11-03 授权迁移,保留作者、上游许可与出处。 CFG(无分类器引导) # CFG(无分类器引导) 页面作者:kingbri 贡献者:kingbri, Guillaume "Vermeille" Sanchez, AliCat ## 这是什么? CFG(classifier-free guidance,无分类器引导)是一种用于帮助使提示词的某些部分变得更不突出或更突出的方法。 ### 支持的后端 API 目前支持的后端包括 oobabooga 的 textgen WebUI、NovelAI 和 TabbyAPI。 NovelAI 有其自己的 [CFG 文档](https://web.archive.org/web/20240917150051/https://docs.novelai.net/text/cfg.html)。 警告:由于需要处理多个提示词,CFG 会增加显存使用量!如果在使用 CFG 生成提示词时 GPU 内存耗尽,请考虑减小上下文大小、使用参数较少的模型或完全关闭 CFG。 --- ## 配置 访问 CFG 设置的方式与访问作者注释相同: ![CFGhamburgermenupng](/static/cfg-hamburger.png) 以下是 CFG 面板的样子: ![CFGchatpanelpng](/static/cfg-panel.png) CFG 面板中有四个下拉菜单: - 聊天 CFG - 将 CFG 比例和提示词的范围限定在当前聊天中 - 角色 CFG - 将 CFG 比例和提示词的范围限定在指定角色 - 全局 CFG - 全局覆盖 CFG 比例和提示词(也会覆盖模型预设!) - CFG 高级设置(以前称为 CFG 提示词级联) - 用于组合前三个下拉菜单中的提示词并设置插入深度的位置。 注意:如果引导比例设置为 1,由于这是 CFG 的"关闭"状态,因此不会发送任何内容。 #### 群聊 在群聊中,CFG 比例面板看起来是这样的: ![CFGpanelgcpng](/static/cfg-groups.png) 主要变化是移除了角色 CFG,并在聊天 CFG 下拉菜单中添加了一个名为"使用角色 CFG 比例"的复选框。这允许使用当前角色的引导比例,而不是聊天 CFG 比例设置的值。 此功能的主要用途是根据每个角色的个别需求来调整比例。 此外,在提示词级联中勾选"角色负面提示词"框将会在聊天提示词(如果启用)的基础上附加独立的角色负面提示词。 --- ## 概念 ### 这不是在 Stable Diffusion 中使用的吗? 是也不是。LLM 中的 CFG 的工作方式与 Stable Diffusion 中的不同。基于 LLM 的 CFG 基于"提示词混合"原理工作。CFG 公式接受一个正面提示词和一个负面提示词,然后混合它们之间的*差异*。之后,发送组合的提示词并生成响应! 这里有一个插图帮助理解这个概念。红色代表负面提示词,蓝色代表中性提示词,紫色代表被解释的混合结果。所有三个提示词中相同的白色空间不会用于 CFG 混合。 ![stcfgdiagrampng](/static/cfg-diagram.png) 如果您想了解更多关于 CFG 和 LLM 的信息,Vermifuge 的原始论文在这里。建议您阅读/收听: - 论文 - [[2306.17806] Stay on topic with Classifier-Free Guidance (arxiv.org)](https://arxiv.org/abs//2306.17806) - 音频版本 - [https://www.youtube.com/watch?v=MGY00YFcyco](https://www.youtube.com/watch?v=MGY00YFcyco) ### 我需要 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` 是开放的。但是,这些可能会显著改变您的响应的外观,并且不建议在这里使用提示词级联! 许可与致谢:https://xstavern.com/wiki/licensecredits/