![見出し画像](https://assets.st-note.com/production/uploads/images/44311123/rectangle_large_type_2_33a64d071b692f8cb21d76dba734f9f7.png?width=800)
Huggingface Transformers 入門 (15) - 英語のテキスト分類の学習
「Huggingface Transformers」による英語のテキスト分類の学習手順をまとめました。
・Huggingface Transformers 4.1.1
・Huggingface Datasets 1.2
前回
1. 英語のテキスト分類の学習
「GLUE」の「SST-2」を使って英語のテキスト分類を学習します。
(1) Huggingface Transformersをソースコードからインストール。
# Huggingface Transformersのインストール
!git clone https://github.com/huggingface/transformers
%cd transformers
!pip install .
(2) 「Huggingface Datasets」のインストール。
# Huggingface Datasetsのインストール
!pip install datasets
(3) run_glue.pyで学習を実行。
「output」フォルダにモデルが出力されます。
%%time
# テキスト分類の学習
!python ./examples/text-classification/run_glue.py \
--model_name_or_path bert-base-uncased \
--task_name=sst2 \
--do_train \
--do_eval \
--max_seq_length=128 \
--per_device_train_batch_size=32 \
--learning_rate=2e-5 \
--num_train_epochs=1 \
--output_dir=output \
--overwrite_output_dir
***** Eval results sst2 *****
epoch = 1.0
eval_accuracy = 0.9174311926605505
eval_loss = 0.23389126360416412
eval_runtime = 8.0842
eval_samples_per_second = 107.865
CPU times: user 3.86 s, sys: 648 ms, total: 4.51 s
Wall time: 26min 29s
2. 英語のテキスト分類の推論
import torch
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
# 入力テキスト
text = "This movie is very interesting!"
# モデルとトークナイザーの準備
model = AutoModelForSequenceClassification.from_pretrained('output/')
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
# テンソルに変換
tokenized_text = tokenizer.tokenize(text)
indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)
tokens_tensor = torch.tensor([indexed_tokens])
# 推論の実行
labels = ['NEGATIVE', 'POSITIVE']
model.eval()
with torch.no_grad():
outputs = model(tokens_tensor)[0]
print(labels[torch.argmax(outputs)])
POSITIVE
次回
この記事が気に入ったらサポートをしてみませんか?