通用设置

这些设置用于控制使用语言模型生成文本时的采样过程。其含义对所有受支持的后端都是通用的。

上下文设置

回复(token)

API 在回复时生成的最大 token 数。

  • 回复长度越长,生成回复所需的时间就越长。
  • 如果 API 支持,你可以启用 Streaming(流式输出),从而在生成的过程中逐字显示回复。
  • 当关闭 Streaming 时,回复会在全部生成完毕后一次性显示。

上下文(token)

SillyTavern 作为提示词发送给 API 的最大 token 数,需减去回复长度。

  • 上下文由角色信息、系统提示词、聊天历史等组成。
  • 消息之间的虚线表示该对话的上下文范围。位于该线上方的消息不会发送给 AI。
  • 要查看消息生成后的上下文构成,点击 Prompt Itemization(提示词分项)消息选项(展开 ... 菜单并点击带线条的方形图标)。

采样器参数

温度

温度控制 token 选择中的随机性:

  • 低温度(<1.0)会生成更可预测的文本,倾向于概率更高的 token。
  • 高温度(>1.0)会让概率较低的 token 有更多机会被选中,从而提升输出的创造性与多样性。

设为 1 表示使用原始概率。

重复惩罚

通过根据 token 在上下文中出现的频率对其进行惩罚,来抑制重复。

将值设为 1 可禁用其效果。

重复惩罚范围

设置从最后生成的 token 起算、会被重复惩罚考虑在内的 token 数量。如果设得太高,可能会破坏回复,因为“the、a、and”等常见词会受到最大的惩罚。

将值设为 0 可禁用其效果。

重复惩罚斜率

如果该项和 Repetition Penalty Range(重复惩罚范围)都大于 0,重复惩罚在提示词末尾处的作用会更强。值越高,效果越强。

将值设为 0 可禁用其效果。

Top K

Top K 设定了可选择的最高 token 数量上限。例如,如果 Top K 为 20,则只保留排名前 20 的 token(无论这些 token 的概率是分散还是集中)。

设为 0(或 -1,具体取决于你的后端)可禁用。

Top P

Top P(又称核采样)会将排名靠前的 token 累加,直至其概率总和达到目标百分比。如果前 2 个 token 各占 25%,而 Top P 为 0.50,则只会考虑这前 2 个 token。

将值设为 1 可禁用其效果。

Typical P

Typical P 采样根据 token 偏离集合平均熵的程度来为其排定优先级。它会保留累积概率接近某个预定义阈值(如 0.5)的 token,重点保留那些具有平均信息量的 token。

将值设为 1 可禁用其效果。

Min P

通过相对于概率最高的 token 截断低概率 token,来限制 token 池。这能产生更连贯的回复,但如果设得太高也可能加剧重复。

  • 0.1-0.01 等较低的值下效果最好,但配合较高的 Temperature(温度)时可以设得更高。例如:Temperature: 5, Min P: 0.5

将值设为 0 可禁用其效果。

Top A

Top A 根据最高 token 概率的平方为 token 选择设定一个阈值。例如,如果 Top A 值为 0.2,且概率最高的 token 概率为 50%,则概率低于 5%(0.2 * 0.5^2)的 token 会被排除。

将值设为 0 可禁用其效果。

尾部自由采样(TFS)

尾部自由采样(Tail-Free Sampling,TFS)通过对 token 概率的变化率求导进行分析,在分布中寻找一个由低概率 token 组成的尾部。它会根据归一化的二阶导数,保留至某个阈值(如 0.3)以内的 token。该值越接近 0,被丢弃的 token 越多。

将值设为 1 可禁用其效果。

平滑因子

通过二次变换提高高概率 token 被选中的可能性,同时降低低概率 token 被选中的可能性。其目标是不受 Temperature(温度)影响、生成更具创造性的回复。

  • 在不配合 Top KTop PMin P 等截断型采样器时效果最好。

将值设为 0 可禁用其效果。

动态温度

根据概率最高的 token 的可能性,对温度进行动态缩放。其目标是在不牺牲连贯性的前提下生成更具创造性的输出。

  • 接受一个从最小到最大的温度范围。例如:Minimum Temp: 0.75Maximum Temp: 1.25
  • Exponent(指数)会根据概率最高的 token 应用一条指数曲线。

取消勾选可禁用其效果。

Epsilon 截断

Epsilon 截断设定一个概率下限,概率低于该下限的 token 会被排除在采样之外。单位为 1e-4;合理的取值为 3。

设为 0 可禁用。

Eta 截断

Eta 截断是特殊的 Eta 采样技术的主要参数。单位为 1e-4;合理的取值为 3。详情参见论文 Truncation Sampling as Language Model Desmoothing by Hewitt et al. (2022)

设为 0 可禁用。

DRY 重复惩罚

DRY 会对那些会把输入结尾延伸为输入中已出现过的序列的 token 进行惩罚。如果你想允许逐字重复某些序列(例如名称),可以将它们添加到序列中断词列表中。参见 Pull Request 此处

将乘数设为 0 可禁用。

排除最顶部选项(XTC)

XTC 采样算法会移除最有可能的 token,而不是剪除最不可能的 token。它会以给定的概率,移除所有满足给定阈值但不包括概率最低在内的 token。这能确保至少保留一个“可行”的选择,从而保持连贯性。参见 Pull Request 此处

将概率设为 0 可禁用。

Mirostat

Mirostat 会将输出的困惑度与输入的困惑度相匹配,从而避免重复陷阱(即随着自回归推理生成文本,输出的困惑度趋于零)和混乱陷阱(即困惑度发散)。详情参见论文 Mirostat: A Neural Text Decoding Algorithm that Directly Controls Perplexity by Basu et al. (2020)

模式用于选择 Mirostat 的版本。

  • 0 = 禁用,
  • 1 = Mirostat 1.0(仅限 llama.cpp),
  • 2 = Mirostat 2.0。

束搜索

一种用于 LLM 采样的贪心、暴力搜索算法,用于找出最可能的词或 token 序列。它同时展开多条候选序列,并在每一步保留固定数量(束宽)的排名靠前的序列。

Top nsigma

一种基于统计特性来过滤 logits 的采样方法。它会保留与最大 logit 值相差在 n 个标准差以内的 token,作为 top-p/top-k 采样的更简单替代方案,同时在不同温度下保持采样稳定性。