PyTorch預訓練Bert模型的示例
本文介紹以下內容:
1. 使用transformers框架做預訓練的bert-base模型;
2. 開發(fā)平臺使用Google的Colab平臺,白嫖GPU加速;
3. 使用datasets模塊下載IMDB影評數(shù)據(jù)作為訓練數(shù)據(jù)。
transformers模塊簡介
transformers框架為Huggingface開源的深度學習框架,支持幾乎所有的Transformer架構的預訓練模型。使用非常的方便,本文基于此框架,嘗試一下預訓練模型的使用,簡單易用。
本來打算預訓練bert-large模型,發(fā)現(xiàn)colab上GPU顯存不夠用,只能使用base版本了。打開colab,并且設置好GPU加速,接下來開始介紹代碼。
代碼實現(xiàn)
首先安裝數(shù)據(jù)下載模塊和transformers包。
pip install datasets pip install transformers
使用datasets下載IMDB數(shù)據(jù),返回DatasetDict類型的數(shù)據(jù).返回的數(shù)據(jù)是文本類型,需要進行編碼。下面會使用tokenizer進行編碼。
from datasets import load_dataset
imdb = load_dataset('imdb')
print(imdb['train'][:3]) # 打印前3條訓練數(shù)據(jù)
接下來加載tokenizer和模型.從transformers導入AutoModelForSequenceClassification, AutoTokenizer,創(chuàng)建模型和tokenizer。
from transformers import AutoModelForSequenceClassification, AutoTokenizer model_checkpoint = "bert-base-uncased" tokenizer = AutoTokenizer.from_pretrained(model_checkpoint) model = AutoModelForSequenceClassification.from_pretrained(model_checkpoint, num_labels=2)
對原始數(shù)據(jù)進行編碼,并且分批次(batch)
def preprocessing_func(examples):
return tokenizer(examples['text'],
padding=True,
truncation=True, max_length=300)
batch_size = 16
encoded_data = imdb.map(preprocessing_func, batched=True, batch_size=batch_size)
上面得到編碼數(shù)據(jù),每個批次設置為16.接下來需要指定訓練的參數(shù),訓練參數(shù)的指定使用transformers給出的接口類TrainingArguments,模型的訓練可以使用Trainer。
from transformers import Trainer, TrainingArguments args = TrainingArguments( 'out', per_device_train_batch_size=batch_size, per_device_eval_batch_size=batch_size, learning_rate=5e-5, evaluation_strategy='epoch', num_train_epochs=10, load_best_model_at_end=True, ) trainer = Trainer( model, args=args, train_dataset=encoded_data['train'], eval_dataset=encoded_data['test'], tokenizer=tokenizer )
訓練模型使用trainer對象的train方法
trainer.train()

評估模型使用trainer對象的evaluate方法
trainer.evaluate()
總結
本文介紹了基于transformers框架實現(xiàn)的bert預訓練模型,此框架提供了非常友好的接口,可以方便讀者嘗試各種預訓練模型。同時datasets也提供了很多數(shù)據(jù)集,便于學習NLP的各種問題。加上Google提供的colab環(huán)境,數(shù)據(jù)下載和預訓練模型下載都非???,建議讀者自行去煉丹。本文完整的案例下載
以上就是PyTorch預訓練Bert模型的示例的詳細內容,更多關于PyTorch預訓練Bert模型的資料請關注腳本之家其它相關文章!
相關文章
快速解釋如何使用pandas的inplace參數(shù)的使用
這篇文章主要介紹了快速解釋如何使用pandas的inplace參數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07
Django的restframework接口框架自定義返回數(shù)據(jù)格式的示例詳解
這篇文章主要介紹了Django的restframework接口框架自定義返回數(shù)據(jù)格式,本文介紹了通過Django的restframework接口框架自定義Response返回對象來自定義返回數(shù)據(jù)格式,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-07-07

