您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何急速搭建Serverless AI 應用進行寫詩,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
首先介紹下出現的幾個比較重要的概念:
函數計算(Function Compute): 函數計算是一個事件驅動的服務,通過函數計算,用戶無需管理服務器等運行情況,只需編寫代碼并上傳。函數計算準備計算資源,并以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息 參考。
Fun: Fun 是一個用于支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日志服務等資源。它通過一個資源配置文件(template.yml),協助您進行開發、構建、部署操作。Fun 的更多文檔 參考。
備注: 介紹的技巧需要 Fun 版本大于等于 3.2.0。
本項目是在 MacOS 下開發的,涉及到的工具是平臺無關的,對于 Linux 和 Windows 桌面系統應該也同樣適用。在開始本例之前請確保如下工具已經正確的安裝,更新到最新版本,并進行正確的配置。
Docker
Fun
Fcli
Fun 和 Fcli 工具依賴于 docker 來模擬本地環境。
對于 MacOS 用戶可以使用
homebrew 進行安裝:
brew cask install docker brew tap vangie/formula brew install fun brew install fcli
Windows 和 Linux 用戶安裝請參考:
https://github.com/aliyun/fun/blob/master/docs/usage/installation.md
https://github.com/aliyun/fcli/releases
安裝好后,記得先執行
fun config
初始化一下配置。
注意, 如果你已經安裝過了 fun,確保 fun 的版本在 3.2.0 以上。
$ fun --version 3.2.2
AI model serving 是函數計算一個比較典型的應用場景。數據科學家訓練好模型以后往往需要找軟件工程師把模型變成系統或者服務,通常把這個過程稱之為 model serving。函數計算無需運維和彈性伸縮的特性,正好符合數據科學家對高可用分布式系統的訴求。本文將介紹把一個 TensorFlow CharRNN 訓練的自動寫五言絕句古詩的模型部署到函數計算的例子。
基本上所有的 FaaS 平臺為了減少平臺的冷啟動,都會設置代碼包限制,函數計算也不例外。由于 python TensorFlow 依賴庫和訓練的模型的文件有數百兆,即使壓縮也遠超了函數計算 50M 代碼包大小的限制。對于這類超大體積的文件,函數計算命令行 Fun 工具原生支持了這種大依賴部署(3.2.0 版本以上),按照向導的提示操作即可。
git clone https://github.com/vangie/poetry.git
由于訓練模型的腳本比較費時,所以訓練好的模型已經提前存放在 model 目錄中。如果您想重新訓練模型,執行
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
執行
fun local invoke
可以在本地運行函數,正確的返回內容如下:
$ 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
部署函數并上傳函數依賴到 nas。
fun deploy
fun 會自動完成依賴部署,當 fun deploy 檢測到打包的依賴超過了平臺限制(50M),會進入到配置向導,幫助用戶自動化的配置。
cdn.nlark.com/yuque/0/2019/png/502931/1577342619409-f43d3642-5526-458c-8519-96e4d61fbb4a.png">
選擇 “Y” 之后就不需要做其他事情,等到部署完成即可。
通過 fun invoke 調用遠端函數(也可以通過 函數計算控制臺調用):
$ 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: 役不知此月,不是無年年。 何事無時去,誰堪得故年。 不知無限處,相思在山山。 何必不知客,何當不有時。 相知無所見,不得是人心。 不得無年日,何時在故鄉。 不知山上路,不是故人人。
至此,已經將古詩創作程序成功部署到函數計算了。
看完上述內容,你們對如何急速搭建Serverless AI 應用進行寫詩有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。