大模型中的temperature 和 top_p
-
尝试不同的 temperature 值: 不同的任务可能需要不同的 temperature 值。例如:
-
对于需要精确和可预测输出的任务(如代码生成),较低的 temperature (例如 0.2 - 0.5) 可能更合适。
-
对于需要创造性和多样性输出的任务(如故事写作),较高的 temperature (例如 0.7 - 1.0) 可能更合适。
-
0是固定输出。
-
通过以上方法,你可以灵活地控制 Ollama 模型的 temperature 参数,以获得最佳的生成效果。记住修改Modelfile的方式是最佳实践。
top_p 是什么参数啊 有什么用?
top_p 是大型语言模型 (LLM) 中用于控制文本生成多样性和质量的另一个重要参数,与 temperature 密切相关,但工作方式不同。它被称为“核心采样”(Nucleus Sampling)的阈值。
工作原理:
-
概率排序: 在生成每个词(token)时,LLM 会计算出词汇表中所有可能词的概率分布。top_p 不直接修改这些概率,而是影响 选择 哪些词。
-
累积概率: LLM 将所有可能的下一个词按照概率从高到低排序,然后 累加 这些概率。
-
阈值截断: 当累积概率达到或超过 top_p 设置的值时,停止累加。
-
候选词集合: 只有那些累积概率达到 top_p 阈值的词才会被保留作为候选词。
-
采样: LLM 从这个候选词集合中(根据它们的原始概率)进行采样,选择下一个词。
举例说明:
假设词汇表中有 10 个词,模型计算出每个词作为下一个词的概率如下:
词 | 概率 | 累积概率 (假设 top_p = 0.9) |
A | 0.3 | 0.3 |
B | 0.25 | 0.55 |
C | 0.2 | 0.75 |
D | 0.1 | 0.85 |
E | 0.06 | 0.91 |
F | 0.04 | 0.95 |
G | 0.02 | 0.97 |
H | 0.01 | 0.98 |
I | 0.01 | 0.99 |
J | 0.01 | 1.00 |
如果 top_p = 0.9:
-
累积概率在词 E 处超过了 0.9。
-
因此,只有 A、B、C、D 和 E 这五个词会被考虑作为下一个词的候选。
-
模型会根据这五个词的原始概率(0.3, 0.25, 0.2, 0.1, 0.06)进行加权随机选择。
如果 top_p = 0.5:
-
累积概率在词 B 处超过了 0.5。
-
只有 A 和 B 会被考虑。
的作用和影响:
-
控制多样性: top_p 通过限制候选词的数量来控制生成文本的多样性。
-
top_p 值越小,候选词越少,生成的结果越确定、越集中于高概率词,多样性越低。
-
top_p 值越大,候选词越多,生成的结果越多样、越可能出现低概率但有趣的词,多样性越高。
-
-
避免低质量输出: 相比于只使用 temperature,top_p 通常能更好地避免生成无意义或重复的文本。因为它直接截断了低概率的尾部,防止模型选择那些概率极低的词。
-
与 top_p 和 temperature 经常一起使用。
-
temperature 影响 所有 词的概率分布(使分布更平坦或更尖锐)。
-
top_p 在 temperature 调整后的概率分布基础上,选择一个 子集 的词。
-
通常的做法是,先用 temperature 粗调多样性,再用 top_p 进行精细控制。
-
的典型值:
-
top_p = 1.0:相当于不进行核心采样,考虑所有词。
-
top_p = 0.9:一个常用的值,在多样性和质量之间取得较好平衡。
-
top_p = 0.7 或更低:生成更确定、更可预测的文本,适合需要精确性的任务。
-
通常不建议将top_p设为0
总结:
top_p 是一个非常有用的参数,它通过动态调整候选词集合的大小,让你更精细地控制生成文本的多样性和质量。它通常与 temperature 结合使用,可以产生更自然、更连贯、更符合预期的文本输出。 理解 top_p 的工作原理,有助于你更好地驾驭大型语言模型,生成你想要的文本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2022-02-28 记一次 PowerShell 免杀实战
2022-02-28 powershell渗透工具——后渗透工具Empire使用教程
2022-02-28 powershell渗透工具——Powershell内网渗透利器之PowerSploit,场景真tm多啊
2022-02-28 powershell渗透工具——powercat工具详细分析
2022-02-28 绕过PowerShell执行策略方法
2022-02-28 从网络安全应急响应看EDR的一些Case
2020-02-28 python 合并k个有序链表