成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

機(jī)器學(xué)習(xí)論文復(fù)現(xiàn),這五大問(wèn)題你需要注意

開(kāi)發(fā) 開(kāi)發(fā)工具 機(jī)器學(xué)習(xí)
論文復(fù)現(xiàn)一直是機(jī)器學(xué)習(xí)領(lǐng)域的難題,雖然最近多個(gè)學(xué)術(shù)會(huì)議提倡大家提交代碼,但解決論文復(fù)現(xiàn)問(wèn)題仍然任重而道遠(yuǎn)。在試圖復(fù)現(xiàn)機(jī)器學(xué)習(xí)論文時(shí),我們經(jīng)常遇到哪些問(wèn)題呢?新加坡機(jī)器學(xué)習(xí)工程師 Derek Chia 對(duì)此進(jìn)行了總結(jié)。

我最初接觸機(jī)器學(xué)習(xí)時(shí),花費(fèi)了大量時(shí)間來(lái)閱讀論文,并嘗試實(shí)現(xiàn)。當(dāng)然,我不是天才。實(shí)現(xiàn)它意味著要執(zhí)行 git clone 并嘗試運(yùn)行論文作者的代碼。對(duì)于我感興趣的概念,我可能還手動(dòng)輸入一些代碼并進(jìn)行注釋,以便更好地理解論文和項(xiàng)目。

[[350120]]

這樣的學(xué)習(xí)方法令人沮喪。嘗試復(fù)現(xiàn)論文的流程大致如下:

  • 一些達(dá)到新 SOTA 的論文在新聞媒體中引起關(guān)注;
  • 讀者深入研究或快速瀏覽論文內(nèi)容;
  • 讀者對(duì)論文中的實(shí)驗(yàn)結(jié)果印象深刻,并產(chǎn)生復(fù)現(xiàn)的興趣。

接下來(lái)就是瘋狂搜索項(xiàng)目代碼,并嘗試在作者所用的數(shù)據(jù)集上運(yùn)行代碼。這時(shí),你需要祈禱該項(xiàng)目具備以下要素:運(yùn)行說(shuō)明(README.md)、代碼、參數(shù)、數(shù)據(jù)集、數(shù)據(jù)集路徑、軟件環(huán)境、所需依賴項(xiàng)以及硬件條件。了解這些,才能順利復(fù)現(xiàn)論文中的 SOTA 結(jié)果。

而在這個(gè)過(guò)程中,你可能會(huì)遇到很多常見(jiàn)問(wèn)題(參見(jiàn)下文)。遇到問(wèn)題之前先了解它們是很有幫助的,畢竟,沒(méi)人喜歡空手而歸。

復(fù)現(xiàn)機(jī)器學(xué)習(xí)論文時(shí)的常見(jiàn)問(wèn)題

復(fù)現(xiàn)過(guò)程中的常見(jiàn)問(wèn)題如下所示:

  • README 文件不完整或缺失;
  • 未定義依賴項(xiàng)、代碼存在 bug、缺少預(yù)訓(xùn)練模型;
  • 未公開(kāi)參數(shù);
  • 私有數(shù)據(jù)集或缺少預(yù)處理步驟;
  • 對(duì) GPU 資源的需求不切實(shí)際。

1. README 文件不完整或缺失

如果一篇論文在發(fā)表時(shí)開(kāi)源了代碼,那么 README 就是你著手開(kāi)始復(fù)現(xiàn)項(xiàng)目的文檔之一。好的 README 文件通常具備以下幾個(gè)組成部分:依賴項(xiàng)列表、訓(xùn)練腳本、評(píng)估腳本、預(yù)訓(xùn)練模型以及運(yùn)行腳本得到的結(jié)果。

實(shí)際上,這些內(nèi)容已經(jīng)在 Papers with Code 發(fā)布的《機(jī)器學(xué)習(xí)代碼完整性自查清單》中列出(該清單已成為 NeurIPS 2020 代碼提交流程的一部分)。該清單受到麥吉爾大學(xué)副教授、Facebook 蒙特利爾 FAIR 實(shí)驗(yàn)室負(fù)責(zé)人 Joelle Pineau 的啟發(fā)。

Papers with Code 提供的 README 樣例參見(jiàn):

https://github.com/paperswithcode/releasing-research-code

不完整的 README 文件對(duì)運(yùn)行代碼而言是一個(gè)壞的開(kāi)端。

一個(gè)需要注意的信號(hào)是示例 notebook 或示例代碼。notebook 的用途是演示代碼的使用。理想情況下,除了點(diǎn)擊「Run all」以外,不需要任何其他調(diào)整就能夠運(yùn)行 notebook。預(yù)填充參數(shù)和數(shù)據(jù)路徑的命令行也能夠?qū)崿F(xiàn)同樣的效果。

還有一些次要但有用的信息,比如作者的聯(lián)系方式或展示模型架構(gòu)或數(shù)據(jù)轉(zhuǎn)換流程的 gif 圖片等,這些都是完備的 README 文件應(yīng)該包含的。如果代碼庫(kù)托管在 GitHub 上,請(qǐng)檢查 Issue 區(qū)域的問(wèn)題是否得到了積極回復(fù),以及 pull request 是否定期被查看。這些事項(xiàng)均能證明庫(kù)得到精心維護(hù),確保后續(xù)復(fù)現(xiàn)工作得到有效支持。當(dāng)然會(huì)有例外,但請(qǐng)慎重考慮以上各項(xiàng)出現(xiàn)缺失的情況。

Joelle Pineau 發(fā)布的機(jī)器學(xué)習(xí)可復(fù)現(xiàn)性檢查清單

(圖源:https://www.cs.mcgill.ca/~jpineau/ReproducibilityChecklist.pdf)

2. 未定義依賴項(xiàng)、代碼存在 bug、缺少預(yù)訓(xùn)練模型

當(dāng)你對(duì)示例 notebook 覺(jué)得滿意后,你或許想嘗試用不同的參數(shù)在自己的數(shù)據(jù)集上試用模型。在這一階段,你或許會(huì)調(diào)用示例 notebook 中未用到的函數(shù),或者在自己的數(shù)據(jù)集上嘗試預(yù)訓(xùn)練模型,這時(shí)可能會(huì)遇到問(wèn)題。

例如,你可能注意到 requirements.txt 缺失,或者軟件包版本未固定(如 tensorflow==2.2)想象一下當(dāng)你發(fā)現(xiàn) TensorFlow 版本是 1.15 而不是 2.2,原因只是作者沒(méi)有指定版本時(shí)的爆炸心態(tài)吧。

假設(shè)你檢查過(guò)了依賴項(xiàng),然而現(xiàn)在卻發(fā)現(xiàn)預(yù)訓(xùn)練模型失蹤了!這種情況下,你要么 debug 代碼,要么提交 bug 報(bào)告,要么忽略代碼。請(qǐng)謹(jǐn)慎選擇第一個(gè)選項(xiàng),因?yàn)槟憧赡軙?huì)在這上面花費(fèi)好幾個(gè)小時(shí)。當(dāng)然有的 bug 很容易解決,如果我能修復(fù)的話,我會(huì)提交 pull request。但并不是每次都那么好運(yùn),這些隨手可及的果子有時(shí)候很難摘。

預(yù)訓(xùn)練模型缺失是一個(gè)危險(xiǎn)信號(hào),但這其實(shí)并不罕見(jiàn)。畢竟,論文作者沒(méi)有義務(wù)發(fā)布模型。那么,另一個(gè)替代方法是使用公開(kāi)的參數(shù)訓(xùn)練模型進(jìn)行復(fù)現(xiàn)。不過(guò)參數(shù)也不總是公開(kāi)……

3. 未公開(kāi)參數(shù)

根據(jù)模型情況來(lái)看,超參數(shù)對(duì)于實(shí)現(xiàn) SOTA 結(jié)果是非常重要的。下圖展示了不同參數(shù)產(chǎn)生不同的 f1 分?jǐn)?shù)(范圍從 0.5 到 1.0)。模型中的參數(shù)通常是學(xué)習(xí)率(learning rate)、嵌入尺寸(embedding size)、層數(shù)、dropout 量、批處理大小、訓(xùn)練 epoch 數(shù)量等。

因此,如果作者沒(méi)有提供他們使用的確切參數(shù),你可能必須自己進(jìn)行所有實(shí)驗(yàn)才能復(fù)現(xiàn) SOTA 結(jié)果。

順便說(shuō)一句,F(xiàn)acebook 的 HiPlot 是一個(gè)很好的工具,幫助你在使用不同參數(shù)組合時(shí)將模型結(jié)果可視化。

HiPlot 地址:https://github.com/facebookresearch/hiplot

4. 私有數(shù)據(jù)集或缺少預(yù)處理步驟

從很多方面來(lái)說(shuō),我們很幸運(yùn)地?fù)碛惺澜绺鞯匮芯空咛峁┑拈_(kāi)源數(shù)據(jù)集。事實(shí)就是如此,數(shù)據(jù)的收集絕非易事,而清理這些數(shù)據(jù)并將其格式化以供研究使用,就更加麻煩一些。在此需感謝學(xué)術(shù)機(jī)構(gòu)和 Kaggle 免費(fèi)托管這些開(kāi)源數(shù)據(jù)集,因?yàn)閹捄痛鎯?chǔ)成本是很高的。

然而想使用私有數(shù)據(jù)集,并非易事。數(shù)據(jù)集可能包含受版權(quán)保護(hù)的信息,比如 ImageNet。通常你需要填寫(xiě)一份申請(qǐng)表,版權(quán)所有者將自行決定是否批準(zhǔn)。

某些時(shí)候這個(gè)過(guò)程會(huì)很麻煩,如果你所需的數(shù)據(jù)集不可用,在申請(qǐng)行動(dòng)之前要先認(rèn)真考慮一下。或者你可以從其他渠道搜索或者下載數(shù)據(jù),比如 Academic Torrents:

https://academictorrents.com/。

5. 對(duì) GPU 資源的需求不切實(shí)際

近期出現(xiàn)了一股趨勢(shì):模型越大性能越好。一些論文使用了整個(gè)數(shù)據(jù)中心的算力才達(dá)到 SOTA 結(jié)果,這些論文復(fù)現(xiàn)起來(lái)當(dāng)然很難。例如,2019 年 10 月谷歌發(fā)表論文《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》,嘗試通過(guò)將參數(shù)擴(kuò)展到 110 億來(lái)探索 Transformer 模型架構(gòu)的局限性。然而幾個(gè)月后微軟用 170 億參數(shù)創(chuàng)建了 Turning-NLG,不久 OpenAI 放出 1750 億參數(shù)的預(yù)訓(xùn)練語(yǔ)言模型 GPT-3……

要想訓(xùn)練數(shù)十億參數(shù)的模型,你需要使用分布式訓(xùn)練方法以及某種形式的高性能計(jì)算(HPC)或 GPU 集群。具備 110 億和 170 億參數(shù)的模型分別需要約 44GB 和 68GB 的內(nèi)存,因此這些模型無(wú)法僅使用一塊 GPU 完成訓(xùn)練。

簡(jiǎn)而言之,盡早發(fā)現(xiàn)論文所用大模型是否超出你的個(gè)人能力。

微軟訓(xùn)練 Turning-NLG。

總結(jié)

復(fù)現(xiàn)論文代碼并非易事,不過(guò)越來(lái)越多的項(xiàng)目嘗試標(biāo)準(zhǔn)化 SOTA 模型。我個(gè)人最喜歡的是 HuggingFace 的 Transformers,它為研究者和開(kāi)發(fā)者提供了足夠低的進(jìn)入門檻。另外,TensorFlow 的 Model Garden 和 PyTorch 的 Model Zoo 也發(fā)展迅速(其中分別是 TensorFlow 和 PyTorch 團(tuán)隊(duì)構(gòu)建的預(yù)訓(xùn)練模型)。

這些庫(kù)旨在標(biāo)準(zhǔn)化預(yù)訓(xùn)練模型的使用,并為模型貢獻(xiàn)和分發(fā)提供合適的條件。它們對(duì)代碼質(zhì)量提供了保障,并且具備不錯(cuò)的文檔。我希望社區(qū)能從這些庫(kù)中獲益,并幫助復(fù)現(xiàn) SOTA 結(jié)果,輕松地使用 SOTA 模型。

【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2010-07-26 15:50:03

Perl腳本語(yǔ)言

2017-11-02 06:18:26

2022-08-30 18:13:38

機(jī)器學(xué)習(xí)

2013-03-26 10:45:00

2011-11-16 09:46:14

IaaS云計(jì)算

2011-08-23 12:11:45

2016-06-08 11:44:37

2010-06-29 15:54:36

UML建模

2011-02-22 09:34:33

2015-09-30 10:09:35

2016-09-23 16:09:01

2013-09-30 10:13:42

2016-04-19 10:23:48

2010-07-09 13:28:10

UML建模

2020-10-14 15:03:07

編程PythonJava

2015-03-11 09:55:12

2009-11-02 16:48:45

虛擬機(jī)管理

2015-06-02 17:05:53

軟件定義數(shù)據(jù)中心

2013-06-13 09:54:21

虛擬機(jī)虛擬機(jī)遷移

2013-02-28 09:50:39

戴爾問(wèn)題私有化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲欧美少妇 | 亚洲欧洲一区二区 | 国产91在线播放 | 日本a视频 | 91亚洲精品国偷拍自产在线观看 | 99精品视频在线观看免费播放 | 综合九九 | 亚洲精品久久久久久宅男 | 久久精品免费观看 | 成人免费大片黄在线播放 | 狠狠草视频 | 成人h电影在线观看 | 福利视频网 | 成人在线观看免费 | 国产在线观 | 国产欧美精品在线观看 | 欧美激情五月 | 国产精品婷婷 | av中文字幕在线播放 | 日日摸夜夜添夜夜添精品视频 | 黄色免费在线观看网站 | 在线观看www视频 | 伊人伊人网 | 中文成人无字幕乱码精品 | a网站在线观看 | 国产91丝袜在线熟 | 久久一起草 | 欧美一区二区免费 | 久国产| 黄色一级大片在线免费看产 | 久久国产精品视频观看 | 亚洲高清视频一区 | 久久久久国产精品一区三寸 | 精品久久久久久国产 | 91视频进入| jizz18国产| 99热热 | 欧美13videosex性极品 | 国产精品一区二区久久精品爱微奶 | 欧洲国产精品视频 | 亚洲精品在线视频 |