首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

服务化参数调优实战

  • 25-04-20 00:01
  • 3771
  • 8519
juejin.cn

服务化性能调优

前置准备

  • 完成MindIE环境的安装,参考链接
  • 下载好要调优的模型权重
  • 下载好性能测试数据集

调优流程

下面以Llama3-8B为例,讲解调优全流程

1.查看模型权重大小

Llama3-8B权重为15GB

2.计算npuMemSize

计算公式为:Floor[(单卡显存-空闲占用-权重/NPU卡数)* 系数],系数取值为0.8 单卡空闲显存:61GB 空闲占用:约3GB

npuMemSize = Floor[ (61 - 3 - 15/1 )] * 0.8 = 34GB

3.计算maxBatchSize

maxBatchSize = Total Block Num/Block Num,需要先计算出"Total Block Num"和"Block Num"的值

  • 计算"Total Block Num"的值 Total Block Num = Floor(NPU显存 / (Block Size * 模型网络层数 * 模型注意力头数 * 注意力头大小 * Cache类型字节数 * Cache数))

对于GQA类模型,注意力头大小=hidden_size/num_attention_heads 将以上参数值代入公式,得到Total Block Num = Floor[34102410241024/(128 * 32 * 8(4096/32)22)] = 2176

  • 计算单个请求的"Block Num" 所需最大Block Num = Ceil(输入Token数/cacheBlockSize)+Ceil(最大输出Token数/cacheBlockSize) 所需最小Block Num = Ceil(输入Token数/cacheBlockSize) 所需平均Block Num = Ceil(输入Token数/cacheBlockSize)+Ceil(平均输出Token数/cacheBlockSize)

    从下面benchmark信息获取数据集信息: InputTokens: 60(avg), 186(max), 23(min) OutputTokens: 467(avg), maxIterTimes(max), 18(min)

    所需最小Block Num = Ceil(60/128) = 1 所需最大Block Num = Ceil(60/128)+Ceil(512/128) = 5 所需平均Block Num = Ceil(60/128)+Ceil(346/128) = 4

  • 计算"maxBatchSize" 最小maxBatchSize = Floor[Total Block Num/所需最大Block Num] = 435 最大maxBatchSize = Floor[Total Block Num/所需最小Block Num] = 2176 平均maxBatchSize = Floor[Total Block Num/所需平均Block Num] = 544

4.计算maxPrefillBatchSize和maxPrefillTokens的值

  • maxPrefillBatchSize建议设置为:maxBatchSize值的一半 maxPrefillBatchSize = Floor[maxBatchSize/2] = 544/2 = 272

  • maxPrefillTokens的值一般不超过8192 maxPrefillTokens = maxPrefillBatchSize * 数据集token id平均输入长度 = 272*60 = 16320 根据公式计算出的值大于8192,所以maxPrefillTokens的取值为8192

5.更新配置&性能测试

  • 更新配置如下:

  • 实测性能 默认参数测试结果:

参数调优后测试结果:

可以看到,吞吐提升了18%。

注:本文转载自juejin.cn的beolus的文章"https://juejin.cn/post/7494201369303056394"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

109
人工智能
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top