向AI转型的程序员都关注了这个号👇👇👇


TensorRT 作为 NVIDIA 英伟达 GPU 上的 AI 推理加速库,在业界得到了广泛应用与部署。与此同时,TensorRT 开发团队也在持续提高产品的好用性:一方面让更多模型能顺利通过 ONNX 自动解析得到加速,另一方面对常见模型结构(如 MHA)的计算进行深度优化。这使得大部分模型不用经过手工优化,就能在 TensorRT 上跑起来,而且性能优秀。

过去的一年,是生成式 AI(或称“AI生成内容”) 井喷的一年。大量的图像和文本被计算机批量生产出来,有的甚至能媲美专业创作者的画工与文采。可以期待,未来会有更多的生成式AI模型大放异彩。

美迪康-北航AI Lab

  • https://tianchi.aliyun.com/competition/entrance/532108/introduction

补充说明

  • 初赛仅提供测评服务器不提供开发机,参赛选手需要自备带有 GPU 的 Linux / Windows 11 (WSL2) 开发机,并在给定 docker 中用赛方提供的模型文件、开发工具完成模型在 TensorRT 中的构建、运行、精度验证和性能测试,并将代码提交至指定仓库以供测评服务器打分排名。

  • 初赛使用的镜像:registry.cn-hangzhou.aliyuncs.com/trt-hackathon/trt-hackathon:v2

    • 该镜像基于NVIDIA 英伟达官方镜像扩充而来,包含 CUDA 11.8,TensorRT 8.6.1 以及比赛用到的开发工具、模型文件、测试样例数据。请根据"配置开发环境"部分的说明进行使用。

    • 初赛不会提供 ONNX 模型,选手需要自行完成 PyTorch 到 TensorRT 的全部转换过程

    • 初赛使用 Perceptual Distance (PD) 评估生成图片的质量,/home/player/ControlNet/compute_score.py 已包含 PD score 的计算方法,即 TensorRT 生成图片与 PyTorch FP32 生成图片之间的差异程度,PD score 越小越好

    • 初赛包含 Clip 、 UNet 、 ControlNet 、VAE Encoder 和 Decoder 等较多模型,时间有限的话可以优先优化 UNet 和 ControlNet 模型

    • 与去年不同,本次初赛优化的是包含多次迭代的 pipeline,除了对单个模型的优化,还可以尝试 pipeline 层次的加速,以获取更高分数

  • 代码验证与提交

    • 在 https://gitee.com/ 上创建代码仓库,设为私有,并把 xueli1993 加为开发者

    • 借助 git 将自己的代码上传到代码仓库

    • 把仓库的 git 地址填入天池提交页,正式提交

    • 首次提交代码时,请在天池页面点击“提交结果”->“修改地址”,在弹出的窗口中“git路径”中,请写入可用 git clone 命令顺利下载代码的URL

    • 请不要提交大文件 (.onnx .plan. so等) 到git,测试代码时不会使用git-lfs clone代码。

    • 把 /home/player/ControlNet 作为代码根目录,包含完整代码

    • 运行 /home/player/ControlNet/preprocess.sh,检查 ~/ControlNet下面的 .onnx .plan 和 .so 是否正常生成

    • 运行 /home/player/ControlNet/compute_score.py,检查 pipeline 是否正常生成图片,并确认在标准输出得到PD score

    • 在docker 外面clone 代码, 确保代码可以以一下方式运行

    • docker run --rm -t --network none --gpus '0' --name hackathon -v /repo/anywhere:/repo registry.cn-hangzhou.aliyuncs.com/trt-hackathon/trt-hackathon:v2 bash -c "cd /repo && bash preprocess.sh"

    • docker run --rm -t --network none --gpus '0' --name hackathon -v /repo/anywhere:/repo registry.cn-hangzhou.aliyuncs.com/trt-hackathon/trt-hackathon:v2 bash -c "cd /repo && python3 compute_score.py"

    • 请保证在 docker 里能正常运行你的代码,并且无论编译时还是运行时,都不依赖网络下载任何代码或数据,即代码需要是完整的、自包含的。如果确实需要在 docker 里面新增开发库或软件,请在交流群里反应给赛方,我们将添加到比赛用的 docker image 中

    • 比赛所需代码在 /home/player/ControlNet 目录下。canny2image_TRT.py 文件中是需要加速的canny2image PyTorch pipeline。请修改其中的initialize() 与 process()函数来加速pipeline。(不要更改函数名称与参数表)每调用一次process 函数就需要能够生成一张新的图片。计分程序会以process函数运行时间与生成图片与原始torch pipeline 生成图片之间的差距来决定分数。

    • 在使用TRT 加速pipeline 的过程中,选手会需要将PyTorch 中的模型转换为TRT engine。请将这个转换过程的脚本写入 preprocess.sh。所有的中间文件请不要上传到git repo。计分程序运行canny2image_TRT.py 前会先运行preprocess.sh 在本地生成TRT engine。所有preprocess.sh 会产生的中间文件(比如 .onnx, .plan, .so)请放到 ControlNet/ 目录下。请不要使用绝对路径(使用相对路径时,根目录为preprocess.sh 所在地址 ), 因为计分程序会clone 代码到新的地址进行测试。

    • 选手可以通过运行 compute_score.py 来预估运行时间和结果误差情况,其中调用process的参数大部分与计分程序使用的参数相同(除了 random seed 与 prompt),计分程序会使用不同的seed,prompt 来进行测试。最终测试图片大小为256x384。测试图片示例在/home/player/pictures_croped/ 文件夹中。

    • 正式提交前,请验证代码已符合要求:

    • 验证通过后提交代码:

  • 排名依据

    • 优化后模型将在评测服务器上 GPU(A10)运行,得分考虑两个方面,即结果精度(PD score,大于12 为精度不合格)和推理时间(end-to-end 耗时)两方面

    • 得分与推理时间负相关,与PD score也负相关

    • 选手可以通过在自己开发机上运行 compute_score.py 来预估运行时间和结果误差情况。但注意实际评测是在评测服务器上完成的,不采用本地开发机上报告的结果

    • 对于成绩相同的选手,按提交时间较早的排名靠前。

    • 天池的在线排行榜并非实时更新,而是每隔一段时间更新,它未考虑运行时间的测量误差以及提交时间早晚,其结果仅供参考,初赛结束时赛方将给出最终排行榜。


比赛使用的Trick

项目开源代码获取地址:

关注微信公众号 datayx  然后回复 优化  即可获取。


比赛过程中的无用的尝试

Plugin对Latency无用的尝试:

  • LayerNorm Plugin 无用

  • InstananceNorm Plugin 无用

  • Attention Plugin 无用

  • multiHeadFlashAttentionPlugin无用

  • multiHeadFlashCrossAttention Plugin无用

  • seqLen2DpatialPlugin无用

  • splitGelu Plugin无用

代码上的尝试:

  • Multi stream无用,不如batch size=2

  • PTQ int8 无用 推理延时变大

TensorRT 8.6将SD中的一些优化Trick集成到了内部,留给开发者的优化远没有TensorRT8.5要多。


机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码




阅读过本文的人还看了以下文章:


TensorFlow 2.0深度学习案例实战


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《美团机器学习实践》_美团算法团队.pdf


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


《深度学习:基于Keras的Python实践》PDF和代码


特征提取与图像处理(第二版).pdf


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


PyTorch深度学习快速实战入门《pytorch-handbook》


【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》


《Python数据分析与挖掘实战》PDF+完整源码


汽车行业完整知识图谱项目实战视频(全23课)


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  



内容中包含的图片若涉及版权问题,请及时与我们联系删除