Published on

transformersモデル毎のパラメタ数など

Author
株式会社イエローバックの機械学習エンジニアです

はじめに

前回に引き続き、HuggingFace transformers のネタです。

日本語を扱える多言語モデルのパラメタ数を抽出してみました。

https://huggingface.co/transformers/pretrained_models.html

ここに載っているモデルもありますが、載っていないモデルも含めて日本語を扱えるモデルについて対象としました。

抽出方法

学習可能なパラメタ数は以下の方法で取得可能なようです。

sum(p.numel() for p in model.parameters() if p.requires_grad)

今回はこれを使いました。

対象モデルは

  • 日本語も扱える多言語モデル
  • 日本語特化のモデル

としました。base に加えて large モデル以上も対象としました。

パラメタ数以外は config から抽出しています。

以下、抽出用のコード全体です。

from transformers import AutoModel, AutoConfig
model_name = "xlm-roberta-base"

model = AutoModel.from_pretrained(model_name)
config = AutoConfig.from_pretrained(model_name)

# レイヤ数
print(config.num_hidden_layers)

# 隠れ層の次元
config.hidden_size

# アテンションヘッドの数
config.num_attention_heads

# 語彙数
config.vocab_size

# パラメタ数
params = sum(p.numel() for p in model.parameters() if p.requires_grad)
print(params)

パラメタ数など一覧

以下、結果です。

日本語も扱える多言語モデル

モデルlayershidden_sizeattn headsvocabsparams
xlm-roberta-base1276812250 K278 M
xlm-roberta-large24102416250 K559 M
bert-base-multilingual-cased1276812119 K177 M
distilbert-base-multilingual-cased676812119 K134 M
facebook/mbart-large-cc2512102416250 K610 M
google/mt5-base1276812250 K390 M
google/mt5-large24102416250 K973 M
google/mt5-xl24204832250 K3,230 M
google/mt5-xxl24409664250 K11,896 M

日本語特化のモデル

モデルlayershidden_sizeattn headsvocabsparams
cl-tohoku/bert-base-japanese-v2127681232 K111 M
cl-tohoku/bert-base-japanese-char-v212768126 K90 M
cl-tohoku/bert-large-japanese2410241632 K337 M
rinna/japanese-gpt2-medium2410241632 K336 M
sonoisa/t5-base-japanese127681232 K222 M
bandainamco-mirai/distilbert-base-japanese67681232 K67 M
laboro-ai/distilbert-base-japanese67681232 K67 M