将unpad处理后的Q矩阵和K矩阵相乘的结果做Softmax处理。
qSeqLen数组长度不超过32,且要求各元素大于0。
struct FastSoftMaxParam { int32_t headNum = 0; std::vector<int32_t> qSeqLen; bool operator == (const RopeParam &other) const { return this->rotaryCoeff == other.rotaryCoeff && this->cosFormat == other.cosFormat; } };
成员名称 |
描述 |
---|---|
headnum |
Attention的head数量。 |
qSeqLen |
每个batch的实际输入长度。元素个数为batchSize,最大不超过32。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
input |
[nSquareTokens] |
float16 |
ND |
输入向量,随机tensor。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
output |
[nSquareTokens] |
float16 |
ND |
结果向量,范围在[0, 1]的概率tensor。 |