145
英雄聯盟
自定義算法開發__產品簡介_推薦引擎-阿裏雲
本節簡要說明在RecEng中開發自定義算法的過程,具體技術細節參見離線算法開發手冊、在線算法開發手冊、實時修正算法開發手冊。
自定義算法和RecEng預置的係統算法的區別在於自定義算法隻有開發者自己可見,而係統算法所有客戶可見。
離線算法開發
RecEng的離線計算都運行在MaxCompute(原ODPS)上,所有的離線算法都用Java編寫,需要符合MaxCompute的要求。MaxCompute支持的三類離線算法,包括SQL腳本,MapReduce程序,和基於圖模型的算法,這三類算法都可以用於開發RecEng的自定義算法。RecEng做的工作是把離線算法組織成為算法流程,以類似批處理的方式運行。為了達到這個目的,RecEng提供了一套SDK,負責向客戶自定義算法傳遞上下文參數,並接收客戶自定義算法的輸出,根據算法流程的配置再將其傳遞到對應的算法節點。
所以客戶在開發自定義算法時分為以下幾個步驟:
1.下載離線算法開發SDK包,包中已經包含所需的MaxCompute依賴庫。
2.將SDK包集成到本地開發工具,如eclipse中。
3.開發遵循MaxCompute規範的離線算法,可以是SQL腳本,MapReduce程序,或圖模型程序,並單元測試。MaxCompute上離線算法的開發和測試請參考大數據計算服務MaxCompute快速入門手冊中運行SQL、編寫MapReduce、編寫Graph等章節。
4.利用RecEng的SDK將算法集成到RecEng框架中。
5.在RecEng的算法注冊頁麵上將開發好的jar包注冊到RecEng中。客戶隻需要把自己開發的程序編入jar包即可,SDK及依賴包都不需要編入。
6.注冊完成後即可在算法流程配置界麵中使用自定義算法。
也可以參考離線算法開發樣例
在線算法開發
在線算法開發相對簡單。在線算法由Node.js編寫,都運行在RecEng的在線環境中,客戶不需要準備運行環境,直接在RecEng的在線代碼開發頁麵上編寫代碼並提交即可。
和離線算法一樣,在線算法也是有類別的,如前所述,在線算法的類別由輸入輸出的標準數據集決定,客戶在編寫在線算法時,首先在在線代碼開發頁上確定在線算法的類別,明確算法的輸入輸出後即可編寫。編寫完成後可利用自定義的默認參數功能進行單元測試。
所有這些操作都在RecEng中完成,客戶不需要配置Node.js環境。
雖然RecEng提供了多種實時流程,應用在這些實時流程中的自定義在線算法其實區別並不大。以推薦流程的在線流程(rec_path->online_flow)為例,自定義在線算法需要從環境變量CTX中獲取各種必要的數據,也可根據需要去指定讀/寫保存在在線存儲中的某些數據,不過出於安全的考慮,所有讀/寫外部的在線存儲都需要通過指定的SDK進行訪問,不允許自定義代碼直接訪問外部在線存儲。獲得了所有必要的信息後自定義代碼執行邏輯,並將最終輸出的結果也保存在環境變量CTX中。RecEng會自動將CTX中的結果發送出去。
實時計算和離線計算最大的區別在於實時計算要追求低延遲,用到的數據是在某個窗口之內的,而離線計算用到的是全量數據。所以在編寫在線算法的時候要注意算法的效率,每一次訪問在線存儲,每一次大循環都會造成round-trip(RT)的增加。比如對推薦API來說,不考慮傳輸延時的情況下,僅由計算導致的時延不要超過50毫秒;一般來說,每次讀取在線存儲的時間代價大約是2-5毫秒;此外還需要預留一些時間給係統,這部分時間大約是15-20毫秒左右,所以推薦API中,所有自定義在線算法的總時延最好不要超過20毫秒。
最後更新:2016-11-23 16:04:13
上一篇:
全流程規範__產品簡介_推薦引擎-阿裏雲
下一篇:
測試__產品簡介_推薦引擎-阿裏雲
Phpwind如何存儲遠程附件到oss__ossftp_常用工具_對象存儲 OSS-阿裏雲
銳化__圖片效果_圖片處理指南_對象存儲 OSS-阿裏雲
萬網接入__CNAME綁定教程_用戶指南_CDN-阿裏雲
續費降配__購買實例_購買指南_雲服務器 ECS-阿裏雲
服務打包__線上服務發布_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
ALIYUN::ESS::ScalingGroupEnable__資源列表_資源編排-阿裏雲
處理-使用訪問日誌統計__最佳實踐_日誌服務-阿裏雲
搭建VPN網關__最佳實踐_用戶指南_專有網絡 VPC-阿裏雲
步驟 2:創建Windows實例__快速入門(Windows)_雲服務器 ECS-阿裏雲
PhysicalConnectionType__數據類型_API 參考_雲服務器 ECS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲