擁抱資料共享與程式碼開源的新時代
擁抱資料共享與程式碼開源的新時代 精選
|||
現代科學研究中,人人都在關注資料:實驗科學家以資料生存,理論家們受到資料的挑戰,資助者也想知道如何在他們的支援下更容易產生資料而不用增加更多的預算,研究團體正在尋求新的資料儲存庫和標準,出版商想知道如何把控資料並提供質量控制。自然出版集團也正致力於開展研究論文可重複性(replicability)和可再現性(reproducibility)的工作,他們認為這是出版的重要元素,可讓同行對研究工藝和結果進行驗證。
2014年5月,自然出版集團發行了一本新雜誌Scientific Data,將有助於解決其中的一些挑戰。其中,Data Descriptors是對資料集進行正式描述的主要文章型別,使資料更加容易獲取。這個雜誌是要經過同行評議的,而且只線上發表,作者支付出版費用,保證他們的文章可免費獲取。每篇文章都有機器可讀後設資料,以便資料能被最大限度地進行復用。這個雜誌也是可引用的,並讓原始釋出者獲取一定的學術信用。換句話說,資料的傳遞和共享成為一種值得的信用積累,原則上與傳統研究論文的發表類似。重要的是,在對研究的評估以及研究者的獎勵中,這從科學的重要組成部分出發引導了更多的公正性。引用Scientific Data的社論:“這不再是研究資料是否應該共享的問題,而是如何讓有效的資料能共享併成為研究文化的高回報部分”。自然出版集團的許多期刊一直堅持資料在發表前存入可用的儲存庫中。現在的Scientific Data,終於成為了可以讓研究人員正式描述資料集,以及用於獲得這些資料的技術,並指引讀者看到已經整合這些資料的研究論文[1]。有關這本新開源期刊的詳細內容,請參考我的另外一篇博文[2]。下面舉Data Descriptors中的兩個例子來說明一下這樣的文章是什麼樣子的:
第一個例子是由Zengchao Hao及其同事所提供的跟蹤全球乾旱的詳細資料集(Z. Hao et al. Sci. Data http://doi.org/sww; 2014),是跟蹤全球乾旱的詳細資料集,以前未曾發表過。任何人都可以下載資料,生成自己對世界上任何地方的地圖(過去或未來),甚至可使用作者的原始碼重新計算乾旱指標。另一篇文章,是Graham Edgar和Rick Stuart-Smith提供的基於之前發表文章中資料的例子(G. J. Edgar and R. D. Stuart-Smith Sci. Data http://doi.org/sxv; 2014)。它是基於珊瑚礁生命調查所產生的資料,是一個公民科學的專案,由志願者幫助來調查全球珊瑚礁的生物多樣性。分析這些資料,可讓我們理解相關珊瑚礁生態和保護。Data Descriptor給出了完整的資料,包括作者對調查過程和資料標準化的描述——這對其他有興趣使用這些資料的科學家來說是非常關鍵的資訊。
許多論文的核心要素是作者在模型、模擬和資料分析中使用的計算機程式碼。理想狀況下,這些程式碼應該是可移植的,也很容易被他人使用。Nature希望能共享為他人免費使用,而且正在讓資料和研究資料的共享變成現實。今天發表的Nature社論中[3],申明在Nature上發表的論文,其計算機程式碼將可被訪問。Nature出版集團認為,由於目前所出版的刊物覆蓋學科很廣,可能難於做到在所有情況下都共享計算機程式碼,但要儘量做到這一點。因此現在規定,如果論文中的核心結論是來自這個程式碼的,就必須申明是否提供這個程式碼以及所設定的訪問許可權是什麼。由編輯來審視提供程式碼是否合適:任何阻礙程式碼分享的實際問題都由編輯來評價,他們有權拒絕任何不提供重要程式碼的文章。此外,將在文章中提供一個專門的部分來放置計算機程式碼的資訊。
資料雜誌GigaScience開創了這方面的先河,要求論文提供提供程式碼,讓他人可以分析其中的資料。開放軟體原始碼在計算科學中往往被視為一種可再現性的道路。但在實踐中,即使程式碼是完全免費的,也可能有很多障礙,表現在如下幾個方面:1)可移植性(Portability)。複雜的模型往往針對特定的平臺進行精心優化的,現在要求它們可方便移植到其他平臺是一件兩難的事兒;2)可配置性(Configurability)。移植程式碼是一個艱鉅的任務,可能優勢需要為一個特定的模型執行而進行進行艱難的配置。即使有使用者手冊和配置指令碼,要找出哪些配置是用於產生某種特定結果也是很難的,因為對科學模型配置的描述缺乏標準的方式;3)巨大差距(Entrenchment)。在複雜的科學模型中,許多決策層進入了程式碼,有些系統模擬中甚至包括了跨越幾十年發展的決策層。雖然它們作為模型的部分一直在不斷精練,但這些決策卻很少進行過全面記錄。開發這個模型的實驗室之外的人不可能詳細理解這些程式碼;4)模型-資料的模糊性(Model-data blur)。現在越來越難將計算模型和觀測資料進行實質性分離。以地學研究為例,我們所說的觀測資料通常包含資料處理的產品。如遙感通常就包括通過各種演算法的轉換以獲得所需的變數,然後校驗、規整、將資料重新柵格化。同樣,計算模型不斷輸入了各種觀測資料,可用於糾正偏差,引數化那些不能被明確計算或設定邊界條件的過程。因此,不檢查所輸入的資料,也就不能討論程式碼的有效性,反之亦然;5)出處(Provenance)。要再現一系列結果,必須知道所有的計算步驟。但要獲得完整的出處進一步加工,規整資料集仍是一個挑戰,特別是一些步驟中如果涉及商業軟體工具或難於理解和複製的探索性技術,更是難上加難[4]。
但是,開放原始碼的政策至少會讓程式碼質量變得更好。程式碼質量差在許多領域都有,並不是僅僅出現在科學計算中。程式設計者總是會編寫一些“快速而骯髒”的程式碼,總想之後再來清理。這在一些前沿領域是尤其突出的——如果不能確定要做的事兒有多大可能,為什麼一開始就要花時間來設計精美的程式碼呢?在軟體工程中,這被稱為技術“債”:如推遲程式碼可讀性和可維護性問題,這個債務未來總是需要人來償還的,需要重新執行或修改程式碼,付出額外的努力。這裡比喻為“債”,並不是說這樣不好。畢竟,我們為了快速獲取某個有價值的東西經常會借債,比如如用貸款買房子。問題是這種債務必須進行仔細管理,防止它們失控。學術期刊中的開源政策是有幫助的。如果期刊要求開放程式碼,這就對作者清理程式碼產生了強烈的激勵作用,而不再是無限期地推遲這個工作。作為其次級效應,這樣的政策應該鼓勵更多的科學家藉此機會提高自己的程式設計技能。因此,儘管簡單的開源政策不太可能迎來更大的共享和可再現性時代,就是上面所談到許多障礙難於逾越。但是,這些政策通過刺激科學家來仔細地管理它們的技術債,從而在提高科學軟體的質量中發揮了重要作用[4]。
越來越多的科學期刊,包括自然出版集團,現在鼓勵作者分享他們的軟體,並要求他們在論文中提供一個對程式碼可用性的申明。這樣的政策對計算科學來說是重要的一步,而且對這些政策的期望應該也是現實的。在軟體工具的共享,以及使得基於計算的研究可重複,所需要的不僅僅是獲得程式碼。同樣也應該看到這些政策的短期利益也是不可忽略的。
總之,如果更多的研究人員採取措施使他們的資料容易獲得和發現,這正是科學的核心原則——其他人可以重複這個工作。現在又有一些雜誌致力將程式碼共享變成規範,這是值得提倡的又一次飛躍。在這樣一個開放文化的氛圍下,小資料集和新軟體工具可以更容易被發現,可再現性也就更容易實現了。
參考文獻:
[1] Welcome, Scientific Data! Nature 509, 534 (29 May 2014).
[2] Nature將推出資料雜誌開源期刊——Scientific Data(http://blog.sciencenet.cn/blog-502444-733516.html)
[3] Code share, Nature 514, 536 (30 October 2014).
[4] Steve M. Easterbrook, Open code for open science? Nature GeoScience 7, 779-781 (November 2014).
該文整理後發表於《中國計算機學會通訊》2015年1月。
相關文章
- 擁抱開源,從中受益
- 擁抱開放,Serverless 時代的下一征程Server
- 擁抱開源DevOps引領大資料生態系統dev大資料
- Windows未來可以擁抱開源嗎?Windows
- 擁抱資料未來 希捷與開放計算共成長希捷
- 浪潮 KaiwuDB :用"快人一步"的資料庫擁抱物聯網時代AI資料庫
- 擁抱開源——Linux C/C++程式設計師必須熟悉的開源專案LinuxC++程式設計師
- 資料基礎設施的詠歎調:華為給大資料時代一個智慧擁抱大資料
- 擁抱開源,浪潮將OpenStack之路踐行到底!
- 如何編寫出擁抱變化的程式碼?
- 擁抱人工智慧新時代做真“英雄”還需靠“聯盟”人工智慧
- 擁抱開源,共建生態 - 開源生態與效能提升專場 | CIF 精彩看點
- 擁抱新技術的一點思考
- Linux基金會回應微軟擁抱開源Linux微軟
- 擁抱開源更省錢「GitHub 熱點速覽」Github
- 微軟擁抱開源的步伐又邁進了一步微軟
- 微軟開始擁抱開源社群 exFAT檔案系統向Linux開源微軟Linux
- 浪潮之巔,程式設計師如何擁抱新技術?程式設計師
- 程式猿互相擁抱表示友好
- 擁抱 NamedParameterJdbcTemplateJDBC
- 視開源為癌症 微軟擁抱癌症是找死還是自殺?微軟
- 企業擁抱開源之前,必須瞭解的七件事
- 【線上沙龍】金融行業開源治理最佳實踐~讓我們擁抱開源吧行業
- ModStart:擁抱新技術,率先支援 Laravel 9.0Laravel
- 微信小程式--資料共享與方法共享微信小程式
- 低程式碼——新時代軟體開發的神器
- .NET 9 的新亮點:AI就緒 ,擁抱她AI
- 新的時代開啟 微信小程式的觀察與思考微信小程式
- 女神節快樂!Apache Pulsar 願大家擁抱機遇、享受開源Apache
- 擁抱 React HooksReactHook
- 擁抱RxJava(二):Observable究竟如何封裝資料?RxJava封裝
- 預訓練模型時代:告別finetune, 擁抱adapter模型APT
- 耐克是如何擁抱網際網路和大資料的?大資料
- 擁抱原型物件導向程式設計原型物件程式設計
- 扔掉 Electron,擁抱基於 Rust 開發的 TauriRust
- 新時代的web與app開發WebAPP
- 擁抱雲原生,如何將開源專案用k8s部署?K8S
- 積極擁抱開源 阿里雲成為CNCF白金會員阿里