神話的誕生
記得幾年前流行一本書,《人類簡史》。此書風行之后還有一些類似的《智能簡史》之類。 在AlphaGo出現之前,《人類簡史》的作者尤瓦爾·赫拉利對人工智能的態度還是比較客觀和保守的,對奇點的探討也不是很絕對。但在李世石慘敗后,作者的觀點則出現了較大的轉變。《人類簡史》的末尾,在人類社會的發展進程中,從最開始的動物到神的出現,最后催生出有關神話的想象和信仰,而這個神話的中心點就是AI。 李世石和DeepMind研發的AlphaGo進行的人機大戰,每一盤直播我都幾乎是屏住呼吸在看。圍棋上手的每一步,都會給對手帶來巨大的心理壓力,而AlphaGo的棋一直讓人喘不過氣來。直到第四盤李世石的78神之一手——看到這步棋之后,我幾乎哽咽,兩眼從濕潤到流淚。
李世石VSAlphaGo第四盤白78手
DeepMind創始人握著李世石的手說,AlphaGo的勝利是人類自身的進步,而不是機器對人類的勝利。在當時的愛好者群里,我提出一個建議:馬上更換25路棋盤再戰。這個策略是出于對AI仍舊是一種統計程序的考慮,我估計它還不能從19x19中發現通用規律并移植到更大的盤面上去。
李世石對戰AlphaGo 也有人認為盤面越大人類越不行。但在LeelaZero出現后,我曾跟Leela多次對弈,結果是19路完敗,25路完勝。在更大盤上面,AI完全沒有基本的圍棋常識,這一定出乎很多人的意料。 雖然口頭上還在探討圍棋AI的弱點,但作為一個從90年代就開始編程的程序員,在那一刻,我真實感受到的是時代的巨變。我覺得自己必須馬上行動,馬上跟上時代的腳步,才能避免被無形的巨輪碾壓在塵埃中。 在此之前,我一直在做編碼解碼器優化、內容分享這一類工作。看完這幾盤棋后,我暫停了所有的手頭開發方向,安裝了Python,下載了DeepMind論文的相關開源代碼,開始學習AI。后來又選擇了超分辨率這個方向來作為突破口,到今天縱向發展到推理引擎深度優化,橫向關聯到NPU加速的編碼解碼器等等。 尤瓦爾·赫拉利有一個很有名的觀點,那就是神話在人類社會發展過程中起到的最重要作用。在有語言通信工具的情況下,十幾個人的小團隊能夠運作得很好,智人和尼安德特人的團隊合作都達到了這個程度。但是當智人和尼安德特人在歐亞大陸相遇的時候,智人還有更強的工具,那就是gossip,我們理解為八卦,意思是通過篝火和睡眠前的八卦,智人的溝通更有效率,能夠保證比較穩定的更大規模上的團隊合作。因此智人最終取代了尼安德特人。
《人類簡史》作者尤瓦爾·赫拉利 后來人類團體變得更大了,達到了幾百數千人,這個時候八卦也出現了問題,因為更大的團隊也更容易產生分裂。于是,神話就適時地出現了。神話也就是宗教,氏族首領代表神來進行治理。國家形態出現了,而且這種統治形態可以長時間保持。人類的科學技術、文化文明等等,都得益于超大規模的團隊合作,也就是國家和政治。 神話并不屬于科學技術,而是一種社會意識形態,但是神話對于人類社會的發展、科學技術的飛躍都是不可或缺的。超級AI,奇點理論,其實就是一種神話。 無論是DeepMind的哈撒斯比,還是BAT的普通程序員,都知道自己正在開發的AI,和超級AI扯不上一點關系。奇點究竟是怎么回事,在OKR的壓力下也沒有幾個人去關心。但是開發AI的人,總是有一種使命感,總覺得自己不僅僅是寫一些模塊算法或者拿一點工資,自己每天在干的事情屬于一個無比宏偉的藍圖的一部分,自己和成千上萬的開發者一同在書寫一部史詩。這就是我們心中的神話。 在神話的鼓舞下,我這樣的老程序員,每天都在學習新的算法新的技能,不斷轉換賽道開疆拓土。更有無數的年輕程序員,抱著一種創造神話的激情和理念,突破了一個又一個的技術難點,把AI算法推向千千萬萬的用戶。我們看到了新的億級別VV應用的快速崛起,也見證了一批不思進取老牌APP的迅速消失。
為什么說我們現在的AI不是超級AI
從事AI開發的人都知道,現在的AI還沒有自主學習的能力。算法都是工程師設定好的,AI只是在執行一種程序。與其說是AI在學習,不如說是算法工程師在學習更合適。和基本的傅里葉變換、拉普拉斯草帽算子、線性方程組一樣,現在的深度學習也只是一種統計算法,是一種從數據中尋找規律的計算機程序。 那么將來是不是有這種可能:AI會發展到自主學習、自行修改算法、自行進化的程度?這是對未來的一種預測。因為是預測,所以很難是準確的。 對過去歷史上發生過的事件進行總結,總有人可以做的很到位。但是有沒有人能夠預測新冠肺炎的爆發?有沒有人能預測到雙色球開獎號碼?有些理論說世界本質上是模擬和隨機的,沒有能夠長期成立的預測。 首先,AI的發展是不是可以按照指數形式無限制暴漲?要知道,硅芯片從20年前到達4G主頻之后,CPU的計算能力增長開始減緩,改進形式變成了多核心,GPGPU,NPU,FPGA,這是因為物理規律的限制。 愛因斯坦的廣義相對論已有百年歷史,至今再無突破性的理論出現,科學家們還在茫茫宇宙中尋找相對論的一些證據,這是人類智能的限制。 人們都說外星文明幾乎是必然的,但是人類如何走出太陽系都是一個問題,這是空間和時間的限制。 其次,從目前的狀態來說,超級AI還很遠。超級AI的神話總是和永生,和人造生命一同綁定。某種意義上來說這是同一個問題。我們目前面臨的冠狀病毒、艾滋病、癌癥、衰老,仍舊是沒有解決的問題,長生不老還只是一個神話。無論你多么成功,或者富可敵國,該死還得死。更別提還有全球性變暖、生態災難、小行星撞擊等種種不可預測的事件。 第三,對AI未來的預測,實際上是對人類自身甚至地球共同體未來命運的預測。每個人,每個生命都參與其中。那么這個事件的發展就不是一個可以被獨立觀察的孤立系統。由于每個人都可能有意無意地影響事件的走向,那么這個系統的演化很大程度上就帶有主觀色彩,至少不是完全客觀的。 兩種極端情況:第一種,我手中握著一只小強,讓你來預測生死。你說“活”,我捏死它,你說“死”,我放開它;第二種,我預測自己明天早上吃個漢堡。那我完全可以強行讓這個預測成立。實際上在具體項目開發中,往往存在這種情況,決定工程最終走向的,往往是最有實力的程序員,而這個走向跟大家最初的判斷往往差別很大。 并不是說這個“最強程序員”的走向一定是最合理的,而是因為只有他能填平大坑讓算法走向實用。大家預測AI的未來和規律也是類似的,這種預測往往會改變被預測過程的走向。如果人類意識到不加限制的超級AI會帶來威脅,那么超級AI從開發到使用就必然受到一系列限制,超級AI仍舊只會是一種工具,不會發展出無限智力。 因此,實際上目前的AI并不是影視文學作品中的那種超級AI,也不是很多人心中神話了的AI。目前不是,甚至20年、30年之后也差得很遠。
那么目前的AI究竟是個什么狀態,短期的發展會如何?
AI落地三要素:算法、芯片、工程
算法層面上,主要是要證明該算法的有效性。在算力能夠保證的前提下,深度算法一般能提供傳統算法不具備的一些特征。但這并不是說你只要說明自己是深度算法,市場和客戶就會買賬。 比如用戶往往希望超分辨率、HDR、降噪等技術,能夠把一些質量較差的視頻做出很明顯的改善。但算法并不是仙丹妙藥,只能在滿足工作區間的條件下,起一部分作用。所以我們要有比較清醒的認識,主觀意愿和客觀算法能力上肯定是不匹配的。 在芯片層面,主要是因為深度學習需要很大的計算能力,這個能力是傳統CPU不具備的。通用計算的GPU在模型訓練上是比較有優勢的,但和專有的加速芯片(TPU,NPU)比起來,單位芯片面積算力產出和功耗上,效率是比較低的。 如果前兩個問題解決的話,算法最終落地到APP用戶層面,是依靠工程開發來實現的。并不是說算法的算力需求和芯片的理論能力能夠匹配了,實際運行效果就一定滿意。這個問題在移動平臺上非常突出。手機是依靠電池供電的,電力非常有限,同時散熱空間也很小。這兩個特點使得在手機上應用深度算法難度陡然加大。比較大的網絡即使在NPU上運行也是很慢的,常規的暴力裁剪縮小網絡,往往使得算法失效,或者出現大量badcase.
AI 能落地的幾個條件:
1) 工作區間內沒有明顯的badcase。 這個原因顯而易見,自然界生物里面,老弱病殘是第一個被淘汰的。先天殘疾的幼兒很難存活,產生癌癥的變異不能通過自然選擇。一個算法有badcase的話,就得有很多彌補措施,這些措施的代價可能超過了算法本身的收益。這就如同用錢買了房子,坐等房子升值就可以發財,至少是不虧;而如果投資做買賣的話,費了很大力氣折騰半天反而賠了。 2) 相對于其他算法選擇,要有明顯的收益。如果相對于別的算法,投入過大而收益更小,那么很明顯的應該放棄當前的思路。3) 對于現階段的硬件芯片和軟件驅動來說,算法可以高效運行。 比如一些深度算法,4k超分辨率疊加HDR、超幀率等,在服務器硬件加速下,性能滿足需要。即使不能實時運行,也不至于等待太長時間,這是可行的。但是這樣的算法放到移動平臺上,有耗電限制,芯片都是低功耗低性能類型,顯然落地的困難就非常大。
目前比較成功的落地算法
我們所了解的深度算法發展里程中,有兩個影響比較大的事件。第一個是人像識別,深度算法超越了傳統的統計特征分析。第二個就是本文提及的圍棋AI程序AlphaGo, 后續當然還有Master、zero等等。另外,在語音識別上也是類似。接近十年的時間過去了,目前圖像識別和語音識別還是最成熟的應用。從識別到內容生成,這一步還在繼續進化之中。 視頻畫質類算法,典型的包括HDR、超分辨率和超幀率。這類算法在非實時性約束的場景下已經有很多應用例子。其中一個難題是,非實時約束就必須使用視頻編碼器,編碼后的視頻質量損失是比較大的。極端的例子是,一個720P的視頻,如果先解碼為單幀圖像序列,然后做超分辨率到4k,然后再編碼為4k高清視頻來播放。 這時候我們會發現,雖然超分辨率帶來了一定的畫質改善,但是編碼過程帶來的畫質損失更大。 結果是,直接播放720P視頻反而比播放超分4k編碼的視頻效果更好。超分等算法放到端上實時運行,能避免這個問題,還能節省傳輸碼率。但是對于算法的實時性要求,使得芯片的計算壓力和算法工程的優化壓力,又變得極大。
我們看到短時間內會解決的應用:
在4k分辨率下,幾個典型視頻畫質類算法目前三元素的狀態:
我們看到,芯片的計算能力實際上是達到了。考慮到功耗的因素,算法和工程的優化還需要做一個2-3倍的改善。 但實際上無論從算法上還是工程實現上,優化的空間還是非常巨大的。我相信再過一段時間,出現20-30倍的效率提升是很正常的事情。 以AI輔助編碼為例,有人做過一個試驗,用AVX512指令集,用下山法暴力計算,實現了視頻編碼的運動估計模塊。在小運動向量場景下,1080分辨率的運動搜索,每個像素代價大概是2個指令周期。這意味著3G主頻的CPU,單線程ME性能達到了1000FPS左右。
-
AI
+關注
關注
87文章
30155瀏覽量
268425 -
程序員
+關注
關注
4文章
950瀏覽量
29763
原文標題:從神話到落地——AI工程化淺談
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論