0
在不久以前,數據科學團隊需要一些東西來有效地利用深度學習:
一種新穎的模型結構,這個結構可能是內部設計的
訪問大型且、專有的數據集
大型模型訓練的硬件或資金
這些條件將深度局限于滿足它們的少數項目中,阻礙了深度學習的發(fā)展。
然而,在過去幾年里,情況發(fā)生了變化。
在 Cortex,我們看到用戶推出了基于深度學習的新一代產品,與以前不同的是,這些產品并非都是使用獨一無二的模型架構構建的。
這種增長背后的驅動力是遷移學習。
什么是遷移學習?
廣義上講,遷移學習是指為特定任務訓練的模型中積累的知識,例如,識別照片中的花可以遷移到另一個模型中,以幫助對不同的相關任務(如識別某人皮膚上的黑色素瘤)進行預測。
如果你想在遷移學習上有更專業(yè)的鉆研,Sebastian Ruder 已經寫了一本很棒的入門書:https://ruder.io/transfer-learning/ 。
遷移學習有多種方法,但有的方法特別是微調方法被廣泛采用。
在這種方法中,團隊接受一個預先訓練的模型,并移除/重新訓練模型的最后一層,以專注于一個新的、相關的任務。例如,AI Dungeon 是一款開放世界的文本冒險游戲,它的人工智能生成的故事非常有說服力:
圖片來源:AI Dungeon
值得注意的是,AI Dungeon 不是在谷歌的研究實驗室里開發(fā)的,它是一個由個人工程師建造的黑客競技項目。
AI Dungeon 的創(chuàng)建者 Nick Walton 并不是從頭開始設計模型,而是通過采用最先進的 NLP 模型 OpenAI 的 GPT-2,然后根據自己選擇的冒險文本進行微調獲得的。
這項工作之所以有效,是因為在神經網絡中,最初的層關注簡單的、一般的特征,而最后的層則關注更多特定于任務的分類、回歸。Andrew Ng 通過想象一個圖像識別模型來可視化這些層和它們的相對特異性水平:
圖片來源:Stanford
事實證明,基本層的一般知識通??梢院芎玫剞D化為其他任務。在 AI Dungeon 的例子中,GPT-2 對常用的英語有著最先進的理解,它只需要在它的最后一層進行一些再訓練,就可以在自己選擇的冒險類型中表現出色。
通過這個過程,一個工程師可以在幾天內將一個模型部署到一個新的域中,從而獲得最新的結果。
為什么遷移學習是下一代 ML 的軟件的關鍵
在前面,我提到了機器學習和深度學習所需要的條件,特別是要有效地使用這些條件。你需要訪問一個大的、干凈的數據集,你需要能夠設計一個有效的模型,你需要訓練它的方法。
這意味著在默認情況下,在某些領域或沒有某些資源的項目是不可行的。
現在,通過遷移學習,這些瓶頸正在消除:
1.小數據集不再是瓶頸
深度學習通常需要大量的標記數據,然而在許多領域中,這么多數據根本不存在。遷移學習可以解決這個問題。
例如,哈佛醫(yī)學院下屬的一個研究小組最近部署了一個模型,該模型可以「根據胸片預測長期死亡率,包括非癌癥死亡」。
圖片來源:JAMA Network
有了大約50000個標記圖像的數據集,他們沒有從零開始訓練 CNN 所需的數據。實際上,他們采用了一個預先訓練過的 Inception-v4 模型(在超過 1400 萬張圖像的 ImageNet 數據集上進行訓練),并使用了遷移學習和輕微的架構修改來使模型適應他們的數據集。
最后,他們的 CNN 成功地為每位患者僅使用一張胸部圖像來生成與患者實際死亡率相關的風險評分。
2.模型可以在幾分鐘內訓練,而不是幾天
在海量數據上訓練模型不僅有獲取大型數據集的問題,還有資源和時間的問題。
例如,當 Google 開發(fā)最先進的圖像分類模型 exception 時,他們訓練了兩個版本:一個是 ImageNet 數據集(包含 1400 萬張圖像),另一個是 JFT 數據集(包含 3.5 億張圖像)。
在 60 NVIDIA K80 GPU 上進行各種優(yōu)化的訓練,運行一個 ImageNet 實驗需要 3 天。JFT 的實驗花了一個多月的時間。
然而,現在已經發(fā)布了預訓練的異常模型,團隊可以更快地微調自己的版本。
例如,伊利諾伊大學和阿貢國家實驗室的一個小組最近訓練了一個模型,將星系的圖像分類為螺旋狀或橢圓形:
資料來源:阿貢計算設備
盡管只有 35000 個標記圖像的數據集,他們能夠在 8 分鐘內使用 NVIDIA GPU 對異常進行微調。
當它在 GPU 上服務時,所得到的模型能夠將星系以每分鐘超過 20000 個的超人速度進行歸類,且準確率高達 99.8% 。
3.訓練模型不再像投資一樣有風險
即便模型在 60 個 gpu 上訓練數月的時間,谷歌可能也不太在乎成本。然而,對于那些沒有谷歌規(guī)模預算的團隊來說,模型訓練的價格是一個真正令人擔憂的問題。
例如,當 OpenAI 第一次公布 GPT-2 的結果時,他們發(fā)布了模型架構,但由于擔心有問題,于是并沒有發(fā)布完整的預訓練模型。
作為回應,Brown 的一個團隊按照本文所述的架構和訓練過程復制了 GPT-2,并調用了他們的模型 OpenGPT-2。他們花了大約 5 萬美元去訓練,但表現不如 GPT-2。
如果一個模型的性能低于最先進的水平,那么 50000 美元對于任何一個團隊來說都是一個巨大的風險,因為他們是在沒有大量資金的情況下構建真正的生產軟件。
幸運的是,遷移學習大大降低了這一成本。
當 Nick Walton 創(chuàng)建 AI Dungeon 時,他通過微調 GPT-2 來完成。OpenAI 已經投入了大約 27118520 頁的文本和數千美元來訓練這個模型,而 Walton 不需要重新創(chuàng)建。
相反,他使用了從 chooseyourstory.com 上截取的一組小得多的文本,并在完全免費的 Google Colab 中對模型進行了微調。
機器學習工程正在成為一個真正的生態(tài)系統(tǒng)
將軟件工程看作一個并行的過程,我們通常會看到生態(tài)系統(tǒng)以相當標準的模式「成熟」。
一種新的編程語言將有一些令人興奮的特性,人們將把它用于專門的用例、研究項目和玩具。在這個階段,任何使用它的人都必須從頭開始構建所有的基本實用程序。
接下來,社區(qū)中的人們開發(fā)庫和項目,將公共實用程序抽象出來,直到工具能夠穩(wěn)定地用于生產。
在這個階段,使用它來構建軟件的工程師并不關心發(fā)送 HTTP 請求或連接到數據庫,所有這些都是抽象出來的,只關注于構建他們的產品。
換句話說,Facebook 構建 React,Google 構建 Angular,工程師使用它們來構建產品。隨著遷移學習的發(fā)展,機器學習工程正朝著這一步邁進。
隨著 OpenAI、Google、Facebook 和其他科技巨頭發(fā)布強大的開源模型,機器學習工程師的「工具」變得更加強大和穩(wěn)定。
機器學習工程師們不再花時間用 PyTorch 或 TensorFlow 從頭開始構建模型,而是使用開源模型和遷移學習來構建產品,這意味著全新一代的 ML 驅動軟件即將面世。
現在,機器學習工程師只需要擔心如何將這些模型投入生產。
注意:如果你對使用經過微調的模型構建軟件感興趣,請查看 Cortex,一個用于部署模型的開源平臺:https://github.com/cortexlabs/cortex 。
via:https://towardsdatascience.com/deep-learning-isnt-hard-anymore-26db0d4749d7
雷鋒網雷鋒網雷鋒網
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。