昇腾社区首页
中文
注册
开发者
下载

针对目标进行调优

明确优化目标后,再调整服务化参数,从而提升服务化性能。

核心参数介绍

核心参数请参见表1,详细介绍请参见《MindIE Motor开发指南》

表1 核心参数说明

优化方向

关键参数

推荐值/策略

低时延

maxPrefillBatchSize

小批量(4-16),降低首Token计算量。

supportSelectBatch

false, 强制Prefill优先调度。

maxQueueDelayMicroseconds

≤50ms(减少等待延迟)。

高吞吐

maxBatchSize(Decode阶段)

最大化(受显存限制)。

maxPrefillBatchSize/maxPrefillTokens

相对调高,按照实际平均输入折算,使maxPrefilltokens在10000上下。

supportSelectBatch

开启吞吐优先调度。

maxQueueDelayMicroseconds

等待时间加大,让测试开始时尽量组成大的Batch。

RequestRate

增加下发频率,提高至硬件上限。

concurrency

同步逐步提升并发至吞吐饱和点。

序列长度三件套

根据实际场景和要求合理配置maxInputTokenLen,maxIterTimes,maxSeqLen。

手动调优

针对未达成目标的参数进行调优,例如时延不满足目标或吞吐不满足目标。

调优前可以先确认各个参数的理论上限和理论最优配置,比如计算理论maxBatchSize最优值等,具体计算方法可参考服务化性能上限评估

工具调优

手动调优需要一定的服务化基础。想要更便捷的调优,可以使用服务化调优工具msServiceProfiler)的专家建议功能,请参见msserviceprofiler 工具介绍。 使用专家建议工具需要先使用MindIE Benchmark进行服务化性能测试,专家建议工具会基于MindIE Benchmark测试结果落盘文件给出调优建议。

疑难问题

上边所述的服务化调优,均为黑盒状态下的调优。我们并不清楚请求具体的调度过程,比如哪些请求组成了一个batch、一个batch有多大、什么时间执行的prefill、什么时间执行的decode等。

某些问题无法仅靠黑盒调优完成,需要展开进一步分析。与纯模型的性能优化类似,需要借助msServiceProfiler进行分析。