同样的 prompt 和采样参数,输出有差异
Checklist
- [X] 1. I have searched related issues but cannot get the expected help.
- [ ] 2. The bug has not been fixed in the latest version.
Describe the bug
发送两次下述请求
<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
推荐10本书,既适合4岁儿童并且也适合18年成年人?<|im_end|>
输出有diff
Reproduction
模型:qwen-72B-chat 的开源模型 部署方式:tritonserver + fp16 推理 max_batch_size = 2
重复发送两次请求
<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
推荐10本书,既适合4岁儿童并且也适合18年成年人?<|im_end|>
采样参数
Environment
运行 lmdeploy check_env 报错了。。
Error traceback
No response
符合预期,就是要两次运行结果不一样。
@AllentDan 为什么结果不一样符合预期呢?我理解相同的输入,相同的采样参数,输出不应该是稳定的么?
还有随机种子,内部每次都会做随机的
@AllentDan 为什么结果不一样符合预期呢?我理解相同的输入,相同的采样参数,输出不应该是稳定的么?
不一样的,其中tempature控制了返回的多样性,如果你想固定返回可以尝试将temperature设置为0.01,多次请求查看结果
@AllentDan 我也传入了 random_seed = 42,这个种子一样的话后续产生的随机数也都会一样吧?
@zhulinJulia24 tempature 应该是配合 random seed 一起使用吧?我理解这些采样参数都一样的话,输出应该是稳定的吧?
@AllentDan 我也传入了 random_seed = 42,这个种子一样的话后续产生的随机数也都会一样吧?
你在哪传的?api_server 没 random_seed 参数暴露出来啊
@AllentDan 我也传入了 random_seed = 42,这个种子一样的话后续产生的随机数也都会一样吧?
你在哪传的?api_server 没 random_seed 参数暴露出来啊
现在使用 tritonserver 加载 libtriton_turbomind.so 部署的,tritonserver 看着是可以传 random_seed 的。
把采样关了试试,用greedy模式
遇到相同的问题,按理相同的采样参数如temperature,random_seed等,输出的结果应该保存稳定,现在是有差异
有什么解决方法吗?
把采样关了试试,用greedy模式
对,直接 top_k 设置 1
把采样关了试试,用greedy模式
对,直接 top_k 设置 1
没有彻底解决问题,我试过temperature为0,top_k为1,1000个样本仍然有5%是不一样的,很神奇
top_k为1确实也会存在随机性,不知道是否可以参考ollama的seed方式,能确保一致性:https://github.com/ollama/ollama/blob/main/docs/modelfile.md#valid-parameters-and-values seed Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: 0) int seed 42