通用设置
这些设置用于控制使用语言模型生成文本时的采样过程。其含义对所有受支持的后端都是通用的。
上下文设置
回复(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 K、Top P、Min P等截断型采样器时效果最好。
将值设为 0 可禁用其效果。
动态温度
根据概率最高的 token 的可能性,对温度进行动态缩放。其目标是在不牺牲连贯性的前提下生成更具创造性的输出。
- 接受一个从最小到最大的温度范围。例如:
Minimum Temp: 0.75和Maximum 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 采样的更简单替代方案,同时在不同温度下保持采样稳定性。