7-3 推理框架的辅助增值功能 不属于框架的核心功能,但让用户用起来比较舒服的一些东西 这里还是用 Triton 举例,妥妥的业界标杆 7-3-1 Model Analyzer Model Analyzer是一个 CLI 工具,可以帮助模型训练者在给定的硬件上找到最优的模型配置,并且可以生成报告,帮助你了解不同参数设置,或者其他的 trade-off 操作下,模型的性能变化。 首先,对于 Triton-inference-server 支持的模型类型,modelanalyzer 也都是支持的,如下所示: Single/Multi-Model Ensemble BLS LLM(大语言模型) 此外,modelanalyzer 通过参数搜索完成最优模型配置的寻找,对于参数的搜索,model
不属于框架的核心功能,但让用户用起来比较舒服的一些东西
这里还是用 Triton 举例,妥妥的业界标杆
Model Analyzer是一个 CLI 工具,可以帮助模型训练者在给定的硬件上找到最优的模型配置,并且可以生成报告,帮助你了解不同参数设置,或者其他的 trade-off 操作下,模型的性能变化。
首先,对于 Triton-inference-server 支持的模型类型,model_analyzer 也都是支持的,如下所示:
此外,model_analyzer 通过参数搜索完成最优模型配置的寻找,对于参数的搜索,model analyzer 集成了几种 Search Modes,帮助我们简化调参过程
参考链接:https://github.com/triton-inference-server/model_analyzer/blob/main/docs/config_search.md
Model Navigator是一个推理工具包,简化了模型的移动工作,并且提供了很多 pipeline示例
它可以自动执行几个关键步骤,包含模型导出、转换,性能测试和分析,并且可以将生成的优化模型轻松的部署到 Triton Inference Server上,下面简单介绍一下它的 Features
使用 nav.Module包裹模型组件,就可以在数据上完成端到端的优化。例如下面我们准备一个简单的数据加载器:import model_navigator as nav from transformers.modeling_outputs import BaseModelOutputWithPooling from diffusers import DPMSolverMultistepScheduler, StableDiffusionPipeline def get_pipeline(): # Initialize Stable Diffusion pipeline and wrap modules for optimization pipe = StableDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1") pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) pipe = pipe.to("cuda") pipe.text_encoder = nav.Module( pipe.text_encoder, name="clip", output_mapping=lambda output: BaseModelOutputWithPooling(**output), ) pipe.unet = nav.Module( pipe.unet, name="unet", ) pipe.vae.decoder = nav.Module( pipe.vae.decoder, name="vae", ) return pipe
接着,我们执行模型优化并显式的加载最高性能版本def get_dataloader(): # 第一个元素是 batch size return [(1, "a photo of an astronaut riding a horse on mars")]
同样的,也可以使用 pipeline 直接进行优化模型的推理pipe = get_pipeline() dataloader = get_dataloader() nav.optimize(pipe, dataloader) nav.load
pipe.to("cuda") images = pipe(["a photo of an astronaut riding a horse on mars"]) image = images[0][0] image.save(https://www.aiknowledge.cn/images/大模型/LLM推理和部署理论与实践/"an_astronaut_riding_a_horse.webp)