Advanced usage
确定性
在语言模型(LM)应用领域,确定性起着至关重要的作用,尤其是在需要一致和可预测结果的情况下。
为什么确定性很重要
语言模型中的确定性指的是在相同条件下,给定相同的输入时能够一致地产生相同的输出。这一特性对于以下方面至关重要:
- 可重复性:确保在不同运行中可以获得相同的结果,这对于调试和迭代开发至关重要。
- 一致性:保持响应的一致性,在自动化客户支持等场景中尤为重要,因为对同一查询的不同响应可能是不希望的。
- 测试:通过提供一个稳定的测试基础,促进模型或算法的评估和比较。
温度=0的作用
语言模型中的温度参数控制输出的随机性。较高的温度会增加响应的多样性和创造性,而较低的温度会使模型更加可预测和保守。设置temperature=0
基本上关闭了随机性,导致模型在每一步选择最可能的下一个词。这对于实现确定性至关重要,因为它最小化了模型输出的方差。
温度=0的影响
- 可预测的响应:模型将始终选择最可能的路径,从而在输出中具有高度的可预测性。
- 创造力:为了可预测性而付出的代价是减少了创造力和响应的多样性,因为模型不会探索不太可能的选项。
利用种子增强控制
种子参数是增强确定性的另一个工具。它为模型中使用的随机数生成器设置初始状态,确保每次运行都使用相同的“随机”数序列。当与temperature=0
结合使用时,此参数提供了更高程度的可预测性。
示例:
当前限制:
AzureOpenAI 实例
虽然种子参数在我们库中的OpenAI实例中有效,但需要注意的是,此功能尚未在AzureOpenAI中提供。使用AzureOpenAI的用户仍然可以使用temperature=0
来减少随机性,但没有种子提供的额外可预测性。
系统指纹
如文档中所述(OpenAI Seed):
有时,由于OpenAI在我们端对模型配置所做的必要更改,确定性可能会受到影响。为了帮助您跟踪这些更改,我们公开了system_fingerprint字段。如果此值不同,您可能会看到由于我们在系统上所做的更改而导致的输出不同。
解决方案和未来更新
对于AzureOpenAI用户:依靠temperature=0
来减少随机性。请继续关注未来的更新,因为我们正在努力将种子功能与AzureOpenAI集成。
对于OpenAI用户:同时使用temperature=0
和种子以实现最大的确定性。