上午九點五十五分,科瓦利斯會議中心C廳。
原本只能容納兩百人的分會場,此刻連過道裏都站滿了人。
空氣悶熱,混合着廉價咖啡和程序員身上特有的那種陳舊襯衫的味道。
這幫人當然不是衝着名不見經傳的“以太動力”來的。
大家是來看上帝的。
就在剛纔,傑弗裏?辛頓和楊立昆這兩個平時神龍見首不見尾的大佬,竟然聯袂走進了這個偏僻的C廳,並且在前排正中間找了個位置坐下。
這一舉動就像是在平靜的魚塘裏扔了個深水炸彈。
原本還在隔壁B廳聽貝葉斯網絡報告的人,瞬間跑了一半過來圍觀。
“那個中國小子是誰?辛頓教授居然專門來聽他的報告?”
“聽說是個做AI製藥的,昨天在展臺那邊忽悠了不少風投。”
第一排最右側,谷歌技術總監魏斯博士(Dr. Weiss)已經打開了他那臺厚重的戴爾外星人筆記本電腦。
屏幕上跑着一段MATLAB代碼,那是他連夜讓手下工程師復現的“全注意力機制”demo。
在他身後的屏幕上,鮮紅的“Out of Memory”(內存溢出)報錯框正一閃一閃。
魏斯看着走上臺的林允寧,推了推眼鏡。
他不是來砸場子的,他是來做“代碼審查”的。
作爲谷歌搜索算法的負責人之一,他太清楚工程實現的邊界在哪裏。
數學可以天馬行空。
但服務器的內存條,纔不會陪你演戲。
十點整。
林允寧站在講臺中央。
他沒穿西裝外套,只穿了一件挺括的白襯衫,顯得身姿愈發挺拔。
領口,依舊繫着雪若送的那條深藍色的真絲領帶。
雪若站在臺下陰影處,抱着手臂,滿意地點了點頭。
這身打扮既有學術的嚴謹,又不失精英的銳利,賣相滿分。
“早上好,我是林允寧。”
林允寧沒有寒暄,直接按下了翻頁筆。
投影幕布上跳出了一張圖:一隻大象被塞進了冰箱裏,冰箱門被撐爆了,零件飛得到處都是。
臺下響起了一陣稀稀拉拉的笑聲。
“這就是目前的注意力機制。”
林允寧的聲音通過麥克風傳遍全場,平穩而清晰,“我們試圖讓神經網絡記住每一個輸入信號之間的關聯,這很美好。但代價是,當我們需要處理長序列??比如一條完整的人類染色體,或者一本《哈利波特》時,我們需要
計算一個乘以N的巨大矩陣。”
他在黑板上寫下了一個公式:
Complexity = O(N^2)
“對於N=1000,這沒什麼。但對於N=100,000,這意味着我們需要100億次浮點運算和幾十GB的顯存。”
林允寧看向臺下的魏斯,微微一笑,“魏斯博士昨天提醒我,在工業界,這叫死刑。你是對的。”
魏斯挑了挑眉,合上了電腦蓋子,靠在椅背上。
這小子還算有點自知之明。
“但是,”
林允寧話鋒一轉,手裏的翻頁筆再次按下,“如果我們願意犧牲一點‘精度”,來換取廣度呢?”
屏幕上的PPT變了。
原本複雜的Softmax公式被拆解開來。
Attention(Q,K,V)=Softmax(Q * K^T)* V
這一行公式下方,出現了一個紅色的叉。
"Softmax是一個非線性函數,它就像是一把鎖,把Q(查詢)和K(鍵)死死地鎖在了一起,強迫我們必須先計算它們之間的關係。
“但如果我們引入一個核函數映射(p()來近似Softmax......”
他在白板上飛快地寫下了一行變換:
(p(Q)*p(K)^T)* V =p(Q)*(p(K)^T * V)
“根據矩陣乘法的結合律,”
林允寧敲了敲白板,“我們可以改變計算順序。先算後面這一部分。原本那個N乘以N的巨大矩陣,消失了。取而代之的,是一個只有d乘以d(特徵維度)的微型矩陣。”
臺下原本有些嘈雜的議論聲瞬間消失。
在座的都是聰明人,當那個括號的位置發生改變時,所有人腦子裏的算盤都在瘋狂撥動。
從平方級,變成了線性級。
“如果你這麼做,你就毀了注意力。”
一個冷峻的聲音打斷了林允寧。
魏斯依然坐在椅子上,但他的眼神變得極其銳利。
作爲谷歌搜索算法團隊的核心人物,他雖然有着大廠高管特有的傲慢,但業務能力也極強,非常專業地指出了致命傷:
“林先生,這是一個聰明的數學把戲。但是,Softmax的作用不僅僅是歸一化,它通過指數運算放大了強信號,抑制了弱信號。這叫‘贏家通喫’(Winner-take-all)。
“正是因爲這種尖銳的分佈,AI才能精準地關注到那個最重要的詞。
“而你用的核函數p(x)??不管你用ELU還是ReLU??它們都是平滑的。如果你把Softmax拿掉,你的注意力分佈就會變得非常‘平”,非常‘模糊”。
“你確實把O(N^2)降到了O(N),但你也把一個原本擁有銳利眼神的狙擊手,變成了一個散光的近視眼。對於Google搜索來說,這種模糊的匹配是不可接受的。”
魏斯的話音落下,臺下響起了一陣低聲的附和。
這纔是真正的技術痛點。
沒有免費的午餐。
你省了算力,就得虧精度。
程新竹在臺下捏緊了拳頭,手心全是汗。
她雖然不懂具體的數學,但她聽得懂“近視眼”這個比喻。
臺上的林允寧並沒有慌張。
他甚至點了點頭,表示贊同。
“您說得非常對,魏斯博士。”
林允寧坦然承認,“線性注意力確實會導致注意力分佈的‘平滑化”。它沒法像Softmax那樣,在幾萬個詞裏精準地只盯着一個看。它看東西確實是‘模糊”的。”
他退出PPT,切到了代碼終端界面。
“但是,工程學本質上就是關於取捨(Trade-off)的藝術。”
林允寧輸入了一行指令,加載了一個巨大的數據文件。
“這是人類1號染色體的基因序列片段,長度爲100,000個鹼基對。
“在這個尺度上,我們並不需要關注某一個具體的鹼基A還是T。我們需要關注的是宏觀的、長距離的、全局的關聯。
“對於基因測序,或者對於一本百萬字的小說來說,‘看清大概的輪廓比‘看清某一個標點符號’重要一萬倍。”
“Run.”
林允寧按下了回車鍵。
大屏幕上,內存監控的波形圖開始滾動。
如果是傳統的O(N^2)算法,這條紅線會在0.1秒內衝破頂端,然後程序報錯。
全場幾百雙眼睛死死盯着那條紅線。
一秒。兩秒。三秒。
紅線微微抬起了一點點,大約佔據了128MB的內存,然後......變成了一條毫無波瀾的直線。
【Processing... 100%. Done.】
【Time elapsed: 3.42s.】
三秒鐘。
處理完了十萬長度的序列。雖然它的注意力可能是“散光”的,但它跑完了。
而魏斯電腦上的那個精準的Softmax算法,還在報着“Out of Memory”。
“一個能跑完的模糊算法,永遠比一個跑不起來的完美算法有價值。”
林允寧看着臺下的魏斯,語氣誠懇,“魏斯博士,這就是我目前給工業界的答案。我們不需要在每一件事上都追求完美,有時候,爲了看見整片森林,我們必須接受看不清樹葉的代價。
“當然,隨着技術的進步,這個算法還有很大的成長空間。”
魏斯看着屏幕上那條平直的內存曲線,沉默了很久。
作爲工程師,他無法反駁這個邏輯。
在當前芯片的算力下,能跑通,本身就是最大的勝利。
他合上那臺依然報錯的外星人筆記本,臉上傲慢的神色消退了不少。
他並沒有鼓掌,只是對着臺上的年輕人微微點了點頭,算是一種同行間的認可。
“聰明的取捨。”
第一排,一直沒說話的傑弗裏?辛頓突然開口了。
老人的聲音不大,但全場瞬間安靜下來。
“大腦也是這麼工作的。”
辛頓推了推眼鏡,目光深邃,“我們的大腦從來不會對每一個視網膜像素進行精確計算。我們也是‘散光”的,我們只關注大概。這很......符合生物學直覺。”
聽到“生物學直覺”這個詞,楊立昆也笑了,帶頭鼓起了掌。
掌聲雷動。
這不是爲了一個完美的數學證明,而是爲了一個務實的、能解決問題的工程創舉。
程新竹在臺下拼命鼓掌,手掌都拍紅了。
方雪若則迅速拿出手機,拍下了林允寧站在那條平直曲線前的背影??
這張包含了好幾位計算機領域大佬照片,將是以太動力最好的廣告。
報告結束,人羣還沒散去。
林允寧剛走下講臺,辛頓教授就走了過來,遞給他一張沒有任何頭銜的名片。
“年輕人,雖然你的算法犧牲了精度,但它打開了一扇門。”
辛頓看着他,“今晚的閉門會,記得早點來。有些關於“大腦”的祕密,或許我們可以在私下裏聊聊。”
林允寧接過名片,剛想說話,口袋裏的黑莓手機突然震動了一下。
是一封新郵件。
發件人:宋胤乾 (Song Yinqian)。
林允寧心頭一跳。熱二極管的樣品結果出來了。
他跟辛頓教授道了聲歉,走到角落裏點開郵件。
【允寧:有好消息,也有壞消息。
好消息是:你的摻雜配方是對的。
我們在42°C觀測到了明顯的絕緣體-金屬相變,熱導率突變了近10倍。原理驗證機成功了。
壞消息是:這東西很脆。
因爲鎢原子的半徑太大,強行擠進晶格後導致結構應力極大。
我們測試了幾個樣品,基本上在經過兩三次熱循環後,薄膜就會發生龜裂,甚至直接從基底上剝落。
目前的壽命,最多也就是幾十分鐘。如果你沒有解決晶格應力的辦法,這個熱二極管項目,恐怕只能停留在實驗室階段了。】
附件裏是一張電鏡照片。
原本平整的摻雜二氧化釩薄膜上,佈滿了像蜘蛛網一樣細密的裂紋,觸目驚心。
林允寧看着那張照片,苦笑了一聲。
42度的相變點。
這是完美的開關溫度。
但一個只有幾十分鐘壽命,用三次就會碎的開關,毫無價值。
這就是科研。
按下了一個葫蘆,永遠有三個在等着你。
“怎麼了?”
方雪若走過來,察覺到了他臉色的變化。
“沒事,熱二極管的實驗結果出來了。’
林允寧收起手機,深吸了一口氣,“我們要走的路,比想象中還要長得多。”