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

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

3天内不再提示

基于Cortex部署PyTorch模型

汽车玩家 来源:AI公园 作者:Caleb Kaiser 2020-04-19 11:40 次阅读

导读

使用Cortex可以非常方便的部署PyTorch模型。

今年是 PyTorch 成为最受研究人员欢迎的机器学习(ML)框架的一年。

该框架的 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 不是为生产而构建的框架的观点已经过时了。

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

    关注

    56

    文章

    4796

    浏览量

    84668
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13221
收藏 人收藏

    评论

    相关推荐

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

    以及边缘计算能力的增强,越来越多的目标检测应用开始直接在靠近数据源的边缘设备上运行。这不仅减少了数据传输延迟,保护了用户隐私,同时也减轻了云端服务器的压力。然而,在边缘端部署高效且准确的目标检测模型
    发表于 12-19 14:33

    如何在 PyTorch 中训练模型

    PyTorch 是一个流行的开源机器学习库,广泛用于计算机视觉和自然语言处理等领域。它提供了强大的计算图功能和动态图特性,使得模型的构建和调试变得更加灵活和直观。 数据准备 在训练模型之前,首先需要
    的头像 发表于 11-05 17:36 331次阅读

    使用PyTorch在英特尔独立显卡上训练模型

    PyTorch 2.5重磅更新:性能优化+新特性》中的一个新特性就是:正式支持在英特尔独立显卡上训练模型
    的头像 发表于 11-01 14:21 430次阅读
    使用<b class='flag-5'>PyTorch</b>在英特尔独立显卡上训练<b class='flag-5'>模型</b>

    新手小白怎么通过云服务器跑pytorch

    安装PyTorch的步骤可以根据不同的操作系统和需求有所差异,通过云服务器运行PyTorch的过程主要包括选择GPU云服务器平台、配置服务器环境、部署和运行PyTorch
    的头像 发表于 09-25 11:35 285次阅读

    基于Pytorch训练并部署ONNX模型在TDA4应用笔记

    电子发烧友网站提供《基于Pytorch训练并部署ONNX模型在TDA4应用笔记.pdf》资料免费下载
    发表于 09-11 09:24 0次下载
    基于<b class='flag-5'>Pytorch</b>训练并<b class='flag-5'>部署</b>ONNX<b class='flag-5'>模型</b>在TDA4应用笔记

    PyTorch中搭建一个最简单的模型

    PyTorch中搭建一个最简单的模型通常涉及几个关键步骤:定义模型结构、加载数据、设置损失函数和优化器,以及进行模型训练和评估。
    的头像 发表于 07-16 18:09 1989次阅读

    pytorch如何训练自己的数据

    本文将详细介绍如何使用PyTorch框架来训练自己的数据。我们将从数据准备、模型构建、训练过程、评估和测试等方面进行讲解。 环境搭建 首先,我们需要安装PyTorch。可以通过访问PyTorc
    的头像 发表于 07-11 10:04 529次阅读

    pytorch中有神经网络模型

    当然,PyTorch是一个广泛使用的深度学习框架,它提供了许多预训练的神经网络模型PyTorch中的神经网络模型 1. 引言 深度学习是一种基于人工神经网络的机器学习技术,它在图像
    的头像 发表于 07-11 09:59 700次阅读

    PyTorch神经网络模型构建过程

    PyTorch,作为一个广泛使用的开源深度学习库,提供了丰富的工具和模块,帮助开发者构建、训练和部署神经网络模型。在神经网络模型中,输出层是尤为关键的部分,它负责将
    的头像 发表于 07-10 14:57 501次阅读

    解读PyTorch模型训练过程

    PyTorch作为一个开源的机器学习库,以其动态计算图、易于使用的API和强大的灵活性,在深度学习领域得到了广泛的应用。本文将深入解读PyTorch模型训练的全过程,包括数据准备、模型
    的头像 发表于 07-03 16:07 1068次阅读

    如何使用PyTorch建立网络模型

    PyTorch是一个基于Python的开源机器学习库,因其易用性、灵活性和强大的动态图特性,在深度学习领域得到了广泛应用。本文将从PyTorch的基本概念、网络模型构建、优化方法、实际应用等多个方面,深入探讨使用
    的头像 发表于 07-02 14:08 415次阅读

    使用PyTorch搭建Transformer模型

    Transformer模型自其问世以来,在自然语言处理(NLP)领域取得了巨大的成功,并成为了许多先进模型(如BERT、GPT等)的基础。本文将深入解读如何使用PyTorch框架搭建Transformer
    的头像 发表于 07-02 11:41 1623次阅读

    请问电脑端Pytorch训练的模型如何转化为能在ESP32S3平台运行的模型

    由题目, 电脑端Pytorch训练的模型如何转化为能在ESP32S3平台运行的模型? 如何把这个Pytorch模型烧录到ESP32S3上去?
    发表于 06-27 06:06

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

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

    15-PyTorch-Edge-在边缘设备上部署AI模型的开发者之旅

    对于开发者而言,我们将整个ExecuTorch技术栈分为两个阶段。首先,我们从一个PyTorch模型开始,这在大多数情况下是一个torch.in.module。然后我们从中捕获图形,并将其lowering并序列化为额外的torch二进制文件。
    的头像 发表于 01-12 10:29 767次阅读
    15-<b class='flag-5'>PyTorch</b>-Edge-在边缘设备上<b class='flag-5'>部署</b>AI<b class='flag-5'>模型</b>的开发者之旅