您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Serverless和AI實現(xiàn)古詩創(chuàng)作程序,小編覺得挺實用的,因此分享給大家學習,話不多說,一起往下看吧。
本項目是在 MacOS 下開發(fā)的,涉及到的工具是平臺無關(guān)的,對于 Linux 和 Windows 桌面系統(tǒng)應該也同樣適用。在開始本例之前請確保如下工具已經(jīng)正確的安裝,更新到最新版本,并進行正確的配置。
Fun 和 Fcli 工具依賴于 docker 來模擬本地環(huán)境。
對于 MacOS 用戶可以使用 homebrew 進行安裝:
brew cask install docker
brew tap vangie/formula
brew install fun
brew install fcli
Windows 和 Linux 安裝好后,記得先執(zhí)行 fun config
初始化一下配置。
注意, 如果你已經(jīng)安裝過了 fun,確保 fun 的版本在 3.2.0 以上。
$ fun --version
3.2.2
AI model serving 是函數(shù)計算一個比較典型的應用場景。數(shù)據(jù)科學家訓練好模型以后往往需要找軟件工程師把模型變成系統(tǒng)或者服務,通常把這個過程稱之為 model serving。函數(shù)計算無需運維和彈性伸縮的特性,正好符合數(shù)據(jù)科學家對高可用分布式系統(tǒng)的訴求。本文將介紹把一個 TensorFlow CharRNN 訓練的自動寫五言絕句古詩的模型部署到函數(shù)計算的例子。
基本上所有的 FaaS 平臺為了減少平臺的冷啟動,都會設置代碼包限制,函數(shù)計算也不例外。由于 python TensorFlow 依賴庫和訓練的模型的文件有數(shù)百兆,即使壓縮也遠超了函數(shù)計算 50M 代碼包大小的限制。對于這類超大體積的文件,函數(shù)計算命令行 Fun 工具原生支持了這種大依賴部署(3.2.0 版本以上),按照向?qū)У奶崾静僮骷纯伞?/p>
git clone https://github.com/vangie/poetry.git
由于訓練模型的腳本比較費時,所以訓練好的模型已經(jīng)提前存放在 model 目錄中。如果您想重新訓練模型,執(zhí)行 make train
即可。
$ fun install
using template: template.yml
start installing function dependencies without docker
building poetry/poetry
Funfile exist, Fun will use container to build forcely
Step 1/3 : FROM registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-python3.6:build-1.7.7
---> 373f5819463b
Step 2/3 : WORKDIR /code
---> Using cache
---> f9f03330ddde
Step 3/3 : RUN fun-install pip install tensorflow
---> Using cache
---> af9e756d07c7
sha256:af9e756d07c77ac25548fa173997065c9ea8d92e98c760b1b12bab1f3f63b112
Successfully built af9e756d07c7
Successfully tagged fun-cache-1b39d414-0348-4823-b1ec-afb05e471666:latest
copying function artifact to /Users/ellison/poetry
copy from container /mnt/auto/. to localNasDir
Install Success
Tips for next step
======================
* Invoke Event Function: fun local invoke
* Invoke Http Function: fun local start
* Build Http Function: fun build
* Deploy Resources: fun deploy
執(zhí)行 fun local invoke
可以在本地運行函數(shù),正確的返回內(nèi)容如下:
$ fun local invoke poetry
Missing invokeName argument, Fun will use the first function poetry/poetry as invokeName
skip pulling image aliyunfc/runtime-python3.6:1.7.7...
FunctionCompute python3 runtime inited.
FC Invoke Start RequestId: b125bd4b-0d23-447b-8d8c-df36808a458b
.......(省略了部分日志)
犬差花上水風,一月秋中時。
江水無人去,山山有不知。
江山一中路,不與一時還。
山水不知處,江陽無所逢。
山風吹水色,秋水入云中。
水月多相見,山城入水中。
江云無處處,春水不相歸。
野寺春江遠,秋風落月深。
RequestId: 938334c4-5407-4a72-93e1-6d59e52774d8 Billed Duration: 14074 ms Memory Size: 1998 MB Max Memory Used: 226 MB
通過 fun deploy
部署函數(shù)并上傳函數(shù)依賴到 nas。
fun deploy
fun 會自動完成依賴部署,當 fun deploy 檢測到打包的依賴超過了平臺限制(50M),會進入到配置向?qū)?,幫助用戶自動化的配置?/p>
選擇 "Y" 之后就不需要做其他事情,等到部署完成即可。
通過 fun invoke 調(diào)用遠端函數(shù)(也可以通過函數(shù)計算控制臺調(diào)用):
$ fun invoke
using template: template.yml
Missing invokeName argument, Fun will use the first function poetry/poetry as invokeName
========= FC invoke Logs begin =========
省略部分日志...
Restored from: /mnt/auto/model/poetry/model-10000
FC Invoke End RequestId: c0d7947d-7c44-428e-a5a0-30e6da6d1d0f
Duration: 18637.47 ms, Billed Duration: 18700 ms, Memory Size: 2048 MB, Max Memory Used: 201.10 MB
========= FC invoke Logs end =========
FC Invoke Result:
役不知此月,不是無年年。
何事無時去,誰堪得故年。
不知無限處,相思在山山。
何必不知客,何當不有時。
相知無所見,不得是人心。
不得無年日,何時在故鄉(xiāng)。
不知山上路,不是故人人。
關(guān)于Serverless和AI實現(xiàn)古詩創(chuàng)作程序就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。