TransformersとTokenizersを使用した言語モデルのスクラッチからのトレーニング
Hugging Faceは、transformersとtokenizersライブラリを使用して、新しい言語モデルをスクラッチからトレーニングする方法を示す詳細な技術ガイドを公開しました。エスペラント語のための「EsperBERTo」と呼ばれる小さなRoBERTa風のモデルを作成することで、このガイドはデータセットの収集からダウンストリームタスクのファインチューニングに至るまでのエンドツーエンドのパイプラインを示しています。
モデルのアーキテクチャと仕様
EsperBERToは、膨大な計算リソースなしでスクラッチからのトレーニングの実現可能性を示すために、「スモール」モデルとして設計されています。そのアーキテクチャは以下で構成されています:
- Parameters: 84 million
- Layers: 6
- Hidden Size: 768
- Attention Heads: 12
この構成はDistilBERTのアーキテクチャを反映しています。モデルは、データセット内のランダムにマスクされたトークンを予測することを学習するMasked Language Modeling (MLM)を使用してトレーニングされます。
トレーニング・パイプライン
1. データセットの取得
EsperBERToのトレーニングコーパスは、約3 GBのテキストで構成されています。データは主に2つのコレクションから取得されました:
- OSCAR corpus: この多言語コーパスのエスペラント語部分。これは、フィルタリングされたCommon Crawlのウェブダンプから派生しています。
- Leipzig Corpora Collection: OSCARデータを補完するために、ニュース、文学、Wikipediaから多様なテキストを含むサブコーパス。
2. Tokenizerのトレーニング
Hugging Faceは、GPT-2で使用されているものと同様の、語彙サイズ52,000のバイトレベルByte-pair encoding (BPE) tokenizerを使用しています。
バイトレベルBPEアプローチの主な技術的利点は以下の通りです:
<unk>トークンの排除: Tokenizerが単一バイトのアルファベットから語彙を構築するため、すべての単語をトークンに分解できます。- 言語の最適化: エスペラント語のネイティブなtokenizerをトレーニングすることで、ダイアクリティカルマーク(
ĉ,ĝ,ĥ,ĵ,ŝ, およびŭ)をネイティブにエンコードできます。 - 効率性: ガイドでは、エスペラント語コーパスのエンコード済みシーケンスの平均長が、事前学習済みのGPT-2 tokenizerを使用する場合と比較して約30%小さくなることが記されています。
3. 言語モデルの事前学習
モデルは、transformersライブラリのrun_language_modeling.pyスクリプトを使用してトレーニングされます。チェックポイントからではなくスクラッチからトレーニングするため、--model_name_or_path引数はNoneに設定されます。
Training Hyperparameters:
- Learning Rate: 1e-4
- Epochs: 5
- Batch Size: 16 per GPU
- Seed: 42
- Model Type: RoBERTa
4. 検証とテスト
Hugging Faceは、モデルが言語パターンを学習したことを検証するために、FillMaskPipelineを採用しています。これにより、ユーザーは<mask ext{>}トークンを含むシーケンスを入力し、最も確率の高い補完結果を観察できます。例えば、「La suno
ダウンストリームタスクのファインチューニング
事前学習が完了すると、モデルは品詞 (POS) タギングのためにファインチューニングされます。エスペラント語は、単語の語尾が通常文法的な品詞を示す非常に規則的な言語であるため、このタスクはトークン分類問題として扱われます。
CoNLL-2003形式でアノテーションされたエスペラント語のPOSタグのデータセットを使用して、モデルはrun_ner.pyスクリプトを使用してファインチューニングされました。このプロセスには、GPUあたり16のバッチサイズで3エポックのトレーニングが含まれ、その結果、代名詞、動詞、名詞、形容詞の分類に成功しました。
コミュニティ共有と配布
Hugging Faceは、transformers-cli uploadコマンドを介したトレーニング済みモデルの共有を推奨しています。モデル配布の推奨されるプラクティスには、詳細を記載したモデルカード (README.md) の提供が含まれます:
- モデルの説明
- トレーニング・パラメータ(データセット、前処理、およびハイパーパラメータ)
- 評価結果
- 意図された用途と制限事項