search
AI時代,從「小白」到「小牛」工程師的心法

AI時代,從「小白」到「小牛」工程師的心法

回復: 心法,獲取視頻下載。

修鍊心法

工程師的成長曆程儘管可能經歷不同,優秀的工程師的成長曲線中還是有許多共通之處。作為一個玄幻武俠文學愛好者,常喜歡把這個過程比作武俠打怪升級,既然是武俠,那自然是有心法的,這裡將「小牛」成長心法總結成三篇共九句箴言:

鍊氣篇:

基礎很重要,演算法,數據結構,操作系統等等;用正確的方法做事,不繞過,不取巧,走正道

  • 打好基礎,練好招式;

  • 端正態度,用正確的方法做正確的事情;

  • 關注細節,不嫌麻煩,追求卓越

築基篇:

工作經歷五花八門,不要做完就完,要形成自身的核心競爭力,就需要總結得失,同時構建符合自身的知識體系

  • 理解工作目標,常常反思;

  • 不斷總結,沉澱精華;

  • 思考人生,知識體系,構建核心競爭力

升仙篇:

求知是沒有止境的,只有不斷涉獵不同的知識,才能做到螺旋上升;同時基礎要不斷回復,用研究思維看問題,不急於否定 / 肯定新事物

  • 廣泛涉獵,抓住機會,不斷實踐;

  • 回復基礎,思考突破,反覆創新;

  • 好奇心爆棚,研究思維貫穿始終;

有了上面的心法,去迎接 AI 時代,相信會從容許多。有人可能說 AI 很虛,很飄,但其實 AI 的本質就是演算法,一切皆歸於演算法。它也不是最近因為深度學習引爆此次人工智慧革命才進入公眾的視野,事實上 AI 存在已久,它無所不在,從問答系統,決策支持到傳統 BI,數據挖掘到大數據分析,再到認知計算。

那麼怎麼去理解 AI 的生態,個人認為 AI 的生態尚沒有明確定義,但至少能夠看到兩種角色:第一種是 AI 科學家,類似大數據領域的數據科學家,他們的使命突破人類 AI 技術的邊界,不斷創造新的技術;另一種是 AI 工程師,或者用更加貼切的稱呼就是 AI 領域工程師,簡稱 AI FE,類似大數據的領域工程師,他們的使命是推動 AI 技術不斷成熟落地,轉化為實際生產力。從 Java 開發做個比喻,AI 科學家類似創造 Spring 框架的人,而 AI FE 是 Spring 的使用者,要將其用於某種業務需求的應用系統。

AIOps 點亮工程師的新人生

伴隨著自動化運維的發展,我們又迎來來一個新概念「AIOps」。到底什麼是 AIOps 呢?知名諮詢企業 Gartener 說,基於演算法的運維(ITOA)即是 AIOps,演算法即運維。在我看來其實演算法在整個研發體系的應用已經有些歷史了,例如騰訊在幾年前就用 3α演算法實現無需設置閾值的報警,不僅如此,3α演算法的閾值域變化還是動態的,根據現實調節的,不得不說還那麼點「智能」的味道。又例如,我們宜信也在幾年前開始將微智能的思想應用到系統中,微智能強調自動發現,自我維護,自動適應,這樣的目標也是希望系統更加「聰明」的工作。特別是在 AI 技術炙手可熱的當下,AIOps 或許解讀為 AI(人工智慧)+Ops(運維)更好,AIOps 就是將 AI 技術應用到運維領域的「工程化」過程。AIOps 所代表的系統應該具備三個特徵:類人交互,自主決策,理解執行。

同時,智能即運維也代表了 DevOps 實踐的一種進化方向。IT 運維發展大致經歷這麼幾個階段:

  • 早期工具時代:運維可以計算機化,沒有行業共識的流程和工具。

  • Pre-DevOps:ITIL 提出,建立流程管理質量;DevOps 作為一種思想剛剛萌芽,還沒有落地工具。

  • DevOps:它的工具鏈體系已經成熟,行業有了明確的共識,同時自動化運維的思想,方法,工具得以大力發展。

  • AIOps:就是當下,個人認為 AIOps 並不是要取代 DevOps 或推翻它的工具鏈,而是賦予 DevOps 工具鏈更多「智慧」,AIOps 與 DevOps 工具鏈的深度集成是必由之路。既然已經處在 AIOps 興起的當下,對我們工程師而言又有哪些新的機會呢?其實我認為這是對整個研發體系的機會,而不僅僅是運維:

  • 對運維工程師而言,懂運維是天生優勢,學習如何運維 AI 的思維解決運維問題是轉型的關鍵。例如運用機器學習從海量監控數據中提取異常點特徵,實現異常的智能預測。

  • 對開發工程師而言,懂開發,懂應用是好起點,在要求人人參與運維的今天,以 AI 的思維構建應用是全新的方向。例如從硬編碼實現服務調用轉變為讓系統自己學習 API 實現調用,實現真正的智能服務編排。

  • 對測試工程師而言,作為 DevOps 的關鍵一環,用 AI 的思維更高效的保證軟體質量成為新的應用場景。例如運用機器學習從海量測試日誌中提取特徵實現測試異常的分類會大大提升測試結果根因分析的效率。

那麼如果是在校同學,應該怎麼去擁抱 AIOps 呢?有的人可能說我們學校沒有運維專業,更沒有 AIOps 專業。其實專業從來就不是問題,就像從事 IT 的,往往也不都是科班出身,而且 AI 也為數學,應用數學等專業的同學找到新的職業方向。那麼關鍵問題是什麼呢?還是基礎很重要,一切皆歸於演算法(重要的事情說三遍)。此外,在校同學應該加強實踐,從應屆招聘的情況來看,往往實踐較多的同學會有明顯優勢。有同學可能問,我們怎麼實踐 AI 呢?其實要從生活或學習中找場景,例如是不是可以為自己量身定製一個小的智能推薦系統,利用 AI 技術實現從海量數據中推薦符合你需求的旅遊去處。

總之,無論是工程師還是在校同學,我相信 AI 以及 AIOps 都是極好的新機遇。

AI FE 的修鍊之術

既然面對這麼好的新機遇,我們要如何武裝自己,成為一名 AI FE 呢?

首先,前面的說的心法還是管用的,那可能是貫穿整個職業人生的術:打好基礎,正確方法,不斷總結,知識體系,反覆實踐,研究思維。

再者,實踐 AIOps 知識體系構建的三部曲:

  • 第一步:演算法原理搞明白。記得上學時,有本書叫《演算法導論》,掌握裡面的基本演算法原理是培養演算法思維的好途徑。從入門機器學習的角度,結合個人經歷,我推薦大家關注以下幾個演算法的原理:神經網路,馬爾可夫模型,決策樹,邏輯回歸。一方面現代機器學習的演算法都是從這些基礎演算法里發展出來的,「知根知底」才能融匯貫通,另一方面在我們的實際應用中,發現這四類演算法及其衍生演算法是確實能夠通過「工程化」手段解決實際問題的。

  • 第二步:要了解 AI 的常見領域以及相關工具,這是技術選型的前提。一般來說常見的領域包括自然語言處理,搜索技術,知識圖譜,圖形圖像分類,語音識別等。常用的開源工具有 NLP 類(中文方面 Standard NLP,清華 NLP,復旦 NLP 等),word2vec(詞向量),Elastic Search(搜索引擎),Neo4J(知識圖譜,圖資料庫),TensorFlow(基於流的機器學習),DeepLearning4J(java 的深度學習工具)等等。

  • 第三步:掌握 DevOps 工具鏈(3 大工具:自動化測試,CI/CD,監控)的特性,因為它們是 AIOps 處理的數據來源,也是 AIOps 實現執行的目標;同時,了解運維知識,邏輯,方法等也是很重要的,最好是能成長為運維專家。

另外,要了解是系統體系「智能」的三種玩法,在不同場景下,玩法不同:

  • 實現方式偏編碼方式,讓系統體現智能。信息搜索和微智能屬於此類

  • 實現方式模擬人的行為,最終讓系統體現智能。機器學習,知識圖譜等屬於此類

  • 混合方式,將前兩種方式一起使用。其實在真實場景中,往往是這種方式,這主要是由於 AI 技術還處於發展期,有的場景可能難以完全模擬人的行為,也可能付出成本很高,投入產出不適合。

小窺 AIOps 落地之道

那麼 AIOps 到底應該如何落地呢?在引入 AI 技術時, 我們也進行了仔細的思考,坦白說,AI 還不是「平民技術」,並且其投入和產出也並不像去使用某種開發框架一樣直接。最終確立了以下原則:

  • 從實際痛點入手,找到適合場景以及正確的問題來試點,而不是「大而全」的 AIOps 解決方案。

  • 技術選型上充分利用已經比較成熟的開源 AI 技術,可以做必要改進,但盡量不重複造輪子。

  • 充分使用我們現有的 DevOps 工具鏈,而不是全面推倒重來

在金融運維 / 運營領域,我們認為有兩類場景是可以引入 AI 技術來產生效益的:

  • 第一種是時效類場景:就是運維要求響應以及恢復越來越快,快到逐步超過了人 + 工具的極限,另外人員可能休假,以及其他不能作業的狀態。運維界流行一句話「出門三柱香,保佑服務不要掛」,但墨菲定律總是讓故障發生在運維休假的時候。此外,日常上線也是經常遇到的場景,儘管 DevOps 流水線已經讓一切都自動化起來,但是這些過程是人定義的,能夠預防的也是人預料的異常,事實上往往出現意外,此外上線時機的選擇,驗證,合理回退等仍然需要大量人工介入進行決策

  • 第二種是協作類場景:我們經常會聽到業務同事抱怨每次出現問題,他們都不知道進展如何,不知道出了什麼問題,什麼時候能夠解決,而且大量 IT 術語他們也聽不懂;我們也經常遇到研發同事追查代碼問題,但是不了解基礎設施的狀況,還得找運維同事幫忙。這裡癥結在哪裡呢?其實是缺失一個「全知」的,掌握人,業務,系統的狀況的助手,就像鋼鐵俠的 Javis 和 Friday 一樣。

那麼作為一個 AI FE 的日常工作內容有哪些呢?

首先,AI FE 仍然是工程師,需要完成工程師日常所有內容,開發,測試,運維一樣都不能少。只是增加了一些內容:

  • 不斷提高正確率是每天要面對的目標。AI 技術,特別是機器學習是基於統計學的,所以概率就變成了工作內容的一部分。例如需要系統通過說話內容來識別人的意圖,通常來說通過演算法計算出來的是好幾種近似的意圖目標,機器學習演算法會告訴你他們分別的近似概率是多少,有時候可能會都很低,這時就要考慮如何提高識別正確率。

  • 從關注 Bug 到關注效果。傳統運維中,大家很關注系統出現了什麼 Bug;而面對 AIOps 系統,不僅僅要關注 Bug,更要關注效果。例如某個業務同事詢問「某某系統運行如何」,AIOps 系統如果回復一堆 IT 術語或指標,這個業務同事是蒙圈的,從功能角度說這裡沒有 bug,但是效果很差。

  • 關注 AI 技術的新動向,提供選型參考。AI 技術還在不斷發展,可能每天都會產生一些新鮮的技術,作為 AI FE 需要時刻跟進,了解不同技術的應用可能性,成熟度等等,並且在適當的時機和場景下引入這些技術來解決實際問題。

總結一下,要落地 AIOps,需要從痛點出發,選擇適合的 AI 技術,與 DevOps 工具鏈深度集成。AI FE 要關注如何提高正確率,要關注應用效果的好壞,同時要保持對 AI 技術的敏感度和新鮮度。

相信大家還是很好奇,我們到底是如何把 AI 技術落實到應用場景中的呢?前面提到的 AIOps 系統特徵類人交互,自主決策,理解執行的實現原理是什麼?我將會在由 InfoQ 主辦的 9 月 10 日在上海舉行的 CNUTcon 2017 智能運維專場為大家解答,敬請關注。

彩蛋!!

CNUTCon 全球運維技術盛會即將於 9 月 10 - 11 日在上海開幕,還有 9 月 8 日 -9 日會前兩天的深度培訓,如果想了解運維最新技術趨勢和實踐,來 CNUTCon 學習一定是你的不二選擇!

9 折 限時優惠報名中,購票頁面輸入優惠碼:CNUTCon666 還可享受大會門票特別優惠,購買「2 天培訓 + 大會套票」優惠更多,數量有限,先到先得!購票諮詢:18504256269 。

CTO 與工程 VP 的區別?

熱門推薦

本文由 一點資訊 提供 原文連結

一點資訊
寫了5860316篇文章,獲得23306次喜歡
留言回覆
回覆
精彩推薦