91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

使用函數計算三步實現深度學習 AI 推理在線服務

發布時間:2020-07-15 08:52:44 來源:網絡 閱讀:129 作者:阿里系統軟件技術 欄目:云計算

目前深度學習應用廣發, 其中 AI 推理的在線服務是其中一個重要的可落地的應用場景。本文將為大家介紹使用函數計算部署深度學習 AI 推理的最佳實踐, ?其中包括使用 FUN 工具一鍵部署安裝第三方依賴、一鍵部署、本地調試以及壓測評估, 全方位展現函數計算的開發敏捷特性、自動彈性伸縮能力、免運維和完善的監控設施。

1.1 DEMO 概述

使用函數計算三步實現深度學習 AI 推理在線服務

通過上傳一個貓或者狗的照片, 識別出這個照片里面的動物是貓還是狗

  • DEMO 示例效果入口: http://sz.mofangdegisn.cn
  • DEMO 示例工程地址: https://github.com/awesome-fc/cat-dog-classify

開通服務

免費開通函數計算, 按量付費,函數計算有很大的免費額度。

免費開通文件存儲服務NAS, 按量付費

1.2 解決方案

使用函數計算三步實現深度學習 AI 推理在線服務

如上圖所示, 當多個用戶通過對外提供的 url 訪問推理服務時候,每秒的請求幾百上千都沒有關系, 函數計算平臺會自動伸縮, 提供足夠的執行實例來響應用戶的請求, 同時函數計算提供了完善的監控設施來監控您的函數運行情況。

1.3. Serverless 方案與傳統自建服務方案對比

1.3.1 卓越的工程效率

自建服務 函數計算 Serverless
基礎設施 需要用戶采購和管理
開發效率 除了必要的業務邏輯開發,需要自己建立相同線上運行環境, 包括相關軟件的安裝、服務配置、安全更新等一系列問題 只需要專注業務邏輯的開發, 配合 FUN 工具一鍵資源編排和部署
學習上手成本 可能使用 K8S 或彈性伸縮( ESS ),需要了解更多的產品、名詞和參數的意義 會編寫對應的語言的函數代碼即可

1.3.2 彈性伸縮免運維

自建服務 函數計算 Serverless
彈性高可用 需要自建負載均衡 (SLB),彈性伸縮,擴容縮容速度較 FC 慢 FC系統固有毫秒級別彈性伸縮,快速實現底層擴容以應對峰值壓力,免運維
監控報警查詢 ECS 級別的 metrics 提供更細粒度的函數執行情況,每次訪問函數執行的 latency 和日志等, 更加完善的報警監控機制

1.3.3 更低的成本

  • 函數計算 (FC) 固有自動伸縮和負載均衡功能,用戶不需要購買負載均衡 (SLB) 和彈性伸縮。
  • 具有明顯波峰波谷的用戶訪問場景(比如只有部分時間段有請求,其他時間甚至沒有請求),選擇按需付費,只需為實際使用的計算資源付費。

對于明顯波峰波谷或者稀疏調用具有低成本優勢, 同時還保持了彈性能力,以后業務規模做大以后并沒有技術切換成本,同時財務成本增長配合預付費也能保持平滑。

  • 部分請求持續平穩的場景下,可以配合預付費解決按需付費較高單價問題。函數計算成本優化最佳實踐文檔。

假設有一個在線計算服務,由于是CPU 密集型計算, 因此在這里我們將平均 CPU 利用率作為核心參考指標對成本,以一個月為周期,10臺 C5 ECS 的總計算力為例,總的計算量約為 30% 場景下, 各解決方案 CPU 資源利用率使用情況示意圖大致如下:

使用函數計算三步實現深度學習 AI 推理在線服務

由上圖預估出如下計費模型:

  • 函數計算預付費 3CU 一個月: 246.27 元, 計算能力等價于 ECS 計算型 C5
  • ECS 計算型 C5 (2vCPU,4GB)+云盤: 包月219 元,按量: 446.4 元
  • 包月10 Mbps 的 SLB: 526.52 元(這里做了一定的流量假設), 彈性伸縮免費
  • 飽和使用下,函數計算按量付費的一臺機器成本約為按量付費 C5 ECS 的2 倍
平均CPU利用率 計算費用 SLB 總計
函數計算組合付費 >=80% 738+X(246.27*3+X) <= 738+X
按峰值預留ECS <=30% 2190(10*219) 526.52 >=2716.52
彈性伸縮延遲敏感 <=50% 1314(102193/5) 526.52 >= 1840.52
彈性伸縮成本敏感 <=70% 938.57 (102193/7) 526.52 >= 1465.09

注:

  1. 這里假設函數邏輯沒有公網公網下行流量費用, 即使有也是一致的, 這里成本比較暫不參與

  2. 延時敏感,當 CPU 利用率大于等于 50% 就需要開始進行擴容,不然更來不及應對峰值

  3. 成本敏感,當 CPU 利用率大約 80% 即開始進行擴容, 能容受一定幾率的超時或者5XX

上表中, 其中函數計算組合付費中的 X 為按需付費的成本價,假設按需付費的計算量占整個計算量的 10%,假設 CPU 利用率為100%, ?對應上表,那么需要 3 臺 ECS 的計算能力即可。因此 FC 按量付費的成本 X = 3 ?446.4 ? 10% ? 2 = ?267.84 ( FC 按量付費是按量 ECS 的2倍),這個時候函數計算組合付費總計 ?1005.8 元。 在這個模型預估里面, 只要 FC 按量付費占整個計算量小于 20%, 即使不考慮 SLB, 單純考慮計算成本, 都是有一定優勢的。

1.3.4. 小結

基于函數計算進行 AI 推理等 CPU 密集型的主要優勢:

  1. 上手簡單, 只專注業務邏輯開發, 極大提高工程開發效率。
    • 自建方案有太多學習和配置成本,如針對不同場景,ESS 需要做各種不同的參數配置
    • 系統環境的維護升級等
  2. 免運維,函數執行級別粒度的監控和告警。
  3. 毫秒級彈性擴容,保證彈性高可用,同時能覆蓋延遲敏感和成本敏感類型。
  4. 在 CPU 密集型的計算場景下, 通過設置合理的組合計費模式, 在如下場景中具有成本優勢:
    • 請求訪問具有明顯波峰波谷, 其他時間甚至沒有請求
    • 有一定穩定的負載請求, 但是有部分時間段請求量突變劇烈

打包代碼ZIP包和部署函數

FUN 操作簡明視頻教程

開通服務

免費開通函數計算, 按量付費,函數計算有很大的免費額度。

免費開通文件存儲服務NAS, 按量付費

2.1 安裝第三方包到本地并上傳到NAS

2.1.1 安裝最新的Fun

  • 安裝版本為8.x 最新版或者10.x 、12.x nodejs
  • 安裝 funcraf

2.1.2 Clone 工程 & Fun 一鍵安裝第三方庫到本地

  • git clone https://github.com/awesome-fc/cat-dog-classify.git
  • 復制 .env_example 文件為 .env, 并且修改 .env 中的信息為自己的信息
  • 執行 fun install -v, ?fun 會根據 Funfile 中定義的邏輯安裝相關的依賴包

使用函數計算三步實現深度學習 AI 推理在線服務

root@66fb3ad27a4c: ls .fun/nas/auto-default/classify
model  python
root@66fb3ad27a4c: du -sm .fun
697     .fun

根據 Funfile 的定義:

  • 將第三方庫下載到 .fun/nas/auto-default/classify/python 目錄下
  • 本地 model 目錄移到 .fun/nas/auto-default/model 目錄下

安裝完成后,從這里我們看出, 函數計算引用的代碼包解壓之后已經達到了 670 M, 遠超過 50M 代碼包限制, 解決方案是 NAS 詳情可以參考: ?掛載NAS訪問,幸運的是 FUN 工具一鍵解決了 nas 的配置和文件上傳問題。

2.1.3. 將下載的依賴的第三方代碼包上傳到 NAS

fun nas init
fun nas info
fun nas sync
fun nas ls nas://classify:/mnt/auto/

依次執行這些命令,就將本地中的 .fun/nas/auto-default 中的第三方代碼包和模型文件傳到 NAS 中, 依次看下這幾個命令的做了什么事情:

  • fun nas init: 初始化 NAS, 基于您的 .env 中的信息獲取(已有滿足條件的nas)或創建一個同region可用的nas
  • fun nas info: 可以查看本地 NAS 的目錄位置, 對于此工程是 $(pwd)/.fun/nas/auto-default/classify
  • fun nas sync: 將本地 NAS 中的內容(.fun/nas/auto-default/classify)上傳到 NAS 中的 classify 目錄
  • fun nas ls nas:///mnt/auto/: 查看我們是否已經正確將文件上傳到了 NAS

登錄 NAS 控制臺 https://nas.console.aliyun.com 和 VPC 控制臺 https://vpc.console.aliyun.com<br />可以觀察到在指定的 region 上有 NAS 和 相應的 vpc 創建成功

2.2 本地調試函數

在 template.yml 中, 指定了這個函數是 http 類型的函數, 所以根據 fun 的提示:

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 start, ?本地就會啟動一個 http server 來模擬函數的執行, 然后我們 client 端可以使用 postman, curl 或者瀏覽器, 比如對于本例:

使用函數計算三步實現深度學習 AI 推理在線服務

使用函數計算三步實現深度學習 AI 推理在線服務

2.3 部署函數到FC平臺

本地調試OK 后,我們接下來將函數部署到云平臺:

修改 template.yml LogConfig 中的 Project, 任意取一個不會重復的名字即可,有兩處地方需要更改,然后執行

fun deploy

注意: ?template.yml 注釋的部分為自定義域名的配置, 如果想在 fun deploy 中完成這個部署工作:

  • 先去域名解析, 比如在示例中, 將域名 sz.mofangdegisn.cn 解析到 123456.cn-hangzhou.fc.aliyuncs.com, 對應的域名、accountId 和 region 修改成自己的
  • 去掉 template.yml 中的注釋, 修改成自己的域名
  • 執行 fun deploy

這個時候如果沒有自定義域名, 直接通過瀏覽器訪問訪問http trigger 的url, 比如 https://123456.cn-shenzhen.fc.aliyuncs.com/2016-08-15/proxy/classify/cat-dog/ 會被強制下載.

原因:https://help.aliyun.com/knowledge_detail/56103.html#HTTP-Trigger-compulsory-header

使用函數計算三步實現深度學習 AI 推理在線服務

登錄控制臺https://fc.console.aliyun.com,可以看到service 和 函數已經創建成功, 并且 service 也已經正確配置。

使用函數計算三步實現深度學習 AI 推理在線服務

在這里,我們發現第一次打開頁面訪問函數的時候,執行環境實例冷啟動時間非常長, 如果是一個在線AI推理服務,對響應時間非常敏感,冷啟動引起的毛刺對于這種類型的服務是不可接受的,接下來,本文講解如何利用函數計算的預留模式來消除冷啟動帶來的負面影響。

使用預留模式消除冷啟動毛刺

函數計算具有動態伸縮的特性, 根據并發請求量,自動彈性擴容出執行環境來執行環境,在這個典型的深度學習示例中,import keras 消耗的時間很長 , 在我們設置的 1 G 規格的函數中, 并發訪問的時候耗時10s左右, 有時甚至20s+

start = time.time()
from keras.models import model_from_json
print("import keras time = ", time.time()-start)

3.1 函數計算設置預留

預留操作簡明視頻教程

  • 在 FC 控制臺,發布版本,并且基于該版本創建別名 prod,并且基于別名 prod 設置預留, 操作過程請參考:https://help.aliyun.com/document_detail/138103.html
  • 將該函數的 http trigger 和 自定義域名的設置執行 prod 版本
    使用函數計算三步實現深度學習 AI 推理在線服務

使用函數計算三步實現深度學習 AI 推理在線服務

一次壓測結果

使用函數計算三步實現深度學習 AI 推理在線服務
使用函數計算三步實現深度學習 AI 推理在線服務

從上面圖中我們可以看出,當函數執行的請求到來時,優先被調度到預留的實例中被執行, 這個時候是沒有冷啟動的,所以請求是沒有毛刺的, 后面隨著測試的壓力不斷增大(峰值TPS 達到 1184), 預留的實例不能滿足調用函數的請求, 這個時候函數計算就自動進行按需擴容實例供函數執行,此時的調用就有冷啟動的過程, 從上面我們可以看出,函數的最大 latency 時間甚至達到了 32s,如果這個web AP是延時敏感的,這個 latency 是不可接受的。

總結

  • 函數計算具有快速自動伸縮擴容能力
  • 預留模式很好地解決了冷啟動中的毛刺問題
  • 開發簡單易上手,只需要關注具體的代碼邏輯, Fun 工具助您一鍵式部署運用
  • 函數計算具有很好監控設施, 您可以可視化觀察您函數運行情況, 執行時間、內存等信息

有任何問題歡迎進掃碼進釘釘群溝通

使用函數計算三步實現深度學習 AI 推理在線服務

“阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的技術圈。”

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邢台县| 大名县| 枣强县| 土默特右旗| 镇江市| 公主岭市| 花莲市| 桃园县| 融水| 四平市| 苍梧县| 南靖县| 苗栗市| 南昌市| 双桥区| 巴里| 清丰县| 靖州| 梅河口市| 永康市| 南昌市| 蕲春县| 上思县| 旌德县| 株洲市| 慈利县| 涡阳县| 高青县| 二连浩特市| 大埔县| 招远市| 萝北县| 静海县| 永靖县| 桂林市| 通河县| 金堂县| 丹阳市| 资溪县| 尖扎县| 武强县|