# 无标题文档 (March 8, 2023)

temperature 和 top_p 都是用于控制生成文本多样性的参数，但是它们的实现方式和效果略有不同

+ Temperature 是通过对生成文本的概率分布进行操作来达到控制多样性的效果。具体来说，它会将每个 token 的概率值除以一个小于 1 的温度参数，然后再进行 softmax 运算，以获得更平滑的分布。当温度参数接近 0 时，生成的文本会趋于重复和单调；当温度参数较大时，生成的文本会变得更加随机和多样。
+ Top-p（或 nucleus）是通过对生成文本的概率分布中的前几个最可能的 token 进行采样，来达到控制多样性的效果。具体来说，它会根据一个小于等于 1 的阈值参数，把概率分布中累计概率超过该阈值的 token 去掉，再对剩下的 token 进行归一化，从中进行随机采样。当阈值接近 0 时，生成的文本会趋于重复和单调；当阈值较大时，生成的文本会变得更加随机和多样。

总的来说，Temperature 更加直接和自由度较大，因为它不限制生成的 token 种类；而 Top-p 相对来说更加稳定和可控，因为它可限制生成的 token 种类和数量。

---

Temperature 和 Top-p 这两个参数都可以用于控制生成的文本的多样性，让机器生成的文本看起来更加自然、生动、有趣。它们的作用可以类比于人类的写作方式。

Temperature 可以类比为人类的写作时的思考难度，难度越大、要求越高，那写出的作品很可能就更加突出、独特，也更加有价值；但如果思考难度过大，也可能写出来的作品让读者感到繁琐、重复、无聊。因此我们会根据需要，调整和控制自己的思考难度。在机器生成文本的场景下，设置较高的 Temperature 参数值，可以让机器更加随机地选择不同的词汇，写出较独特、有趣的文章，但可能也会带来些许重复的问题。

Top-p 则可以类比为人类写作时的表达方式。我们在写作时，通常会选择最相关、最精准的话语，更多的时候会使用特定的词汇和表达方式，而并非任意选择。机器也可以类似地操作，通过 Top-p 模式，控制机器只从最相关、最精准的单词和短语中进行选取，而过多的随机选择将被控制在一个阈值范围内，写出更为准确和精细的文章。