1. 程式人生 > >[轉] Julia是人工智慧、機器學習、深度學習和平行計算這些應用的較佳選擇

[轉] Julia是人工智慧、機器學習、深度學習和平行計算這些應用的較佳選擇

程式語言可謂種類繁多;數學家、研究人員和資料科學家面臨的一大問題常常是,找到實際上適合手頭處理的任何任務的某一種語言。

為了避免困難,總部位於孟加拉國和美國的初創公司Julia Computing的幾位聯合創始人開發出了一種通用程式語言:Julia,不是程式設計師的人經過培訓就能使用這種語言。

Julia Computing的聯合創始人Stefan Karpinski說:“相比其他語言,Julia執行起來快得多,用起來容易得多,還可以無限擴充套件。”

2009年,Karpinski與Viral Shah、Alan Edelman和Jeff Bezanson三人共同創辦了Julia這個開源專案。由於市場反響極好,幾位開發者聯同Deepak Vinchhi和Keno Fischer在2015年創辦了Julia Computing公司。Julia Computing為客戶提供收費的支援、培訓和諮詢服務,不過Julia本身仍可以免費使用。

Karpinski說:“Julia可以幫助資料科學家、物理學家、定量金融交易員和機器人設計師解決問題,不必非得成為計算機程式設計師,也不必僱用計算機程式設計師其功能轉換成計算機程式碼。”

集兩者之所長

數值計算方面的程式語言通常分為兩大類:一是靜態語言,比如C、C++和Fortran,其優點是執行速度快,但缺點是開發速度慢。二是動態語言,比如Python、R和Matlab,其優點是開發速度快,但執行速度常常很慢。

Karpinski聲稱,Julia集兩者之所長,解決了“兩種語言的問題”。

Karpinski說:“我們渴望一種語言的速度與C++一樣快,但又有Python、R或Matlab的高階功能。於是,我們開發出了這樣一種語言:Julia,它讓我們可以用同一種語言來進行原型設計和實際開發。”

如此一來,Julia的採用率迅速提高也就不足為奇了。Karpinski說:“使用者採用的熱情之高漲超出了我們的預期。”這家初創公司的客戶名單中有全球知名的一些大公司,從投資管理公司黑巖集團(BlackRock,將Julia用於時間序列分析),到英國保險公司英傑華(Aviva,將Julia用於風險計算),不一而足。

Julia Computing的執行長Shah說:“亞馬遜、蘋果、迪士尼、Facebook、福特、谷歌、Grindr、IBM、微軟、美國航空航天局(NASA)、Oracle和優步都是Julia的使用者、合作伙伴以及招聘Julia程式設計師的組織。”今年6月,這家成立才兩年的初創公司從總部位於美國的兩家投資公司:General Catalyst和Founder Collective籌集到了460萬美元的種子資金。Shah補充道:“今天,Julia的下載量已超過100萬人次,年增長率高達161%。”

它是如何起家的?

這一切要從2009年說起,當時Karpinski與加州大學聖巴巴拉分校的研究生Shah、麻省理工學院(MIT)的Bezanson和Edelman希望簡化編寫程式碼的過程,他們都有語言設計和應用數學方面的經驗。由於Shah搬到班加羅爾從事印度的Aadhaar專案(這是該國一套新的生物特徵識別系統),他們基本上通過電子郵件開發出了這種“理想語言”。

Julia的第一個公眾版於2012年釋出,它是在100多名開原始碼貢獻者的幫助下開發而成的。Shah說:“啟動這個開源專案是為了使程式設計大眾化,不過為了滿足市場對商用產品的需求,我們隨後創辦了Julia Computing。”

Shah表示,現在面臨的較大挑戰是滿足市場對新的產品功能和軟體包的需求。“開發一款產品需要幾個月到一年不等,每款產品在不斷改進,以便充分利用Julia開源語言的成果和改進之處,並提供客戶和使用者所要求的額外功能。”

對印度來說具有重大意義

2017年6月印度孟買,在基於雲的團隊協作服務Flock工作的員工。

攝影師:Dhiraj Singh /彭博社

Shah表示,由於Julia核心語言是免費開源的,所以它對印度來說具有重大意義。“Julia對印度初創公司以及關注成本,又有大批工程師的大企業來說很管用。”

Karpinski補充道:“Julia是人工智慧、機器學習、深度學習和平行計算這些應用的較佳選擇――所有這些領域在印度的發展勢頭非常迅猛。”

Julia還用於美國航空航天局和勞倫斯伯克利國家實驗室的研究,而麻省理工學院專門設有一個致力於研究和發展這種語言的Julia實驗室。Shah說:“麻省理工學院林肯實驗室的工程師們在研究聯邦航空管理局新的下一代飛機防撞系統,他們使用Julia來計算經過優化的邏輯表中的65億個決策點,以便找出故障。”

Julia還被用於Celeste專案,這是為天空調查而設計的一種統計分析模型。Shah補充道:“研究團隊在短短14.6分鐘內,藉助NERSC Cori-II超級計算機,用Julia對1.88億顆恆星和星系進行了分類,這臺超級計算機是全球功能最強大的十臺計算機之一。”

即使Java和C++的主導地位不大可能被動搖,Julia依然在如今的眾多程式語言中找到了一席之地。