范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

以AnimatedDrawingsAPP为例,用TorchServe进行模型调优

  内容导读
  上节介绍了 TorchServe 模型部署调优的 5 个步骤,本节以 Animated Drawings APP 为例,实际演示 TorchServe 的模型优化效果。
  本文首发自微信公众号:PyTorch 开发者社区
  去年,Meta 凭借 Animated Drawings 应用程序,用 AI 让儿童手工画「动」了起来,静态简笔画秒变动画~
  Animated Drawings 制作流程
  Animated Drawings 动态效果
  Demo 传送门:
  https://sketch.metademolab.com/
  这对于 AI 来说并不简单。AI 的设计初衷是为了处理真实世界中的图像,儿童绘画与真实图像相比,形态和风格迥异,更具有复杂性及不可预测性,因此先前的 AI 系统可能并不适用于处理 Animated Drawings 类似的任务。
  本文将以 Animated Drawings 为例,详细讲解如何借助 TorchServe,对即将部署到生产环境中的模型进行调优。
  4 大因素影响生产环境中的模型调优
  下面的工作流程展示用 TorchServe 在生产环境中进行模型部署的总体思路。
  用 TorchServe 为生产环境中的模型调优的基本流程
  大多数情况下,部署模型到生产环境中是基于吞吐量 (throughput) 或延迟 (latency) 服务级别协议 (SLA) 进行优化的。
  通常实时应用程序 (real-time application) 更关心延迟,而离线应用程序 (off-line application) 则更关心吞吐量。
  对于部署到生产环境中的模型,影响性能的因素众多,本文重点介绍 4 个:
  1. Model optimizations
  这是将模型部署到生产环境的前置步骤,包括量化、剪枝、使用 IR graphs(PyTorch 中的 TorchScript)、融合内核及其他众多技术。目前,TorchPrep 中提供很多类似技术作为 CLI 工具。
  更多关于 Torchprep 的相关简介,请访问:
  https://github.com/msaroufim/torchprep
  2. Batch inference
  它是指将多个 input 输入到一个模型中,在训练过程中会频繁用到,对于在推理阶段控制成本也很有帮助。
  硬件加速器对并行进行了优化,batching 有助于充分利用计算能力,这经常导致更高的吞吐量。推理的主要区别在于无需等待太久,就能从客户端获得一个 batch,也就是我们常说的动态批处理 (dynamic batching)。
  3. Numbers of Workers
  TorchServe 通过 worker 部署模型。TorchServe 中的 worker 属于 Python 进程,拥有用于推理的模型权重副本。worker 数量太少,无法从足够的并行性中受益;worker 数量太多,又会导致 worker contention 及端到端性能降低。
  4. Hardware
  根据模型、应用程序及延迟、吞吐量预算,从 TorchServe、CPU、GPU、AWS Inferentia 中选择一个合适的硬件。
  有些硬件配置是为了获取最好的 class 性能,有些是为了更符合预期的成本管控。实验表明,batch size 较大时更适合选用 GPU;batch size 较小或要求低延迟时,选用 CPU 和 AWS Inferentia 则更具备成本优势。
  Tips 分享:TorchServe 性能调优的注意事项
  开始之前, 我们先分享一些用 TorchServe 部署模型、获得最佳性能的 Tips。
  * 学习 PyTorch 官方教程:
  https://pytorch.org/tutorials/
  硬件选择与模型优化选择也是紧密联系的。
  * 模型部署的硬件选择,与延迟、吞吐量预期以及每次推理的成本密切相关。
  由于模型大小和应用的不同, CPU 的生产环境通常无法负担类似计算机视觉模型的部署, 大家可以注册使用 OpenBayes.com,注册即送 3 小时 RTX3090,每周还赠送 10 小时 RTX3090,满足一般的 GPU 需求。
  此外,最近添加到 TorchServe 中的 IPEX 等优化,使得这类模型的部署成本更低、更能被 CPU 负担。
  IPEX 优化模型部署详见:
  https://pytorch.org/tutorials/intermediate/torchserve_with_ipex.html
  *  TorchServe 中的 worker 属于 Python 进程, 可以提供并行, 应谨慎设定 worker 数量。 默认情况下 TorchServe 启动的 worker 数量等于主机上的 VCPU 或可用 GPU 数量,这可能会给 TorchServe 启动增加相当长的时间。
  TorchServe 公开了一个 config property 来设置 worker 的数量。为了让多个 worker 提供高效并行并避免它们竞争资源,建议在 CPU 和 GPU 上设置以下 baseline:
  CPU: 在 handler 中设置  torch.set _ num _ thread (1)  。然后将 workers 的数量设置成  num physical cores / 2 。但最好的线程配置可以通过利用 Intel CPU launcher script 来实现。
  GPU: 可用 GPU 的数量可以通过 config.properties 中的  number_gpus  进行设置。TorchServe 使用循环分配 worker 到 GPU。建议: Number of worker = (Number of available GPUs) / (Number of Unique Models) 。注意, pre-Ampere 的 GPU 不提供任何与 Multi Instance GPU 的资源隔离。
  *  Batch size 直接影响延迟和吞吐量。 为了更好地利用计算资源,需要增加 batch size。在延迟和吞吐量之间存在 tradeoff;较大的 batch size 可以提高吞吐量,但也会导致较高的延迟。
  TorchServe 中有两种设置 batch size 的方式, 一种是通过 config.properties 中 model config 进行,另一种使用 Management API 来 registering model。
  下节展示如何用 TorchServe 的 benchmark suite 来决定模型优化中硬件、worker 和 batch size 的最佳组合。
  认识 TorchServe Benchmark Suite
  要使用 TorchServe benchmark suite,首先需要一个 archived file,即上文提过的  .mar  文件。该文件包含模型、handler 和其他所有用来加载和运行推理的其他 artifacts。Animated Drawing APP 使用 Detectron2 的 Mask-rCNN 目标检测模型
  运行 benchmark suite
  TorchServe 中的 Automated benchmark suite 可以在不同 batch size 和 worker 设置下,对多个模型进行基准测试,并输出报告。
  了解 Automated benchmark suite:
  https://github.com/pytorch/serve/tree/master/benchmarks#auto-benchmarking-with-apache-bench
  开始运行: git clone https://github.com/pytorch/serve.git cd serve/benchmarks pip install -r requirements-ab.txt apt-get install apache2-utils
  在 yaml 文件中配置模型 level 设置: Model_name:     eager_mode:         benchmark_engine: "ab"         url: "Path to .mar file"         workers:             - 1             - 4         batch_delay: 100         batch_size:             - 1             - 2             - 4             - 8         requests: 10000         concurrency: 10         input: "Path to model input"         backend_profiling: False         exec_env: "local"         processors:             - "cpu"             - "gpus": "all"
  这个 yaml 文件将被  benchmark_config_template.yaml  引用。Yaml 文件中包括用于生成报告的其他设置,也可以用 AWS Cloud 查看 logs。 python benchmarks/auto_benchmark.py --input benchmark_config_template.yaml
  运行 benchmark,结果被保存在一个 csv 文件中,可以在  _/tmp/benchmark/ab_report.csv_  或完整报告  /tmp/ts_benchmark/report.md  中找到。
  结果包括 TorchServe 平均延迟、模型 P99 延迟 (model P99 latency)、吞吐量、并发 (concurrency)、请求数、handler time 及其他 metrics。
  重点跟踪以下影响模型调优的因素:并发、模型 P99 延迟、吞吐量 。
  这些数字要与 batch size、使用的设备、worker 数量以及是否做了模型优化结合起来看。
  这个模型的 latency SLA 已经设置为 100 ms,这是个实时应用程序,延迟是很重要的问题,在不违反 latency SLA 的情况下,吞吐量最好尽可能高。
  通过搜索空间,在不同的 batch size (1-32)、worker 数量 (1-16) 和设备 (CPU, GPU) 上运行一系列实验,总结出最好的实验结果,见下表:
  这个模型在 CPU 上的延迟、batch size、并发和 worker 数量等方面进行的所尝试,都没有到 SLA,实际上延迟降低了 13 倍。
  将模型部署移动到 GPU 上,可以立即将延迟从 305ms 降到 23.6ms。
  可以为模型做的最简单的优化之一,就是把它的精度降低到 fp16,一行代码  (model. half ())  ,可以减少 32% 的模型 P99 延迟 ,并增加几乎相同数量的吞吐量。
  模型优化方法还有将模型转化为 TorchScript 并使用  optimation_for_inference  或其他技巧(包括 onnx 或 tensort runtime optimizations)进行优化,这些优化利用了 aggressive fusions 。
  在 CPU 和 GPU 上,设置  number of workers=1  对于本文的 case 效果最好。
  * 将模型部署到 GPU,设置  number of workers = 1 ,  batch size = 1 ,吞吐量增加 12 倍相比于 CPU 上 降低 13 倍延迟。
  * 将模型部署到 GPU,设置  model.half() 、 number of workers = 1  、  batch size = 8 ,可以获得吞吐量和可承受的延迟方面的最佳结果。与 CPU 相比,吞吐量增加 25 倍,延迟仍然满足 SLA (94.4 ms)。
  注意: 如果正在运行 benchmark suite,请确保设置了适当的  batch_delay ,将并发性的请求设置为与 batch size 成比例的数字。这里的并发性是指发送到服务器的并发请求的数量。
  总结
  本文介绍了 TorchServe 在生产环境中调优模型的注意事项及性能优化方法 TorchServe benchmark suite,使用户对模型优化、硬件选择和总体成本的可能选择有了更深入的了解。
  推荐用户:
  获取 13 小时 RTX3090 算力资源:
  https://openbayes.com/
  查看「用 PyTorch 进行深度学习」在线教程:
  https://openbayes.com/docs/tutorial-jupyterlab-deep-learning-with-pytorch
  关注  PyTorch 开发者社区 公众号,获取更多 PyTorch 技术更新、最佳实践及相关资讯!

李宇春父亲李升敏女儿事业长虹却劝她退圈,38岁不结婚让人担忧近期,有很多媒体报道称,李宇春瘫痪只能坐着轮椅。并配上了李宇春瘫在轮椅里的照片,这让很多李宇春的粉丝都十分揪心。然而不久之后,李宇春的父亲李升敏却出面对此事进行了辟谣,称李宇春最近章怀太子李贤我给历史打补丁翻开中国太子列表,唐高宗李治是唯一一个有四任太子的皇帝。1任太子李忠,2任太子李弘,3任太子李贤,4任太子李显。而这几位太子中,综合评价最高的其实是章怀太子李贤。李贤能政能文。政治朱标在世时,朱棣完全不敢有争夺太子之位的想法,他到底有多厉害说起明成祖朱棣,我们大家都知道,他是一位有着雄才大略的霸气君主,尤其在军事上成绩斐然。他在位时,为了打击元朝残党,一生时间里曾五次亲征蒙古,使蒙古部族向大明称臣纳贡。并向南平定了安京圈太子妃白百何,沉寂5年,带娃复出,她的反击悄无声息2017年,当红女星白百何被娱乐圈纪委卓伟爆料婚内出轨,消息一出,瞬间引爆全网。随着出轨新闻不断发酵,陈羽凡火速发表声明称两人早在2015年已协议离婚,白百何也站出来公开致歉,可是唐太宗李世民选太子,为什么选择了ampampquot最平庸ampampquot的李治呢李治真的很平庸吗很多人认为李志很平庸,但我认为能够手把手培养出一个女皇的人,绝对是有一定能力的,只能说李志的能力不是非常突出,但绝不是泛泛之辈。李治的竞争者们唐太宗李世民有不少儿子石家庄到底怎样了?一财记者实地探访并获得官方回应今日(11月14日)晚间,第一财经记者致电石家庄12345,确认石家庄自今日起取消常态化核酸点。与取消常态化核酸点配套的措施是,地铁和公交方面自15日起不再查验核酸有效期,除重点场提醒中老年人早餐少吃稀粥和面条,多吃这5样,精力充沛身体棒这段时间南北方的天气就像两个极端,北方的人还在清早刺骨的寒风中瑟瑟发抖时,南方人却还一直抱着空调与风扇不撒手。即使天气再怎么变化,都要对着自己好一点,尤其是众多的中老年人朋友们。老真正的友情,不排除性的吸引男女之间是否可能有真正的友谊?这是在实际生活中常常遇到常常引起争论的一个难题。即使在最封闭的社会里,一个人恋爱了,或者结了婚,仍然不免与别的异性接触和可能发生好感。这里不说泛爱者和摩根大通表示产能不足令苹果难以满足iPhone14的假期需求摩根大通表示,苹果中国iPhone工厂目前的处境肯定会影响出货量,但全部影响要等到工厂恢复正常产出后才能知道。富士康在中国郑州的装配厂正在应对疫情的影响。该工厂是苹果公司最大的iP生育津贴领取教程最高领取补贴3W大多数城市的生育保险领取要求是必须连续缴纳社保一年,如果断缴就无法领取,所以在备孕和怀孕期间,大家最好不要轻易辞职,防止生育津贴的领取。生育保险包括生育医疗费和生育津贴两部分,生育两孩子在幼儿园起争执,家长上门怒扇对方孩子耳光,并推倒其爷爷听说孩子在幼儿园被打了,家长将会是怎样的反应?不同的家长,做法自然也是不一样的,有的家长会马上找老师了解情况,有的家长会直接找对方家长讨要说法,也有的家长会让孩子自己去解决等等。不
河南一景区回应无人值守1元午餐是炒作坚持6年,收入比卖的多国庆节期间,河南洛阳老君山景区向游客推出无人值守1元午餐,获得了游客的一致好评。不过,也有网友质疑这种行为是炒作。4日上午,老君山景区工作人员周先生向上游新闻(报料邮箱baolia欧佩克拟日减产100万桶石油此举可能推高通胀激怒美国据路透社10月2日报道,石油输出国组织(欧佩克)消息人士周日说,欧佩克下周将考虑每天减产100多万桶。在油价下跌和数月来市场严重动荡的背景下,此次会议将于10月5日举行,上述情况促他曾担任我国第3任外交部长,促进了中美建交,儿子因贪污被判刑姬鹏飞,中国近代重要的外交官,为尼克松访华中美顺利建交,做出过巨大贡献。在国弱民贫的时代,他继承周总理的理念,推动了历史的走向,是当之无愧的国之栋梁。然而姬鹏飞的儿子却涉嫌违纪,被女子怀孕34周生下2。1斤儿子,2岁发现孩子不对劲已经酿成大错这是汤方定和她的儿子汤桐,对于儿子,汤方定一直愧疚于心。2015年7月,汤方定已经怀孕34周,洗完被子后提起来费了很大的劲儿,第二天一早就发现羊水破了,结果早产生下了儿子汤桐,孩子探古寻幽记丈量北京足迹之七千年法源寺历史千年的见证2000年(庚辰年),台湾著名作家李敖所著北京法源寺出版后,在海内外广泛流传,使法源寺名声大震,引来无数佛教信众以及寻幽探古的游客。北京法源寺位于北京宣武门朱德之女朱敏,为生存曾装哑2年,晚年称无法原谅母亲的叛变他曾是国家栋梁,为新中国的成立与发展做出了不可磨灭的贡献,他曾是人人都敬佩的开国大将,是我们心中永远都无法忘记的英雄。此人就是朱德,对于朱德而言,在这一生中,令他最后悔的一件事情就和电视上不一样,真实的清朝人嫁女儿是这样的在电视里面,古人嫁女儿的时候都是八抬大轿吹吹打打,场面好不热闹,在历史上,真实的嫁娶场面又是如何的呢?今天小编给大家分享一组老照片,记录的是清朝人嫁女儿的情景,看看和电视上的描述以北京1920年的10张照片1。1920年,北京行刑的现场,跪在地上的犯人被蒙上了双眼,一名警察用手枪顶在了犯人的后脑勺不远处。2。1920年,北京永定门,一群老大爷在一个小吃摊上吃饭。3。1920年,北京地北京房山金水湖,只此1地,就能满足11个郊区游需求头条创作挑战赛为响应号召,就地过节,减少出京,京郊游成了大家的首选。总结下来,上有老,下有小,拖家带口的,郊区游的需求大概有11个1)吃农家饭2)自助烧烤3)住特色民宿或农家院4)1955年被授予少将军衔的甘肃省籍将军定西占了三分之一1955年被授予少将军衔的甘肃省籍将军共9人定西地区占了三分之一中国工农红军成为历史上新型的人民军队,土地革命战争成为贫穷子弟出身的将军的摇篮。1955年被授予中国人民解放军少将军1644年李自成攻进北京,崇祯皇帝一封遗书,道出了自杀幕后的秘密1964年的正月初三,北京的天气有些寒冷,这天一大早,从皇宫的小东门进来一个人,他行踪诡秘,行色匆匆地来到了乾清宫。此时,崇祯皇帝在偏殿中正紧锁眉头,来回踱步等着这个人,他这次接见