選自Gradient
作者:Alexander Veysov
機器之心編譯
參與:NeuR
目前在計算機視覺領域已經有了一個普遍認識,那就是 ImageNet 預訓練對於下游任務的有效性,來自 silero.ai 的俄國數據科學家 Alexander Veysov 將這一現狀稱為實現了「ImageNet 時刻」。那麼它在語音領域是否存在呢?在本文中 Alexander Veysov 給出了否定的回答,並討論了目前語音領域業界和學界存在的弊病,解釋了為何遲遲未能實現「ImageNet 時刻」。
本文希望回答以下兩個問題:
什麼是所謂的「ImageNet 時刻」(ImageNet moment),以及它為什麼重要?
為什麼語音領域還未實現「ImageNet 時刻」,學界和業界應為此負哪些責任?
什麼是「ImageNet 時刻」?
在給定的機器學習子領域中,要實現「ImageNet 時刻」,需要滿足以下條件:
用於解決 95% 標準「有用」任務的架構和所需模型構建塊是廣泛可用的,並可作為標準、經過測試的開源框架模塊;
大多數用大型數據集預訓練的流行模型都是可用的,只需要相對少量的數據就可以微調並應用到下游任務中;
在標準任務的預訓練模型基礎上進行微調,能夠得到解決不同日常任務的模型(且效果較好);
對於日常任務,對比之前論文中所需要的計算資源,例如 STT(Speech-To-Text,語音到文本)模型的訓練需要 100-1000 GPU 天,此時訓練模型所需的計算資源很小(STT 模型的訓練只需要 1-10 GPU 天);
預訓練大型模型的計算量對於小規模的獨立公司和研究團隊而言是可承受的。
如果以上條件都滿足了,人們就可以用合理的成本開發新的應用。同時這也實現了該子領域的民主化,即人們不需要再依賴大公司(例如谷歌),認為在業界只有它們的研發成果才是可靠的。
為什麼「ImageNet 時刻」尚未到來?
為了理解這個觀點,我們來看看計算機視覺(CV)領域中,那些導向「ImageNet 時刻」的標誌性事件和趨勢。
導致 CV 領域「ImageNet 時刻」的關鍵事件和趨勢。這個過程簡述如下:
英偉達在數十年間研發和優化了消費級 GPU。眾所周知,我們現在僅需要將 4-8 塊頂級 GPU 組合起來,就相當於造出了一台「超級計算機」;
據説在 2000 年代末,英偉達就設想 GPU 的性能能夠滿足機器學習的需要,並開始投入 CUDA 的開發(CUDA 於 2007 年首次發佈)。CUDA 是一種低級矩陣乘法框架,是大多數 GPU 加速機器學習應用的基礎;
2009 年,由李飛飛教授帶領的團隊發佈了 ImageNet 數據集,並在 2011 年舉辦了首屆「ImageNet 大規模視覺識別挑戰賽」(ILSVRC)。2012 年,Alex Krizhevsky 等人使用英偉達 GPU 和 CUDA 訓練出 AlexNet 神經網絡,性能遠超之前;
之後人們更多地投入深度學習框架的開發,並在 2017-2018 年發展到了成熟期。截至本文發表,PyTorch 和 TensorFlow 已成為首選框架,它們都提供了針對多項任務(包括圖像分類)的大量預訓練模型;
同期在 ImageNet 上實現 SOTA 性能的模型架構經過了不斷的精煉,同時訓練和評估這些模型的代碼也在這些常用的框架中和預訓練權重一起發佈了。
因此到 2018 年,在 CV 社區中「ImageNet 時刻」已經完全實現了:
這個現象在 CV 社區已經變得越來越普遍,即不把在 ImageNet 上訓練圖像識別當作任務的結束,而是當作訓練深度卷積神經網絡以學習有用和通用特徵的預任務。這種首先在 ImageNet 上訓練 CNN 來執行圖像分類(即預訓練),然後在新的目標任務上調整這些特徵(即微調)的做法,已經成為解決大量 CV 問題的事實標準。通過利用 ImageNet 預訓練 CNN 的特徵,我們在一系列圖像分類數據集上實現了驚人的結果,此外還包括目標檢測、動作識別、人類姿態估計、圖像分割、光流估計、圖像捕捉等任務。
為了簡化論證,我們假設 STT 和 CV 使用相同的硬件加速選項、框架以及神經網絡架構。然而,在預訓練模型、遷移學習和數據集方面,STT 是落後於 CV 的。同時,STT 的計算資源需求仍然太高。
那麼,為什麼會出現這種情況呢?大部分語音方面的研究是由業界/企業贊助的學術人員發表的。本文將對學界和業界對語音研究現狀的影響進行批判。
對業界的批判
通常,大部分 STT 論文是由來自業界的研究員發表的(例如谷歌、百度和 Facebook)。本文大部分對 STT 論文和解決方案的批評可以根據研究員的背景分為「學界」部分和「業界」部分。
簡單來説,以下是我們對於 STT「業界」部分的主要擔憂:
在私有數據上實現解決方案,並且沒有進行如實表述;
框架和工具包過於複雜;
解決現實中不存在的問題;
研究結果不可復現。
在私有數據上實現解決方案,且未進行如實表述
著名的 Deep Speech 2(2015)論文中出現了以下表格:
這個表格的大意是,要得到高質量的模型,需要大量的數據。這是明確表述該結果並執行了數據集外驗證的少量論文中的一篇。而大多數現代 STT 論文通常只是用成本更高昂的方法嚴重過擬合 LibriSpeech ASR 語料庫 (LibriSpeech)。谷歌、Facebook 和百度可能擁有 10000-100000 小時的數據集,用於訓練模型。這倒還好,但不好的一點是,他們使用這些數據來提高模型的性能,卻沒有在論文中報告相關細節。語音標註很費時,這使得問題更加嚴重。由於過高的數據代價,該領域的普通玩家沒辦法構建自己的數據集。即使他們使用相似的標註方法(https://github.com/snakers4/open_stt),也需要大量的資源、時間和精力來生成標籤,並進行大規模驗證。
標註 1 小時的語音大概需要 2 到 10 個小時,這取決於數據集的標註難度,以及手上是否有某些形式的自動標籤(即其它 STT 系統的輸出)。在 CV 中,有用數據集的標註僅需要少量的精力,而語音數據集的標註則非常昂貴。這導致了目前的情況:每個人都聲稱在某個有名的公開數據集(LibriSpeech)上獲得了頂尖結果,但從來沒有或很少報告這些模型在現實任務中的表現,以及哪些模型被產品化。
谷歌、Facebook 或者百度並沒有開源他們的龐大專有數據集的明確經濟動機。總而言之,這給從業者構建自己的 STT 系統造成了非常大的障礙。像 Common Voice 這樣的項目使情況變得好了一些,但它們還不具備足夠的數據。
框架和工具包過於複雜
對於從業者而言,使用框架或工具包而不是從零開始寫代碼是很普遍的做法。自然我們也會希望有專用的 STT 框架或工具包,如此一來,在框架提供的模型上做研發會比從零開始用 PyTorch 或 TensorFlow 構建模型更加便利。不幸的是,這種願景在語音領域並未實現。由於以下幾個原因,使用這樣的方法來啓動 STT 項目是不合理的:
代碼需要優化,以進行大規模計算;
這樣的方法(展示如何使用這些框架的端到端示例)僅適用於小規模的學術數據集,如果沒有大量計算便無法擴展到大規模數據;
這樣的方法是非常樣本低效的(我們最喜歡的案例是,在包含數百兆字節文本的數據集上訓練 10GB 的語言模型);
即使你在 LibriSpeech 上預訓練了一個模型,該模型也很可能無法遷移到現實任務中;
如果你想構建自有的 STT 解決方案,並且內化它、適當地理解它以及進行優化,那麼你可能需要一個大型團隊,或耗費大量的時間,來內化工具包;
這樣的工具包要麼是公開的自有解決方案,要麼是作為公關手段首次出現,或者作為生態系統構建工具。這意味着該工具包將作為合適的基線,但如果沒有投入大量資源,此類 pipeline 很難得到優化(如果你擁有一家公司,很有可能你會寫自己的工具包)。
從個人角度來説,我們多次嘗試內化 FairSeq 和 EspNet 的 pipeline,但我們並不能在合理的時間和精力下完成這件事。也許是我們的機器學習工程技能欠佳,但我們還從其他擁有更好工程技能的同行(即全職 C 機器學習程序員)那裏聽説了同樣的困境。
解決現實中不存在的問題
構建更新或更好、適用於 LibriSpeech 數據集、且在 8 塊價值 10000 美元的 GPU 上工作的工具包,並不能為現實應用帶來幫助。
創建和發佈基於現實世界數據的免費、開源和公共領域數據集,然後發佈在這些數據集上預訓練的模型才是真正的解決方案(這正是 CV 領域的發展軌跡)。然而,除了 Mozilla 發佈的 Common Voice 項目以外,我們還沒有看到有價值的行動。
研究結果不可復現
機器學習界有一個普遍現象,每週都有人聲稱得到了 SOTA 結果,但很少的結果是可復現的,或附帶容易運行的代碼。
考慮到集成加速硬件、大規模數據集以及訓練模型所需時間的難度,復現變得更加困難。
和 SOTA 傾向相反,我們認為應該更加關注研發「足夠用於現實任務」的解決方案和公開數據集。
對學界的批判
對學界的批判主要集中在以下幾點:
如果有大量研究人員集中精力追求某個度量指標下的頂尖結果,則這些指標失去了意義(參見古德哈特法則:一項社會指標或經濟指標,一旦成為一個用以指引宏觀政策制定的既定目標,那麼該指標就會喪失其原本具有的信息價值)。如果不能足夠快地更新,學術數據集實際上就變成了「排行榜」,變成了企業或機構炫耀實力的工具。為了獲得 SOTA 結果,在大型計算機上使用大規模和樣本低效的網絡成為了他們的默認選擇,儘管這對於普通玩家而言遙不可及;
理想情況下,論文應該有足夠的細節,從而使獨立研究者也能實現論文至少 95% 的結果;
實際上,從研究者的真實目的和現實應用的角度來看,論文的內容和結構都是有問題的。他們以或被接收或被拒絕的心態發表論文,使用複雜的數學作為解釋新概念的手段,儘管其工作可能與所述數學無關,只是將數學作為現成的工具。
除了可復現性以外,論文還存在一些其他缺點:
論文在討論方法的泛化性(即域外測試)時顯得很模糊。閲讀論文時你可能覺得神經網絡似乎在自動語音識別任務(ASR)上擊敗了人類,但這不過是「排行榜」問題的另一種症狀,神經網絡並沒有真正擊敗人類;
論文通常沒有説明使用的計算量;
論文很少報告收斂曲線,即要用多少時間和計算量來實現相對於 SOTA 的次優結果。通常在機器學習領域,95% 甚至 99% 的結果都可以僅用全部計算量的一小部分來實現。
被 SOTA bug 反咬一口
我真的非常喜歡「被 SOTA bug 反咬一口」的表達。簡單來説,有一大羣人全力追求某些抽象指標的頂尖結果,這些結果也就失去了意義(古德哈特法則的典型表現)。每次發生這種現象的明確原因通常都是不同的,並且可能是非常技術性的,但在機器學習界,情況通常是模型對數據集用於計算指標的某些隱藏內在性質過擬合。例如,在 CV 領域中,這種情況通常指視覺相似圖像的聚類。
相比於更大規模和更流行的社區,追求學術或科研目標的小規模、理想主義的低調社區更不容易成為古德哈特法則的受害者。一旦社區流行度達到一定的程度,社區就會開始盲目追求指標或道德信號(在不需要付出真正努力的時候,為了炫耀而炫耀自己的道德價值),而真正的進步則停滯不前,直到某些危機降臨。這正是「被 SOTA bug 反咬一口」的真正含義。
例如,在自然語言處理領域,這種態度曾經導致在公開學術基準上訓練和優化大型模型的非理性現象,但這樣的「進展」意義極其有限,原因如下:
即使是最好的 SOTA 模型對於眼前的任務也僅具備非常有限的理解(畢竟機器學習就是模式匹配);
最近的 SOTA 結果已經變得越來越難以比較,因為它們使用的計算資源的差別可能有幾個數量級;
這些結果很難得到復現,從而限制了現實應用;
數據越多,計算資源越多,越能得到 SOTA,這已經成為常態;
排行榜指標的意義被高估。
最近,學術性 NLP 數據集數量的爆炸性增長令人振奮,但它們的真實適用性通常受以下因素的制約:
大多數此類數據集是英文的;
此類數據集有助於研究新的可能性,但與 CV 不同,我們很難將它們整合到實際 pipeline 中;
雖然人們對構建 SQUAD 這樣的數據集投入了大量精力和關注,但我們並不能真的在生產級模型中使用它們;
穩定的生產級自然語言處理模型通常建立在大幾個數量級的數據之上,或者任務較為簡單。例如,我們可以安全地假設神經網絡能可靠地執行 NER,但對於問答或對話任務而言,還處於科幻小説階段。我喜歡這個貼切的比喻:用 Transformer 構建通用人工智能,就像通過造塔來登月。
我們支持關於機器學習驗證和指標的不同觀點:機器學習 pipeline 應該被當成一個壓縮算法,即 pipeline 可以用內存、計算和硬件將現實世界壓縮為一系列的計算圖和模型。如果你能將一個模型壓縮為 1/10 大小或十分之一的計算量,同時性能相近,那相比於在排行榜上的得分上升 0.5%,這種成就顯然要大得多。
另一方面,也有好消息,即業界的人們開始思考其方法的效率,甚至谷歌也開始思考如何高效地預訓練 Transformer(當然,是以谷歌的規模)。
論文內容和結構
傳統上,機器學習的新思想是以論文中數學公式的形式共享的。這種做法具有歷史意義並且合理,但這其中也存在缺陷,因為今天隨着開源工具被更廣泛地接受,構建應用解決方案、優化已有方案、解釋工作原理(這是個難題)、構建基礎模塊或框架(例如百度構建的 warp-ctc 或 Facebook 構建的 PyTorch)和創建新的數學方法之間有着明顯的界線。機器學習研究人員通常同意存在很多為了寫方程而寫方程的論文。這對我們理解事物的原理真的有幫助嗎?我們以 CTC(Connectionist Temporal Classification)損失為例來解釋這一點。幾乎每一篇使用該損失函數的 STT 論文都會用一個章節來解釋它。你會在其中找到一些數學公式,但這對於理解該損失真的有幫助嗎?
CTC 損失很複雜,可能是 STT 研究中最大的推動器,但是很少有論文提到使用了哪種實現。我還未在任何讀過的論文中看到以下思想,那麼,是我無知,是我使用實現的習慣比較怪異,還是他們故意省略了這些東西?
每三個月我會將 warp-ctc(移植到 PyTorch)和 PyTorch 中的本地 CTC 損失做比較,後者無法恰當處理現實數據;
和標準的損失相比,CTC 損失非常「激進」;
通常需要某些形式的裁剪或 warm-up,CTC 損失很容易「爆炸」;
在網絡訓練的第一個 epoch,你需要非常謹慎地選擇訓練數據。
當然,你也】可以查閲 CTC 的原始論文(由一位數學家所寫),或 Distill 上的一篇文章(sequence modeling with CTC),這篇文章更加通俗易懂。但老實説,我能找到的最容易懂的解釋來自一個俄語的 Youtube 視頻(How to build end-to-end recognition system (Part 2): CTC Loss [RU]),視頻中兩個人坐在屏目前用案例解釋 CTC 如何工作,並使用幻燈片一步一步地解釋。論文中所有關於 CTC 的解釋都是數學公式,雖然很可能在技術上是正確的,但這能帶來任何益處嗎?實際上,要想做出 3Blue1Brown 那樣的視頻非常難,不過也許參考恰當易懂的解釋會是解決之道?
想象一下,如果機器學習論文和出版物能遵循以下模板的話,向學術界傳播研究成果會變得容易多少:
使用的工具包、實現和思想;
做出的主要改變;
運行的實現,以及得出的結論。
在「小型」學術性數據集上訓練樣本低效、過參數化的網絡
我們先來看看,自 Deep Speech 2 的原始論文推廣了 ASR 之後,我們取得了多大進步。
根據這裏的圖調整得來(https://paperswithcode.com/sota/speech-recognition-on-librispeech-test-other),人類結果來自 Deep Speech 2 論文。上面這張圖是不是表示字錯率(character error rate,CER)和詞錯率(word error rate,WER)指標實際下降了 60%,性能超越人類表現?如果它真的表現那麼好,為什麼我們還沒有看到理想的 STT 技術被應用在所有設備的日常 app 上呢?為什麼語音接口仍然只被認為是很酷的功能呢,尤其是在商業應用中?
雖然我們同意下表所展示的,人類在轉錄音頻時通常會出現 5%-10% 的錯誤,但該表格存在誤導性。我們閲讀了多篇論文,發現了一些問題:
較近期的論文很少用較小的模型做控制變量測試;
聲稱得到 SOTA 性能的 ASR 論文很少報告收斂曲線;
這些論文很少提及用於超參搜索和模型收斂的計算量;
在我們讀過的論文中,只有 Deep Speech 2 關注了從較小數據集遷移到現實數據的性能問題(即域外驗證);
沒有針對樣本效率和向真實數據集的擴展進行優化。2019 年的幾篇論文做了類似的優化(參見論文《Sequence-to-Sequence Speech Recognition with Time-Depth Separable Convolutions》和《QuartzNet: Deep Automatic Speech Recognition with 1D Time-Channel Separable Convolutions》),但它們只關注減小模型尺寸,而沒有關注訓練時間。
這是少有的將 ASR 系統和人類基線在現實數據上進行比較的案例。即使在清晰的英語語音轉錄中,人類也有 4-11 的 WER(取決於語言領域)。(圖源:https://blog.timbunce.org/2019/02/11/a-comparison-of-automatic-speech-recognition-asr-systems-part-2/)我能理解,研究必須遵循不斷的循環過程(研究出新的、低效率的技術,優化該技術,然後再次發現新技術),但是 ASR 研究似乎是古德哈特法則在實踐中的一個很好的案例。
如果你閲讀了 deepspeech.pytorch 的版本註釋,看到「不要期待這些模型在你自己的數據上能表現的多好!」這句話,你可能會被驚呆。這些預訓練模型已經在 1000 小時的語音上訓練過,並擁有非常低的 CER 和 WER。然而在實踐中,將系統擬合到某些理想的約 10000 小時的數據集上時,仍得到 25-30% 的 WER(而不是宣傳中所説的,在清晰語音上得到 5% 的 WER,在有噪聲語音上得到 10% 的 WER);
和 CV 研究不同,CV 中確實可以將模型在 ImageNet 上的優秀性能遷移到只有較少數據的現實任務中。但在語音領域,模型在 LibriSpeech 的優秀性能並不能遷移到現實數據。你並不能像在 CV 領域中用 1000 張圖像訓練網絡那樣,用 1000 小時語音來快速調整網絡;
以上這些意味着,學界和業界已經開發了越來越複雜且對 LibriSpeech 過擬合的方法。
研究人員希望在他們待解決問題上取得進展並利用現有的數據,這情有可原。但最終表明,首先創建一個真正大型且極具挑戰性的數據集(類似 ImageNet 項目)將會有用得多。
過分依賴大規模計算
過參數化示例。谷歌在實驗裏展示了,其大型網絡和中型網絡的性能並沒有多大差距。也就是説,在實際應用中,你可以採用中型網絡並使用其它技巧來提升性能。下表展示了我們對著名或最近 ASR 論文中所用計算的分析:
由於俄語擁有更多的變化,其轉錄難度比英語更大。我們的數據集不能直接和 LibriSpeech 相比較,因為它包含了很多領域,而 LibriSpeech 更加同質化,且噪聲更少。從上表中,我們可以觀察到以下現象:
大多數在 LibriSpeech 上訓練的模型都是以循環方式進行的,即用整個數據集訓練 N 次。這種做法是非常成本低效的。因此,我們採用課程學習(curriculum learning)方法;
QuartzNet:這篇論文非常注重效率,但似乎用於訓練的計算量與其他論文相當;
TDS:雖然他們沒有明確報告訓練網絡所需的時間(我們試圖復現其網絡,但失敗了),但他們有一大堆不錯的想法——使用字節對編碼(BPE),使用超過 2 或 3 的步長,使用可分離卷積;
JasperNet:該研究稱,對網絡進行了 50 個 epoch 或 500 個 epoch 的訓練,但沒有明確提到訓練時間和使用的硬件數量;
Wav2Letter:令人驚訝的是,Wav2Letter 論文實際上沒有報告這些指標中的任何一個。我們使用類似 Wav2Letter 的網絡,它們有大約 2000 萬到 3000 萬個參數,但是不能轉錄俄語;
Deep Speech 2:很難將最初的 Deep Speech 論文包括在這個列表中,主要是因為他們嘗試、推廣和開創了許多不同的事物。我們只是把他們最常引用的在 LibriSpeech 上使用循環模型的實驗包括在內。
轉錄結果隨模型尺寸的變化(圖源:http://arxiv.org/abs/1512.02595)(http://arxiv.org/abs/1512.02595))轉錄結果隨數據量的變化(圖源:http://arxiv.org/abs/1512.02595)(http://arxiv.org/abs/1512.02595))
通過表格,我們可以立刻發現以下趨勢:
幾乎所有研究都使用大規模計算,並且沒有清晰可見的硬件需求趨勢(甚至在聲稱減輕計算負擔的論文中也是如此);
網絡從小型到大型不等,但總體而言可以肯定的是,無論使用多少計算量,大多數網絡都對 LibriSpeech 過擬合;
如果你跳到「總體進展」部分,查看我們的收斂曲線和以下收斂曲線,你會發現,我們最佳網絡的收斂 90% 發生在最初的 2-3 天,這與行業一致(但我們總體上使用的計算量要少得多)。
Deep Speech 2 的收斂曲線。其它常見批判
在研究機器學習或 STT 問題時,還常出現以下批評:
通常,論文對方法的泛化性能(即域外測試)表述含糊;
很少關注超參數的穩定性;
全新的半監督和無監督學習方法(wav2vec、循環 STT-TTS 訓練)不執行任何關於樣本效率、穩健性或泛化性的健全性檢查,主要關注創新性因素;
端到端怪象:學術論文通常在一個小的理想數據集(LibriSpeech)上過擬合 LM 並進行後處理,聲稱實現頂尖端到端結果的方法其實是非常不理想的,因為在實踐中文本域可用的數據量至少要高 999 倍(例如,將維基百科與 LibriSpeech 中的所有文本的大小進行比較);
過度依賴梅爾頻率倒譜系數:我們尚未看到對短時傅立葉變換、梅爾頻率倒譜系數、梅爾濾波器組、小波等的恰當對比。我們在較小數據集上進行了實驗,最終發現使用什麼不會造成區別,但是在真實的有噪聲的數據上短時傅立葉變換是最好的。此外,我們未能對較新的網絡濾波器(如 SincNet)進行任何有意義的實驗。
對我們的解決方案提出批評
為公平起見,我們也對自己的解決方案做出了反省:
我們使用私有數據來訓練模型,儘管私有數據集的大小比整個數據集小几個數量級,即「高質量基準」大約包含 500 小時(其中 100 小時是手動標註的),而公共數據集有 20000 小時;
此外,本文中報告的主要結果僅通過少量的手動標註獲得(即我們僅手動標註了驗證集)。我們使用少量私有數據的主要原因是,我們需要在主要語言領域中得到結果;
與數據集不同,我們沒有共享訓練 pipeline、特定超參數和模型設置以及預訓練模型,因為本研究 be 研究都是為自業商業項目進行的。我們本可以選擇在非商業許可下共享,但普遍的共識是知識產權法在俄羅斯不起作用,除非你是國家支持的壟斷者。我們正在尋找融資方案,以便開源一切資源,包括未來在其它語言方面的工作。
結論
最近在大眾媒體中,監督式機器學習成為熱詞。出現這種情況是因為,在某些承諾的刺激下(雖然它們無法兑現),該領域出現了非理性繁榮和過度投資。
這是可悲的,因為這樣的情況可能導致對有益於整個社會的領域投資不足。自動駕駛卡車公司 Starsky 的故事完美地説明了這一點。他們交付了有效的產品,但視場還沒準備好,部分原因在於「人工智能祛魅」。
借用本文的概念和圖像,你可以想象社會對新技術的反應曲線,如下所示。如果技術已經到達 L1,它將被廣泛採用,每個人都能受益。如果 L2 可以實現,但需要大量投資和時間,可能只有大公司或國家支持的壟斷企業才能收穫果實。如果要實現 L3,那麼人們可能只會重新考慮這項技術。
Andrej Karpathy 在他的技術演講裏解釋為什麼提高自動駕駛汽車性能的最後 1% 會這麼難。那麼我們能收穫什麼呢?我們為什麼要關心和參與?語音技術有很大的潛力,可以自動完成無聊的任務,讓人們把更多的注意力放在重要的事情上。這在之前就發生過。20 年前,這種「奇蹟」技術是一種關係型數據庫,參見 Benedict Evans 的文章《Ways to think about machine learning》。
關係型數據庫是一個新的基礎支持層,它改變了計算的功能。在 20 世紀 70 年代末關係型數據庫出現之前,如果你想讓數據庫向你展示「所有購買該產品並居住在該城市的顧客」,通常需要一個定製的工程項目。數據庫不是用結構來構建的,否則任何任意的交叉引用查詢都是一件容易的、常規的事情。而當時如果你想問一個問題,就必須有人來構建它。數據庫只是記錄保存系統,關係型數據庫則把它們變成了商業智能系統。
這改變了數據庫在重要方面的用途,並創造了新的用例和新的十億美元公司。關係型數據庫帶來了 Oracle、SAP,SAP 和它的同行帶來了全球即時供應鏈——他們給了我們蘋果和星巴克。截至 20 世紀 90 年代,幾乎所有的企業軟件都是關係型數據庫,PeopleSoft、 CRM 和 SuccessFactors 等都運行在關係型數據庫上。關注 SuccessFactors 或 Salesforce 的人中,沒有人會説「這永遠不會起作用,因為 Oracle 擁有所有的數據庫」。相反,這項技術成為了一個使能層,是一切的組成部分
所以,這是一個思考目前機器學習的很好方式。這是我們可以用計算機做的重大改變,這將是許多不同公司的不同產品的一部分。最終,幾乎所有東西都會在某個地方用到機器學習。這裏一個重要的相似之處是,儘管關係型數據庫有規模經濟效應,但也有有限網絡或「贏家通吃」效應。如果公司 B 和 A 從同一個供應商處購買相同的數據庫軟件,那麼公司 A 使用的數據庫不會變得更好。實際上,機器學習也是如此:機器學習完全是關於數據的,但是數據對於應用來説是高度特定的。更多手寫數據會使手寫識別工具性能更好,更多的燃氣輪機數據會使預測燃氣輪機故障的系統性能更好,但它們彼此之間不會互惠互利。數據是不可替代的。
他的理念「機器學習=回答部分問題的支持堆棧,就像無處不在的關係型數據庫」,語音技術的命運只能由我們來決定。利益是由少數精英獲得,還是由整個社會獲得,目前仍不得而知。我們堅信,語音技術將在 2-3 年內成為一種商品。剩下的唯一問題就是:它們看起來更像 PostgreSQL 還是 Oracle?還是兩種模式共存?
為模型瘦身,飛槳PaddleSlim提供了從剪枝、量化到輕量級神經網絡架構搜索與自動模型壓縮等一系列高效工具。5月17日19:00,百度資深研發工程師將在線解析飛槳模型壓縮庫核心技術及應用場景,歡迎掃碼報名。