本実装はhppRC/bert-classification-tutorialの2024版実装です。
実装の背景や詳細についてはこちらのリポジトリをご覧ください。
以前の実装からの主な変更点は以下の通りです。
- 実装全体をHuggingFace関連ライブラリを利用するように変更
- データセットの構築をHuggingFace Datasetsを利用するように変更
- 訓練をHuggingFaceのTrainerとAccelerateを利用するように変更
- 仮想環境の構築にryeを利用するよう変更
# 環境構築
rye sync -f
source .venv/bin/activate
# データセット作成
python src/prepare.py
# 訓練
accelerate launch --config_file config/4-ds.json src/train.py --model_name tohoku-nlp/bert-base-japanese-v3 --experiment_name 4-ds
config
ディレクトリにaccelerate
利用時のconfigファイルを保存してあります4-ds.json
は4GPU+DeepSpeedを利用する場合の設定ファイルです1.json
は1GPUのみ利用する場合の設定ファイルですaccelerate config --config_file config/hoge.json
を実行することでお好みの設定ファイルを対話的に作成することができます
tensorboard --logdir ./outputs
を実行することでTensorBoardを利用して学習の進捗を確認することができます
本実装が研究・企業応用・個人利用問わずさまざまな方のお役に立てれば幸いです。
質問・バグ報告などがあればどんなことでもIssueにお書きください。
作者: Hayato Tsukagoshi
email: research.tsukagoshi.hayato@gmail.com
関連学会記事: BERTによるテキスト分類チュートリアル
論文等で本実装を参照する場合は、以下をお使いください。
@article{
hayato-tsukagoshi-2023-bert-classification-tutorial,,
title={{BERT によるテキスト分類チュートリアル}},
author={塚越 駿 and 平子 潤},
journal={自然言語処理},
volume={30},
number={2},
pages={867-873},
year={2023},
doi={10.5715/jnlp.30.867},
url = {https://www.jstage.jst.go.jp/article/jnlp/30/2/30_867/_article/-char/ja},
}