0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)化版的XLNet在PyTorch Wrapper實(shí)現(xiàn)

DPVg_AI_era ? 來(lái)源:lq ? 2019-07-07 09:15 ? 次閱讀

XLNet雖然好用,但實(shí)在太費(fèi)錢(qián)了!近日,一位韓國(guó)小哥成功將簡(jiǎn)化版的XLNet在PyTorch Wrapper實(shí)現(xiàn),批規(guī)模僅為1,不再依賴谷歌爸爸的巨額算力,讓“窮人”也能用得起。

不久前,谷歌大腦和CMU聯(lián)合團(tuán)隊(duì)提出面向NLP預(yù)訓(xùn)練新方法XLNet,性能全面超越此前NLP領(lǐng)域的黃金標(biāo)桿BERT,在20個(gè)任務(wù)上實(shí)現(xiàn)了性能的大幅提升,刷新了18個(gè)任務(wù)上的SOTA結(jié)果,可謂全面屠榜。

論文地址:

https://arxiv.org/pdf/1906.08237.pdf

XLNet性能確實(shí)強(qiáng)大,不過(guò)還是要背靠谷歌TPU平臺(tái)的巨額算力資源。有網(wǎng)友做了一下簡(jiǎn)單統(tǒng)計(jì),按照論文中的實(shí)驗(yàn)設(shè)計(jì),XL-Large用512 TPU chips訓(xùn)練了4天,也就是說(shuō),訓(xùn)練時(shí)的總計(jì)算量是BERT的5倍。語(yǔ)料規(guī)模是BERT-large的10倍。

要知道BERT作為谷歌的親兒子,其訓(xùn)練量和對(duì)計(jì)算資源的需求已經(jīng)讓很多人望塵莫及。現(xiàn)在XLNet又來(lái)了個(gè)5倍,讓人直呼用不起。

這么強(qiáng)勁的XLNet,只能看著流口水卻用不起,豈不是太遺憾了?

土豪有土豪的用法,窮人有窮人的訣竅。最近有個(gè)韓國(guó)小哥就成功將XLNet挪到了Pytorch框架上,可以在僅使用小規(guī)模訓(xùn)練數(shù)據(jù)(批規(guī)模=1)的情況下,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的XLNet實(shí)例,并弄清X(qián)LNet架構(gòu)的預(yù)訓(xùn)練機(jī)制。他將實(shí)現(xiàn)方案放在了GitHub上。

要使用這個(gè)實(shí)現(xiàn)很簡(jiǎn)單,只需導(dǎo)入如下代碼:

$ git clone https://github.com/graykode/xlnet-Pytorch && cd xlnet-Pytorch# To use Sentence Piece Tokenizer(pretrained-BERT Tokenizer)$ pip install pytorch_pretrained_bert$ python main.py --data ./data.txt --tokenizer bert-base-uncased --seq_len 512 --reuse_len 256 --perm_size 256 --bi_data True --mask_alpha 6 --mask_beta 1 --num_predict 85 --mem_len 384 --num_step 100

接下來(lái)對(duì)實(shí)現(xiàn)方法和超參數(shù)設(shè)置的簡(jiǎn)單介紹,首先貼出XLNet論文中給出的預(yù)訓(xùn)練超參數(shù):

然后,作者給出了PyTorch框架下XLNet實(shí)現(xiàn)的超參數(shù)調(diào)節(jié)選項(xiàng)如下:

—data(String): 使用文本文件訓(xùn)練,多行文本也可以。另外,將一個(gè)文件視為一個(gè)批張量。默認(rèn)值: data.txt

—tokenizer(String):目前僅使用【這里】的Tokenizer作為子詞的Tokenizer(即將編入句子部分),這里可以選擇bert-base-uncased/bert-large-uncased/bert-base-cased/bert-large-cased四種Tokenizer。

默認(rèn)值:bert-base-uncased

—seq_len(Integer): 序列長(zhǎng)度。

默認(rèn)值 :512

—reuse_len(Interger): 可作為記憶重復(fù)使用的token數(shù)量??赡苁切蛄虚L(zhǎng)度的一半。

默認(rèn)值 :256

—perm_size(Interger): 最長(zhǎng)排列長(zhǎng)度。

默認(rèn)值:256

--bi_data(Boolean): 是否設(shè)立雙向數(shù)據(jù),如設(shè)置為“是”,biz(batch size) 參數(shù)值應(yīng)為偶數(shù)。

默認(rèn)值:否

—mask_alpha(Interger): 多少個(gè)token構(gòu)成一個(gè)group。

默認(rèn)值:6

—mask_beta(Integer):在每個(gè)group中需要mask的token數(shù)量。

默認(rèn)值:1

—num_predict(Interger) :

要預(yù)測(cè)的token數(shù)量。在XLNet論文中, 這表示部分預(yù)測(cè)。

默認(rèn)值:85

—mem_len(Interger): 在Transformer-XL架構(gòu)中緩存的步驟數(shù)量。

默認(rèn)值:384

—number_step(Interger):步驟(即Epoch)數(shù)量.。

默認(rèn)值:100

XLNet:克服BERT固有局限,20項(xiàng)任務(wù)性能強(qiáng)于BERT

XLNet是一種基于新型廣義置換語(yǔ)言建模目標(biāo)的新型無(wú)監(jiān)督語(yǔ)言表示學(xué)習(xí)方法。此外,XLNet采用Transformer-XL作為骨架模型,在長(zhǎng)時(shí)間環(huán)境下的語(yǔ)言任務(wù)中表現(xiàn)出非常出色的性能,在多項(xiàng)NLP任務(wù)性能上超越了BERT,成為NLP領(lǐng)域的新標(biāo)桿。

關(guān)于XLNet中的一些關(guān)鍵詞

1、自回歸模型與自動(dòng)編碼模型

自回歸(AR)模型

自動(dòng)編碼(AE)模型

2、部分預(yù)測(cè)的排列語(yǔ)言建模

排列語(yǔ)言建模

部分預(yù)測(cè)

3、具有目標(biāo)感知表示的雙向自注意力模型

雙向自注意力模型

目標(biāo)感知表示

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6106

    瀏覽量

    104840
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    483

    瀏覽量

    21980
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    795

    瀏覽量

    13091

原文標(biāo)題:XLNet太貴?這位小哥在PyTorch Wrapper上做了個(gè)微縮版的

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LDO PSRR測(cè)量簡(jiǎn)化版

    電子發(fā)燒友網(wǎng)站提供《LDO PSRR測(cè)量簡(jiǎn)化版.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 09:23 ?0次下載
    LDO PSRR測(cè)量<b class='flag-5'>簡(jiǎn)化版</b>

    pytorch怎么pycharm中運(yùn)行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。要在PyCharm中使用PyTorch,首先需
    的頭像 發(fā)表于 08-01 16:22 ?927次閱讀

    pycharm如何調(diào)用pytorch

    與PyCharm結(jié)合使用,可以提高開(kāi)發(fā)效率和代碼質(zhì)量。 安裝PyTorch 2.1 檢查Python版本 安裝PyTorch之前,請(qǐng)確保您的Python版本為3.6或更高??梢酝ㄟ^(guò)以下命令檢查
    的頭像 發(fā)表于 08-01 15:41 ?443次閱讀

    pytorch環(huán)境搭建詳細(xì)步驟

    、創(chuàng)建虛擬環(huán)境、安裝PyTorch及其依賴庫(kù)、配置PyCharm等。 一、安裝Anaconda Anaconda是一個(gè)開(kāi)源的Python和R語(yǔ)言的分布式版本控制系統(tǒng),旨在簡(jiǎn)化包管理和部署。它包含
    的頭像 發(fā)表于 08-01 15:38 ?568次閱讀

    PyTorch如何實(shí)現(xiàn)多層全連接神經(jīng)網(wǎng)絡(luò)

    PyTorch實(shí)現(xiàn)多層全連接神經(jīng)網(wǎng)絡(luò)(也稱為密集連接神經(jīng)網(wǎng)絡(luò)或DNN)是一個(gè)相對(duì)直接的過(guò)程,涉及定義網(wǎng)絡(luò)結(jié)構(gòu)、初始化參數(shù)、前向傳播、損失計(jì)算和反向傳播等步驟。
    的頭像 發(fā)表于 07-11 16:07 ?883次閱讀

    基于PyTorch的卷積核實(shí)例應(yīng)用

    深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)領(lǐng)域,卷積操作是一種至關(guān)重要的技術(shù),尤其圖像處理和特征提取方面發(fā)揮著核心作用。PyTorch作為當(dāng)前最流行的深度學(xué)習(xí)框架之一,提供了強(qiáng)大的張量操作功能和靈活的API,使得
    的頭像 發(fā)表于 07-11 15:19 ?313次閱讀

    如何在PyTorch實(shí)現(xiàn)LeNet-5網(wǎng)絡(luò)

    PyTorch實(shí)現(xiàn)LeNet-5網(wǎng)絡(luò)是一個(gè)涉及深度學(xué)習(xí)基礎(chǔ)知識(shí)、PyTorch框架使用以及網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)的綜合性任務(wù)。LeNet-5是卷積神經(jīng)網(wǎng)絡(luò)(CNN)的早期代表之一,由Yann
    的頭像 發(fā)表于 07-11 10:58 ?599次閱讀

    pytorch如何訓(xùn)練自己的數(shù)據(jù)

    本文將詳細(xì)介紹如何使用PyTorch框架來(lái)訓(xùn)練自己的數(shù)據(jù)。我們將從數(shù)據(jù)準(zhǔn)備、模型構(gòu)建、訓(xùn)練過(guò)程、評(píng)估和測(cè)試等方面進(jìn)行講解。 環(huán)境搭建 首先,我們需要安裝PyTorch??梢酝ㄟ^(guò)訪問(wèn)PyTorch官網(wǎng)
    的頭像 發(fā)表于 07-11 10:04 ?385次閱讀

    PyTorch的介紹與使用案例

    學(xué)習(xí)領(lǐng)域的一個(gè)重要工具。PyTorch底層由C++實(shí)現(xiàn),提供了豐富的API接口,使得開(kāi)發(fā)者能夠高效地構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。PyTorch不僅支持動(dòng)態(tài)計(jì)算圖,還提供了強(qiáng)大的自動(dòng)微分系統(tǒng),極大地
    的頭像 發(fā)表于 07-10 14:19 ?316次閱讀

    tensorflow和pytorch哪個(gè)更簡(jiǎn)單?

    PyTorch更簡(jiǎn)單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個(gè)易于使用、靈活且具有強(qiáng)大社區(qū)支持的框架,PyTorch可能是一個(gè)更好的選擇。如果您需要一個(gè)
    的頭像 發(fā)表于 07-05 09:45 ?621次閱讀

    如何使用PyTorch建立網(wǎng)絡(luò)模型

    PyTorch是一個(gè)基于Python的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),因其易用性、靈活性和強(qiáng)大的動(dòng)態(tài)圖特性,深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將從PyTorch的基本概念、網(wǎng)絡(luò)模型構(gòu)建、優(yōu)化方法、實(shí)際應(yīng)用等多個(gè)方面,深入探討使用
    的頭像 發(fā)表于 07-02 14:08 ?319次閱讀

    PyTorch與PyCharm的區(qū)別

    深入探討PyTorch與PyCharm的區(qū)別時(shí),我們首先需要明確兩者計(jì)算機(jī)科學(xué)和數(shù)據(jù)科學(xué)領(lǐng)域中的不同定位和功能。PyTorch是一個(gè)開(kāi)源的深度學(xué)習(xí)庫(kù),而PyCharm則是一款功能強(qiáng)
    的頭像 發(fā)表于 07-02 12:36 ?2206次閱讀

    使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)

    PyTorch是一個(gè)流行的深度學(xué)習(xí)框架,它以其簡(jiǎn)潔的API和強(qiáng)大的靈活性在學(xué)術(shù)界和工業(yè)界得到了廣泛應(yīng)用。本文中,我們將深入探討如何使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),包括從基礎(chǔ)概念到高級(jí)特性的全面解析。本文旨在為讀者提供一個(gè)完整的
    的頭像 發(fā)表于 07-02 11:31 ?581次閱讀

    英特爾Gaudi2C處理器或?yàn)镚audi2的簡(jiǎn)化版,Gaudi3預(yù)計(jì)2024年面世

    對(duì)于Gaudi2C和Gaudi2之間的差別,有推測(cè)認(rèn)為它可能是“部分”改動(dòng)后的產(chǎn)品,針對(duì)中國(guó)市場(chǎng)專門(mén)定制。Tomshardware則猜測(cè)可能是Gaudi2的簡(jiǎn)化版。
    的頭像 發(fā)表于 12-20 13:44 ?1053次閱讀

    詳解PyTorchMPS后端的新特性

    大家好,我叫Kulinseth,我蘋(píng)果的MPS團(tuán)隊(duì)工作,今天我將討論PyTorch中MPS后端的改進(jìn)。接下來(lái),我將介紹MPS后端進(jìn)入Beta Stage的新功能。我們添加了一些新功能,如支持分析器、自定義內(nèi)核和MPS開(kāi)發(fā)者API,這些都是MPS后端的新特性。
    的頭像 發(fā)表于 12-15 10:57 ?2105次閱讀
    詳解<b class='flag-5'>PyTorch</b><b class='flag-5'>在</b>MPS后端的新特性