Hugging Face
シームレスな W&B インテグレーションで Hugging Face モデルのパフォーマンスを迅速に可視化。
モデル間でハイパーパラメーター、出力メトリクス、GPU利用率などのシステム統計を比較できます。
🤔 なぜW&Bを使うべきですか?
- 統一されたダッシュボード: すべてのモデルのメトリクスや予測の中央リポジトリ
- 軽量: Hugging Faceと統合するためのコード変更不要
- アクセス可能: 個人や学術チーム向けに無料
- セキュア: すべてのプロジェクトはデフォルトで非公開
- 信頼性: OpenAI、Toyota、Lyftなどの機械学習チームに利用されています
W&Bを機械学習モデルのためのGitHubのように考えてください— 機械学習実験をプライベートでホスティングされたダッシュボードに保存します。スクリプトを実行する場所に関係なく、モデルのすべてのバージョンが保存されるという自信を持って迅速に実験できます。
W&Bの軽量インテグレーションは任意のPythonスクリプトと連携し、W&Bの無料アカウントにサインアップするだけで、モデルのトラッキングと可視化を始めることができます。
Hugging Face Transformersリポジトリでは、Trainerが各ログステップでトレーニングと評価のメトリクスを自動的にW&Bにログするように設定されています。
インテグレーションの詳細はこちらをご覧ください: Hugging Face + W&B レポート.
🚀 インストール、インポート、ログイン
このチュートリアルのためにHugging FaceとWeights & Biasesのライブラリ、GLUEデータセット、トレーニングスクリプトをインストールします。
- Hugging Face Transformers: 自然言語モデルとデータセット
- Weights & Biases: 実験管理と可視化
- GLUEデータセット: 言語理解のベンチマークデータセット
- GLUEスクリプト: シーケンス分類のためのモデルトレーニングスクリプト
!pip install datasets wandb evaluate accelerate -qU
!wget https://raw.githubusercontent.com/huggingface/transformers/master/examples/pytorch/text-classification/run_glue.py
# run_glue.py スクリプトにはtransformers devが必要です
!pip install -q git+https://github.com/huggingface/transformers
🖊️ 無料アカウントにサインアップ →
🔑 APIキーを入力
サインアップが完了したら、次のセルを実行してリンクをクリックし、APIキーを取得してこのノートブックを認証します。
import wandb
wandb.login()
必要に応じて、環境変数を設定してW&Bのログをカスタマイズできます。詳細はドキュメントを参照してください。
# オプション: 勾配とパラメータの両方をログ
%env WANDB_WATCH=all
👟 モデルをトレーニング
次に、ダウンロードしたトレーニングスクリプト run_glue.py を呼び出し、トレーニングが自動的にWeights & Biasesダッシュボードにトラックされる様子を見ます。このスクリプトはMicrosoft Research Paraphrase Corpus — 人間の注釈で意味的に同等と示された文のペアにBERTをファインチューンします。
%env WANDB_PROJECT=huggingface-demo
%env TASK_NAME=MRPC
!python run_glue.py \
--model_name_or_path bert-base-uncased \
--task_name $TASK_NAME \
--do_train \
--do_eval \
--max_seq_length 256 \
--per_device_train_batch_size 32 \
--learning_rate 2e-4 \
--num_train_epochs 3 \
--output_dir /tmp/$TASK_NAME/ \
--overwrite_output_dir \
--logging_steps 50
👀 ダッシュボードで結果を可視化
上に表示されたリンクをクリックするか、wandb.ai にアクセスして結果をライブで確認できます。すべての依存関係がロードされた後にブラウザでrunを確認するリンクが表示されます — 次のような出力を探してください: "wandb: 🚀 View run at [URL to your unique run]"
モデルパフォーマンスを可視化 多数の実験を簡単に比較し、興味深い発見にズームインし、高次元データを可視化することができます。
アーキテクチャーを比較 こちらは BERT vs DistilBERT を比較した例です — トレーニング中の評価精度に対するアーキテクチャーの影響を自動的なラインプロットの可視化で簡単に確認できます。
📈 デフォルトで主要情報を簡単にトラッキング
Weights & Biasesは各実験に新しいrunを保存します。デフォルトで保存される情報はこちらです:
- ハイパーパラメーター: Configにモデルの設定が保存されます
- モデルメトリクス: メトリクスの時系列データがLogに保存されます
- ターミナルログ: コマンドラインの出力が保存され、タブで閲覧可能
- システムメトリクス: GPUとCPUの利用率、メモリ、温度など
🤓 もっと知りたい!
- ドキュメント: Weights & BiasesとHugging Faceのインテグレーションに関するドキュメント
- ビデオ: チュートリアル、実務家とのインタビューなどがYouTubeチャンネルで提供されています
- お問い合わせ: contact@wandb.com までご質問ください