独家专访 | 从跨国投行到开源社区,IBM Spark总工程师Nick Pentreath的传奇经历
2019獨角獸企業重金招聘Python工程師標準>>>
原創?2016-12-04?李澤南 杜夏德?機器之心
機器之心原創
作者:李澤南、杜夏德
?
Nick Pentreath 是 IBM Spark 技術中心的首席工程師,他專注于 Apache Spark 機器學習領域,著有一本《Spark 機器學習》。在進入 IBM 以前,他曾參與共同創立了 Graphflow,一家提供推薦系統和智能解決方案的初創公司。在進入計算機科學領域以前,他曾在高盛投行工作,親歷了利比亞卡扎菲政府 12 億美元投資巨案。
?
最近,隨著 2016 機器學習行業應用國際峰會的舉辦,Pentreath 來到了北京。機器之心受邀對他進行了獨家專訪,我們一起聊了聊 Spark 的新版本、IBM 的開源精神、不同平臺的競爭關系,以及他在高盛的傳奇經歷,其中不乏爆料和精彩的觀點分享。讓我們看看 Pentreath 是怎么說的。
?
?
?
機器之心:作為 IBM Spark 的首席工程師,你最近的工作是哪些內容?
?
Pentreath:我最近的工作都在 Spark 的兩個新版本上。Spark2.0 剛剛推出,2.1 版又將緊隨其后。目前的 Spark2.0 是 Spark 自推出以來第二次重大更新,我們進行了諸多性能上的提升,改進了 API。
?
對于應用而言,將數據集裝進框架中是很重要的流程,這也是 Spark API 的主要工作,和機器學習庫功能相近。在 Spark 中,舊有的基于 RDD 的 API 形成了我們整個框架的基礎。我們將在此之上開發所有的功能。我們現在的工作是提供新的 API 管道,服務于機器學習工作流。Spark 2.0 的主題是新的數據框架 API,讓它的風格向基于 RDD 的 API 轉變,為 Scala 建立平臺,嘗試加入 Python API,改善 R 語言的支持。所以,主要是向更多編程語言提供支持,進行穩定和性能的改善等工作。
?
所以我在 Spark2.0 上我做了很多工作,包括版本質量和說明文檔的改善,我希望能讓這一版本在發布時能夠高效穩定。而最近由于需要發布 2.1 版本,我做了很多事,參加了很多會議,當然也少不了和 IBM 同事們的討論,我希望盡全力把這個版本做得更好。這個版本的大部分改進仍在性能的提升上,不過也包含新的模型,如 Multi-Possible 描述等。
?
機器之心:你對機器學習的認識是怎樣的?
?
Pentreath:對我自己來說,我接觸機器學習已經有六七年了,雖然我的背景是金融,但現在轉行進入了這個領域。我希望自己能夠做一些技術上的工作。機器學習可以解決現實世界的問題,這讓我非常感興趣,我曾經廢寢忘食地學習機器學習理論,解決現實問題的方法。機器學習目前可以應用在很多方面,如廣告投放,社交網絡,圖像識別等等,主要是在這些之后的個性化推薦系統。
?
這些系統會在不同地方被應用到。在來到 IBM 之前我曾經創立過一個公司(GraphFlow),這家公司在 2013 年建立,提供推薦系統和各種 API。我們曾有 5 個 API 和分析視頻的推薦系統,通過這些,我們可以向用戶推送他們喜歡的電影。
?
在 GraphFlow 我們就用到了 Spark,當時還是 Spark 的早期版本,0.5 版。我們的工作都是基于 Spark 的,我們發現 Spark 可以方便地用于處理大數據工作。在三年以后,很遺憾我的公司無法實現盈利,沒有足夠的現金流,我只能關掉它。現在我在 IBM 的工作是一個全新的體驗,新版本的 Spark 仍然是開源的,我很高興能加入進來。
?
機器之心:所以,你從一名使用者變成了開發者,這是個有趣的轉變。除此之外,還有什么原因讓你選擇 IBM 而不是其他大公司呢?
?
Pentreath:的確有很多其他的公司正在機器學習和大數據上努力耕耘。但我覺得 IBM 是獨一無二的,我覺得我來到這里主要是因為我之前的工作,在那時我對 IBM 產生了好奇,為什么他們的服務是這樣的?他們是如何做到的?他們有什么資源?后來有人告訴我 IBM 正在發起一個專門的團隊做 Spark——Spark Technology Center。這個部門會完全為開源服務,推進這一事業的價值,促進開源社區的發展。我對此很感興趣,因為我也希望獻身于開源事業,作為一個貢獻者,這就是為什么我選擇了 IBM Spark。而且 IBM 也是我的夢想。
?
機器之心:你剛剛加入 IBM Spark 的時候,這個部門處在什么樣的狀態?
?
Pentreath:我來到 IBM 還不到一年,我是在 6 月份加入的,那時正值 IBM 對 Apache 加大投入,Spark 的目標是開發屬于未來的數據分析系統。在這幾個月里我覺得 IBM 正在逐步實現這一目標,很多事情已經做到了。這就是 IBM 成立這個部門,招募很多員工的意義——純粹地服務于 Apache Spark 開源工具和整個生態系統。
?
目前我們的成果已經應用在 IBM 的一些產品中了。我們的努力也讓 Spark 達到了同類產品中的頂尖水準,我是說相比整個行業內所有的數據平臺。在最近發布的 Watson 機器學習產品中出現了我們的數據科學成果。同時,我們所做的一切都是在開源的基礎上進行的,這也是 Spark 團隊的宗旨,在開源社區中形成生態系統。提供支持,開展活動,讓全世界所有人分享和交流,建立這個社區。我們的工作目前卓有成效。
?
機器之心:你剛才提到推薦系統,目前的在線和離線推薦系統有什么區別?
?
Pentreath:的確,在線推薦系統永遠是很容易做的,只要能夠連接網絡,在移動端也可以獲得很好的體驗,因為在線系統可以輕易地獲得數據,如果你正在運營一個網站或者手機 app,你總是會想得到實時的用戶數據反饋,用戶在購物車中的商品等等;你需要實時對用戶行為做出反應,提供相應的推薦。你會希望用戶登陸他們的賬戶,留下信息以供分析。這些在用戶登陸網站或者手機 app 中都很容易實現。
?
離線推薦系統是以相似的理念建立起來的,但很難進行有效的推薦,當客人走進商店時,系統無法感知他們的到來,也無法區分不同客人的喜好。你也許可以通過識別他們攜帶的信用卡來讀取用戶身份,以發送電子郵件或用戶反饋的方式收集信息,但這仍然遠遠不夠。因為這些信息很難進入數據循環中去。首先,你需要處理這些信息,學習用戶習慣;隨后提取重點進行推薦。這和在線方式相似,但更具挑戰性。
?
機器之心:IBM 目前的推薦系統中是否用上了深度學習?
?
Pentreath:當我剛剛加入 IBM 的時候,我們的推薦系統中還沒有加入深度學習或是強化學習的內容,也不包含預先輸入的特化屬性,這在搜索引擎的推薦系統中經常會被用到。我認為深度學習十分重要,現在非常流行,所有人都在談論它,深度學習也可以獲得很好的結果。但深度學習目前沒有應用在推薦系統中,最近一些論文中的研究正在向這方面發展,我知道 Spotify 在這上面有一些工作,他們正在用深度學習提取每首歌的風格,為用戶做推薦模型,那真的很棒。
?
在去年末的 NIPS 上有一些很有趣的論文,谷歌發表了用神經網絡模型做推薦系統的新方法。深度學習可以從圖像、文字、聲音中獲取特征,當然也可以來做推薦系統,為什么不呢?我覺得這是一個很棒的課題,我們很快就會有新進展。
?
機器之心:在參加學術會議和進行技術開發之間,你如何權衡兩者?
?
Pentreath:我必須時刻關注行業內的最新進展,閱讀大量文獻。我認為自己是個喜歡向前看的人,希望搶先了解會議和研究中的成果,然后思考這些成果能夠如何實現,在 Spark 中實現。
?
機器之心:最近 Spark 社群非常活躍,有很多大公司,如因特爾和華為都對 Spark 做出了一些貢獻,對于 IBM 而言,你們對開源社區的態度是什么樣的,特別是對 Spark?
?
Pentreath:IBM 中 Spark 部門是在 Apache Project 之下的,正如其他項目,它是開源的一部分。它運行在社區貢獻者的管理之下,Apache 的這種方式非常重要,它意味著在項目中沒有哪家公司是具有一票否決權的,這是開源精神的一部分。Apache 中的貢獻者都是獨立個人,他們中的一部分是各家科技公司的員工,他們會時不時改換門庭,但不變的是對 Spark 的熱愛。正是這種精神正在幫助著 Spark 社區不斷成長。
?
IBM 在開源社區中的責任就是讓 Spark 保持絕對的開源,在任何方面。IBM 會保持這樣的策略,讓社群和商業化的的產品建立在 Spark 之上,讓更多兼容 Spark 的硬件驅動和性能優化出現。對于其它公司而言,IBM 只是社區中的普通一員,我們希望與所有成員共同合作開發這一生態系統,并保持它的開放。
?
機器之心:有關競爭者的問題,最近 CMU 教授邢波宣布 Petuum 離開了實驗室,成為獨立公司,并吸引了 1500 萬美元的 A 輪融資,他們宣稱他們的平臺比 Spark 和 Hadoop 高效很多,你對此有何評論?
?
Pentreath:這很有趣,但我得說我不太相信。競爭總是好的,競爭讓整個行業能夠更快發展。這對所有人都是好的,無論是開源社區,還是 Petuum 來說。我認為對于 Spark 來說,我們的優勢在于我們是一個大平臺,我們的框架可以用來做很多不同的任務。Spark 還有很多特定的優勢,例如它可以很好地執行感知器(Sigmoid)任務,在之前也許不夠好,但在 Spark2.0 和 2.1 版本中這一部分得到了進一步加強。所以我認為 Spark 在所有新方向上是領先的。同時我認為我們的生態系統也具有優勢。
?
對于機器學習而言,Spark 目前遇到了一些挑戰,例如 Spark 目前無法使用平行學習(parallel learning),所以一些其他框架,如 Petuum,甚至 tensorflow 在分布式運算速度上具有優勢。他們能支持模型的并行訓練,讓機器學習,特別是深度學習更快捷。
?
毋庸置疑,Spark 正面臨這些公司的挑戰,但我認為 Spark 在競爭中永遠會占有一些優勢,這包括生態系統上的優勢。除此以外,Spark 也樂于和所有同行進行合作,這就是我們的精神,我們不尋求替代所有其他方式,這是沒有必要的。我們從數據中獲取信息,為整個生態系統提供生產力。
?
在未來你也許會看到在機器學習中 Spark 和 tensorflow 的結合,例如 tensor frame data 是我們正在進行的工作之一。所以我認為我的回答是:我們歡迎在框架內的合作與互相交流。目前我還不知道 Petuum 的計劃是什么樣的,他們之前是開源項目,在這次融資獨立之后我就不知道了。但我認為競爭是好的,良性競爭是成就 Spark 的一大原因,我們將持續整合生態系統,對深度學習如 Tensorflow 和 Petuum 持開放態度。
?
機器之心:你對 IBM 的現任 CEO Ginni Rometty 印象如何?
?
Pentreath:關于她的情況我所知不多。但我得說是 Rometty 讓 IBM 重新成為一個知名品牌。她正在做的,是把人們印象中舊 IBM 硬件供應商的形象轉變為解決方案提供商的新形象。現在的 IBM 有關軟件,有關人工智能的應用和云平臺。我認為 Rometty 正帶領 IBM 走在正確的軌道上,她做得很棒。
?
?
機器之心:我們對你的經歷很感興趣,你有著商科背景,為什么會選擇轉行進入計算機科學呢?
?
Pentreath:我仍然很喜歡金融,我現在還在關注市場的動向,我經常想把機器學習應用到證券交易中去,那也許會產生意想不到的結果。
?
我曾經在投行工作,那是很棒的經歷,但隨后我希望能夠退居幕后做一些技術工作,具體而言是開發解決方案的工作。至于為什么我喜歡機器學習和軟件開發,我想是因為它有關創造,這讓我可以在屏幕前創造新的解決方案。在金融業工作幾年以后我非常想要嘗試一些新東西,同時進入技術崗位,我也想回到大學獲得更高的學位。于是我去學了一個(UCL)機器學習的碩士。
?
另外我必須提醒你,在 2008 年金融危機正如火如荼,那正是一個說「轉行吧,去翻開新的一頁」的最佳時間點。所以并不只是一個念想,許多事集中到了一起讓我做出了這樣的決定。
?
機器之心:你在高盛工作期間曾有一段關于利比亞的冒險,有什么特別的時刻可以分享嗎?
?
Pentreath:在所有金融大公司里,你都會時刻處在高壓環境中。時間永遠不夠,任務永遠很多,你需要完成業績。從某種意義上來說,每天都是新的挑戰。但這也非常的刺激,我在學校中獲得的知識得到了應用。在投行里工作你會感覺自己一直處在全球市場的中心,你會感受到整個市場的呼吸就在你身邊。高盛的經歷讓我受益良多,我學會了市場是如何變化的,學會了如何完成交易,學會了團隊協作,與很多人共同挑戰難關,當然,還有如何在最嚴酷的壓力下工作。
?
在那里我還學會了如何與客戶進行互動,如何堅持自己的理想。高盛的經歷令我難忘。
?
機器之心:高盛投行,機器學習初創公司 Graphflow 和 IBM Spark,你的背景真是很豐富。對于你來說,哪份工作挑戰性更大?
?
Pentreath:每個工作遇到的壓力都是不同的,但是在初創公司我是最累的。因為在那里我得身兼數職,我曾經和另一個人一起從零開始,開發了整個系統。那時所有事都得自己做,從 debug 到運營,同時還得管理財政。在初創公司,你得找到投資,還得做銷售。那段時間我不得不將所有的精力都投入到工作中去,每天 24 小時,每周工作七天,這對你的家庭來說壓力也很大,所以我認為這是最難的。
?
和在初創公司中的情況不同,在高盛工作你也需要每天工作很長時間,特別是對于年輕人來說,每天都要工作在壓力之下。你需要完成交易,和客戶保持溝通,這意味著時刻保持緊張。
?
在 IBM 中你會發現自己身處于一個大型科技公司,每個人都希望表現,也意味著工作在挑戰之中。但我覺得這里的環境非常友好,我的同事都非常樂于幫助,他們都是很棒的人。我覺得這里和銀行的工作環境有很大不同。
?
機器之心:你在 IBM 的工作中面臨的問題更多是技術上的還是團隊合作上的?
?
Pentreath:加入 IBM 以后,我仍在南非開展工作,那是我的家鄉,所以我所面臨的最大問題不在技術上,而是如何開展有效的團隊合作。Spark 技術中心的成員遍布全球,他們來自不同的國家,不同的時區,我需要讓所有人緊密團結在一起,距離是我面臨的挑戰。
當然,這種多樣性也是我們的優勢,但這意味著有時我需要和不同的人使用不同的交流方式。在我的工作中總是充滿著交流,事實上,過多的交流(笑)。有些時候我必須得不停告訴人們事情的進展,這也許是最難的事。
?
機器之心:我們看到《Spark 機器學習》的中文版吸引了很多讀者,什么時候能看到你的下一本書?
?
Pentreath:寫這本書用了我很長時間,它可不像中文版看起來這么薄(笑)。下一本書肯定也要花很長時間,而且最近我還會對這本書對應 Spark 新版本進行內容的更新,我目前在審閱新版《Spark 機器學習》的內容。
?
我會寫本新書,但是不知道需要多久才能寫好,我近期就會開始準備!
轉載于:https://my.oschina.net/Bettyty/blog/799645
總結
以上是生活随笔為你收集整理的独家专访 | 从跨国投行到开源社区,IBM Spark总工程师Nick Pentreath的传奇经历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx反向代理tomcat提示fai
- 下一篇: tbox新增stackless协程支持