1、將模型發布成服務的能力
模型訓練好后,需要發布成服務,這樣才算完成落地。但是發布成服務,并不是那么簡單。
如果用python,那你至少得會tornado或者flask。要學會這兩個框架,至少需要對web服務技術有所了解。
如果用java,大部分是用spring,那你至少需要對spring全家桶有所熟悉,當然,maven啥的是不能少的。
如果是用RPC,除了spring之外,對RPC(比如hsf)技術也要熟悉基本原理,并能熟練運用。
在容器化的今天,你的服務一定是在容器中運行的,這需要你對docker等容器化技術比較熟悉,才能真正地與docker配合,完成服務發布。
不同的公司都有自己的devops工具,用來完成創建應用、申請機器、創建環境、發布服務、發布變更等工作,也需要很好地掌握。
2、配置監控的能力
服務上線了,監控必須要跟上,不然,服務掛了很久你都不知道,怎么能行。各個公司都會有自己的服務監控工具,比如supervisor等。有時候,你需要對服務狀態有更加細致的監控,比如某類異常過多,響應時間加長,請求數據具體情況等,這往往需要你對監控工具比較熟悉,才能順利配好。
3、負載均衡、擴縮容、容災備份的能力
有了監控,不等于完事大吉,你還得考慮服務承載能力問題,需要多少臺服務器,負載均衡按照什么策略。如果服務請求突然增多,如何快速擴容,服務器如何配置在多地,增加服務的容災能力。這些事情雖然都有工具可用,但首先需要你對這些事情的基本原理比較清楚,并提前熟悉,才能在必要時用得上。
4、灰度測試的能力
有時候你訓練出一個新的模型,需要檢測效果,這是你的服務已經在線上了,直接用新的模型頂上是風險很高的,離線測auc呱呱叫,上線后auc直線呼呼跳的事情是很正常的。所以,一定要用小流量進行驗證,這需要你對灰度測試機制比較熟悉,不然,做不到這一點,新模型是上還是不上呢?
5、數據分析的能力
好的,模型已經上線運行了一段時間,需要分析下效果。首先,你的log有沒有記得夠詳細,可以支持所有粒度的模型情況分析?嗯,記log確實是一件需要提前想好的事情,不要小看它哦。另外,大概率情況,你的log會被load進大數據系統,比如hive,那么要分析log,hive你總得會吧。有時log還需要進行很多處理才能得出分析結論,那么,大數據分析工具spark啥的你總得會吧?各個算子可是都清楚了?
6、報表生成的能力
你的模型總得有一些日常觀察指標吧,這樣你才能時刻追蹤到模型服務的最新情況,一旦發生指標異常,可以迅速分析解決。這時候沒有比一個完善的報表更重要的了。所以你需要會將自己模型服務的報表做出來吧,報表工具雖然有,但你總得會才行啊。
7、制作前端portal的能力
為了在上線前更方便地體驗模型服務,你總得為服務搭建一個前端使用頁面吧。至少讓老板們可以愉快地測試你新model的效果。前端頁面可以非常簡單,vue啥的都可以。問題是這點活兒你不自己干難道還給你招一個前端來?
8、無總結、不進步
可見,從工程師的角度來看算法工程師,一個合格算法工程師首先是一個合格的工程師才行??赡苣阌X得算法工程師不需要會這么多也能活得很滋潤,因為有工程團隊配合呢。我只想說,你說的是現在,我說的是未來。
總而言之一句話,盡快擺脫調參師的標簽,多領域拓展自己的知識結構,讓自己成為一個T形人才,才能在越來越激烈的崗位競爭中,最大限度提高自己的競爭力。
-
算法工程師
+關注
關注
2文章
30瀏覽量
6093
發布評論請先 登錄
相關推薦
評論