首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MindIE推理采样后处理参数temperature和top_k的引发的精度问题

MindIE推理采样后处理参数temperature和top_k的引发的精度问题

原创
作者头像
zjun
发布2025-01-20 11:28:14
发布2025-01-20 11:28:14
1930
举报

背景

MindIE跑Qwen系列模型推理,测试发现后处理参数top_k很大,temperature=2的场景,模型输出有精度问题。

现象

经过进一步复现和测试,发现如下现象。

在Ascend的npu上面temperature=2和top_k很大时有精度问题。

添加图片注释,不超过 140 字(可选)

在gpu也有同样问题

添加图片注释,不超过 140 字(可选)

原因分析

MindIE的后处理

后处理参数的顺序temperature > top_k > softmax > top_p,查看代码可知temperature 的使用方式是logits/temperature ,即temperature 越大,各个logits之间的差就越小,在softmax阶段,根据softmax的原理,值差距越小,token概率就越接近(意味着很难选到正确的token,极端情况有精度问题)。

过程分析

后处理过程:temperature=2 时。temperature处理后,logits值差距变小,如果top_k比较大,则大量logits进入softmax,且softmax后概率都比较接近。在top_p之后,大部分token都有可能被选到且概率相近,容易出现精度问题,如果top_k变小或者top_p变小则不容易出现。

验证:

将top_p设置小,npu无精度问题。

添加图片注释,不超过 140 字(可选)

将top_k设置小,npu无精度问题。

添加图片注释,不超过 140 字(可选)

将top_k设置小,gpu无精度问题

添加图片注释,不超过 140 字(可选)

经验总结

1、后处理顺序temperature > top_k > softmax > top_p。 2、temperature处理原理 logits/temperature(注意此时logits不是概率)。 3、softmax特点:值差距越大,输出的概率差距越大,且非线性。 4、如果大部分token概率相近且都有被选中的概率,那么就会有精度问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 现象
  • 原因分析
    • MindIE的后处理
    • 过程分析
    • 验证:
  • 经验总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档