0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用FIL后端部署XGBOOST模型

星星科技指导员 来源:NVIDIA 作者:William Hicks 2022-04-11 14:35 次阅读

深度神经网络在多个领域的成功促使人们对如何有效地部署这些模型以用于实际应用进行了大量思考和努力。然而,尽管基于树的模型(包括随机森林和梯度增强模型)在表格数据分析中 continued dominance 非常重要,而且对于解释性非常重要的用例非常重要,但加速部署基于树的模型(包括随机森林和梯度增强模型)的努力却没有受到太多关注。

随着 DoorDash 和 CapitalOne 等组织转向基于树的模型来分析大量关键任务数据,提供工具以帮助部署此类模型变得简单、高效和高效变得越来越重要。

NVIDIA Triton 推理服务器 提供在 CPUGPU 上部署深度学习模型的完整解决方案,支持多种框架和模型执行后端,包括 PyTorch 、 TensorFlow 、 ONNX 、 TensorRT 等。从 21.06.1 版开始,为了补充 NVIDIA Triton 推理服务器现有的深度学习功能,新的 林推理库( FIL )后端 提供了对树模型的支持,例如 XGBoost 、 LightGBM 、 Scikit-Learn RandomForest , RAPIDS 卡米尔森林 ,以及 Treelite 支持的任何其他型号。

基于 RAPIDS 森林推理库 (NVIDIA ),NVIDIA Triton 推理服务器 FIL 后端允许用户利用 NVIDIA Triton 推理服务器的相同特性,以达到 deep learning 模型的最优吞吐量/延迟,以在相同的系统上部署基于树的模型。

在本文中,我们将简要介绍NVIDIA Triton 推理服务器本身,然后深入介绍如何使用 FIL 后端部署 XGBOOST 模型的示例。使用 NVIDIA GPU ,我们将看到,我们不必总是在部署更精确的模型或保持延迟可控之间做出选择。

在示例笔记本中,通过利用 FIL 后端的 GPU 加速推理,在一台配备八台 V100 GPU 的 NVIDIA DGX-1 服务器上,我们将能够部署比 CPU 更复杂的欺诈检测模型,同时将 p99 延迟保持在 2ms 以下, still 每秒提供超过 400K 的推断( 630MB / s ),或者比 CPU 上的吞吐量高 20 倍。

NVIDIA Triton 推理服务器

NVIDIA Triton 推理服务器为 machine learning 模型的实时服务提供了完整的开源解决方案。 NVIDIA Triton 推理服务器旨在使性能模型部署过程尽可能简单,它为在实际应用中尝试部署 ML 算法时遇到的许多最常见问题提供了解决方案,包括:

多框架 支持 : 支持所有最常见的深度学习框架和序列化格式,包括 PyTorch 、 TensorFlow 、 ONNX 、 TensorRT 、 OpenVINO 等。随着 FIL 后端的引入, NVIDIA Triton 推理服务器还提供对 XGBoost 、 LightGBM 、 Scikit Learn / cuML RandomForest 和任何框架中的 Treelite 序列化模型的支持。

Dynamic Batching : 允许用户指定一个批处理窗口,并将在该窗口中收到的任何请求整理成更大的批处理,以优化吞吐量。

多种查询类型 :优化多种查询类型的推理:实时、批处理、流式,还支持模型集成。

使用 NVIDIA 管道和集合 推理服务器部署的 管道和集合 Triton 型号可以通过复杂的管道或集成进行连接,以避免客户端和服务器之间,甚至主机和设备之间不必要的数据传输。

CPU 模型执行 : 虽然大多数用户希望利用 GPU 执行带来的巨大性能提升,但 NVIDIA Triton 推理服务器允许您在 CPU 或 GPU 上运行模型,以满足您的特定部署需求和资源可用性。

Dynamic Batching [VZX337 ]如果NVIDIA Triton 推理服务器不提供对部分管道的支持,或者如果需要专门的逻辑将各种模型链接在一起,则可以使用自定义 PythonC++后端精确地添加所需的逻辑。

Run anywhere :在扩展的云或数据中心、企业边缘,甚至在嵌入式设备上。它支持用于人工智能推理的裸机和虚拟化环境(如 VMware vSphere )。

Kubernetes 和 AI 平台支持 :

作为 Docker 容器提供,并可轻松与 Kubernetes 平台集成,如 AWS EKS 、谷歌 GKE 、 Azure AKS 、阿里巴巴 ACK 、腾讯 TKE 或红帽 OpenShift 。

可在 Amazon SageMaker 、 Azure ML 、 Google Vertex AI 、阿里巴巴 AI 弹性算法服务平台和腾讯 TI-EMS 等托管 CloudAI 工作流平台上使用。

Enterprise support : NVIDIA AI 企业软件套件包括对 NVIDIA Triton 推理服务器的全面支持,例如访问 NVIDIA AI 专家以获得部署和管理指导、安全修复和维护发布的优先通知、长期支持( LTS )选项和指定的支持代理。

图 1:NVIDIA Triton 推理服务器架构图。

为了更好地了解如何利用 FIL 后端的这些特性来部署树模型,我们来看一个特定的用例。

示例: FIL 后端的欺诈检测

为了在 NVIDIA Triton 推理服务器中部署模型,我们需要一个配置文件,指定有关部署选项和序列化模型本身的一些细节。模型当前可以按以下任意格式序列化:

XGBoost 二进制格式

XGBoost JSON

LightGBM 文本格式

Treelite 二进制检查点文件

在下面的笔记本中,我们将介绍部署欺诈检测模型过程的每个步骤,从培训模型到编写配置文件以及优化部署参数。在此过程中,我们将演示 GPU 部署如何在保持最小延迟的同时显著提高吞吐量。此外,由于 FIL 可以轻松地扩展到非常大和复杂的模型,而不会大幅增加延迟,因此我们将看到,对于任何给定的延迟预算,在 GPU 上部署比 CPU 上更复杂和准确的模型是可能的。

笔记本:

抱歉,出了点问题。 Reload

抱歉,我们无法显示此文件。

抱歉,此文件无效,无法显示。

查看器需要 iframe 。

view raw正如我们在本笔记本中所看到的, NVIDIA Triton 推理服务器的 FIL 后端允许我们使用序列化的模型文件和简单的配置文件轻松地为树模型提供服务。如果没有 NVIDIA Triton 推理服务器,那些希望服务于其他框架中的 XGBoost 、 LightGBM 或随机林模型的人通常会求助于吞吐量延迟性能差且不支持多个框架的手动摇瓶服务器。 NVIDIA Triton 推理服务器的动态批处理和并发模型执行自动最大化吞吐量,模型分析器有助于选择最佳部署配置。手动选择可能需要数百种组合,并且可能会延迟模型的展开。有了 FIL 后端,我们可以为来自所有这些框架的模型提供服务,而无需定制代码和高度优化的性能。

结论

使用 FIL 后端,NVIDIA Triton 推理服务器现在提供了一个高度优化的实时服务的森林模型,无论是在他们自己或旁边的深度学习模型。虽然支持 CPU 和 GPU 执行,但我们可以利用 GPU 加速来保持低延迟和高吞吐量,即使对于复杂的模型也是如此。正如我们在示例笔记本中看到的,这意味着即使延迟预算很紧,也不需要通过退回到更简单的模型来降低模型的准确性。

如果您想尝试部署自己的 XGBOST 、 LITGBM 、 SKEXCEL 或 CUML 森林模型进行实时推理,那么您可以很容易地从 Docker container 、NVIDIA 的 GPU 优化的 AI 软件目录中拉取 NVIDIA NVIDIA AI 企业套件 推理服务器 Docker container 。您可以在 FIL 后端文档 中找到入门所需的一切。如果准备部署到 Kubernetes 集群, NVIDIA Triton 还提供了 Helm charts 示例。对于希望在实际工作负载下试用 Triton 推理服务器的企业, NVIDIA LaunchPad 计划提供了一组在 Triton 中使用 Triton 的精心策划的实验室。

Krieger 说:“ STAR 的独特之处在于,它是第一个在软组织中规划、调整和执行手术计划的机器人系统,只需极少的人工干预。”。

关于作者

William Hicks 是NVIDIA RAPIDS 团队的高级软件工程师。希克斯拥有布兰代斯大学物理学硕士学位和布朗大学文学艺术硕士学位。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4680

    浏览量

    102103
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4507

    浏览量

    127495
  • 服务器
    +关注

    关注

    12

    文章

    8325

    浏览量

    83424
收藏 人收藏

    评论

    相关推荐

    模型端侧部署加速,都有哪些芯片可支持?

    电子发烧友网报道(文/李弯弯)大模型在端侧部署是指将大型神经网络模型部署在移动终端设备上,使这些设备能够直接运行这些模型,从而执行各种人工智
    的头像 发表于 05-24 00:14 2643次阅读

    基于stm32h743IIK在cubeai上部署keras模型模型输出结果都是同一组概率数组,为什么?

    基于stm32h743IIK,在cubeai上部署keras模型模型输出结果都是同一组概率数组,一点也搞不明白,看社区也有相同的问题,但没有解决方案
    发表于 05-20 08:18

    使用CUBEAI部署tflite模型到STM32F0中,模型创建失败怎么解决?

    看到CUBE_AI已经支持到STM32F0系列芯片,就想拿来入门嵌入式AI。 生成的模型很小,是可以部署到F0上的,但是一直无法创建成功。 查阅CUBE AI文档说在调用create函数前,要启用
    发表于 03-15 08:10

    边缘侧部署模型优势多!模型量化解决边缘设备资源限制问题

    电子发烧友网报道(文/李弯弯)大模型的边缘部署是将大模型部署在边缘设备上,以实现更快速、更低延迟的计算和推理。边缘设备可以是各种终端设备,如智能手机、平板电脑、智能家居设备等。通过将大
    的头像 发表于 01-05 00:06 2044次阅读

    【爱芯派 Pro 开发板试用体验】模型部署(以mobilenetV2为例)

    啊抱歉,上周得了一周的流感,人才活过来。。本来还想研究下sam它是怎么部署的,但是时间好像有点来不急,就讲个最简单的efficientNet吧。但是会仔细讲下使用模型部署,实际也就是推理引擎的全过程
    发表于 12-10 16:34

    详解XGBoost 2.0重大更新!

    另外还有一点是基于树的模型可以轻松地可视化和解释,这进一步增加了吸引力,特别是在理解表格数据结构时。通过利用这些固有的优势,基于树的方法——尤其是像XGBoost这样的高级方法——非常适合处理数据科学中的各种挑战,特别是在处理表格数据时。
    的头像 发表于 11-14 16:22 313次阅读
    详解<b class='flag-5'>XGBoost</b> 2.0重大更新!

    人工智能大模型、应用场景、应用部署教程超详细资料

    人工智能是IC行业近几年的热词,目前此技术已经有很多成熟的模型和落地案例。在此跟大家做个分享,更多详细资料,请自行搜索:【展锐坦克邦】,坦克邦-智算天地集算法模型部署说明于一体,为广大客户提供了
    发表于 11-13 14:49

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 开发者实战》和《基于 OpenVINO C++ API 部署 RT-DETR 模型 | 开发者实战》,在该文章中,我们基于 Op
    的头像 发表于 11-10 16:59 473次阅读
    基于OpenVINO C# API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    PODsys:大模型AI算力平台部署的开源“神器”

    模型是通用人工智能的底座,但大模型训练对算力平台的依赖非常大。大模型算力平台是指支撑大模型训练和推理部署的算力基础设施,包括业界最新的加速
    的头像 发表于 11-08 09:17 555次阅读
    PODsys:大<b class='flag-5'>模型</b>AI算力平台<b class='flag-5'>部署</b>的开源“神器”

    XGBoost 2.0介绍

    XGBoost是处理不同类型表格数据的最著名的算法,LightGBM 和Catboost也是为了修改他的缺陷而发布的。近日XGBoost发布了新的2.0版,本文除了介绍让XGBoost的完整历史以外
    的头像 发表于 11-03 10:12 298次阅读
    <b class='flag-5'>XGBoost</b> 2.0介绍

    如何本地部署模型

    近期,openEuler A-Tune SIG在openEuler 23.09版本引入llama.cpp&chatglm-cpp两款应用,以支持用户在本地部署和使用免费的开源大语言模型,无需联网也能使用!
    的头像 发表于 10-18 11:48 2027次阅读
    如何本地<b class='flag-5'>部署</b>大<b class='flag-5'>模型</b>

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备上

    有很多方法可以将经过训练的神经网络模型部署到移动或嵌入式设备上。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    发表于 08-02 06:43

    模型部署框架FastLLM实现细节解析

    接着 大模型部署框架 FastLLM 简要解析 这篇文章首先梳理了一下FastLLM的调用链和关键的数据结构,然后解析了 FastLLM 的一些实现细节和CPU/GPU后端实现采用的优化技巧。
    的头像 发表于 07-27 10:48 1023次阅读
    大<b class='flag-5'>模型</b><b class='flag-5'>部署</b>框架FastLLM实现细节解析

    XGBoost中无需手动编码的分类特征

    XGBoost 中无需手动编码的分类特征
    的头像 发表于 07-05 16:30 403次阅读

    如何部署ML模型到Google云平台

    实践中的机器学习:在 Google 云平台上部署 ML 模型
    的头像 发表于 07-05 16:30 476次阅读
    如何<b class='flag-5'>部署</b>ML<b class='flag-5'>模型</b>到Google云平台