0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Cortex部署PyTorch模型

汽車玩家 ? 來源:AI公園 ? 作者:Caleb Kaiser ? 2020-04-19 11:40 ? 次閱讀

導(dǎo)讀

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

今年是 PyTorch 成為最受研究人員歡迎的機(jī)器學(xué)習(xí)(ML)框架的一年。

該框架的 python 風(fēng)格,其學(xué)習(xí)曲線的溫和性,以及它對快速和簡單原型的方便實(shí)現(xiàn),使 PyTorch 明顯成為研究人員的最愛。因此,它正在推動一些最酷的機(jī)器學(xué)習(xí)項(xiàng)目:

Transformers,Hugging Face 生成的廣泛流行的自然語言處理(NLP)庫,是建立在 PyTorch 上的。

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

CrypTen,這個熱門的、新的、關(guān)注隱私的機(jī)器學(xué)習(xí)框架是建立在 PyTorch 上的。

在 ML 的幾乎任何領(lǐng)域,從計(jì)算機(jī)視覺到 NLP 再到計(jì)算生物學(xué),你都會發(fā)現(xiàn) PyTorch 在前沿為實(shí)驗(yàn)提供能量。

然而,最自然的問題是如何將這些實(shí)驗(yàn)合并到軟件中。如何從“跨語言語言模型”轉(zhuǎn)換為谷歌翻譯?

在這篇博客文章中,我們將了解在生產(chǎn)環(huán)境中使用 PyTorch 模型意味著什么,然后介紹一種允許部署任何 PyTorch 模型以便在軟件中使用的方法。

在生產(chǎn)中使用 PyTorch 意味著什么?

根據(jù)生產(chǎn)環(huán)境的不同,在生產(chǎn)環(huán)境中運(yùn)行機(jī)器學(xué)習(xí)可能意味著不同的事情。一般來說,在生產(chǎn)中有兩類機(jī)器學(xué)習(xí)的設(shè)計(jì)模式:

通過推理服務(wù)器提供一個預(yù)測 API。這是在通用軟件開發(fā)中使用的標(biāo)準(zhǔn)方法,即不是移動軟件或獨(dú)立設(shè)備。

嵌入。將你的模型直接嵌入到你的應(yīng)用程序中。這通常用于機(jī)器人和獨(dú)立設(shè)備,有時也用于移動應(yīng)用程序。

如果你打算直接將你的模型嵌入到你的應(yīng)用程序中,那么你應(yīng)該看看 PyTorch 的 TorchScript。使用即時編譯,PyTorch 可以將 Python 編譯成不需要 Python 解釋器就可以運(yùn)行的 TorchScript,這對于資源受限的部署目標(biāo)(比如移動設(shè)備)非常有用。

在大多數(shù)情況下,你會使用模型服務(wù)器。今天你看到的許多 ML 應(yīng)用程序 — 從你最喜歡的流媒體服務(wù)背后的推薦引擎到在線搜索欄中的自動完成功能—都依賴于這種部署形式,更確切地說,依賴于實(shí)時推理。

在實(shí)時推理中,一個模型通常被部署為一個微服務(wù)(通常是一個 JSON API),通過它,一個軟件可以查詢模型并接收預(yù)測。

讓我們以 Facebook 人工智能的 RoBERTa 為例,一個領(lǐng)先的 NLP 模型。它通過分析去掉一個單詞的句子(或“屏蔽詞”),并猜測屏蔽詞是什么,來進(jìn)行推斷。例如,如果你要使用一個預(yù)先訓(xùn)練好的 RoBERTa 模型來猜測一個句子中的下一個單詞,你要使用的 Python 方法是這樣的,非常簡單:

roberta.fill_mask(input_text + " ")

事實(shí)證明,在序列中預(yù)測缺失的單詞正是 autocomplete 等功能背后的功能。要在應(yīng)用程序中實(shí)現(xiàn) autocomplete,可以將 RoBERTa 部署為 JSON API,然后在應(yīng)用程序中使用用戶的輸入在 RoBERTa 節(jié)點(diǎn)上進(jìn)行查詢。

設(shè)置 JSON API 聽起來相當(dāng)簡單,但是將模型部署為微服務(wù)實(shí)際上需要大量的基礎(chǔ)設(shè)施工作。

你需要自動控制流量的波動。你需要監(jiān)控你的預(yù)測。你需要處理模型更新。你需要了解日志記錄。非常多的工作。

那么,問題是如何將 RoBERTa 部署為一個 JSON API,而不需要手動滾動所有這些自定義基礎(chǔ)設(shè)施?

將 PyTorch 模型與 Cortex 一起投入生產(chǎn)

你可以使用 Cortex 自動化部署 PyTorch 模型所需的大部分基礎(chǔ)設(shè)施工作,這是一個將模型作為 api 部署到 AWS 上的開源工具。這篇文章并不是一個完整的 Cortex 使用指南,只是一個高層次的 Cortex 使用方法,你所需要的是:

提供推斷的 Python 腳本

定義你的 API 的配置文件

Cortex CLI 啟動你的部署

這種方法并不局限于 RoBERTa。想要為你的圖像自動生成 alt 文本,使你的網(wǎng)站更容易訪問?你可以部署一個 AlexNet 模型,使用 PyTorch 和 Cortex 來標(biāo)記圖像。

那語言分類器呢,比如 Chrome 用來檢測頁面不是用默認(rèn)語言寫的那個?fastText 是這個任務(wù)的完美模型,你可以使用 PyTorch 和 Cortex 部署它。

使用 Cortex,你可以將許多由 PyTorch 支持的 ML 特性添加到你的應(yīng)用程序中進(jìn)行實(shí)時推斷。

PyTorch 用到生產(chǎn)中

有超過 25 個研究模型儲存在 PyTorch Hub],從 NLP 到計(jì)算機(jī)視覺。所有這些都可以通過 Cortex 來實(shí)現(xiàn),使用的過程和我們剛才演示的一樣。

PyTorch 團(tuán)隊(duì)無疑在他們的路線圖上有更多的以生產(chǎn)為中心的特性,但是僅僅看看到目前為止所取得的進(jìn)展,很明顯 PyTorch 不是為生產(chǎn)而構(gòu)建的框架的觀點(diǎn)已經(jīng)過時了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4776

    瀏覽量

    84390
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    803

    瀏覽量

    13123
收藏 人收藏

    評論

    相關(guān)推薦

    PyTorch 數(shù)據(jù)加載與處理方法

    PyTorch 是一個流行的開源機(jī)器學(xué)習(xí)庫,它提供了強(qiáng)大的工具來構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。在構(gòu)建模型之前,一個重要的步驟是加載和處理數(shù)據(jù)。 1. PyTorch 數(shù)據(jù)加載基礎(chǔ) 在
    的頭像 發(fā)表于 11-05 17:37 ?258次閱讀

    如何在 PyTorch 中訓(xùn)練模型

    PyTorch 是一個流行的開源機(jī)器學(xué)習(xí)庫,廣泛用于計(jì)算機(jī)視覺和自然語言處理等領(lǐng)域。它提供了強(qiáng)大的計(jì)算圖功能和動態(tài)圖特性,使得模型的構(gòu)建和調(diào)試變得更加靈活和直觀。 數(shù)據(jù)準(zhǔn)備 在訓(xùn)練模型之前,首先需要
    的頭像 發(fā)表于 11-05 17:36 ?229次閱讀

    使用PyTorch在英特爾獨(dú)立顯卡上訓(xùn)練模型

    PyTorch 2.5重磅更新:性能優(yōu)化+新特性》中的一個新特性就是:正式支持在英特爾獨(dú)立顯卡上訓(xùn)練模型!
    的頭像 發(fā)表于 11-01 14:21 ?171次閱讀
    使用<b class='flag-5'>PyTorch</b>在英特爾獨(dú)立顯卡上訓(xùn)練<b class='flag-5'>模型</b>

    新手小白怎么通過云服務(wù)器跑pytorch

    安裝PyTorch的步驟可以根據(jù)不同的操作系統(tǒng)和需求有所差異,通過云服務(wù)器運(yùn)行PyTorch的過程主要包括選擇GPU云服務(wù)器平臺、配置服務(wù)器環(huán)境、部署和運(yùn)行PyTorch
    的頭像 發(fā)表于 09-25 11:35 ?205次閱讀

    基于Pytorch訓(xùn)練并部署ONNX模型在TDA4應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《基于Pytorch訓(xùn)練并部署ONNX模型在TDA4應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:24 ?0次下載
    基于<b class='flag-5'>Pytorch</b>訓(xùn)練并<b class='flag-5'>部署</b>ONNX<b class='flag-5'>模型</b>在TDA4應(yīng)用筆記

    PyTorch中搭建一個最簡單的模型

    PyTorch中搭建一個最簡單的模型通常涉及幾個關(guān)鍵步驟:定義模型結(jié)構(gòu)、加載數(shù)據(jù)、設(shè)置損失函數(shù)和優(yōu)化器,以及進(jìn)行模型訓(xùn)練和評估。
    的頭像 發(fā)表于 07-16 18:09 ?1730次閱讀

    pytorch如何訓(xùn)練自己的數(shù)據(jù)

    本文將詳細(xì)介紹如何使用PyTorch框架來訓(xùn)練自己的數(shù)據(jù)。我們將從數(shù)據(jù)準(zhǔn)備、模型構(gòu)建、訓(xùn)練過程、評估和測試等方面進(jìn)行講解。 環(huán)境搭建 首先,我們需要安裝PyTorch。可以通過訪問PyTorc
    的頭像 發(fā)表于 07-11 10:04 ?424次閱讀

    pytorch中有神經(jīng)網(wǎng)絡(luò)模型

    當(dāng)然,PyTorch是一個廣泛使用的深度學(xué)習(xí)框架,它提供了許多預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型。 PyTorch中的神經(jīng)網(wǎng)絡(luò)模型 1. 引言 深度學(xué)習(xí)是一種基于人工神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)技術(shù),它在圖像
    的頭像 發(fā)表于 07-11 09:59 ?606次閱讀

    PyTorch神經(jīng)網(wǎng)絡(luò)模型構(gòu)建過程

    PyTorch,作為一個廣泛使用的開源深度學(xué)習(xí)庫,提供了豐富的工具和模塊,幫助開發(fā)者構(gòu)建、訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)模型。在神經(jīng)網(wǎng)絡(luò)模型中,輸出層是尤為關(guān)鍵的部分,它負(fù)責(zé)將
    的頭像 發(fā)表于 07-10 14:57 ?425次閱讀

    解讀PyTorch模型訓(xùn)練過程

    PyTorch作為一個開源的機(jī)器學(xué)習(xí)庫,以其動態(tài)計(jì)算圖、易于使用的API和強(qiáng)大的靈活性,在深度學(xué)習(xí)領(lǐng)域得到了廣泛的應(yīng)用。本文將深入解讀PyTorch模型訓(xùn)練的全過程,包括數(shù)據(jù)準(zhǔn)備、模型
    的頭像 發(fā)表于 07-03 16:07 ?863次閱讀

    如何使用PyTorch建立網(wǎng)絡(luò)模型

    PyTorch是一個基于Python的開源機(jī)器學(xué)習(xí)庫,因其易用性、靈活性和強(qiáng)大的動態(tài)圖特性,在深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將從PyTorch的基本概念、網(wǎng)絡(luò)模型構(gòu)建、優(yōu)化方法、實(shí)際應(yīng)用等多個方面,深入探討使用
    的頭像 發(fā)表于 07-02 14:08 ?345次閱讀

    使用PyTorch搭建Transformer模型

    Transformer模型自其問世以來,在自然語言處理(NLP)領(lǐng)域取得了巨大的成功,并成為了許多先進(jìn)模型(如BERT、GPT等)的基礎(chǔ)。本文將深入解讀如何使用PyTorch框架搭建Transformer
    的頭像 發(fā)表于 07-02 11:41 ?1434次閱讀

    請問電腦端Pytorch訓(xùn)練的模型如何轉(zhuǎn)化為能在ESP32S3平臺運(yùn)行的模型

    由題目, 電腦端Pytorch訓(xùn)練的模型如何轉(zhuǎn)化為能在ESP32S3平臺運(yùn)行的模型? 如何把這個Pytorch模型燒錄到ESP32S3上去?
    發(fā)表于 06-27 06:06

    使用CUBEAI部署tflite模型到STM32F0中,模型創(chuàng)建失敗怎么解決?

    看到CUBE_AI已經(jīng)支持到STM32F0系列芯片,就想拿來入門嵌入式AI。 生成的模型很小,是可以部署到F0上的,但是一直無法創(chuàng)建成功。 查閱CUBE AI文檔說在調(diào)用create函數(shù)前,要啟用
    發(fā)表于 03-15 08:10

    15-PyTorch-Edge-在邊緣設(shè)備上部署AI模型的開發(fā)者之旅

    對于開發(fā)者而言,我們將整個ExecuTorch技術(shù)棧分為兩個階段。首先,我們從一個PyTorch模型開始,這在大多數(shù)情況下是一個torch.in.module。然后我們從中捕獲圖形,并將其lowering并序列化為額外的torch二進(jìn)制文件。
    的頭像 發(fā)表于 01-12 10:29 ?674次閱讀
    15-<b class='flag-5'>PyTorch</b>-Edge-在邊緣設(shè)備上<b class='flag-5'>部署</b>AI<b class='flag-5'>模型</b>的開發(fā)者之旅