开发者
资源
[object Object][object Object][object Object]undefined
[object Object]

更新KvCache中指定位置的[object Object][object Object]

输入输出支持以下场景:

  • 场景一:

    [object Object]
  • 场景二:

    [object Object]

    其中[object Object][object Object]可以不同,也可以相同。

  • 场景三:

    [object Object]

上述场景根据构造的参数来区别,符合第一种入参构造走场景一,符合第二种构造走场景二,符合第三种构造走场景三。场景一、场景二没有[object Object][object Object][object Object]这三个可选参数。

[object Object]
[object Object]
[object Object]
  • key[object Object]):必选参数。表示待更新的key值,当前step多个token的[object Object],支持3维或4维。数据类型支持[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object],数据格式支持NDND
  • value[object Object]):必选参数,表示待更新的value值,当前step多个token的[object Object],支持3维或4维,数据类型和数据格式与[object Object]保持一致。
  • key_cache[object Object]):必选参数,表示需要更新的key cache,当前layer的key cache,只支持4维,数据类型和数据格式与[object Object]保持一致。
  • value_cache[object Object]):必选参数,表示需要更新的value cache,当前layer的value cache。只支持4维,数据类型和数据格式与[object Object]保持一致。
  • slot_mapping[object Object]):必选参数,表示每个token key或value在cache中的存储偏移,数据类型支持[object Object][object Object],数据格式支持NDND
  • compress_lens[object Object]):可选参数,表示压缩量,数据类型与[object Object]一致,数据格式支持NDND,默认值为None。
  • compress_seq_offsets[object Object]):可选参数,表示每个batch每个head的压缩起点,数据类型与[object Object]一致,数据格式支持NDND,默认值为None。
  • seq_lens[object Object]):可选参数,表示每个batch的实际seqLens,数据类型与[object Object]一致,数据格式支持NDND,默认值为None。
[object Object]

无返回值,[object Object][object Object]会被原地更新。

[object Object]
  • 输入参数不支持非连续;
  • [object Object][object Object][object Object][object Object]的数据类型必须一致;
  • [object Object][object Object][object Object][object Object]的数据类型必须一致;
  • [object Object]的值范围[0, num_blocks * block_size-1],且[object Object]内的元素值保证不重复,重复时不保证正确性;
  • [object Object][object Object]都是3维,则[object Object][object Object]的前两维[object Object]必须相同;
  • [object Object][object Object]都是4维,则[object Object][object Object]的前三维[object Object]必须相同,且[object Object][object Object]的第三维必须是1;
  • [object Object][object Object]是4维时,[object Object][object Object]为必选参数;当[object Object][object Object]是3维时,[object Object][object Object][object Object]为可选参数;
  • [object Object][object Object]都是4维时,[object Object]是二维,且[object Object]的第一维值等于[object Object]的第一维为[object Object][object Object]的第二维值等于[object Object]的第三维为num_head(对应场景三);
  • [object Object][object Object]都是4维时,[object Object]是一维,且[object Object]的值等于[object Object]的第一维为batch(对应场景三);
  • [object Object][object Object]里面的每个元素值必须满足公式:reduceSum(seq_lens[i] - compress_lens[i]) <= num_blocks * block_size(对应场景三);
[object Object]
  • 单算子模式调用

    [object Object]
  • 图模式调用

    [object Object]