缺陷軟體:大資料驅動科學的致命傷?

pythontab發表於2013-01-18

近來關於科研造假的報導甚囂塵上、令人憂慮。但誠實的研究結果就那麼可靠嗎?在科學網站iSGTW上,記者Adrian Giordani指出了對軟體缺陷日益增長的擔憂:

2012年10月,一個關於“電子科學可維護軟體實踐”(maintainable software practices in e-science)的研討會強調了程式碼中隱匿錯誤導致主要研究論文被撤銷的現象。例如,2006年12月,美國加州Scripps研究所分子生物學部的Geoffrey Chang發現一個手寫的程式把兩個縱欄的資料顛倒了,導致電子密度圖倒置,他為此震驚。結果是若干篇論文不得不從《科學》期刊撤銷。

較早前一篇論文的作者之一、鑑定軟體工程學(forensic software engineering)教授Leslie Hatton寫道:


我在氣象學、地震學、計算等領域工作了四十年,我用過的大多數軟體都受到了這類缺陷的汙染,無論其程式設計師怎樣努力使盡測試手段也無濟於事。當缺陷最終顯露時,總是大大出人意料之外。.

這些缺陷自身則有多種來源,包括:需求也許被誤解,物理計算錯誤,程式碼中簡單的錄入錯誤(例如公式中減號寫成了加號),程式設計師也許依賴了程式語言中某項微妙但未恰當定義的特徵(例如未初始化的變數),也許有數值方面的不穩定性(如溢位或下溢錯誤),以及程式碼中基本的邏輯錯誤。這個清單極長,實質都是不同形式的人為失誤,但程式語言的複雜性、演算法的複雜性、僅計算規模本身,更使問題雪上加霜。

哥倫比亞大學計算機學家Victoria Stodden所開發的RunMyCode網站,透過共享程式碼和資料、加速實驗重複來幫助科研人員發現錯誤。而幸運的是,許多大家較為熟悉的消費品中的軟體故障,只是偶然發生,在多數時間不會嚴重影響其功能。真正的問題在於:某個軟體錯誤會過一陣子突然變得致命,就像1980年代惡名昭著的放療事故那樣。

可重複效能夠幫助科研人員改正不可避免的缺陷。但那些管理日常生活的許多程式又怎麼辦呢?這些程式涉及:法醫實驗、信用評分、反恐監控名單;而其程式碼經常是商用的,或者是國家安全機密。在美國國防部出了問題的F-35噴氣戰鬥機專案裡,

專案經理空軍少將Christopher Bogdan說:“無法忽視的大問題是測試飛機及其支援系統用的2,400萬行軟體程式碼,指令堆積如山,遠遠超過了其他飛機曾嘗試過的手段”。

在民用行業,例如信用評分計算中,對程式的計算結果經常沒有切實可行的上訴措施。現在的問題是:我們能否研製出有效的工具來在其造成嚴重破壞之前發現假陽性或假陰性。



相關文章:


大資料需要資料學家、數量分析師、Excel騎師


為了從大資料中獲取最大的商業價值,企業在尋找多技能的專家,他們需要懂得程式設計、大規模數學、統計學、商業。這一新角色被稱為“資料學家”。如同大資料,資料學家這個詞既時髦、又可疑。

也像大資料一樣,某些企業目前就需要資料學專才,另外一些則還不那麼迫切需要。隨著社交媒介、感測器、其他新的資料來源帶來“拍位元組”(譯註:petabyte,10的15次方)資料量在商業分析中成為慣例,其商業需求在近幾年內預計會陡增。高校正忙於設立資料學課程,而現有資料密集型公司則在自行建立這類課程,儘管他們不用“資料學”這個標籤,其手段是對目前的分析師、數量分析師、Excel騎師、熟悉計算的MBA(工商管理碩士)學位持有人等給予培訓,教授他們大資料方面的技能,例如Hadoop。

SAS公司副總裁及技術總監Keith Collins在矽谷“丘吉爾俱樂部”論壇上發言說,該公司認為資料學專才職位有個巨大的缺口。

五月,麥肯錫全球研究所論及大資料的報告中對需求提出了些數字:“到2018年,在深度分析技能人才方面,僅美國就可能會有14萬到19萬的缺口,在有能力使用大資料分析來有效決策方面,缺口是150萬名經理及分析師”。

相信及懷疑大資料的人都認為,大公司將需要三至十人的團隊來把專長集中在一起,這些專長是為了滿足下列方面的需求:理解資料、制定出創新的資料用法、選擇軟硬體、編寫程式為商業使用者提供所需要的資訊。

Greenplum公司(目前已屬於EMC公司)的CTO和共同創始人Luke Lonergan說,大家低估了大資料能根本改變業務的程度。

“他們會坐失良機或者窮於應付。具有資料學團隊的企業開始明白了;其他企業卻看不到其潛力”。

他補充說,有些公司以為能夠靠購買應用系統來啟動大資料,其實不靈。“圍繞著大資料爆發,會有新活動的爆發”。

Teradata公司Aster創新中心的Randy Lea,界定了資料學家的素質:具備數學及統計學技能、調研型頭腦、理解C++及Java等程式語言、有能力編寫程式碼。他承認,大學還很難提供此類專才,但具有這些技能結合的人已有二十年的歷史了,他們被稱作業務分析師。他們可以學習例如MapReduce那樣的併發程式設計框架,但他認為許多分析採用SQL語言的資料庫同樣可以奏效;該中心擁有25家客戶使用逾拍位元組的資料。 Aster中心具有SQL和SQL MapReduce程式碼編寫、採用SAS系統中的R語言從事資料探勘的專長。

“因此我們讓您在二者間擇優選擇”。

他認為不用等待大學提供資料學專長的畢業生。

“有經驗的數字分析師一直在使用資料探勘工具。這是教他們新工具和MapReduce的絕好機會。他們已經有了全面的背景知識”。


相關文章