㈠ 在自學的情況下如何成為一名演算法工程師
在自學的情況下成為一名演算法工程師可以這樣做:
首先要做好充分的准備,做任何事情想自學成才都是非常困難的,要有大毅力和大智慧,迎難而上,方可成功。
其次要知道成為演算法工程師需要具備的知識:
一是演算法相關的知識,包括編程語言,數據結構和資料庫,相關的教材很多,一般大學計算機專業的教材都能滿足要求,如果沒有老師講解,自己啃教材是很困難的,可以搜索一些網路課程輔助學習。
二是數學知識,我們知道所謂演算法工程師,目前其核心還是在機器學習,而機器學習的學習中,數學知識是必不可少的。
三是實踐經驗,這一點很重要,一名合格的演算法工程師必須要有足夠的實踐經驗,不能空有理論。
㈡ 怎麼樣成為一個演算法工程師
看看招聘演算法工程師的要求大概能知道一些情況: 華為:無線RTT(無線傳輸技術)演算法工程師 主要工作職責 1.根據各無線產品(包括WCDMA(含HSPA)/CDMA2000/Wimax/GSM(EDGE)需求,分析和設計基帶演算法及其性能。 2.參與無線產品系統測試,外場測試,定位並分析問題。 3.參與LTE(S3G)/AIE/E-HSPA/GERAN標准演進的物理層技術提案工作。 4.與各無線產品RRM演算法人員,網規人員合作,共同完成跨領域的演算法分析研究和系統性能分析工作。 職位要求:(一)通信知識 1.碩士及以上學歷,通信、信號處理或相關專業畢業(很優秀或有豐富演算法分析經驗可以放寬到本科)。 2.掌握信號處理技術,隨機系統理論和信號檢測理論,通信原理等技術。 3.熟悉無線通信系統原理,特別是蜂窩無線通信系統。 4.了解無線資源管理的基本知識,如切換,功控等。 5.了解無線網路規劃的技術,特別是容量,覆蓋相關的知識。 (二)個人素質 1.對演算法研究有濃厚興趣和求知慾望,有意在這里長期發展。 2.有良好的領悟能力,對工作精益求精的精神,強烈的責任心。 3.有良好的團隊意識和合作精神。 (三)其他要求和說明 1.有在國內外公司相關核心部門工作經歷和成功經驗的人優先考慮。 某搜索網站:職位名稱:資深搜索演算法工程師 職位描述:1. 針對公司搜索業務,開發搜索相關性演算法、排序演算法。 2. 對公司海量用戶行為數據和用戶意圖,設計數據挖掘演算法 。 3. 進行關聯推薦、個性化搜索技術的研發。公司簡介:公司成立於2003年,擁有注冊會員1.7億;2009年全年交易額達到2083億人民幣,是亞洲最大的網路零售商圈。網站占據國內電子商務80%以上的市場份額。公司子平台作為一站式購物搜索引擎,自上線以來,已經成為這個領域內的領軍力量,它最終將會為消費者提供從商品搜索、購物比價甚至在線支付的全流程購物服務。公司採用行業領先的搜索技術,網羅最受歡迎的C2C、B2C以及團購網站的所有線上商品,同時將各類導購資訊一網打盡,為用戶提供便捷的一站式購物體驗;貨比N家,。公司有著千萬台伺服器24x7的積累和計算海量的用戶購物行為以及商品銷售數據,為消費者提供可持續提升體驗的個性化商品推薦;創新的手機應用讓購物隨時隨地。 歡迎對網路購物體驗,搜索技術,大數據量並行處理,分布式存儲與計算,大規模集群通訊,自然語言處理, 機器學習,商品推薦演算法, Android/iOS移動應用開發等感興趣的朋友加入。崗位職責:1、3年以上相關工作經驗。 2、熟練掌握C/C++或java語言。 5、深入理解機器學習理論,了解自然語言處理技術者優先考慮
㈢ 演算法工程師應該學哪些
一、演算法工程師簡介
(通常是月薪15k以上,年薪18萬以上,只是一個概數,具體薪資可以到招聘網站如拉鉤,獵聘網上看看)
演算法工程師目前是一個高端也是相對緊缺的職位;
演算法工程師包括
音/視頻演算法工程師(通常統稱為語音/視頻/圖形開發工程師)、圖像處理演算法工程師、計算機視覺演算法工程師、通信基帶演算法工程師、信號演算法工程師、射頻/通信演算法工程師、自然語言演算法工程師、數據挖掘演算法工程師、搜索演算法工程師、控制演算法工程師(雲台演算法工程師,飛控演算法工程師,機器人控制演算法)、導航演算法工程師(
@之介
感謝補充)、其他【其他一切需要復雜演算法的行業】
專業要求:計算機、電子、通信、數學等相關專業;
學歷要求:本科及其以上的學歷,大多數是碩士學歷及其以上;
語言要求:英語要求是熟練,基本上能閱讀國外專業書刊,做這一行經常要讀論文;
必須掌握計算機相關知識,熟練使用模擬工具MATLAB等,必須會一門編程語言。
演算法工程師的技能樹(不同方向差異較大,此處僅供參考)
1 機器學習
2 大數據處理:熟悉至少一個分布式計算框架Hadoop/Spark/Storm/ map-rece/MPI
3 數據挖掘
4 扎實的數學功底
5 至少熟悉C/C++或者Java,熟悉至少一門編程語言例如java/python/R
加分項:具有較為豐富的項目實踐經驗(不是水論文的哪種)
二、演算法工程師大致分類與技術要求
(一)圖像演算法/計算機視覺工程師類
包括
圖像演算法工程師,圖像處理工程師,音/視頻處理演算法工程師,計算機視覺工程師
要求
l
專業:計算機、數學、統計學相關專業;
l
技術領域:機器學習,模式識別
l
技術要求:
(1) 精通DirectX HLSL和OpenGL GLSL等shader語言,熟悉常見圖像處理演算法GPU實現及優化;
(2) 語言:精通C/C++;
(3) 工具:Matlab數學軟體,CUDA運算平台,VTK圖像圖形開源軟體【醫學領域:ITK,醫學圖像處理軟體包】
(4) 熟悉OpenCV/OpenGL/Caffe等常用開源庫;
(5) 有人臉識別,行人檢測,視頻分析,三維建模,動態跟蹤,車識別,目標檢測跟蹤識別經歷的人優先考慮;
(6) 熟悉基於GPU的演算法設計與優化和並行優化經驗者優先;
(7) 【音/視頻領域】熟悉H.264等視頻編解碼標准和FFMPEG,熟悉rtmp等流媒體傳輸協議,熟悉視頻和音頻解碼演算法,研究各種多媒體文件格式,GPU加速;
應用領域:
(1) 互聯網:如美顏app
(2) 醫學領域:如臨床醫學圖像
(3) 汽車領域
(4) 人工智慧
相關術語:
(1) OCR:OCR (Optical Character Recognition,光學字元識別)是指電子設備(例如掃描儀或數碼相機)檢查紙上列印的字元,通過檢測暗、亮的模式確定其形狀,然後用字元識別方法將形狀翻譯成計算機文字的過程
(2) Matlab:商業數學軟體;
(3) CUDA: (Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平台(由ISA和GPU構成)。 CUDA™是一種由NVIDIA推出的通用並行計算架構,該架構使GPU能夠解決復雜的計算問題
(4) OpenCL: OpenCL是一個為異構平台編寫程序的框架,此異構平台可由CPU,GPU或其他類型的處理器組成。
(5) OpenCV:開源計算機視覺庫;OpenGL:開源圖形庫;Caffe:是一個清晰,可讀性高,快速的深度學習框架。
(6) CNN:(深度學習)卷積神經網路(Convolutional Neural Network)CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。
(7) 開源庫:指的是計算機行業中對所有人開發的代碼庫,所有人均可以使用並改進代碼演算法。
(二)機器學習工程師
包括
機器學習工程師
要求
l
專業:計算機、數學、統計學相關專業;
l
技術領域:人工智慧,機器學習
l
技術要求:
(1) 熟悉Hadoop/Hive以及Map-Rece計算模式,熟悉Spark、Shark等尤佳;
(2) 大數據挖掘;
(3) 高性能、高並發的機器學習、數據挖掘方法及架構的研發;
應用領域:
(1)人工智慧,比如各類模擬、擬人應用,如機器人
(2)醫療用於各類擬合預測
(3)金融高頻交易
(4)互聯網數據挖掘、關聯推薦
(5)無人汽車,無人機
相關術語:
(1) Map-Rece:MapRece是一種編程模型,用於大規模數據集(大於1TB)的並行運算。概念"Map(映射)"和"Rece(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。
(三)自然語言處理工程師
包括
自然語言處理工程師
要求
l
專業:計算機相關專業;
l
技術領域:文本資料庫
l
技術要求:
(1) 熟悉中文分詞標注、文本分類、語言模型、實體識別、知識圖譜抽取和推理、問答系統設計、深度問答等NLP 相關演算法;
(2) 應用NLP、機器學習等技術解決海量UGC的文本相關性;
(3) 分詞、詞性分析、實體識別、新詞發現、語義關聯等NLP基礎性研究與開發;
(4) 人工智慧,分布式處理Hadoop;
(5) 數據結構和演算法;
應用領域:
口語輸入、書面語輸入
、語言分析和理解、語言生成、口語輸出技術、話語分析與對話、文獻自動處理、多語問題的計算機處理、多模態的計算機處理、信息傳輸與信息存儲 、自然語言處理中的數學方法、語言資源、自然語言處理系統的評測。
相關術語:
(2) NLP:人工智慧的自然語言處理,NLP (Natural Language Processing) 是人工智慧(AI)的一個子領域。NLP涉及領域很多,最令我感興趣的是「中文自動分詞」(Chinese word segmentation):結婚的和尚未結婚的【計算機中卻有可能理解為結婚的「和尚「】
(四)射頻/通信/信號演算法工程師類
包括
3G/4G無線通信演算法工程師, 通信基帶演算法工程師,DSP開發工程師(數字信號處理),射頻通信工程師,信號演算法工程師
要求
l
專業:計算機、通信相關專業;
l
技術領域:2G、3G、4G,BlueTooth(藍牙),WLAN,無線移動通信, 網路通信基帶信號處理
l
技術要求:
(1) 了解2G,3G,4G,BlueTooth,WLAN等無線通信相關知識,熟悉現有的通信系統和標准協議,熟悉常用的無線測試設備;
(2) 信號處理技術,通信演算法;
(3) 熟悉同步、均衡、信道解碼等演算法的基本原理;
(4) 【射頻部分】熟悉射頻前端晶元,扎實的射頻微波理論和測試經驗,熟練使用射頻電路模擬工具(如ADS或MW或Ansoft);熟練使用cadence、altium designer PCB電路設計軟體;
(5) 有扎實的數學基礎,如復變函數、隨機過程、數值計算、矩陣論、離散數學
應用領域:
通信
VR【用於快速傳輸視頻圖像,例如樂客靈境VR公司招募的通信工程師(數據編碼、流數據)】
物聯網,車聯網
導航,軍事,衛星,雷達
相關術語:
(1) 基帶信號:指的是沒有經過調制(進行頻譜搬移和變換)的原始電信號。
(2) 基帶通信(又稱基帶傳輸):指傳輸基帶信號。進行基帶傳輸的系統稱為基帶傳輸系統。傳輸介質的整個信道被一個基帶信號佔用.基帶傳輸不需要數據機,設備化費小,具有速率高和誤碼率低等優點,.適合短距離的數據傳輸,傳輸距離在100米內,在音頻市話、計算機網路通信中被廣泛採用。如從計算機到監視器、列印機等外設的信號就是基帶傳輸的。大多數的區域網使用基帶傳輸,如乙太網、令牌環網。
(3) 射頻:射頻(RF)是Radio Frequency的縮寫,表示可以輻射到空間的電磁頻率(電磁波),頻率范圍從300KHz~300GHz之間(因為其較高的頻率使其具有遠距離傳輸能力)。射頻簡稱RF射頻就是射頻電流,它是一種高頻交流變化電磁波的簡稱。每秒變化小於1000次的交流電稱為低頻電流,大於10000次的稱為高頻電流,而射頻就是這樣一種高頻電流。高頻(大於10K);射頻(300K-300G)是高頻的較高頻段;微波頻段(300M-300G)又是射頻的較高頻段。【有線電視就是用射頻傳輸方式】
(4) DSP:數字信號處理,也指數字信號處理晶元
(五)數據挖掘演算法工程師類
包括
推薦演算法工程師,數據挖掘演算法工程師
要求
l
專業:計算機、通信、應用數學、金融數學、模式識別、人工智慧;
l
技術領域:機器學習,數據挖掘
l
技術要求:
(1) 熟悉常用機器學習和數據挖掘演算法,包括但不限於決策樹、Kmeans、SVM、線性回歸、邏輯回歸以及神經網路等演算法;
(2) 熟練使用SQL、Matlab、Python等工具優先;
(3) 對Hadoop、Spark、Storm等大規模數據存儲與運算平台有實踐經驗【均為分布式計算框架】
(4) 數學基礎要好,如高數,統計學,數據結構
l
加分項:數據挖掘建模大賽;
應用領域
(1) 個性化推薦
(2) 廣告投放
(3) 大數據分析
相關術語
Map-Rece:MapRece是一種編程模型,用於大規模數據集(大於1TB)的並行運算。概念"Map(映射)"和"Rece(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。
(六)搜索演算法工程師
要求
l
技術領域:自然語言
l
技術要求:
(1) 數據結構,海量數據處理、高性能計算、大規模分布式系統開發
(2) hadoop、lucene
(3) 精通Lucene/Solr/Elastic Search等技術,並有二次開發經驗
(4) 精通Lucene/Solr/Elastic Search等技術,並有二次開發經驗;
(5) 精通倒排索引、全文檢索、分詞、排序等相關技術;
(6) 熟悉Java,熟悉Spring、MyBatis、Netty等主流框架;
(7) 優秀的資料庫設計和優化能力,精通MySQL資料庫應用 ;
(8) 了解推薦引擎和數據挖掘和機器學習的理論知識,有大型搜索應用的開發經驗者優先。
(七)控制演算法工程師類
包括了雲台控制演算法,飛控控制演算法,機器人控制演算法
要求
l
專業:計算機,電子信息工程,航天航空,自動化
l
技術要求:
(1) 精通自動控制原理(如PID)、現代控制理論,精通組合導航原理,姿態融合演算法,電機驅動,電機驅動
(2) 卡爾曼濾波,熟悉狀態空間分析法對控制系統進行數學模型建模、分析調試;
l
加分項:有電子設計大賽,機器人比賽,robocon等比賽經驗,有硬體設計的基礎;
應用領域
(1)醫療/工業機械設備
(2)工業機器人
(3)機器人
(4)無人機飛控、雲台控制等
(八)導航演算法工程師
要求
l 專業:計算機,電子信息工程,航天航空,自動化
l 技術要求(以公司職位JD為例)
公司一(1)精通慣性導航、激光導航、雷達導航等工作原理;
(2)精通組合導航演算法設計、精通卡爾曼濾波演算法、精通路徑規劃演算法;
(3)具備導航方案設計和實現的工程經驗;
(4)熟悉C/C++語言、熟悉至少一種嵌入式系統開發、熟悉Matlab工具;
公司二(1)熟悉基於視覺信息的SLAM、定位、導航演算法,有1年以上相關的科研或項目經歷;
(2)熟悉慣性導航演算法,熟悉IMU與視覺信息的融合;
應用領域
無人機、機器人等。
㈣ 演算法工程師應該學哪些
有多少種演算法,就有多少種演算法工程師。但是所有的演算法工程師都要掌握的知識有:
1
編程語言:matlab
或者
pthon
或者
c/c++。這是基礎。比演算法理論更基礎。
2
演算法理論:《最優化演算法》,《高等數學》,《矩陣論》(線性代數)等數學類,《數字信號處理》,《概率論》
這兩項掌握好了,無論什麼演算法,只要給你時間和項目,你都可以搞定。
更相信的可以單獨聯系我或者加我微信
㈤ 干貨分享 | AI研發工程師成長指南
作者 | Japson
來源 | 木東居士
0x00 前言
首先,《AI研發工程師成長指南》這個題目其實有些標題黨了,准確地來說,本文內容應該是:「要想成為一名AI研發工程師,需要具備哪些技能」。
其次,本文對「AI研發工程師」這個title的定義,也並不是大家第一印象中的「演算法工程師」、「數據科學家」。
再次,本文實際上作者結合現階段行業發展、技術趨勢以及自身工作性質做出的關於自身定位、職業技能、發展方向的思考。就像魔獸世界中的「職業攻略」,當我們在游戲中新建一個角色時,會先去了解這個職業的特點、天賦、技能樹等信息,這樣才會在「練級」的過程中少走些彎路。
最後,作者不是從一個很高的角度來對整個成長體系進行一個全面地闡述。而是站在道路的地點,不斷摸索、不斷前進、不斷地調整自己的規劃。因此本文不算是Best Practices,勉強算是Beta version,也希望能和大家不斷交流,不斷「發版」。
0x01 關於AI行業的思考演算法工程師的門檻
AI演算法工程師年薪百萬,應屆畢業生年薪都有80w… 去年AI人才缺口就已經過百萬,今年將達500w… 加入《XXX訓練營》,XX天打造AI演算法工程師…在網路上充斥著各種類似上面那樣的吸引眼球的文章標題,向你訴說著人工智慧這一火的不能再火的領域美好的前景。彷彿我們看了兩遍西瓜書、處理了MNIST和幾朵鳶尾花、在自己的筆記本電腦上掉了幾個包、得到了和教程上一樣的結果,打了幾場比賽,我們就已經拿到了AI領域的通行證、成功轉型演算法工程師、接大廠offer到手軟了一樣。
但實際,現在AI演算法工程師的就業難度和准入門檻,遠比我們想像的要高。
上一張網路上流傳的「諸神黃昏」吧
可以說一點不誇張,現在很多大廠的校招演算法崗,門檻就是海外名校/985工科院校的博士/碩士。除了擁有與學歷匹配的學術能力以外,工程基礎也要非常扎實。
有人說:「我看網上說,AI人才缺口非常大,我不去大廠不就行了?其他的公司要求沒那麼高吧?」
要求高不高我不知道,但是有一下兩點:
絕大多數公司,是不需要僱傭AI演算法工程師,即沒有相關的業務需求,也負擔不起演算法團隊的開銷 2019年研究生報考人數290萬人,預計招生70萬人,其中計算機是熱門專業,並且其中多數人的研究方向都是: 機器學習、數據挖掘之類。此間競爭之激烈,諸如此類,雖未得其皮毛,也略見一斑。
AI企業痛點
當然,我說這些不是為了打擊大家的信心,而是要指出現在行業內的痛點:AI工程化。
人工智慧發展到現階段,已經從實驗室中的演算法走向了工程化應用的階段。但是演算法落地並沒有想像中的順利,開始有越來越多諸如場景碎片化、應用成本高、實驗室場景到實際應用場景效果差距較大等問題被暴露出來,而這些也成為當前階段AI落地應用過程中新的痛點。
領域內高水平的paper都是公開發表的,除了少數的核心演算法,人才濟濟的AI企業很難在演算法性能上與友商拉開距離。那麼AI企業想要商業化,想要創收,行業細分領域縱深成了決定成敗的重要因素。需要下沉到業務領域,真刀真槍地進行拼殺。
在技術突破-商業化-產品化-工程化的階段路線中,除了技術強,接下來還有很多路要走。誰能夠更好更快地把演算法從實驗室中拿出來、賣出去;更好更快地將模型交付到業務場景,真正產生實際的價值,讓客戶滿意,誰才能活得更久。
對於Scientist/Researcher而言,技術可以是一篇論文、一項 ImageNet 競賽的冠軍、也可以是一個重要數值(比如人臉識別准確率)的突破;但在商務側來說,論文與冠軍並不實用,如果技術無法融進安防、汽車、金融等行業,變成切切實實的產品,客戶與合作夥伴就會拒絕買單。
對於AI企業來說,能否深入了解各行業的業務流程、業務規則、知識經驗,進而將技術能力轉化為業務解決方案創造價值,是發展的保障。
那麼對於我們個人來說,應該如何發展呢?
0x02 AI研發AI工程化
在《ML/DL科普向:從sklearn到tensorflow》一文中,我們談到:
…… 那麼對於我們這些非演算法崗位的人來說,就沒有辦法涉及這一領域了么?其實我認為,對於企業來說,對於AI人才的需求分為兩種:一種是學術界的牛人,發過大paper,有學術界比賽的結果的。公司需要他們去做演算法研究,保持技術的領先性,在業內贏得口碑,這樣才能在領域內保持頭部領域。另一方面,人工智慧早已不是一個概念了,企業需要把業務部門的演算法落地的人,能夠快速、穩定、高效地把實驗室中的演算法落實到生產環境中,解決實際問題的人。這就需要那些工程底子扎實、能夠實打實地寫代碼,並且對演算法模型理解深刻,能夠快速將AI項目工程化、落地有產出的復合型人才。
還是基於這個觀點,我決定將自身的技能樹偏向企業需要的第二種人,也就是標題所提出的「AI研發工程師」。從實際的工程應用角度出來,focus人工智慧項目落地的全流程以及解決方法,提高自己的AI工程化能力,以此作為個人核心競爭力。
AI項目全流程
網路上很多文章描述的所謂「機器學習項目全流程」,例如:數據收集處理、特徵工程、訓練模型、模型測試等等。這套流程對不對?對。但是遠遠不能滿足企業的需求。
AI項目是團隊創造出的具有商業價值的產品、服務以及交付產物。有著明確的需求、計劃、周期、成本、交付流程以及驗收標准。
以下以toB業務為例,對AI項目全流程進行簡單梳理。toC業務大體如此,只是將客戶替換成公司業務方即可。
初步需求溝通確認 該環節主要是由銷售、售前完成。了解客戶的基本情況,輔助客戶根據自身業務挖掘AI應用場景。根據實際的業務需求、數據質量、硬體資源、期望產物來評估具體的方案以及建模思路。 POC階段 Proof of Concept。在完成初步的評估之後,團隊需要針對客戶具體應用進行驗證性測試,包括確定業務場景邊界、業務評判指標、數據調研、資源需求、硬體/平台部署等。 場景方案確認 該環節需要售前、科學家、工程師等多角色與客戶進行細致的場景溝通,明確需求、確定驗收標准、評估工作量。因為該階段結束後即輸出SOW方案,因此需要反復溝通商榷。 建模開發階段 4.1項目詳細規劃 項目經理根據前期資料提供詳細的方案設計、功能清單、資源投入、里程碑安排等內容,召開項目啟動會,明確項目內容及分工職責。 4.2數據處理 科學家在明確業務場景及需求後,對數據處理。其內容包括:數據質量檢查、ETL處理(工作量較大)。還要對清洗後的數據進行探索性數據分析(Exploratory Data Analysis)以及可視化展示。EDA能夠幫助我們在探索階段初步了解數據的結構及特徵,甚至發現一些模式和模型 4.3特徵工程 根據探索性分析得到的輸出,結合對具體業務的理解,對分散的數據拼表並進行特徵工程。 4.4建模 形成初版建模,並對根據業務需求評估標准進行效果驗證。後續需要不斷進行模型迭代,直到滿足需求,並做模型效果匯報。 4.5系統研發 將訓練好的模型發布服務、部署上線,開發外圍對接系統以及部分定製化功能的開發。輸出可運行的系統。 測試上線 對系統進行流程測試、性能測試,滿足需求後對項目進行交付&驗收。 0x03 核心競爭力&技能樹核心競爭力
通過對AI項目全流程的介紹,我們將目光瞄準到「建模開發階段」的「系統研發」部分。雖然在上面只是一句話帶過,但是其中的工作量和技術含量不小。
提起機器學習,尤其是深度學習,大家可能會對諸如Tensorflow,Pytorch,Caffee的工具耳熟能詳。但其實在實際的機器學習的生命周期中,訓練模型(上述工具主要解決的問題)只是整個機器學習生命周期的很小一部分。
數據如何准備?如何保證線上線下一致性?模型訓練好了如何分布式部署?如何構建HA?需要批量處理還是實時處理?實時數據如何拼接?如何對模型服務進行監控、告警?做成PaaS還是MLaaS?
機器學習具有天然的Pipline特性,在企業需求中,大大小小的業務場景有眾多的模型,這些模型如何進行打包、處理、發布?離線訓練、批量預估、實施預估、自學習等任務類型交錯,不同建模工具Sklearn、Tensorflow,Pytorch構造的模型如何進行整合?開發框架Spark ML、Flink ML等如何協同、對接。生產環境如何進行擴展和伸縮?如何支持AB Test?
為了解決這些問題,新生的開源框架層出不窮:Google自研的對接Kubernets和Tensorflow的開源平台Kubeflow;Spark團隊打造的ML pipelines輔助工具MLflow;雅虎提供的機器學習及服務平台BigML;阿里巴巴推出的分布式機器學習平台SQLflow等等。眾多廠商紛紛發力,目的就是解決AI工程化應用的痛點。
這些工作都是需要一大批工程師去完成。因此,我認為了解AI工程化場景、解決方案;熟悉AI項目流程、機器學習Pipline;掌握AI系統研發、服務部署上線能力的工程師將會逐漸成為AI團隊的中堅力量。
技能樹
之前鋪墊了那麼多,既是梳理思路,也是為接下來的系列做一個開篇。按照我的初步計劃,技能樹大概包括(不分先後):
工程能力: 身為工程師首先要有工程能力,springboot/Netty/Thrift/等相關工具框架一定要掌握,微服務是機器學習平台的基礎。 Spark SQL、Spark ML等更是大數據工程師用來做機器學習的利器,不但要掌握、更要從中抽象出流程和處理方法。 容器化: docker和k8s現在幾乎是機器學習部署的必備技能,也是眾多平台的基礎。 是重要的前置技能。 機器學習&深度學習: 不要求能夠手推演算法、模型優化,但要能夠了解含義、上手使用,起碼要成為一名優秀的調包俠(也便於吹水)。 開源框架: 其實我最近打算學習kubeflow,並輸出學習筆記及總結實踐。 本文其實是這個系列的開篇。 當然,後續還有有調整。 0xFF 後記其實這種類型的文章,比單純的學習筆記、技術文章難寫多了。一方面,拖延症迫使我把難寫的文章放在後面寫,另一方面,強迫症又迫使我一定要在系列前出一個開篇。其實寫到最後,總覺得核心部分還差點兒意思,沒有搔到癢處,這是因為目前我還沒有能力站在一個全局的角度對職業技術體系進行劃分,只能梳理出目前的規劃和看法。後續要還需和朋友們進行交流。
有些事情是一定要做的,縱觀一些大牛前輩,無一不是在正確的時候做了正確的事。明確自己的目標,在前進的道路上不斷微調自己的方向,這樣才能在這個競爭激烈的職業中生存下去。
接下來會有系列的技術學習筆記,考慮到學習的連貫性,前期可能是一些基礎的docker/k8s等系列,後期會研究一些開源框架。技術文章可能會枯燥乏味,知識點也缺乏新意,但是經過自己的整理和實踐,再加上自身的理解感悟,相信會不斷完善自己的知識體系。
㈥ 想要成為演算法工程師都要學哪些技能
需要以下技能:
1、熟練掌握C/C++和python語言編程,熟悉linux開發環境,有扎實的數據結構和演算法設計功底;
2、熟悉推薦業務常用理論和演算法,在多個領域(如排序模型,召回模型,用戶畫像,深度學習等)有三年以上實際工作經驗;
3、有優秀的邏輯思維能力和數據分析能力,善於分析和解決問題;良好的溝通能力與團隊協作能力;
4、有推薦系統,廣告系統,搜索引擎等開發經驗;熟練掌握機器學習、深度學習的基礎理論和方法,並在自然語言處理任務中有實際應用經驗者優先;
5、熟練使用一種或幾種深度學習框架(如tensorflow、caffe、mxnet、pytorch等),或者熟悉spark、hadoop分布式計算編程者優先。
硬技能:
1. 數學:包括概率論與數理統計、矩陣論、隨機過程。
2. 計算機基礎:包括操作系統、組成原理、數據結構。
3. 演算法能力:包括對領域內主流模型進行優缺點對比、在設定的場景中選擇合適的方案等。
想要了解更多關於演算法工程師的問題可以咨詢一下CDA認證機構,CDA是大數據和人工智慧時代面向國際范圍全行業的數據分析專業人才職業簡稱。全球CDA持證者秉承著先進商業數據分析的新理念,遵循著《CDA職業道德和行為准則》新規范,發揮著自身數據專業能力,推動科技創新進步,助力經濟持續發展。
㈦ 演算法工程師需要學什麼演算法工程師要學哪些東西
演算法工程師需要學:數理統計、線性代數、數字圖像處理、機器語言、C語言、數據結構和演算法、開發工具應用、企業網安全高級技術、企業網綜合管理、網路設備與網路技術、程序設計、資料庫基礎、軟體系統分析與設計、需求分析與建模、數字系統與邏輯設計、通行原理等。
演算法工程師根據研究領域來分主要有音頻、視頻演算法處理、圖像技術方面的二維信息演算法處理和通信物理層、雷達信號處理、生物醫學信號處理等領域的一維信息演算法處理。
㈧ 如何成為一名合格的演算法工程師
BAT企業的演算法工程師是這樣工作的:問題抽象、數據採集和處理、特徵工程、建模訓練調優、模型評估、上線部署。(具體操作可以看阿里演算法專家chris老師的演算法工作流視頻演算法工作流是怎樣的?)而一個演算法工程師真正值錢的地方在於問題抽象和上線部署這兩個。