开发者
资源
[object Object]

Micro Batch即在批处理过程中,将数据切分为更小粒度的多个batch运行。当前实现中,通过额外创建一条数据流,将一批数据分成两个batch在两条数据流上执行。数据流1在执行计算时,数据流2可进行通信,计算和通信耗时被掩盖,使得硬件资源得以充分利用,以提高推理吞吐。

图 1 Micro Batch双流示意图

数据流间通过Event机制进行同步,计算和通信任务间都相互不冲突,防止硬件资源抢占。此特性通常应用在Prefill阶段,因为Prefill阶段通信类算子耗时较长,且通信类算子与计算类算子耗时占比更为均衡。在此实现下,计算和通信类算子掩盖率达70%+。

[object Object]
  • 此特性不默认开启。
  • 此特性不能与通信计算融合算子特性同时开启。
  • 仅Qwen2.5系列、Qwen3稠密系列、Deepseek-R1和DeepSeek-V3.1模型支持此特性。
    • 对于Qwen模型,该特性可与并行解码、异步调度、SplitFuse、PrefixCache特性共同开启。
    • 对于Deepseek模型,该特性可与MTP特性共同开启。
  • 开启此特性后会带来额外的显存占用。服务化场景下,KV Cache数量下降会影响调度导致吞吐降低,在显存受限的场景下,不建议开启。
[object Object]

开启Micro Batch特性,需要配置的参数如所示。

表 1 Micro Batch特性补充参数:ModelConfig中的models参数 [object Object][object Object]

[object Object]undefined
[object Object]
  1. 打开Server的config.json文件。

    • whl包安装方式:

      [object Object]
    • run包安装方式:

      [object Object]
  2. 配置服务化参数。在MindIE的config.json文件添加“micro_batch”字段(以下加粗部分),参数字段说明请参见,服务化参数说明请参见章节,参数配置示例如下。

    [object Object]
  3. 启动服务。

    • whl包安装方式:

      [object Object]
    • run包安装方式:

      [object Object]