近幾年,Jupyter Notebook 為數據科學家們提供了與數據有效交互的工具。用戶可以運行代碼、查看結果,然后重復數據之間的循環和迭代。使用 Jupyter Notebook 進行研究成為了數據科學家們快速制作原型和探索分析的首選。
然而,數據科學的實際工作流程,不僅包括數據科學家們利用 Jupyter Notebook 處理數據、制作模型,還包括其他成員之間大量的溝通協作,如:數據科學家和數據源端溝通數據的接入、和開發運維溝通服務的容器化和部署、和業務方溝通業務需求和數據服務效果等。因此,在線 Jupyter Notebook 和低代碼、拖拽式編程工具逐漸發展,用于優化數據模型開發和應用的全流程。
本文介紹了數據科學分析工具的發展進程,并對應了不同形態的工具的主要特征、應用場景,以期幫助數據科學家、業務專家等各領域的人員了解數據科學生態下的關鍵工具,進而優化工作流,加速數據驅動的研究及決策。
目錄
Jupyter Notebook 交互式編程
Jupyter Notebook 是什么?
Jupyter 并非理想的 Notebook
在線 Jupyter Notebook
1. 云原生
2. 功能拓展
3. 協作開放
低代碼、拖拽式編程
低代碼是什么?
為什么要用低代碼?
1. 可視化模型驅動數據研究
2. 低代碼拖拽改善協作方式
Canvas 與 Notebook 的互補與轉換
ModelWhale 以人為徑,助力協同創新
海量數據挖掘、數據密集型研究的應用范式
專業性強工程能力相對較弱的復合型分析研究者的強力支撐
結尾
Jupyter Notebook 交互式編程
Jupyter Notebook 是什么?
對于數據分析、數據挖掘、機器學習或是深度學習等數據科學領域的專業人員來說,除了需要具備一些數理統計知識外,還會需要通過代碼來實踐或驗證理論想法,Jupyter Notebook 便成了數據科學家們最熟悉且常用的工具。通過它獨特的交互式開發,適用于科研、教學等場景。
Jupyter 即是 Julia、Python 和 R 的縮寫組合,另如 Notebook 含義所示,它可以以筆記的形式記錄和保存相關的代碼和輸出,并將結果以文檔的形式與其他人共享。

Jupyter Notebook(圖源:網絡)
Jupyter Notebook 主要有三大優點:文學編程、交互展示、易于調試。
1. 文學編程
文學編程的思想強調人的思維邏輯的可讀性,即在對閱讀者友好的文本中插入代碼塊,讓學習進程和探索進程變得可記錄可回溯,不斷累積知識,獲得增量式進步。這種形式非常適合研究性、探索性工作。想象一下,當你需要做數據處理、分析建模、觀察結果時:
• 如果是在終端運行程序,包含函數和類的腳本存在其他文檔,可視化結果在不同窗口顯示,此時還需要寫一份囊括全部的說明文檔記錄分析思路、程序運行、結果呈現......整個研究過程雜亂無章,無法專注于研究本身。
• 如果是用 Jupyter Notebook 進行分析,代碼、可視化結果、說明文檔都留存在同一頁面中,整個分析過程和研究思路變得異常清晰。
2. 交互展示
Jupyter Notebook 由 Cell 模塊構成,Cell 分為 Code 和 Markdown,其中 :
• Code Cell 可以獨立編寫、運行代碼,并單獨反饋結果,方便試錯和驗證結果,對于學習數據分析、入門數據科學或者編程語言的初學者來說,這種交互形式非常友好。
• Markdown Cell 可撰寫文檔,展示圖片、表格、鏈接、公式等豐富的內容,可讀性強、學習成本低,一個文檔就可以涵蓋課程章節的理論知識點+編程實戰+可視化結果,將課程知識點完整表達,適合教學展示、課堂交互、數字化培訓等。
Jupyter Notebook 本質是開源的 Web 應用,文檔可以被輕松創建和共享。在團隊協作時,代碼、敘述文本、可視化結果結合可以清晰地表述出完整的分析過程,輕易地與他人分享研究思路、復現研究成果,團隊之間迅速建立有效溝通,極大地提高協作研究效率。
3. 易于調試
在數據研究中,如果需要調用深度學習模型來測試功能時,模型往往幾百M甚至幾個G,將模型全部加載到內存里需要耗費大量時間。當加載模型確定無誤,只需調試調用模型預測數據時:
• 如果用 IDE,每加一行代碼或每改一個參數都會花費大量時間重新加載模型。
• 如果用 Jupyter Notebook,運行一遍代碼以后變量占用的內存不會自動釋放。模型加載的所有數據都在內存里,不覆蓋變量就不需要重跑 ,因此只需將代碼分段執行,靈活調整參數。
Jupyter 并非理想的 Notebook
基于數據科學的繁榮,尤其是探索性數據分析和開放科學的發展,Jupyter Notebook 作為一種交互式編程的范式實現了自己的價值,但隨著數據科學領域近年的飛速變化,它面臨著更現實的業務問題和技術挑戰。
1. 繁復、易出錯的環境搭建與版本管理
研究之初和實際研究中,不論是對于編程新手還是技術人員,都難免經歷一系列費時費力的環境搭建與版本管理過程。
環境配置問題
不同研究項目使用的 Python 的解釋器版本不相同,各版本之間互不兼容且長期并行,但是卻需要運行在同一個服務器環境中。而不同的 Python 解釋器版本,對軟件包、依賴庫的管理也是個問題。因此,在本地使用 Jupyter Notebook 時經常因為沖突問題導致系統出問題,安裝環境或服務組件失敗。

Python 官網下載不同 Python版本(圖源:Python 官網)
版本控制問題
在實際使用 Jupyter Notebook 進行研究的過程中難免會遇到文件回退、歷史文件對比等操作,但是 Jupyter Notebook 內容結構通過 JSON 的方式進行組織,源代碼 、Markdown、outputs 輸出都儲存在一個體積較大的 .ipynb 文件中,復雜的數據結構會導致 .ipynb 文件在版本比對時的可讀性很差,無法很好地做版本控制。
2. 編程使用習慣與 IDE 不同
數據科學研究人員如果有其他編程語言的經驗,經歷過傳統的 IDE 時代,使用過 Visual Studio 或者類似的 IDE 進行開發,對編程開發平臺有著固有印象和特定期許,那么對 Jupyter Notebook 的接受程度可能不是很高。
• Jupyter Notebook 定義為研究類調試環境,不是一個真正意義上的集成開發環境;
• Jupyter Notebook 對于成規模的項目來說功能過于簡單,缺少必要的項目工具,而 IDE 的文件管理、代碼管理、工具集成以及自動補全、智能提示都相對較強大;
• Jupyter Notebook 對于分布式調測、重型異步任務的支持不夠友好;
• Jupyter Notebook 對于分布式的訓練可以通過單機多進程的方式進行模擬,但對于運行非常大規模的訓練作業,還是需要工程化代碼開發,并搭配測試邏輯,將任務部署在集群中進行批量運行。

VS code 的代碼著色、補全和智能提示功能(圖源:網絡)
P.S. (我是彩蛋)CloudIDE 是后文即將出現的 ModelWhale 數據科學平臺的另一種數據分析工具,后期推文將會著重介紹。
在線 Jupyter Notebook
時下,我們面臨著數據科學的諸多挑戰:
• 數據量呈指數級增長,對大型計算、存儲、及數據管理提出了新的要求。
• 機器學習、人工智能、增強現實、物聯網以及幾乎所有其他突破性技術,正在進入工業化階段。
• 自然科學(如氣象學和生命科學)、經濟學、工程學和社會科學等研究領域都開始利用數據科學解決領域問題。
• 模型的大規模、復雜性和實驗性成為各行業工作流程的主要挑戰。
這意味著你可能需要一個云端數據科學工具來整合現有的生態系統和數據平臺。在 Jupyter 交互式的基礎上,ModelWhale 應“云”而生,更加關注基礎架構、資源配置、功能拓展、協作開放。
1. 云原生
ModelWhale 對現有的本地設施沒有侵入性,能夠與原有的基礎設施很好地兼容,提供數據科學應用特性所配套的計算調度引擎,使得不同的研究團隊、工作團隊可以根據實際需求實現云資源的快速拓展與高效調度,同時可便捷地接入各主流廠商的云平臺、各種類型的計算實例,對基礎設施的陳舊與不足提供有力的支撐補給。
高校、企業、科研機構可以利用 ModelWhale 的云原生架構輕易搭建一站式數據科學平臺,助力研究、應用和業務的發展。
2. 功能拓展
ModelWhale 對數據探索的流程做了許多針對性的功能優化,包裹了實現細節,提供了好用的功能。個人和團隊都可輕松上手數據分析,快捷高效地開展數據研究工作。
數據接入
支持多種類型格式的本地數據文件上傳接入,或直接調用公開數據集。
支持超大數據的云上調用及分析。用戶除了可以在 ModelWhale 使用數據連接調取存放在數據庫、對象存儲的數據外,還可以通過創建 NAS 空間調取 NAS 中的各類數據。

算力接入
• 面向多種規格的計算資源一鍵接入。不論是單卡CPU/GPU運算,還是多機多卡的 GPU 組成集群算力進行分布式訓練,可隨實際需求一鍵勾選。多機 GPU 集群,支持基于 Horovod 的環狀規約架構,可顯著分散網絡傳輸的壓力,隨著集群的規模增大計算性能線性增加。
• 資源用量可視可控。ModelWhale 可以對每個資源的可用群體、使用時長、使用時間進行管理配置,能夠對資源的使用情況進行可視化監控,支持對資源的權限審核機制。

環境管理
• ModelWhale 真正做到了開箱即用,無需任何軟件安裝及環境部署,解決了科研初期基礎設施配置搭建的繁瑣消耗,提供了豐富的鏡像資源,包含大量數據科學和其他交叉學科的常用工具包(如:氣象、生命科學等)。
• 用戶可以根據需求利用標簽篩選官方預置的安全穩定的鏡像環境,也可以自定義鏡像環境,滿足個人或團隊的特定運算需求。
• ModelWhale 的環境管理為每一個數據科學項目創建了隔離的開發環境,每個開發環境所安裝的包和依賴相互獨立,可以確保項目的開發環境不相互干擾和污染。

版本控制
面對研究過程中多次修改或者迭代數次的項目內容,如果打算保留每個版本,就需要在每次修改前創建副本并重新命名,最終很可能導致研究者本人都無法區分有效版本。
ModelWhale 支持為復雜研究項目的階段性工作進行版本管理,提供了生成項目版本、版本比對、內容替換、合并版本的功能。針對每處修改,用戶可以實現文件級回退與 Cell 級回溯。團隊成員也能直接查看修改歷史,將注意力放在最為重要的創作上,安全高效地開展團隊協作。

生產資料共享
大部分的數據研究,實質是對非結構化數據進行重構和再構,是利用數據再生內容和驅動內容的過程。已有研究內容的開放、分享和共享,是生產和應用的基礎,也是團隊協作的前提。
ModelWhale 可以一鍵 Fork 團隊成員以及和鯨社區產出的相關項目、數據集。科研過程中的所有生產內容,如數據、代碼、環境,皆可打包為項目復制到自己的工作區,或者發布為云端的數據集、算法、模型服務,便于重用和管理,讓團隊不同成員、企業不同部門之間有效協作,提升工作效率。

3. 協作開放
數據研究離不開團隊協作,ModelWhale 提供了清晰易用的協作空間和靈活可控的管理體系。團隊成員之間資源共享、信息融合,有效地推進項目進展,提高團隊科研創新的質量和水平,同時為基礎設施賦能,計算資源彈性調度,從容應對多變科研場景。
團隊空間
ModelWhale 提供了團隊的共享視圖,可以靈活地對各類研究課題、算法項目、分析任務,進行分工拆解、任務分配、數據接入、資源分配、進度監控、成果驗收、成果復用等項目管理工作。

同時為有教學和培訓需求的團隊提供了教學評一體的課程模塊,整合了教學內容管理、課程管理、作業評測系統,有效提高了教師的工作效率,改善了教學管理的質量,促進了學生對數據分析實戰的參與性和積極性。

團隊數據、代碼、項目等資料可沉淀在共享知識庫中,并輕松接入官方預置實戰案例及外部豐富的案例資源。

組織管理
ModelWhale 可實現統一高效的數據管理和資源調度。
數據管理
ModelWhale 始終保障數據安全,對多數據源類型進行統一管理,各環節具有嚴格的權限控制。管理員可以控制和分配數據庫的訪問權限,每個數據集都有獨立的權限管理、文檔管理。結構化數據可自動解析統計性描述,提供數據文檔記錄數據字典與背景信息,幫助用戶在使用前快速了解數據。數據可一鍵掛載到不同的研究項目、關聯到團隊知識庫中,便于管理具體研究協作中的數據使用情況。


算力管理
ModelWhale 以云計算能力為基礎,自主研發了高可用的算力調度器,具備按需計算、彈性擴容的優勢,從而可以支持從1個用戶到數千個用戶的低成本、高效率地快速拓展,也可滿足大規模分布式的模型訓練需求。
ModelWhale 同時提供了對單個成員的資源用量監控,在項目開展前后可以有效規劃資源、保障計算資源的合理分配使用。企業機構無需提前進行資源容量規劃,資源成本有效降低,不再為閑置資源付費。

低代碼、拖拽式編程
低代碼是什么?
低代碼是基于可視化和模型驅動理念,讓不懂代碼的人,直接使用經封裝的常用機器學習算法組件,通過“拖拉拽”組件,完成應用模型的搭建。
ModelWhale Canvas 基于這種低代碼范式,結合云原生與多端體驗技術,在多數業務場景下實現大幅度的提效降本,為團隊協作提供了一種全新的高生產力開發范式。 運用 Canvas:
• 不需要寫很多代碼,對于純業務側、低代碼能力的科研人員通過可視化的圖形連接就能構建研究框架和模型雛形。
• 結果可以一鍵導出 Notebook,組件直接轉化為代碼,確保可復現性的同時,支持在基礎的分析框架上進行更精細的建模工作,方便數據科學家等進一步優化。
• 技術人員可以在 Canvas 里面預構建模型組件和封裝常用工作流 Flow,方便業務人員直接套用。
• 技術人員可以根據分析需求編寫自定義組件,優化組件內容結構,提升組件能力上限。

為什么要用低代碼?
1. 可視化模型驅動數據研究
低代碼提供了新的交互形式:可視化的圖形組件。可視化的模型是業務和技術共享的視覺語言,無差別無二義性,為業務人員搭建模型和數據研究人員優化模型帶來了溝通的橋梁。雙方基于可視化的圖形組件:
• 業務專家可以向開發人員展示業務的主要需求和難點,便于數據科學家熟悉和理解業務架構。
• 數據科學家可以向業務專家演示一些常見的或者創新的解決方案,方便業務人員調整業務邏輯。
2. 低代碼拖拽改善協作方式
按照傳統的模式,在實際的數據工作中,業務部門只能描述需求,開發人員又不熟悉業務,項目上線通常需要耗費大量時間才能開發完成,這會影響業務創新的進程。
低代碼可以有效促進業務人員和數據科學家、IT人員之間的協作,突出了協作中的敏捷開發理念和數據科學實踐的結合。業務人員更接近生產,并且不影響原本生產環境的安全性、可擴展性和長期可維護性。使用低代碼、拖拽式編程:
• 業務人員可以快速搭建出模型,同時可以一邊試用模型,一邊與數據科學家進行探討,找到思路差異的部分;
• 數據科學家也可以輕易將模型組件轉化為代碼,一邊優化完善,一邊與業務人員確認。
使用這種敏捷開發模式,數據建模通常可以快速推進,修改部分業務邏輯后,模型服務很快就能上線。同時,推廣到各部門應用之后,會繼續反饋各種開發需求,基于低代碼開發的模型服務核心業務邏輯采用配置的方式實現,只需要調整參數配置就可以快速的響應需求,并更新到正式環境。
Canvas 與 Notebook 的互補與轉換
同樣是基于云端平臺的基礎架構和功能延拓,Canvas 與 Notebook 之間不止是分析建模方式的不同,更重要地是協同方式的互補與轉換。
ModelWhale 針對不同場景的數據團隊,提供不同的工作方式,支持以項目為主體來管理實際的研究。項目內提供不同角色不同工作流下的協作功能。包括 Notebook 的代碼級協作、Notebook 的常用代碼封裝組件、Canvas 拖拉拽分析建模、Canvas 結果與 Notebook 的轉化。
• Canvas 專注于數據建模和業務邏輯實現,重點關注的是模型框架而不是具體編程。對于業務人員、領域專家來說,采用圖形化的拖拽操作就可以完成簡單的模型構建,表現業務邏輯和領域經驗;
• Notebook 注重研究思路的記錄,關注數據科學本身。對于代碼優先的數據科學家、IT人員,可以直接在 Notebook 中編寫代碼、探索創作,并可將常用的代碼封裝為 Canvas 組件便于業務人員的直接調取使用;也可以選擇在 Canvas 低代碼界面編寫代碼、自定義組件來實現功能,或通過 Canvas 一鍵轉換為 Notebook 延續 Notebook 的代碼編寫習慣直接優化代碼。
ModelWhale 以人為徑,助力協同創新
ModelWhale 以人為徑,是將不同業務能力、不同技術水平的企業機構成員,當作連通解決方案的途徑,助推高校、企業、機構的人才賦能,改進工作流程,改善共享與協作方式,回應業務痛點,達成研究目標,實現創新價值。
海量數據挖掘、數據密集型研究的應用范式
很多行業的數據私密性很高,數據量龐大,而大部分數據研究平臺的基礎設施不足以支撐大型高并發GPU運算需求,研究人員的算法環境也不近相同。在實際數據挖掘分析過程中會經常遇到多來源數據管理難、大規模計算調度難、數據分析環境統一難、交叉領域研究協同難等瓶頸,缺乏新的平臺助推研究人員的數據建模工作以及各領域數據挖掘成果的協同與管理工作。
ModelWhale 可以提供:
• 從底層架構保障數據安全,基于現有基礎設施優化工作結構,提供私有化部署的云端計算平臺;
• 本地計算資源有效擴容,多類型數據源與GPU集群輕松接入,實現數據和硬件資源的集約化管理和彈性調度分配,大幅度提效降本;
• 研究環境開箱即用,有效降低科研門檻,集成最新機器學習算法庫,以及各領域專業工具包,即使是復雜研究項目也可多版本管理,賦能數據研究的開展;
• 為協作共享提供了新的交互形式,數據、代碼、環境等研究資料一鍵打包共享,讓跨地域、跨部門、跨團隊之間的協作在云端實現。
專業性強工程能力相對較弱的復合型分析研究者的強力支撐
業務人員大多擁有豐富的一線經驗,但相對代碼工程能力薄弱。目前主要依賴口口相傳及業務需求分享,提出高價值的數據研究應用思路,再進一步與數據科學家、IT技術人員合作實現領域數據的分析需求,但跨角色協作傳播力度有限,分析思路與研究成果難以系統化地被復現轉化應用。
利用 ModelWhale 的低代碼、拖拽式 Canvas 可以
• 降低科研門檻,直觀地保留了業務經驗:使業務人員通過拖拽式組件直接搭建工作流 Flow ,完成業務邏輯的直觀體現和模型應用的雛形。
• 有效提高了信息研究的教學質量:將復雜的數據分析代碼圖形化簡易封裝、繁瑣的數據分析步驟用可視化組件的連接有序展現、數據分析流程及每一步的產出結果清晰可見,再通過 Canvas 轉 Notebook 代碼的方式,以數據分析流程思維一一對應代碼的編寫,更易理解和上手代碼。
• 優化跨角色的工作流程:Canvas 轉化后的代碼可以交由更熟悉編程的數據科學家、IT人員進一步優化,進行精細化調整。
從而強力支撐
• 面向業務人員、領域專家的數據分析教學、培訓、應用,讓不同學科背景下編程能力較弱的非專業級數據科學家、復合型分析研究者掌握獨立自主的數據分析能力;
• 同時滿足數據分析部門和業務部門的不同技術水平的需求,為業務人員與數據科學家、IT技術人員的有效溝通協作建立了橋梁,實現了復雜研究領域的跨角色協同工作。
結尾
ModelWhale 數據科學平臺所提供的,不論是 Jupyter Notebook 交互式編程,還是低代碼拖拽式編程,都是為了協助不同角色、不同編程能力的用戶能夠更流暢高效地進行分析建模及項目協作。ModelWhale 不僅可以云端即開即用,同時還支持本地私有化部署,滿足企業、高校、科研機構、政府機構不同應用場景下多樣化的研究及業務需求。
可以肯定的是,數據科學平臺會隨著數據研究壁壘的逐漸降低,企業機構以數據為導向的決策需求的不斷推進,云端數據分析工具的不斷發展,更加重視可擴展性、強調用戶體驗、重視非專業級數據科學家、重視團隊協同創新的場景,尤其是借助低代碼拖拽式工具實現的自動建模,數據科學平臺將會更先進和完善,甚至可以成為一種更低門檻、更強交互、可廣泛培訓的工具技能。






