谷歌ALBERT模型V2+中文版來了,GitHub熱榜第二

2020-12-03 量子位

十三 發自 凹非寺量子位 報導 | 公眾號 QbitAI

比BERT模型參數小18倍,性能還超越了它。

這就是谷歌前不久發布的輕量級BERT模型——ALBERT

不僅如此,還橫掃各大「性能榜」,在SQuAD和RACE測試上創造了新的SOTA。

而最近,谷歌開源了中文版本和Version 2,項目還登上了GitHub熱榜第二

ALBERT 2性能再次提升

在這個版本中,「no dropout」、「additional training data」、「long training time」策略將應用到所有的模型。

與初代ALBERT性能相比結果如下。

從性能的比較來說,對於ALBERT-base、ALBERT-large和ALBERT-xlarge,v2版要比v1版好得多。

說明採用上述三個策略的重要性。

平均來看,ALBERT-xxlarge比v1略差一些,原因有以下2點:

額外訓練了1.5M步(兩個模型的唯一區別就是訓練1.5M和3M步);

對於v1,在BERT、Roberta和XLnet給出的參數集中做了一點超參數搜索;對於v2,只是採用除RACE之外的V1參數,其中使用的學習率為1e-5和0 ALBERT DR。

總的來說,Albert是BERT的輕量版, 使用減少參數的技術,允許大規模的配置,克服以前的內存限制。

Albert使用了一個單模型設置,在 GLUE 基準測試中的性能:

Albert-xxl使用了一個單模型設置,在SQuaD和RACE基準測試中的性能:

中文版下載地址

Base

https://storage.googleapis.com/albert_models/albert_base_zh.tar.gz

Large

https://storage.googleapis.com/albert_models/albert_large_zh.tar.gz

XLarge

https://storage.googleapis.com/albert_models/albert_xlarge_zh.tar.gz

Xxlarge

https://storage.googleapis.com/albert_models/albert_xxlarge_zh.tar.gz

ALBERT v2下載地址

Base

[Tar File]:

https://storage.googleapis.com/albert_models/albert_base_v2.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_base/2

Large

[Tar File]:

https://storage.googleapis.com/albert_models/albert_large_v2.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_large/2

XLarge

[Tar File]:

https://storage.googleapis.com/albert_models/albert_xlarge_v2.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_xlarge/2

Xxlarge

[Tar File]:

https://storage.googleapis.com/albert_models/albert_xxlarge_v2.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_xxlarge/2

預訓練模型

可以使用 TF-Hub 模塊:

Base

[Tar File]:

https://storage.googleapis.com/albert_models/albert_base_v1.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_base/1

Large

[Tar File]:

https://storage.googleapis.com/albert_models/albert_large_v1.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_large/1

XLarge

[Tar File]:

https://storage.googleapis.com/albert_models/albert_xlarge_v1.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_xlarge/1

Xxlarge

[Tar File]:

https://storage.googleapis.com/albert_models/albert_xxlarge_v1.tar.gz

[TF-Hub]:

https://tfhub.dev/google/albert_xxlarge/1

TF-Hub模塊使用示例:

tags = set()if is_training: tags.add("train")albert_module = hub.Module("https://tfhub.dev/google/albert_base/1", tags=tags, trainable=True)albert_inputs = dict( input_ids=input_ids, input_mask=input_mask, segment_ids=segment_ids)albert_outputs = albert_module( inputs=albert_inputs, signature="tokens", as_dict=True)# If you want to use the token-level output, use# albert_outputs["sequence_output"] instead.output_layer = albert_outputs["pooled_output"]

預訓練說明

要預訓練ALBERT,可以使用run_pretraining.py:

pip install -r albert/requirements.txtpython -m albert.run_pretraining \ --input_file=... \ --output_dir=... \ --init_checkpoint=... \ --albert_config_file=... \ --do_train \ --do_eval \ --train_batch_size=4096 \ --eval_batch_size=64 \ --max_seq_length=512 \ --max_predictions_per_seq=20 \ --optimizer='lamb' \ --learning_rate=.00176 \ --num_train_steps=125000 \ --num_warmup_steps=3125 \ --save_checkpoints_steps=5000

GLUE上的微調

要對 GLUE 進行微調和評估,可以參閱該項目中的run_glue.sh文件。

底層的用例可能希望直接使用run_classifier.py腳本。

run_classifier.py可對各個 GLUE 基準測試任務進行微調和評估。

比如 MNLI:

pip install -r albert/requirements.txtpython -m albert.run_classifier \ --vocab_file=... \ --data_dir=... \ --output_dir=... \ --init_checkpoint=... \ --albert_config_file=... \ --spm_model_file=... \ --do_train \ --do_eval \ --do_predict \ --do_lower_case \ --max_seq_length=128 \ --optimizer=adamw \ --task_name=MNLI \ --warmup_step=1000 \ --learning_rate=3e-5 \ --train_step=10000 \ --save_checkpoints_steps=100 \ --train_batch_size=128

可以在run_glue.sh中找到每個GLUE任務的default flag。

從TF-Hub模塊開始微調模型:

albert_hub_module_handle==https://tfhub.dev/google/albert_base/1

在評估之後,腳本應該報告如下輸出:

***** Eval results ***** global_step = ... loss = ... masked_lm_accuracy = ... masked_lm_loss = ... sentence_order_accuracy = ... sentence_order_loss = ...

在SQuAD上微調

要對 SQuAD v1上的預訓練模型進行微調和評估,請使用 run SQuAD v1.py 腳本:

pip install -r albert/requirements.txtpython -m albert.run_squad_v1 \ --albert_config_file=... \ --vocab_file=... \ --output_dir=... \ --train_file=... \ --predict_file=... \ --train_feature_file=... \ --predict_feature_file=... \ --predict_feature_left_file=... \ --init_checkpoint=... \ --spm_model_file=... \ --do_lower_case \ --max_seq_length=384 \ --doc_stride=128 \ --max_query_length=64 \ --do_train=true \ --do_predict=true \ --train_batch_size=48 \ --predict_batch_size=8 \ --learning_rate=5e-5 \ --num_train_epochs=2.0 \ --warmup_proportion=.1 \ --save_checkpoints_steps=5000 \ --n_best_size=20 \ --max_answer_length=30

對於 SQuAD v2,使用 run SQuAD v2.py 腳本:

pip install -r albert/requirements.txtpython -m albert.run_squad_v2 \ --albert_config_file=... \ --vocab_file=... \ --output_dir=... \ --train_file=... \ --predict_file=... \ --train_feature_file=... \ --predict_feature_file=... \ --predict_feature_left_file=... \ --init_checkpoint=... \ --spm_model_file=... \ --do_lower_case \ --max_seq_length=384 \ --doc_stride=128 \ --max_query_length=64 \ --do_train \ --do_predict \ --train_batch_size=48 \ --predict_batch_size=8 \ --learning_rate=5e-5 \ --num_train_epochs=2.0 \ --warmup_proportion=.1 \ --save_checkpoints_steps=5000 \ --n_best_size=20 \ --max_answer_length=30

傳送門

GitHub項目地址:

https://github.com/google-research/ALBERT

相關焦點

  • 谷歌EfficientNet縮放模型,PyTorch實現出爐,登上GitHub熱榜
    郭一璞 發自 凹非寺 量子位 報導 | 公眾號 QbitAI谷歌上個月底提出的EfficientNet開源縮放模型,在ImageNet的準確率達到了84.1%,超過Gpipe,已經是當前的state-of-the-art了。
  • 谷歌開放Inception-ResNet-v2:一種新的圖像分類卷積神經網絡模型
    昨天,谷歌宣布開放 TF-Slim,這是一個在 TensorFlow 中定義、訓練、和評估模型的輕量軟體包,同時它還能對圖像分類領域中的數個有競爭力的網絡進行檢驗與模型定義。今天,谷歌再次宣布開放 Inception-ResNet-v2,一個在 ILSVRC 圖像分類基準上取得頂尖準確率的卷積神經網絡。文中提到的論文可點擊「閱讀原文」進行下載。為了在該領域取得更多進展,今天我們非常高興的宣布開放 Inception-ResNet-v2,這是一個在 ILSVRC 圖像分類基準上取得頂尖準確率的卷積神經網絡。
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    GitHub趨勢日榜排名全球第一,已斬獲2K+星。為什麼這麼火?因為這是一本基於TensorFlow 2.0 正式版的中文深度學習開源書。還包含電子書和配套原始碼。第二部分是4-5章。主要介紹TensorFlow相關基礎,為後續算法實現鋪墊。第三部分是6-9章。主要介紹神經網絡的核心理論和共性知識,助於理解深度學習的本質。第四部分是10-15章。主要介紹常見的算法與模型。
  • 秘魯馬丘比丘登上谷歌熱搜榜 「世界新七大奇蹟」中排第二
    據秘魯出口和旅遊促進委員會介紹,11月首周的谷歌熱搜榜中,馬丘比丘在「世界新七大奇蹟」中排名第二。  據報導,全球谷歌用戶對馬丘比丘的興趣有所攀升。從一周搜索量上來看,馬丘比丘趕超了同為「世界新七大奇蹟」的羅馬鬥獸場和裡約熱內盧的基督像,僅次於印度泰姬陵。
  • 谷歌親兒子BERT的王者榮耀,僅用一年雄霸谷歌搜索頭牌!
    【新智元導讀】谷歌在近期召開的Search On2020大會上,宣布BERT已經佔領了谷歌搜索的高地,幾乎每一個英語查詢背後都有BERT的影子,而BERT竟然只是谷歌「蜂鳥」系統的冰山一角。2018年BERT橫空出世,帶著碾壓級的成績刷榜各種NLP任務。
  • 如何利用PyTorch中的Moco-V2減少計算約束
    數據集這次我們將在Pytorch中在更大的數據集上實現Moco-v2,並在Google Colab上訓練我們的模型。MoCo-v2提供了生成負樣本的另一種方法。讓我們詳細了解一下。動態詞典我們可以用一種稍微不同的方式來看待對比學習方法,即將查詢與鍵進行匹配。我們現在有兩個編碼器,一個用於查詢,另一個用於鍵。此外,為了得到大量的負樣本,我們需要一個大的鍵編碼字典。此上下文中的正對表示查詢與鍵匹配。如果查詢和鍵都來自同一個圖像,則它們匹配。
  • 谷歌開源語義圖像分割模型:該領域當前最優模型
    今天,谷歌開源了其最新、性能最優的語義圖像分割模型 DeepLab-v3+ [1],該模型使用 TensorFlow 實現。DeepLab-v3+ 模型建立在一種強大的卷積神經網絡主幹架構上 [2,3],以得到最準確的結果,該模型適用於伺服器端的部署。
  • 6月份Github上熱門的開源項目
    Corona-Warn-App(簡稱CWA)意思是「新冠病毒預警 App」,基於蘋果和谷歌的 Exposure Notification API(曝光通知 API)。4. lihang-codehttps://github.com/fengdu78/lihang-codeStar 11302李航老師編寫的《統計學習方法》全面系統地介紹了統計學習的主要方法,特別是監督學習方法,包括感知機、k近鄰法、樸素貝葉斯法、決策樹、邏輯斯諦回歸與支持向量機、提升方法、em算法、隱馬爾可夫模型和條件隨機場等
  • 盤點:2017年GitHub上30個優秀的機器學習項目
    我們綜合考慮項目的受歡迎程度,參與度和進展程度來評估項目質量。為了給讀者更直觀的感受,使用GitHub上的關注量(星星數量)來表示項目熱度。注意,GitHub上項目的平均關注量是3558。開源項目對於數據科學家來說可能是最實用的。你可以閱讀原始碼,在現有項目上構建一些東西。花點時間看看,過去一年你可能錯過的這些優秀的機器學習項目吧。
  • 從R-CNN到YOLO,一文帶你了解目標檢測模型(附論文下載)
    可以先看大數據文摘翻譯的這個視頻了解YOLO:TED演講 | 計算機是怎樣快速看懂圖片的:比R-CNN快1000倍的YOLO算法有了YOLO,不需要一張圖像看一千次,來產生檢測結果,你只需要看一次,這就是我們為什麼把它叫"YOLO"物體探測方法(You only look once)。
  • Github霸榜:從零開始學3D著色器編程
    新智元原創 來源:Github編輯:元子【新智元導讀】這篇教程是今日GitHub趨勢榜第一,一天便達到了1500星。主要介紹了通過使用Panda3D遊戲引擎和OpenGL著色語言來為3D遊戲添加紋理,法線貼圖,泛光,環境遮擋等等。教程內容十分豐富,動圖也非常生動。
  • 「00後縮寫黑話翻譯器」登上GitHub熱榜
    然後第二天忘得一乾二淨。90後中年人的記憶力和語言環境,畢竟不能和00後年輕人比啊。但90後中年人,熟練的掌握了技術手段,一款00後黑話翻譯插件,也就這樣誕生了。它的名字叫做:能不能好好說話,簡稱nbnhhsh。
  • GitHub中文趨勢榜第一!「2020新冠肺炎記憶」項目已獲4.9K星標
    這兩天,又一個關於新冠肺炎的 GitHub 登上了中文趨勢榜的首位,截至目前,已經收穫近 5K Star,600+ Fork。項目介紹nCovMemory 項目的中文名稱是「2020新冠肺炎記憶:報導、非虛構與個人敘述」,創立該項目的目的是為研究人士提供方便自然語言處理、疫情防治取用相關資料的資料庫。
  • ALBERT一作藍振忠:預訓練模型應用成熟,ChineseGLUE要對標GLUE
    機器之心原創作者:一鳴今年產生的眾多預訓練語言模型中,ALBERT 是不同尋常的一個,因為它參數量明顯比大部分模型都要小,卻能在多項基準測試中達到 SOTA。本文是對該研究的第一作者——谷歌科學家藍振忠博士進行了採訪。在與機器之心的交流中,藍博士解答了關於 ALBERT 的一些問題。
  • 生成「貓狗版」川普,造假臉工具StarGANv2被玩壞,算法已開源
    現在來自韓國團隊開發的風格遷移模型StarGANv2可以完美解決這個問題。如果你是一個對GAN長期關注的同學,那麼一定還記得StarGAN,它是韓國高麗大學和Clova AI研究院在2017年底推出的風格遷移模型。只需輸入一張大頭照,StarGAN就能讓你知道自己改變髮型、性別、年齡後分別長啥樣。
  • 澳白皮書中文版錯誤頻出 被疑用谷歌翻譯
    一位批評人士指出,中文版的翻譯是用「谷歌翻譯」網站做出的。吉拉德上月發布了《亞洲世紀白皮書》,敦促中小學和大學開設中文語言課程。但白皮書的簡體中文版裡出現了斷句、語法和句法錯誤、用詞不當和表達混亂等問題,因此很多人對翻譯是如何進行的提出質疑。一些英文詞語的翻譯完全失去了原意,屬於業餘水平的錯誤。
  • 谷歌推出新框架:只需5行代碼,就能提高模型準確度和魯棒性
    曉查 發自 凹非寺量子位 出品 | 公眾號 QbitAI今天,谷歌推出了新開源框架——神經結構學習(NSL),它使用神經圖學習方法,來訓練帶有圖(Graph)和結構化數據的神經網絡,可以帶來更強大的模型。現在,通過TensorFlow就能獲取和使用。NSL有什麼用?
  • GitHub熱榜:一張照片實現高清3D人體建模,Demo可玩
    不過,PIFu以解析度為512×512的圖像作為輸入,輸出的3D模型解析度不高。可以明顯看出,由於PIFuHD充分利用了基礎形狀和精細形狀,能夠直接在像素級別上預測3D幾何形狀,它對輸入圖像的細節把握更加精準,重建出來的3D人體模型解析度更高
  • 性能媲美BERT,參數量僅為1/300,谷歌最新的NLP模型
    機器之心編輯部在最新的博客文章中,谷歌公布了一個新的 NLP 模型,在文本分類任務上可以達到 BERT 級別的性能,但參數量僅為 BERT 的 1/300。在過去的十年中,深度神經網絡從根本上變革了自然語言處理(NLP)領域的發展,但移動端有限的內存和處理能力對模型提出了更高的要求。人們希望它們可以變得更小,但性能不打折扣。
  • 告別調參煉丹,谷歌「權重無關」神經網絡開源了!
    其關鍵思想是通過不再強調權重來搜索網絡結構,僅使用隨機共享的權重,也可以執行各種任務的神經網絡。終於可以不用調參煉丹了嗎?快來復現看看! 神經網絡訓練中 「權重」 有多重要不言而喻。但谷歌前段時間發表的研究表明,即使拋棄神經網絡權重訓練,使用隨機共享權重,也可以執行各種任務。