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

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

3天内不再提示

使用Cortex将PyTorch模型部署到生产中

电子设计 来源:电子设计 作者:电子设计 2020-12-10 20:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

从 NLP 到计算机视觉都可以通过 Cortex来非常方便的部署PyTorch模型。
作者:Caleb Kaiser
编译:ronghuaiyang
首发:AI公园公众号

Using PyTorch Models in Production with Cortex

该框架的 python 风格,其学习曲线的温和性,以及它对快速和简单原型的方便实现,使 PyTorch 明显成为研究人员的最爱。因此,它正在推动一些最酷的机器学习项目:

Transformers,Hugging Face 生成的广泛流行的自然语言处理(NLP)库,是建立在 PyTorch 上的。

Selene,生物前沿 ML 库,建在 PyTorch 上。

CrypTen,这个热门的、新的、关注隐私的机器学习框架是建立在 PyTorch 上的。

在 ML 的几乎任何领域,从计算机视觉到 NLP 再到计算生物学,你都会发现 PyTorch 在前沿为实验提供能量。

然而,最自然的问题是如何将这些实验合并到软件中。如何从“跨语言语言模型”转换为谷歌翻译?

在这篇博客文章中,我们将了解在生产环境中使用 PyTorch 模型意味着什么,然后介绍一种允许部署任何 PyTorch 模型以便在软件中使用的方法。

在生产中使用 PyTorch 意味着什么?

根据生产环境的不同,在生产环境中运行机器学习可能意味着不同的事情。一般来说,在生产中有两类机器学习的设计模式:

通过推理服务器提供一个预测 API。这是在通用软件开发中使用的标准方法,即不是移动软件或独立设备。

嵌入。将你的模型直接嵌入到你的应用程序中。这通常用于机器人和独立设备,有时也用于移动应用程序。

如果你打算直接将你的模型嵌入到你的应用程序中,那么你应该看看 PyTorch 的 TorchScript。使用即时编译,PyTorch 可以将 Python 编译成不需要 Python 解释器就可以运行的 TorchScript,这对于资源受限的部署目标(比如移动设备)非常有用。

在大多数情况下,你会使用模型服务器。今天你看到的许多 ML 应用程序 — 从你最喜欢的流媒体服务背后的推荐引擎到在线搜索栏中的自动完成功能—都依赖于这种部署形式,更确切地说,依赖于实时推理

在实时推理中,一个模型通常被部署为一个微服务(通常是一个 JSON API),通过它,一个软件可以查询模型并接收预测。

让我们以 Facebook 人工智能的 RoBERTa 为例,一个领先的 NLP 模型。它通过分析去掉一个单词的句子(或“屏蔽词”),并猜测屏蔽词是什么,来进行推断。例如,如果你要使用一个预先训练好的 RoBERTa 模型来猜测一个句子中的下一个单词,你要使用的 Python 方法是这样的,非常简单:

roberta.fill_mask(input_text + " ")

事实证明,在序列中预测缺失的单词正是 autocomplete 等功能背后的功能。要在应用程序中实现 autocomplete,可以将 RoBERTa 部署为 JSON API,然后在应用程序中使用用户的输入在 RoBERTa 节点上进行查询。

设置 JSON API 听起来相当简单,但是将模型部署为微服务实际上需要大量的基础设施工作。

你需要自动控制流量的波动。你需要监控你的预测。你需要处理模型更新。你需要了解日志记录。非常多的工作。

那么,问题是如何将 RoBERTa 部署为一个 JSON API,而不需要手动滚动所有这些自定义基础设施?

将 PyTorch 模型与 Cortex 一起投入生产

你可以使用 Cortex 自动化部署 PyTorch 模型所需的大部分基础设施工作,这是一个将模型作为 api 部署到 AWS 上的开源工具。这篇文章并不是一个完整的 Cortex 使用指南,只是一个高层次的 Cortex 使用方法,你所需要的是:

提供推断的 Python 脚本

定义你的 API 的配置文件

Cortex CLI 启动你的部署

这种方法并不局限于 RoBERTa。想要为你的图像自动生成 alt 文本,使你的网站更容易访问?你可以部署一个 AlexNet 模型,使用 PyTorch 和 Cortex 来标记图像。

那语言分类器呢,比如 Chrome 用来检测页面不是用默认语言写的那个?fastText 是这个任务的完美模型,你可以使用 PyTorch 和 Cortex 部署它。

使用 Cortex,你可以将许多由 PyTorch 支持的 ML 特性添加到你的应用程序中进行实时推断。

PyTorch 用到生产中

有超过 25 个研究模型储存在 PyTorch Hub],从 NLP 到计算机视觉。所有这些都可以通过 Cortex 来实现,使用的过程和我们刚才演示的一样。

PyTorch 团队无疑在他们的路线图上有更多的以生产为中心的特性,但是仅仅看看到目前为止所取得的进展,很明显 PyTorch 不是为生产而构建的框架的观点已经过时了。

关注图像处理,自然语言处理,机器学习等人工智能领域。
欢迎关注微信公众号

审核编辑 黄昊宇

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

    关注

    1813

    文章

    49746

    浏览量

    261603
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14706
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    1 GHz Arm® Cortex®-M85 MCU上部署AI模型

    本文手把手带你实现实时人脸检测,并将完整流程开源。打通从数据采集、模型训练、量化转换,集成部署的每一个环节。我们已为你准备好了数据集、训练代码、转换工具链与RT-Thread工程。
    的头像 发表于 12-02 21:04 7834次阅读
    1 GHz Arm® <b class='flag-5'>Cortex</b>®-M85 MCU上<b class='flag-5'>部署</b>AI<b class='flag-5'>模型</b>

    RA8P1部署ai模型指南:从训练模型部署 | 本周六

    在嵌入式边缘AI中,如何把“训练好的模型”稳定地“跑在板子上”,决定了项目能否落地。我们带你基于RA8P1平台,跑通从数据准备、模型训练、量化转换,工程部署的整个流程,帮助你快速实现
    的头像 发表于 11-20 18:06 1650次阅读
    RA8P1<b class='flag-5'>部署</b>ai<b class='flag-5'>模型</b>指南:从训练<b class='flag-5'>模型</b><b class='flag-5'>到</b><b class='flag-5'>部署</b> | 本周六

    如何训练好的神经网络模型部署蜂鸟e203开发板上

    本帖欲分享如何训练好的神经网络模型部署蜂鸟e203开发板上。 1. 加载TFLite模型 std::unique_ptr interp
    发表于 10-22 08:04

    DeepSeek模型如何在云服务器上部署

    随着大型语言模型(LLM)的应用日益普及,许多开发者和企业希望像DeepSeek这样的优秀模型部署自己的云服务器上,以实现私有化、定制化
    的头像 发表于 10-13 16:52 572次阅读

    vision board部署模型openmv的代码导致连接超时怎么解决?

    在env终端中勾选了tiflte support后烧录mdk板子上后就开始显示连接不到 无法部署模型
    发表于 09-19 07:59

    Arm方案 基于Arm架构的边缘侧设备(树莓派或 NVIDIA Jetson Nano)上部署PyTorch模型

    本文将为你展示如何在树莓派或 NVIDIA Jetson Nano 等基于 Arm 架构的边缘侧设备上部署 PyTorch 模型
    的头像 发表于 07-28 11:50 2507次阅读

    在env终端中勾选了tiflte support后烧录mdk板子上后就开始显示连接不到,无法部署模型怎么解决?

    在env终端中勾选了tiflte support后烧录mdk板子上后就开始显示连接不到 无法部署模型
    发表于 06-11 08:11

    如何使用Docker部署模型

    随着深度学习和大模型的快速发展,如何高效地部署这些模型成为了一个重要的挑战。Docker 作为一种轻量级的容器化技术,能够模型及其依赖环境
    的头像 发表于 05-24 16:39 802次阅读

    电机高效再制造在企业生产中的应用

    高效再制造在企业生产中的应用.pdf (免责声明:本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!)
    发表于 04-07 17:31

    K230D部署模型失败的原因?

    MicroPython部署的无法正常运行,采用C++版本的无法实现部署 尝试解决过程 1.考虑可能是固件不匹配的问题,重新烧录了流程(生成模型后给的readme)中要求的固件,依旧无
    发表于 03-11 06:19

    如何部署OpenVINO™工具套件应用程序?

    编写代码并测试 OpenVINO™ 工具套件应用程序后,必须将应用程序安装或部署生产环境中的目标设备。 OpenVINO™部署管理器指南包含有关如何轻松使用
    发表于 03-06 08:23

    使用OpenVINO™ 2021.4经过训练的自定义PyTorch模型加载为IR格式时遇到错误怎么解决?

    使用 OpenVINO™ 2021.4 经过训练的自定义 PyTorch 模型加载为 IR 格式时遇到错误: RuntimeError: [ GENERAL_ERROR ] Failed
    发表于 03-05 08:40

    添越智创基于 RK3588 开发板部署测试 DeepSeek 模型全攻略

    DeepSeek 模型部署与测试,开启这场充满挑战与惊喜的技术探索之旅。 RK3588 开发板:AI 性能担当 RK3588 开发板基于先进的 8nm LP 制程工艺精心打造,其硬件配置堪称豪华,在 AI
    发表于 02-14 17:42

    企业AI模型部署攻略

    当下,越来越多的企业开始探索和实施AI模型,以提升业务效率和竞争力。然而,AI模型部署并非易事,需要企业在多个层面进行细致的规划和准备。下面,AI部落小编为企业提供一份AI模型
    的头像 发表于 12-23 10:31 1307次阅读

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    并非易事,它涉及从选择合适的算法架构针对特定硬件平台进行优化等一系列复杂的工作。 接下来,我们详细介绍如何在资源受限的边缘设备上成功部署目标检测
    发表于 12-19 14:33