aclnnApplyTopKTopP
产品支持情况
功能说明
接口功能:对原始输入logits进行top-k和top-p采样过滤。
计算公式:
- 对输入logits按最后一轴进行升序排序,得到对应的排序结果sortedValue和sortedIndices。
- 计算保留的阈值(第k大的值)。
- 生成top-k需要过滤的mask。
- 通过topKMask将小于阈值的部分置为-Inf。
- 通过softmax将经过top-k过滤后的数据按最后一轴转换为概率分布。
- 按最后一轴计算累计概率(从最小的概率开始累加)
- 生成top-p的mask,累计概率小于等于1-p的位置需要过滤掉,并保证每个batch至少保留一个元素。
- 通过topPMask将小于阈值的部分置为-Inf。
- 将过滤后的结果按sortedIndices还原到原始顺序。
其中。
函数原型
每个算子分为,必须先调用“aclnnApplyTopKTopPGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnApplyTopKTopP”接口执行计算。
[object Object]
[object Object]
aclnnApplyTopKTopPGetWorkspaceSize
aclnnApplyTopKTopP
约束说明
- 确定性计算:
- aclnnApplyTopKTopP默认确定性实现。
调用示例
[object Object]