溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何使用Cortex把PyTorch模型部署到生產(chǎn)中

發(fā)布時(shí)間:2021-07-20 11:59:19 來源:億速云 閱讀:373 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“python如何使用Cortex把PyTorch模型部署到生產(chǎn)中”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“python如何使用Cortex把PyTorch模型部署到生產(chǎn)中”吧!


導(dǎo)讀  

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

 

Using PyTorch Models in Production with Cortex

Caleb Kaiser

https://medium.com/pytorch/how-to-build-production-software-with-pytorch-9a8725382f2a

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

python如何使用Cortex把PyTorch模型部署到生產(chǎn)中

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

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

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

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

在 ML 的幾乎任何領(lǐng)域,從計(jì)算機(jī)視覺到 NLP 再到計(jì)算生物學(xué),你都會(huì)發(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ù)器提供一個(gè)預(yù)測 API。     這是在通用軟件開發(fā)中使用的標(biāo)準(zhǔn)方法,即不是移動(dòng)軟件或獨(dú)立設(shè)備。
  • 嵌入。     將你的模型直接嵌入到你的應(yīng)用程序中。     這通常用于機(jī)器人和獨(dú)立設(shè)備,有時(shí)也用于移動(dòng)應(yīng)用程序。

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

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

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

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

roberta.fill_mask(input_text + " <mask>")
 

事實(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è)施工作。

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

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

 

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

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

  • 提供推斷的 Python 腳本
  • 定義你的 API 的配置文件
  • Cortex CLI 啟動(dòng)你的部署

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

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

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

PyTorch 用到生產(chǎn)中

有超過 25 個(gè)研究模型儲(chǔ)存在 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)過時(shí)了。

到此,相信大家對“python如何使用Cortex把PyTorch模型部署到生產(chǎn)中”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI