使用Huggingface在矩池雲快速載入預訓練模型和數據集

  • 2022 年 7 月 25 日
  • 筆記

作為NLP領域的著名框架,Huggingface(HF)為社區提供了眾多好用的預訓練模型和數據集。本文介紹了如何在矩池雲使用Huggingface快速載入預訓練模型和數據集。

1.環境

HF支援Pytorch,TensorFlow和Flax。您可以根據HF官方文檔安裝對應版本,也可以使用矩池雲HuggingFace鏡像(基於Pytorch),快速啟動。

矩池雲租用機器入門手冊

如果使用其他鏡像,你需要手動安裝 transformers 和 datasets 兩個包:

pip install transformers datasets

HF具體使用方式和程式碼請參考官方//github.com/huggingface/transformers

2.預訓練模型

2.1 預訓練模型簡介

HF里有非常多的預訓練模型,支援不同軟體版本,可用於Pipeline和模型微調。你可以選擇從HF官方Model Hub下載預訓練模型(可能耗時較長),另外矩池雲提供了部分常用的預訓練模型。訪問路徑:/public/model/nlp/

預訓練模型名稱(定時更新,也可以聯繫矩池雲小助手補充):

模型名稱
albert-base-v2
albert-xxlarge-v2
bert-base-cased
bert-base-chinese
bert-base-uncased
bert-large-uncased
xlm-roberta-base
chinese-bert-wwm-ext
chinese-electra-180g-base-discriminator
chinese-roberta-wwm-ext
clip-vit-base-patch32
code_trans_t5_small_program_synthese_transfer_learning_finetune
deberta-v3-base
deberta-v3-large
distilbart-cnn-12-6
distilbert-base-uncased-finetuned-sst-2-english
distilgpt2
gpt2-chinese-cluecorpussmall
gpt2
roberta-base
t5-base
xlm-roberta-base

2.2 預訓練模型使用方法

首先需要將自己需要使用的預訓練模型zip文件解壓到矩池雲網盤或者機器中其他目錄(存到網盤後下次可以直接使用),使用模型時填入本地存儲路徑即可調用。

以使用albert-base-v2模型為例子:

  • 解壓
unzip /public/model/nlp/albert-base-v2.zip -d /mnt/
  • 程式碼中使用

如果環境中沒有transformers包,可以先pip install transformers安裝。

from transformers import AutoModel

model = AutoModel.from_pretrained('/mnt/albert-base-v2')
# 注意 /mnt/albert-base-v2 是你解壓後模型文件所在路徑

3.數據集

3.1 數據集簡介

數據集存放路徑:/public/data/nlp

數據集名稱(定時更新,也可聯繫矩池雲小助手):

名稱 描述
dbpedia_14 基於DBpedia2014的14個不重疊的分類數據集,包含40,000訓練樣本和5,000測試樣本。源自維基百科的語義詞條
glue 通用語言理解評估基準,面向9項任務的數據集,參考gluebenchmark
newsgroup 用於文本分類、文本挖據和資訊檢索研究的國際標準數據集之一。數據集收集了大約20,000左右的新聞組文檔,均勻分為20個不同主題的新聞組集合
squad 斯坦福問答數據集,一個閱讀理解數據集
super_glue 更新版的Glue數據集
wikitext 英語詞庫數據是由Salesforce MetaMind 策劃的包含1億個辭彙的大型語言建模語料庫。這些辭彙都是從維基百科一些經典文章中提取得到
yahooAnswers 數據集源於 Yahoo!Answers Comprehensive Questions and Answers 1.0 的 10 個主要分類數據,每個類別分別包含 140000 個訓練樣本和 5000 個測試樣本
yelp_review_full 這個數據集是Yelp業務、評論和用戶數據的一個子集。包含大量的評論、業務、用戶、提示和簽到數據

3.2 數據集使用方法

首先需要將自己需要使用的數據集zip文件解壓到矩池雲網盤或者機器中其他目錄(存到網盤後下次可以直接使用),使用數據集時在程式碼抬頭添加程式碼from datasets import load_from_disk,並將程式碼中載入數據集函數load_dataset更改為load_from_disk(數據集存放路徑)即可。部分數據集需指定Subset。

以使用dbpedia_14數據集為例子:

  • 解壓,將數據集解壓到網盤中(確保網盤空間足夠)
unzip /public/data/nlp/dbpedia_14.zip -d /mnt/
  • 程式碼中使用

如果環境中沒有datasets包,可以先pip install datasets安裝。

from datasets import load_from_disk

data = load_from_disk('/mnt/dbpedia_14')
# 注意 /mnt/dbpedia_14 是你解壓後數據集文件所在路徑