专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

以AnimatedDrawingsAPP为例,用TorchS

  内容导读
  上节介绍了TorchServe模型部署调优的5个步骤,本节以AnimatedDrawingsAPP为例,实际演示TorchServe的模型优化效果。
  本文首发自微信公众号:PyTorch开发者社区
  去年,Meta凭借AnimatedDrawings应用程序,用AI让儿童手工画动了起来,静态简笔画秒变动画
  AnimatedDrawings制作流程
  AnimatedDrawings动态效果
  Demo传送门:
  https:sketch。metademolab。com
  这对于AI来说并不简单。AI的设计初衷是为了处理真实世界中的图像,儿童绘画与真实图像相比,形态和风格迥异,更具有复杂性及不可预测性,因此先前的AI系统可能并不适用于处理AnimatedDrawings类似的任务。
  本文将以AnimatedDrawings为例,详细讲解如何借助TorchServe,对即将部署到生产环境中的模型进行调优。
  4大因素影响生产环境中的模型调优
  下面的工作流程展示用TorchServe在生产环境中进行模型部署的总体思路。
  用TorchServe为生产环境中的模型调优的基本流程
  大多数情况下,部署模型到生产环境中是基于吞吐量(throughput)或延迟(latency)服务级别协议(SLA)进行优化的。
  通常实时应用程序(realtimeapplication)更关心延迟,而离线应用程序(offlineapplication)则更关心吞吐量。
  对于部署到生产环境中的模型,影响性能的因素众多,本文重点介绍4个:
  1。Modeloptimizations
  这是将模型部署到生产环境的前置步骤,包括量化、剪枝、使用IRgraphs(PyTorch中的TorchScript)、融合内核及其他众多技术。目前,TorchPrep中提供很多类似技术作为CLI工具。
  更多关于Torchprep的相关简介,请访问:
  https:github。commsaroufimtorchprep
  2。Batchinference
  它是指将多个input输入到一个模型中,在训练过程中会频繁用到,对于在推理阶段控制成本也很有帮助。
  硬件加速器对并行进行了优化,batching有助于充分利用计算能力,这经常导致更高的吞吐量。推理的主要区别在于无需等待太久,就能从客户端获得一个batch,也就是我们常说的动态批处理(dynamicbatching)。
  3。NumbersofWorkers
  TorchServe通过worker部署模型。TorchServe中的worker属于Python进程,拥有用于推理的模型权重副本。worker数量太少,无法从足够的并行性中受益;worker数量太多,又会导致workercontention及端到端性能降低。
  4。Hardware
  根据模型、应用程序及延迟、吞吐量预算,从TorchServe、CPU、GPU、AWSInferentia中选择一个合适的硬件。
  有些硬件配置是为了获取最好的class性能,有些是为了更符合预期的成本管控。实验表明,batchsize较大时更适合选用GPU;batchsize较小或要求低延迟时,选用CPU和AWSInferentia则更具备成本优势。
  Tips分享:TorchServe性能调优的注意事项
  开始之前,我们先分享一些用TorchServe部署模型、获得最佳性能的Tips。
  学习PyTorch官方教程:
  https:pytorch。orgtutorials
  硬件选择与模型优化选择也是紧密联系的。
  模型部署的硬件选择,与延迟、吞吐量预期以及每次推理的成本密切相关。
  由于模型大小和应用的不同,CPU的生产环境通常无法负担类似计算机视觉模型的部署,大家可以注册使用OpenBayes。com,注册即送3小时RTX3090,每周还赠送10小时RTX3090,满足一般的GPU需求。
  此外,最近添加到TorchServe中的IPEX等优化,使得这类模型的部署成本更低、更能被CPU负担。
  IPEX优化模型部署详见:
  https:pytorch。orgtutorialsintermediatetorchservewithipex。html
  TorchServe中的worker属于Python进程,可以提供并行,应谨慎设定worker数量。默认情况下TorchServe启动的worker数量等于主机上的VCPU或可用GPU数量,这可能会给TorchServe启动增加相当长的时间。
  TorchServe公开了一个configproperty来设置worker的数量。为了让多个worker提供高效并行并避免它们竞争资源,建议在CPU和GPU上设置以下baseline:
  CPU:在handler中设置torch。setnumthread(1)。然后将workers的数量设置成numphysicalcores2。但最好的线程配置可以通过利用IntelCPUlauncherscript来实现。
  GPU:可用GPU的数量可以通过config。properties中的numbergpus进行设置。TorchServe使用循环分配worker到GPU。建议:Numberofworker(NumberofavailableGPUs)(NumberofUniqueModels)。注意,preAmpere的GPU不提供任何与MultiInstanceGPU的资源隔离。
  Batchsize直接影响延迟和吞吐量。为了更好地利用计算资源,需要增加batchsize。在延迟和吞吐量之间存在tradeoff;较大的batchsize可以提高吞吐量,但也会导致较高的延迟。
  TorchServe中有两种设置batchsize的方式,一种是通过config。properties中modelconfig进行,另一种使用ManagementAPI来registeringmodel。
  下节展示如何用TorchServe的benchmarksuite来决定模型优化中硬件、worker和batchsize的最佳组合。
  认识TorchServeBenchmarkSuite
  要使用TorchServebenchmarksuite,首先需要一个archivedfile,即上文提过的。mar文件。该文件包含模型、handler和其他所有用来加载和运行推理的其他artifacts。AnimatedDrawingAPP使用Detectron2的MaskrCNN目标检测模型
  运行benchmarksuite
  TorchServe中的Automatedbenchmarksuite可以在不同batchsize和worker设置下,对多个模型进行基准测试,并输出报告。
  了解Automatedbenchmarksuite:
  https:github。compytorchservetreemasterbenchmarksautobenchmarkingwithapachebench
  开始运行:gitclonehttps:github。compytorchserve。gitcdservebenchmarkspipinstallrrequirementsab。txtaptgetinstallapache2utils
  在yaml文件中配置模型level设置:Modelname:eagermode:benchmarkengine:aburl:Pathto。marfileworkers:14batchdelay:100batchsize:1248requests:10000concurrency:10input:Pathtomodelinputbackendprofiling:Falseexecenv:localprocessors:cpugpus:all
  这个yaml文件将被benchmarkconfigtemplate。yaml引用。Yaml文件中包括用于生成报告的其他设置,也可以用AWSCloud查看logs。pythonbenchmarksautobenchmark。pyinputbenchmarkconfigtemplate。yaml
  运行benchmark,结果被保存在一个csv文件中,可以在tmpbenchmarkabreport。csv或完整报告tmptsbenchmarkreport。md中找到。
  结果包括TorchServe平均延迟、模型P99延迟(modelP99latency)、吞吐量、并发(concurrency)、请求数、handlertime及其他metrics。
  重点跟踪以下影响模型调优的因素:并发、模型P99延迟、吞吐量。
  这些数字要与batchsize、使用的设备、worker数量以及是否做了模型优化结合起来看。
  这个模型的latencySLA已经设置为100ms,这是个实时应用程序,延迟是很重要的问题,在不违反latencySLA的情况下,吞吐量最好尽可能高。
  通过搜索空间,在不同的batchsize(132)、worker数量(116)和设备(CPU,GPU)上运行一系列实验,总结出最好的实验结果,见下表:
  这个模型在CPU上的延迟、batchsize、并发和worker数量等方面进行的所尝试,都没有到SLA,实际上延迟降低了13倍。
  将模型部署移动到GPU上,可以立即将延迟从305ms降到23。6ms。
  可以为模型做的最简单的优化之一,就是把它的精度降低到fp16,一行代码(model。half()),可以减少32的模型P99延迟,并增加几乎相同数量的吞吐量。
  模型优化方法还有将模型转化为TorchScript并使用optimationforinference或其他技巧(包括onnx或tensortruntimeoptimizations)进行优化,这些优化利用了aggressivefusions。
  在CPU和GPU上,设置numberofworkers1对于本文的case效果最好。
  将模型部署到GPU,设置numberofworkers1,batchsize1,吞吐量增加12倍相比于CPU上降低13倍延迟。
  将模型部署到GPU,设置model。half()、numberofworkers1、batchsize8,可以获得吞吐量和可承受的延迟方面的最佳结果。与CPU相比,吞吐量增加25倍,延迟仍然满足SLA(94。4ms)。
  注意:如果正在运行benchmarksuite,请确保设置了适当的batchdelay,将并发性的请求设置为与batchsize成比例的数字。这里的并发性是指发送到服务器的并发请求的数量。
  总结
  本文介绍了TorchServe在生产环境中调优模型的注意事项及性能优化方法TorchServebenchmarksuite,使用户对模型优化、硬件选择和总体成本的可能选择有了更深入的了解。
  推荐用户:
  获取13小时RTX3090算力资源:
  https:openbayes。com
  查看用PyTorch进行深度学习在线教程:
  https:openbayes。comdocstutorialjupyterlabdeeplearningwithpytorch
  关注PyTorch开发者社区公众号,获取更多PyTorch技术更新、最佳实践及相关资讯!

最近怀孕了,本来吃的就少,怎么给胎儿补充营养?头条创作挑战赛导读相信很多刚怀孕的准妈妈都有各种各样的疑问,刚怀孕应该如何养胎?胎儿成长的各个阶段需要什么营养?很多准妈妈也担心,吃多了会不会对胎儿产生不利影响,吃太多会不会肚子一ShowMaker如果与GEN这一战能让人记住,这将是一份巨大的荣誉今年的S12八强赛已经全部结束了,最终四支队伍成功击败对手会师半决赛,而对于S10的冠军战队DK来说,他们与GEN的那一战真的是一场可以载入英雄联盟世界赛历史的,因为确定非常精彩,佐力药业2022年前三季度净利润2。04亿元同比增长55。08中证智能财讯佐力药业(300181)10月25日披露2022年第三季度报告。2022年前三季度,公司实现营业总收入13。44亿元,同比增长24。66归母净利润2。04亿元,同比增长被亲弟弟半夜摸胸,父母的回答,揭开了性教育最不堪的一幕这两天,在业主群里发生这样一件事一位56岁大的小男孩在电梯里掀陌生女孩的裙子。女孩有点生气,当场要男孩奶奶教育自己的孙子。结果奶奶却一脸无所谓,不责骂也不教育孩子年纪小,不懂事,你新生儿奶粉冲泡有讲究别再做错了新手妈妈必看冲奶粉看起来是件很小的事,但对于新生儿来说却很重要,如果奶粉冲泡不正确,不仅影会造成奶粉营养流失还会影响吸收,对新生儿娇嫩的肠胃也不友好。新生儿奶粉冲泡误区先加奶粉后加水没有放在稳老人带孙子守住2条底线,否则吃力不讨好,65岁老人的做法被大赞导语老人是否应该帮忙带孙子?这个话题一直围绕在两代人身上,有的人说,我辛苦一辈子好不容易歇下来,让我再去带孩子,我不愿意,我也有自己的生活,再说了谁生的孩子谁带,我的任务已经完成了双十一想买台便宜的256GB手机,真就这么难吗?如何买到一款好手机?除了手机本身以外,内存选择也很关键,建议大家直接入手256G以上的手机。这时候肯定有不少朋友问我,如何才能买到价格合理的大内存手机,毕竟几百上千块的加价也不能完估值超千亿,造车三傻阵营硬生生挤进一个埃安?文创头条,作者孙小丽,编辑六耳重点数据显示,9月新能源汽车产业共发生19起投融事件,较8月份减少了38。7,且最高金额仅达13。7亿元。从细分领域来看,融资主要集中在动力电池新能源走路路过被传染一说的疑惑搜索了一下,2020年时有文章说沙特阿拉伯的阿卜杜拉国王科技大学的研究人员构建了一个模型,模拟含病毒的气溶胶扩散实验,结果如下可以发现,随着中心位置的拉大,病毒浓度迅速下降。这一点今日尾盘主力资金流入前100股,净流入排名一览表股票简称现价(元)涨跌幅()尾盘流入全天流向22。10。24工商银行4。360。231。09亿28130。95亿隆基绿能45。883。419094。43万9249。70万盈方微9。周二这三个板块或将迎来报复性上涨一第三代半导体概念板块。周一第三代半导体概念板块走势相对不错,周二或迎来更大机会。在科技领域上我们必须要走出自己的路,国产替代仍然是主旋律。这个产业是国家着力攻关和发展的项目,是科
飙酷车神2开发者或将于21公布续作消息自从象牙塔工作室发行飙酷车神2以来已经过去了将近5年,这款游戏在发行后的更新,赛季和外观装扮方面获得了广泛的支持。开发商现在将于北京时间2月1日凌晨1点公布一些新内容,以回应之前预传奇M国际服正式上线时间,传奇M国际服公测传奇M是以战斗为主要玩法的mmorpg游戏,有很多玩家询问传奇M国际服正式上线时间,以及传奇M国际服公测什么时候开始,想等到开测后第一时间去游玩,抢占搬砖的先机,下面小编为大家带来信号两位独立游戏人花了八年时间打造的一场复古盛宴前不久,一款名为信号的独立游戏获得了很多玩家的好评赞誉。这款游戏最大的特色就是复古,高度还原了过去老生化危机系列和寂静岭系列的那种风格。从操作到谜题再到音乐,游戏中处处可以感受到9瓦朗谢纳VS拉瓦勒拉瓦尔将迎战瓦朗谢纳。自从输给圣艾蒂安后,他们的状态一直很好,比瓦伦西安更接近积分榜的上半区。在这场比赛中,支持客场球队至少拿到一分是最好的选择。拉瓦尔在联赛中取得了几个不错的成绩这类家庭,通过第三代试管婴儿有多大概率能得到健康宝宝?有任何疑问批评及指导,请毫不犹豫地私信作者!相互易位相互易位(reciprocaltranslocation)是一种常见的染色体结构异常,最先由Sturtevant于1921年描述国乒3消息蒯曼参加wtt支线赛,许昕惹争议,世青赛冠军一轮游最近国乒整体大队伍忙个不断,一部分主力在国内参加集训以更好的状态迎接后续的世乒赛。另外一部分年轻的主力则是被教练组安排到国外参加WTT的常规挑战赛,通过以赛代练提升他们的水平。在这聊城籍轮椅网球运动员朱珍珍再创佳绩收获第二个大满贯双打亚军来源聊城日报聊城新闻网朱珍珍在比赛中。受访者供图本报讯(记者马永伟)春节期间,聊城籍轮椅网球运动员朱珍珍在澳网赛场再创佳绩。在1月27日结束的澳网轮椅网球女双决赛中,朱珍珍和搭档日海港选帅已有心仪人选!梅州有意引进廖力生,能否成行看泰山态度2023赛季中超转会窗口将在2月1日开启,部分球队已经开始了引援调整工作。媒体人透露,梅州客家有意引进廖力生,山东泰山正在考虑放行。此外,海港外援恩迪亚耶正式租借加盟土超球队代米尔我的王子来了,给我去除你不够的魔咒自我评判的女巫给我施了你不够魔咒你不够好你不够努力你不够精进你不够坚持你不够聪明你不够成熟你不够有才华长长一串的你不够无穷无尽盘旋缠绕变成一个大锅盖落在我的头顶我一天24小时顶着它狂飙全身而退的真正大佬其实狂飙里面真正的隐藏大佬是黄老。最后还能全身而退让人细思极恐。无论是与赵立冬,高启强还有孟德海都有千丝万缕的联系。1。赵立冬的老领导2。高启强真正的靠山3。孟德海的舅舅以及靠山下狂飙中未填的5个大坑狂飙这部剧可谓打败了所有春节档,从小孩到老人都爱看的一部剧,也让很多有演技的好演员有了一个展示自己的机会,可是编剧还有5个坑没有填。安长林被谁打了黑枪?安长林曾经提到,自己身上有两
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网