作者 | 未來論壇
編輯 | 蔣寶尚
AI技術,特別是機器學習和強化學習方法,基於實驗或者計算產生的數據對所求解的問題進行可計算建模,從而得到複雜問題的有效解決方式,這對當今科學計算領域的研究範式已經產生了巨大影響。
與此同時,以深度學習為代表的AI在內部機理、數學理論、基礎算法等方面尚不清楚、不完善,AI方法的穩健性、精確度等尚缺乏嚴格的數學論證,這正對其進一步發展造成嚴重阻礙。然而,結合機理的思維方式將有可能對面向數據的AI技術,提供新的洞見與研究途徑。
2020年5月9日,在未來論壇青創聯盟YOSIA Webinar中,開展了AI+科學計算的主題討論,共有五位嘉賓發表演講,從AI for Scientific Computing和Scientific Computing for AI兩個不同的視角進行前沿討論。
其中來自北京大學的楊超教授做了題目為「淺論超級計算、人工智慧與科學計算的融合發展」的報告。在報告中楊老師介紹到:科學計算和超級計算之間相互促進、共同發展的閉環已經形成了幾十年了,人工智慧近年巨大的成功為科學計算帶來了新思路、新方法、新工具,而科學計算的嚴謹體系則有助於提升現有人工智慧技術的可解釋性。
另外,楊老師還以求解偏微分方程舉例說明了神經網絡這一工具為科學計算帶來的幫助,並闡述了超級計算、科學計算、人工智慧從模型、算法、軟體、硬體多方位融合發展的觀點。
註:本文經過楊超老師的審核和校對。
從主流的科研範式來看,認識世界發現世界的三種最主要的科研手段是實驗、理論和計算,最近十來年隨著數據科學的興起,基於數據的科學發現被認為是第四種重要的科研範式。而圍繞計算和數據有三個非常獨立但又相互關聯很大的方向,超級計算、科學計算和人工智慧。
從計算科學誕生之初,超級計算和科學計算的關係已經建立起來。它們之間的關係可以概括為:超級計算就是為了支撐科學計算的發展,科學計算作為需求牽引、拉動超級計算機性能不斷提升。
早在電子計算機誕生之前,超級計算的思想萌芽就已經產生,其中一個代表性的工作是英國數學家理察森1922年提出來「預報工廠」的概念,這個概念被稱為「理察森之夢」。
為什麼說是一個夢?因為1922年當時沒有電子計算機,他提出的「預報工廠」主要用於預報天氣。眾所周知,天氣預報是科學計算領域最有代表性一類應用。預算工廠包括64000臺Human Computers,每臺「計算機」由一個人完成相關計算。預報工廠中還有專人用信號燈指揮不同的「計算機」進行數據交換。
「預報工廠」的計算目標是大氣,把計算區域分成64000個部分,每個人負責一塊,大家分別計算,並有人去協調指揮,這其實體現了早期人們暢想超級計算的一種樸素思想。
隨著世界第一臺電子計算機ENIAC的問世,理察森之夢終於得以實現,ENIAC重達幾十噸,佔地面積非常大,並且耗電驚人。據說每當ENIAC開機的時候,整個費城的燈都暗了。1950年,馮諾伊曼和他的助手改造了ENIAC的可編程性,並在這個基礎上編寫了世界上第一個天氣預報程序,成功完成了24小時預報,實現了理察森之夢,也成為了科學計算的蓬勃發展的一個重要開端。
如今,歷經幾十年的發展,超算已經在科學計算的方方面面,例如航空、航天、氣候、能源、材料、安全、天文等領域中發揮了不可取代的支撐作用。2013年美國能源部曾經統計過一些典型的科學計算應用中的計算需求,這些計算需求即便放在今天來看仍然是很大。
在科學計算巨大需求的牽引之下,超級計算機的計算性能按照「十年千倍」的速度迅猛攀升。我們都知道摩爾定律,摩爾定律的是說個人計算機的性能提升速度是每18到24個月性能翻一番,而超級計算機可以達到每年性能翻一番,「十年千倍」的發展速度。
現在超算發展的一個重要趨勢是:異構眾核,即同一個系統有不同類型的計算核心,而且每個晶片上要集成大量的計算核心。為什麼會沿著異構眾核趨勢發展?
其實這與計算需求關係不大,更多的是超級計算發展本身的技術條件限制造成的。現在所有的超級計算機都是基於馮諾伊曼體系結構,馮諾伊曼體系結構的「算」-「存「分離特性會導致現有工藝下為了滿足計算需求,能夠選擇的設計方案十分有限。這樣的系統現在越來越多,同一個系統有很多計算核心,而且計算核心還不一樣,從設計算法和研究軟體角度來說面臨很大挑戰。
例如求解偏微分方程的經典並行算法——區域分解算法,該算法一般假定每個子區域應該是大致相同,而且滿足一些數學上的條件,例如子區域應具有凸性和的單連通性等。在異構系統上,這些前提假定已經難以成立,需要從思想上突破傳統算法的約束。
對此,我們提出了一套異構區域分解算法,在傳統的區域分解思想基礎上,對每個子區域進行第二次切分,切分時排除掉之前理論上的假定,包括凸區域、單聯通區域之類的約束,目標就是要與現有的異構系統硬體配置相適配。
雖然理論上很難分析這種異構區域分解算法的收斂性,但是在實際應用中,這種算法達到很好的應用效果。HPCG是基於偏微分方程求解的高性能計算機的排名標準,我們把這個算法應用於HPCG優化裡,取得了很好的效果,收斂性非常好,幫助天河2號拿到2016年的HPCG世界排名第一。
如前所述,科學計算和超級計算之間相互促進、共同發展的閉環已經形成了幾十年了。最近十來年隨著大數據興起,人工智慧技術得到復興並呈爆發式發展。此時,人工智慧作為一個「新」角色進來之後又起什麼作用呢?
至少兩個方面的作用,首先從超算角度來看,超算原本主要用來支撐科學計算,現在有了人工智慧這種新需求,超算必然也要為人工智慧提供強大算力支撐。反過來由於人工智慧的本身特性又會改變超算的發展趨勢。
第二,人工智慧和科學計算的關係。人工智慧有一些好的數學工具和思想方法可以作為新思路、新方法、新工具提供給科學計算,科學計算又有多年發展的基礎和較為完善的理論框架,可能幫助我們實現可解釋性的人工智慧。
AlphaGo和AlphaGo Zero作為人工智慧最近幾年非常著名的突破,先後打敗了人類的圍棋冠軍。像AlphaGo Zero這種大型的AI應用,如果想一天之內完成它的訓練,我們所需要的計算能力已經超過1E ops,事實上過去6年訓練神經網絡的算力需求已經增長了30萬倍,這遠遠超出超級計算機「十年千倍」的計算性能提升速度。所以現在有觀點認為計算能力是人工智慧發展的非常重要的基礎,甚至有人認為算力常勝。
與此同時,人工智慧的發展深刻改變了超算發展趨勢,尤其是在2017年前後,隨著大規模AI應用的湧現,新型超級計算機設計也逐漸開始考慮人工智慧這類應用,最有代表性的機器就是美國的Summit,計算性能世界排名第一的系統,這臺機器科學計算的雙精度浮點計算性能是148Pflops/s,但是它還通過配備特殊的Tensor Core計算單元,可以實現3.4 Eops/s的AI計算性能。
與此同時國際上谷歌、IBM、寒武紀、華為等大廠也都先研發了各種AI處理器。最近,谷歌Jeff Dean等人發展了採用AI設計晶片的新技術,大幅度提升晶片數據效率。毫不誇張地說,AI已經對硬體設計產生方方面面的深刻影響。
在超級計算機系統設計方面,舉個例子,牛津大學2018年出版了一個白皮書《解碼中國的AI夢》,其中有一個觀點:「中國建設超級計算機方面的成功表明,它有可能趕上AI硬體領域世界領先的企業……如果其他國家專門開發針對AI新型超級計算機,中國在製造傳統超級計算機方面的卓越表現可能並不重要「。順著這個思路我們去思考,也許有一天,可能很快我們會看到專門用於AI計算的大型超級計算機。
現在讓我們回到偏微分方程求解。藉助神經網絡這類數學工具,我們是不是可以解一些之前難以求解的問題呢?
在這裡,我列出了三個比較有特色的方程,它們都有強烈的非線性,並且計算區域具有不規則和高維的特點。比如第一個方程的計算區域雖然是二維,但是區域邊界非常複雜。中間是三維的例子,其計算區域是一個扭曲的torus形成,採用經典方法很難準確的刻劃。第三個是100維的超立方體,它高維的性質決定了經典的方法很難去求解。
通過神經網絡的方法可以很好地求解這類問題,我們提出了一套新方法——PFNN,這一方法的最大特點是只需要求解無約束優化問題,不需要引入任何懲罰項。
傳統的神經網絡求解方法或多或少會引入懲罰項,但是通過採用一些手段去重新構造解空間,可以設法避免這個事情。把一個約束優化問題變成完全沒有約束的優化問題,數值計算結果表明,PFNN方法可以很好的改善問題的求解精度和計算效率。
下面考慮如何實現並行求解。一個很自然的思路是直接做分布式訓練,但這樣的處理沒有很好的利用問題本身的性質。偏微分方程的求解,在經典的科學計算領域,有一個非常好的並行算法——區域分解。
我們將區域分解的思想用在神經網絡求解偏微分方程中。比如可把一個方形的區域一分為四之後,增加一點重疊度,就可以把單個神經網絡訓練問題分成子區域網絡的訓練。通過實測發現,這樣的手段不但能夠提供很好的並行加速,同時問題的計算精度也同時得到改善,實現了計算精度和計算速度的雙重收益。
從未來的發展趨勢來看,人工智慧、超級計算、科學計算會怎樣發展?三個方向共同目的是通過某種手段連接真實世界和數字世界。真實世界就是人類在不斷設法了解、改造的客觀世界。數字世界是我們能夠操作、能夠任意實驗的基於計算機的數位化虛擬世界。從真實世界到數字世界,至少存在四個角度,人工智慧可以與科學計算和超級計算結合,發揮作用。
第一,模型角度。經典的科學計算方面,很多問題是建模方面很困難,或者模型很準確但是不可計算或者很難計算,或者是模型可以計算但不夠準確。這時候基於人工智慧的手段也許可以構造更好的模型,比如現在湍流模型,分子力場模型,天氣預報領域的物理過程參數化等都有成功案例。
第二,算法角度。剛才舉的PFNN的例子就是算法角度,人工智慧的發展有很多的很好的數學工具,思考問題的視角。借鑑裡面好的數學工具,比如神經網絡,可以應用在一些科學計算領域的經典問題,比如線性方程求解、微分方程組求解、最優化問題求解等。
第三,軟體角度。光有算法和模型是不夠的,還需要在計算機上實現,寫成軟體,實現出來。這個過程涉及到大量的編程工作,而且很容易出錯。這時候如果藉助機器學習等手段,可以在編譯優化,自適應調優,自動代碼生成等方面把人們從繁重的體力勞動中釋放出來。
最後就是硬體角度。AI事實上已經深刻改變了超算硬體的發展,而且未來還會有更多改變,比如計算單元的設計、晶片的設計、處理器的設計、超算系統的設計等。
(雷鋒網)(雷鋒網(公眾號:雷鋒網))(雷鋒網)
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。