AI演算法開發工程師  資訊軟體/巨資中心 | 楊先生

年度工作目標
   黃色   演算法程式化的品質與穩定度(40%)
橘色   演算法是否達成顧客的需求(30%)
紅色   演算法模型的準確度(30%)

演算法開發工程師應用範圍很廣,各種領域都會有不同專長的演算法開發工程師,例如保險金融領域、醫療領域、醫學工程領域、電腦(線上)遊戲領域、工業工程領域…等。不同專長領域的演算法開發工程師對於擅長分析處理的數值型態會有所不同,數值型態例如影像、文字、心電數位訊號、聲音訊號、超音波…等。

演算法開發工程師需要依據使用者提出之需求,配合開發出相對應之演算法(可能是一段數學公式、一段處理邏輯、一組分類或預測模型),並將演算法模型程式化,或將演算法模型打包成API提供前台或後台雲端系統開發工程師進行調用,將此演算功能整合到軟體操作的流程或邏輯中。例如一款線上遊戲,需要開發一種演算法模型能夠讓玩家在不同等級時,敵人出現的數量、頻率、強度…等機率有所不同,但又不能讓該等級的玩家角色完全無法應付時,就可以將此開發完成之機率演算法模型程式化(或API化),並整合到遊戲的場景中。又例如人臉辨識APP,AI演算法工程師可先對預先蒐集之人臉照片進行訓練(training),建立出人臉辨識演算法模型,接著將演算法模型程式化(或API化),提供給前端APP工程師進行整合。又例如運動穿戴式手環需要對使用者的行為進行辨識 (走路、久坐、睡眠…等),那麼AI演算法工開發程師,則可透過已收集的三軸加速規 (或九軸感測器)元件所偵測到的訊號進行訓練建模,接著再將相對應動作辨識的演算模型封裝成API,提供給前端硬體工程師整合到運動穿戴式手環中,讓穿戴式手環具有動作辨識的功能。

職場

績效評核

演算法是否達成顧客的需求(30%):衡量標準為顧客滿意度。

演算法模型的準確度(30%):衡量標準為演算法模型的準確度。

演算法程式化的品質與穩定度(40%):衡量標準包括參數傳遞的資訊安全性、演算法程式或API的效能等。

日常工時分佈
   黃色   模型開發(60%)
橘色   需求訪談(20%)
紅色   模型與前後台串接(20%)

日常工作

需求訪談(20%):與PM、產品經理以及技術經理討論有關演算法設計需求,包括功能、準確度以及串接方法(例如需將演算法包裝成單機API、SDK或Web API)等。

模型開發(60%):數據蒐集、raw data前處理、演算法模型訓練開發與驗證。

模型與前後台串接(20%):演算法模型程式化、API化,並與前後台工程師進行程式串接整合。

崗位關係

上級:AI演算法工開發程師的直屬主管大多為技術經理,技術經理有可能為前後台的技術經理或AI演算法開發技術經理,而技術經理的上級主管為部門經理。技術經理主要與AI演算法開發工程師在演算法程式化或API化時進行input與output參數的設計與規劃,並協調與前後台介接程式的資料格式與串接的架構。技術經理與部門經理負責對AI演算法開發工程師進行績效的考核,也包括技能進修規劃等工作。

同儕:演算法開發工程師在進行演算法開發時主要分為三個階段。第一階段共事的同儕主要為PM、產品經理,有時也需要與前後台開發工程師一同討論有關客戶的需求、演算法的用途、功能以及需要解決的問題是什麼? 在第二階段進行演算法開發、演算模型訓練與演算法驗證時,大多為獨立作業,有時較大的專案會與其他演算法開發工程師共同對專案進行分工,再依據各自的子項目進行開發,當演算法調校遇到數值無法收斂或準確度無法提升時,常會互相討論,探討如何調整參數來提升演算法的效能。第三階段演算法模型程式化的階段,大多會與前後台開發工程師共同作業,進行程式的串接與整合。

部屬:資深的演算法開發工程師大多會擔任資歷較淺者的導師,協助進行問題的排解與演算法performance的提升。若公司或部門性質主要是替所有內外部顧客開發演算法模型,通常會有AI演算法開發部門的技術經理來管理所有的演算法開發工程師。

外部客戶:主要為有演算法開發需求的內部或外部顧客。演算法開發工程師主要協同產品經理與技術經理共同瞭解顧客需求後,再規劃哪些部分需要AI演算法開發工程師發展演算模型,演算法開發工程師也同時需要依據其專業判斷,說明演算法開發的可行性以及可能碰到的技術瓶頸,需要向顧客進行溝通與說明。例如透過穿戴裝置的三軸加速規的數值來發展動作辨識的演算模型可能會碰到不同廠牌在硬體的良率、準確度、紀錄頻率(sampling rate)不同等問題,造成發展出來的演算法模型可能無法適用於所有廠牌…等問題,需要與顧客溝通與提出專業的解決方式或演算法的應用限制。

任職要求

教育程度/經驗

  • 學歷: 一般而言會要求碩士畢業,主要為數學、統計、資管、資工或醫學工程相關領域者,因為其對於機率、統計、訊號處理與分析具有一定之基礎概念。較資深的AI演算法工程師職缺會要求有博士學位。
  • 經驗:AI演算法工程師需要對該領域演算法進行開發至少兩年以上的經驗,且演算法品質(包括準確度、實用性、穩定性)都具有相當的品質,且最好有一項在該領域之代表作,並被認可時,才會被認為具有一定的能力與經驗。

特別知識和技能

  • 訊號處理,演算法建模與演算法模組化之軟體與程式語言(如python, R, SAS, MATLAB, weka或java等)
  • 對於深度學習AI相關的框架需有一定之瞭解,例如TensorFlow,Keras,DL4J…等。

與職務相關的學校修課 ( 課程名稱 : 重要性5>4>3>2>1 )

  • 機率(5). 資料探勘(4). 類神經網路或深度學習相關課程(4). 
演算法(4). 
統計學或生物統計學(3). 
訊號處理與分析(3). 影像處理與分析(3). 微積分(2). 線性代數(1)

職涯發展

薪資成長:碩士畢業起薪大約43000~45000,大約兩年月新超過50000以上。博士畢業起薪大約55000~60000,大約兩到三年月薪會超過65000。年終獎金平均1.5個月。

平均工時:每週工時40~50小時,但是遇到急件或數據量過大時,系統跑資料處理時間過久,可能需要加班或等待。另外當演算法模型的準確度一直無法調校提昇時,也時常需要加班處理。

工作機會:AI與大數據相關的開發工具已經發展相當成熟,且不斷推陳出新,讓AI在我們的生活中越來越普及,需求也越來越大,因此演算法開發工程師的職缺相當多,具有能力的AI演算法開發工程師在市場上相當搶手。但是符合資格或有一定能力的AI演算法開發工程師需要具有一定的基礎知識門檻,且需要不斷的自我進修吸收新知識是AI演算法工程師職缺保持競爭力的重要關鍵。