近期,兩個我曾使用過的云計算平臺 Sense.io 和 getdatajoy.com,即將逝去。前者被收購,已經對個人用戶關閉;后者即將在 2017 年 1 月 2 日關站。
在人工智能爆發的今天,兩個本應是智能計算核心的云計算平臺,不僅沒有乘風而起、順勢化龍,卻倒在了新時代的門檻上,不得不引起人深思。
|Sense.io —— 按需分配計算能力
在 Sense.io 上,各個項目可以使用不同運算能力的平臺,分別運行。單個項目可以使用多個虛擬 CPU 和或大或小的內存空間。
Sense.io 是一個面向數據科學家的可以動態分配計算能力云計算平臺,簡單說來就是“數據科學家的 GitHub”。在 Sense 上,數據科學家可以與其他人協作,并生成數據報表。
2016 年 3 月 22 日,Sense 宣布被大數據軟件公司 Cloudera 收購。Sense 的創始人 Tristan Zajonc 和 Anand Patil 在 Sense 的博客上發布了被收購的公告,同時宣布免費和個人服務 2016 年 4 月 31 日關閉。
在 Sense 上,用戶可以直接用 Python、R、Julia 編寫代碼,進行算法實驗,構建模型,然后根據算法需要和成本綜合考慮,選擇具有合適運算能力的云計算平臺(虛擬 CPU、內存)運行,然后輸出、保存結果。運行的程序,可以是一次性的函數,也可以使用一種類似 Jupyter 的交互式執行環境來單步執行,分別看輸出的結果。輸出的結果可以是數據文件,如 CSV,可以是 png、jpg 等格式的圖片,又或者可以用 java 動態圖表展示出來。最后也可以生成 markdown、pdf 的報告。
我曾經用 Sense.io 進行過一些數據分析。 其最大的優點就是運算能力可配置的特性。在進行實驗的初期,使用稍小的運算能力,用單 CPU 檢查數據,調試算法,檢驗假設。當實驗流程比較清晰明確,代碼跑通之后,就可以換用大運算能力,用 16、32、64 核和大內存載入所有數據進行運算,盡快獲得實驗結果。尤其是同一方向的實驗,可以簡單地通過復制項目,修改參數、添加函數或者調整流程,迅速并行展開多種實驗。數據可以上傳到同機房的 AWS 數據服務器,如:S3、DynamoDB、或者 Redshift,以方便不同項目共享訪問或者同一項目的多次快速存取(sense.io 是搭建在 AWS 基礎設施之上的)。
其實,做科研或者做商業數據分析都會遇到這樣的問題,在構思算法或實驗初期,并不總是在編程和運算,檢查、清洗數據與思考占用前期大量時間。
直到有了比較清晰的方向,需要用數據和結果來驗證想法的時候,才需要大量甚至是海量的運算。當然,兩種情況是經常是交替進行的,一段時間慢慢思考調試;一段時間跑大量的數據來看整體的輸出。在進行批量運算的時候,甚至會去搶別人的電腦來跑實驗。使用 Sense.io 這種方案,可以有效充分地利用運算能力。一方面不至于在概念驗證的初期就浪費大量的運算能力;另一方面,在需要的時候,可以迅速拓展克隆,在短時間內調動大量的運算能力迅速得到結果。
與現有的其他網站相比,Sense.io 更為靈活與已用。其預先配置好了編程環境,包括 Python、R 和 Julia 等數據分析最為常用的開源語言的開發環境,可以直接上手工作。不需要配置虛擬機、配置虛擬網絡、安裝系統、安裝軟件環境等一整套繁復的環境配置工作。
同時,協作與共享也變得相當簡單。直接登陸在線帳戶,進入同一個工程項目,就可以進行協作。或者直接克隆一個當前工作的鏡像工程交給他人接手開發。
從服務器運營角度上看,這也是比較合理的方案。每個用戶的使用峰值不同,不同用戶錯峰使用更能提高服務器的利用率。甚至,可以通過調整峰谷運算能力的價格,來進一步的平谷抑峰。
但可惜,被 Cloudera 收購后,Sense 已經對個人用戶關閉,不知道 Cloudera 未來會不會開放 Sense 動態調整運算能力的技術。
| DataJoy —— 學術文檔與代碼的融合
在 DataJoy 上運行基于 Keras 的全連接深度網絡學習識別 MNIST 手寫字符的例子。
2016 年 8 月 3 日,DataJoy 聯合創始人 James Allen 和 Henry 向所有用戶發送關站預告。宣布網站將于 2017 年 1月 2 日關閉,屆時賬戶將不再能登錄,已付費用戶賬戶余額將會退回。
DataJoy 是 ShareLaTeX 團隊兩年前上線的云計算項目。在 DataJoy 網站上,可以使用 Python 和 R 進行數據分析和編程學習。任何電腦,只要打開瀏覽器登錄 getdatajoy.com 這個網站,就可以立即進行 Python 和 R 編程、調試、分析數據、輸出結果,便于程序設計教學,免去了所有編程課程第一課安裝軟件配置環境的混亂場面,可以直接上手干活。而且一套穩定、隨時隨地可以訪問、還可以簡單克隆的環境,為從業人士提供了一個穩定、容易拓展和分享的標準工作環境。
DataJoy 團隊在給用戶發送的關站預告 email 里面說,市場上本已有很多成功競品,所以競爭激烈。過去兩年來,雖然 DataJoy 對少數用戶很有幫助,但并沒有大規模的流行起來。雖然,有些老師用 DataJoy 來進行 Python 和 R 的教學,但這并不足以支撐 DataJoy 的持續發展。商業上無法取得成功,技術團隊還要維護 ShareLaTeX,就只能選擇關閉 DataJoy 了。
簡單來說,就是商業模式無法持續,沒有盈利與投資,因此不得不關站。這其實也可以從一些側面得到驗證。在中文科技媒體上,完全沒有任何相關新聞,只有一個旅歐學者的博客提到了這次關站事件。因此不得不說,DataJoy 在推廣上確實還是做得很不夠。
我也曾使用 DataJoy 進行過數據分析實驗,甚至在其上跑通過 Keras 深度學習識別 MNIST 字符代碼例子。但在進行我自己的卷積神經網絡實驗的時候,DataJoy 的運算能力就遠遠不夠了。本身 DataJoy 服務器的運行速度相對就比較慢,又設置了單個項目的運行時間的限制,即使我付費購買延長項目運行時間之后,也遠遠不夠進行實驗所需的運算能力。這里可能也是與 DataJoy 網站的市場定位有關。DataJoy 與 Sense 的定位不同,不是專門針對數據分析,而是針對編程入門教育。但其實也很有可能是因為 DataJoy 的運算能力有限,使得其只能被限制在教育和運算能力有限的應用上。但 DataJoy 的界面與交互確實還是非常貼心的,畢竟有 ShareLaTeX 維護的經驗。
單純從站點本身的功能來看,DataJoy 并不突出,但考慮到其運營是 ShareLaTeX 團隊,它的成長本是非常令我期待的。個中原因有一點復雜,涉及到一個復雜的問題。
在學術領域,科研結果的可重復性,一直是一個令人頭疼的大問題。在計算機領域,經常是在發布論文的同時,再發布一份相關方法的代碼。但畢竟是兩個不同種類的工作,學術文檔的撰寫和代碼的編制,確實很難對照。同時在科研進行的過程中,實驗代碼的編制與學術文檔的撰寫截然分開,也造成了科研進程的反復打斷與切換的問題。
在R語言方面,近幾年出現了一個革命性工具 knitr。
knitr 是由謝益輝博士在統計學博士在讀期間業余開發的開源 R 代碼包。謝博士畢業后進入 RStudio 公司專職進行 R 語言工具開發。使用 knitr,可以直接撰寫帶有 R 代碼的實驗記錄、報告和演示文檔。文檔中的 R 代碼,可以直接執行,并將結果輸出到文檔中,例如實驗結果的數據、根據實驗所花的折線圖和對比實驗的結果表格等等。這個流程與程序語言中的 Jupyter 有些類似,代碼與文檔交替撰寫,源代碼、數據分析結果與文檔交替展現。
不同的是,knitr 可以把 Rmd(R 語言增強的 markdown 變種)編譯生成為 text 文檔,最終生成學術水準的可出版 PDF 文檔。這個方案,使得學術寫作、數據分析源代碼和實驗結果、甚至圖表展示都融合到同一個流程中。 首先,對于科研結果的可重復性,讀者可以直接運行文檔中的代碼,重現實驗結果。其次,對于科研流程也是極大的簡化,科研工作流程及學術寫作流程合而為一,得到了極大簡化。
knitr 在 Beamer 中嵌入實驗代碼輸出結果的例子。左側藍色的是 Rmd 文件原文,右側是生成的 PDF 演示報告文檔。由 `<<>>=` 開始,到 `@` 結尾的 R 代碼塊會自動運行。其中 `<<>>` 中可以寫入對于放入文檔的內容的輸出控制參數。例如:`<
而 DataJoy 這個支持 Python 和 R 代碼運行的云計算平臺,由于其 ShareLaTeX (專業的在線 LaTeX 文檔撰寫平臺)背景,給用戶極大的想象空間。畢竟 Python 比 R 的普及程度高得多,各種數據分析、深度學習的代碼庫極為豐富,而且 DataJoy 的基礎運行方式是非常容易進一步拓展支持更多程序設計語言的(參見 Beaker Notebook 支持幾乎所有語言)。ShareLaTeX 與 DataJoy 如果能夠有效的融合,學術出版、技術文檔撰寫、數據科學教學、程序設計教學、大數據以及人工智能的科研與教學會被全部打通。
可惜的是, DataJoy 完全沒有走到這一步。不知道是團隊對于 DataJoy 的定位問題,還是近期的資本寒冬造成這個概念無法繼續執行下去。本來充滿想象的大平臺,就此走向孤立。
|面向協作的云計算平臺
云數據分析平臺中除了開源的 Jupyter 和 beakernotebook.com 這種開源工具之外。商業運營的網站主要是面向大企業商業智能分析、金融量化分析和數據分析競賽等少數站點取得了成功。主要原因就是數據分析雖然在相關行業內熱炒,其實還是一個相對小眾的領域。尤其在這少數業者之間,對于數據和算法的泄漏的擔憂又加重了使用開放平臺的疑慮。
只有在教育、學術、招聘等領域,由于其內生的開放特性,使得相關平臺有一定的市場。但這就有了一個人口基數的問題。Facebook 的目標用戶可以是世界上所有的人,現在月活達到十七億;GitHub 的目標用戶可以是世界上所有程序員,現有月活約百萬;一個數據分析平臺的目標用戶,只是程序員中做數據分析方向的,又會有多少?該類網站相對來說難以成功就不難解釋了。
但在中國,這又是另一個故事了。2016 年 7 月 15 日,湯森路透公司將知識產權業務和科學信息業務以 35.5 億美元的價格出售給 Onex Corp 和霸菱亞洲投資。SCI 科學引用指數服務被母公司賣掉,為中國敲響了一個警鐘。國智之依賴,舉國學術科研的評估標準,不僅孤懸海外,更是被東鬻西賣搞商業開發。國家科研成果評估與選題導向被掌握在商業公司手里,國內的學術出版的發展刻不容緩。然而長期選用 SCI 作為評估標準又是有著不得已的苦衷。其客觀、同行評議機制是長久以來中國學術科研的必要依賴。因此,客觀、中立、公開的國內學術出版解決方案其實是有著強烈的需求的。
在計算機視覺、機器學習、人工智能的學術研究領域,近幾年的學術文章流行這樣一個套路:
PDF 文本發布在 arXiv;代碼發布在 GitHub,以至于有專門的 GitXiv 提供此種論文和代碼的索引。
由此推廣開來,如果有足夠資源的話,通過收購或者協作來打通一系列網站,來建立一個通用平臺,來實現完整的科研、技術、產業生態鏈,包括: 一個類似 OverLeaf 或者 ShareLaTex 的在線學術文檔協作撰寫平臺、一個類似 Sense.io 或 DataJoy 的協作云計算平臺、極視角(extremevision.mo)算法變現平臺、一個類似 Kaggle 的算法競賽平臺和一個數據托管平臺。
國內的人工智能、機器人、機器學習、計算機視覺的學術科研與創業,都需要這樣一個通用的云計算平臺,來打通學術科研、學術出版、學術成果評估、在線數據分析競賽與協作、科技人才選拔、學術成果轉化等各個領域。在此,強烈建議有識之士建立一個這樣的在線云計算協作平臺。
| 結語
在云計算的時代,如何在“云”上攢一整套學術科研或者說數據分析工具鏈,是我近幾年的主要關注點之一。現有的各種云服務遍地開花,但一直沒有一個強烈的推動力將這些云服務打通融合。現在這個資本寒冬,反而為各個創業企業報團取暖,打通生態鏈,協作創新,優化提升提供了機會。希望數據創業者們能變危為機,成功闖過寒冬,打造新的數字化未來。