Transformers documentation

設定

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

設定

ベースクラス PreTrainedConfig は、ローカルファイルまたはディレクトリから、あるいはライブラリが提供する事前学習済みモデルの設定(HuggingFace の AWS S3 リポジトリからダウンロード)から設定を読み込み/保存するための共通メソッドを実装しています。

各派生設定クラスは、モデル固有の属性を実装しています。すべての設定クラスに共通して存在する属性は、hidden_size、num_attention_heads、およびnum_hidden_layersです。テキストモデルはさらに、vocab_sizeを実装しています。

PreTrainedConfig

class transformers.PreTrainedConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None )

パラメータ

  • name_or_path (str、任意、デフォルトは "") — 設定がそのようなメソッドによって作成された場合、PreTrainedModel.from_pretrained() に渡された文字列を pretrained_model_name_or_path として保存します。
  • output_hidden_states (bool、任意、デフォルトは False) — モデルがすべての hidden states を返すかどうかを指定します。
  • output_attentions (bool、省略可、デフォルトはFalse) — モデルがすべてのアテンションを返すかどうか。
  • return_dict (bool、省略可、デフォルトは True) — モデルが通常のタプルではなく ModelOutput を返すかどうかを指定します。
  • is_encoder_decoder (bool、任意、デフォルトは False) — モデルがエンコーダー/デコーダーとして使用されるかどうかを示します。
  • chunk_size_feed_forward (int、任意、デフォルトは 0) — 残差アテンションブロック内のすべてのフィードフォワード層のチャンクサイズです。0 は、フィードフォワード層がチャンク分割されないことを意味します。n は、フィードフォワード層が一度に n < sequence_length 個の埋め込みを処理することを意味します。フィードフォワードチャンク分割の詳細については、フィードフォワードチャンク分割はどのように動作しますか? を参照してください。
  • per_layer_config (dict[int | str, dict[str, Any]]、省略可) — レイヤーインデックスから設定属性の上書きへのスパースなマッピングです。各キーはレイヤーインデックスを、各値は、そのレイヤーにおいてグローバル設定と異なる属性を含みます。
  • tie_last_hidden_states (bool、任意) — hidden_states[-1]が、最終正規化前の hidden state ではなく、最終正規化後の last_hidden_state になるかどうかを指定します。未設定の場合、モデルの組み込みのデフォルト値が使用されます。

ファインチューニングタスクのパラメータ

  • architectures (list[str]、省略可) — モデルの事前学習済み重みと併せて使用できるモデルアーキテクチャです。
  • id2label (dict[int, str]、省略可) — インデックス(予測インデックスやターゲットインデックスなど)からラベルへのマッピングです。
  • label2id (dict[str, int]、省略可) — モデルにおけるラベルからインデックスへのマッピングです。
  • num_labels (int, 任意) — モデルに追加される最終層で使用するラベル数です。通常は分類タスクで用いられます。
  • problem_type (str, 任意) — XxxForSequenceClassification モデルの問題タイプ。"regression"、"single_label_classification"、または "multi_label_classification" のいずれかです。

PyTorch 固有のパラメータ

  • dtype (str, 省略可) — 重みのdtypeです。この属性を使用して、モデルをデフォルト以外のdtype(通常はfloat32)で初期化し、最適なストレージ割り当てを可能にします。例えば、保存されたモデルがfloat16の場合、float16の重みをロードするために必要な最小限のメモリで読み戻すのが理想です。

すべての設定クラス用の基底クラスです。すべてのモデルの設定に共通するいくつかのパラメータを処理するほか、設定の読み込み/ダウンロード/保存を行うメソッドも提供します。

設定ファイルは読み込み、ディスクへの保存が可能です。設定ファイルを読み込み、そのファイルを使用してモデルを初期化しても、モデルの重みは読み込まれません。影響するのはモデルの設定のみです。

クラス属性(派生クラスによって上書きされます):

  • model_type (str) — モデルタイプを識別するための識別子です。JSON ファイルにシリアライズされ、AutoConfig で正しいオブジェクトを再構築するために使用されます。
  • attribute_map (dict[str, str]) — モデル固有の属性名を、属性の標準的な命名にマッピングする辞書。
  • base_model_tp_plan (dict[str, Any]) — ベースモデルのサブモジュールの FQN を、model.tensor_parallel が呼び出された際にそのサブモジュールに適用されるテンソル並列化プランにマッピングする dict です。
  • base_model_fsdp_plan (dict[Any, str]) — ベースモデルのサブモジュールを FSDP2 のシャーディング戦略(例: "free_full_weight" / "keep_full_weight")にマッピングする辞書です。キーにはワイルドカード付きのモジュールパス(例: "layers.*")や、パスのタプル(単一の fully_shard 呼び出しにグループ化される)を指定できます。
  • base_model_pp_plan (dict[str, tuple[list[str]]]) — ベースモデルの子モジュールを、ユーザーが子モジュールを適切なデバイスに配置できるようにするパイプライン並列化計画に対応付ける辞書です。

共通属性(すべてのサブクラスに存在する):

  • vocab_size (int) — 語彙に含まれるトークンの数です。これは埋め込み行列の最初の次元にもなります(ViTのようにテキストモダリティを持たないモデルでは、この属性が存在しない場合があります)。
  • hidden_size (int) — モデルの隠れ層サイズです。
  • num_attention_heads (int) — モデルのマルチヘッドアテンション層で使用されるアテンションヘッドの数。
  • num_hidden_layers (int) — モデル内のブロック数。

モデルの config にシーケンス生成のパラメータを設定することは非推奨になりました。後方互換性のため、一部の読み込みは引き続き可能ですが、上書きしようとすると例外が発生します — [~transformers.GenerationConfig] で設定してください。個々のパラメータの詳細については、[~transformers.GenerationConfig] のドキュメントを参照してください。

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

パラメータ

  • repo_id (str) — 設定をプッシュするリポジトリの名前です。特定の組織にプッシュする場合は、組織名を含む必要があります。
  • commit_message (str, 任意) — プッシュ時にコミットするメッセージ。デフォルトは"Upload config"です。
  • commit_description (str, 省略可) — 作成されるコミットの説明
  • private (bool、省略可) — リポジトリを非公開にするかどうか。None(デフォルト)の場合、組織のデフォルトが非公開でない限り、リポジトリは公開になります。リポジトリが既に存在する場合、この値は無視されます。
  • token (bool または str、省略可) — リモートファイルの HTTP ベアラ認証に使用するトークン。True(デフォルト)の場合、hf auth login を実行した際に生成されたトークン(~/.huggingface に保存)が使用されます。
  • revision (str、省略可) — アップロードしたファイルをプッシュするブランチ。
  • create_pr (bool、省略可、デフォルトはFalse) — アップロードしたファイルを含む PR を作成するか、直接コミットするかどうかを指定します。
  • max_shard_size (int または str、省略可能、デフォルトは "50GB") — モデルにのみ適用されます。シャード化される前のチェックポイントの最大サイズです。シャード化されたチェックポイントは、それぞれがこのサイズ未満になります。文字列で指定する場合は、数字の後に単位("5MB" など)を続ける必要があります。
  • tags (list[str]、省略可) — Hub にプッシュするタグのリストです。

設定ファイルを🤗 Model Hubにアップロードします。

例:

from transformers import AutoConfig

config = AutoConfig.from_pretrained("google-bert/bert-base-cased")

# Push the config to your namespace with the name "my-finetuned-bert".
config.push_to_hub("my-finetuned-bert")

# Push the config to an organization with the name "my-finetuned-bert".
config.push_to_hub("huggingface/my-finetuned-bert")

default_config_fields

< >

( )

dataclass の各アノテーション付きフィールドのデフォルト値を取得し、diff-dict の保存に使用されます。 v4 でカスタムの __init__ を使用して作成された設定の場合、空の dict を返すため、self.__dict__ のすべてのキーが保存されます。新しい設定の場合、__post_init__ ではなくフィールドとしてデフォルトが宣言されているキーを返すため、シリアライズされた JSON ファイルからこれらの特定のフィールドのみが除外されます。

dict_dtype_to_str

< >

( d: dict[str, Any] )

渡された辞書およびそのネストされた辞書にdtypeキーが存在するかを確認し、None でない場合、torch.dtype を型名だけの文字列に変換します。例えば、torch.float32 は “float32” という文字列に変換され、その後 json 形式で保存できます。

from_dict

< >

( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig

パラメータ

  • config_dict (dict[str, Any]) — 設定オブジェクトをインスタンス化するために使用される辞書です。この辞書は、get_config_dict() メソッドを活用して事前学習済みチェックポイントから取得できます。
  • kwargs (dict[str, Any]) — 設定オブジェクトの初期化に使用する追加のパラメータ。

戻り値

PreTrainedConfig

これらのパラメータからインスタンス化された設定オブジェクト。

Pythonのパラメータ辞書からPreTrainedConfigをインスタンス化します。

from_json_file

< >

( json_file: str | os.PathLike ) → PreTrainedConfig

パラメータ

  • json_file (str または os.PathLike) — パラメータを含む JSON ファイルへのパス。

戻り値

PreTrainedConfig

そのJSONファイルからインスタンス化された設定オブジェクト。

パラメータのJSONファイルへのパスからPreTrainedConfigをインスタンス化します。

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs ) → PreTrainedConfig

パラメータ

  • pretrained_model_name_or_path (str または os.PathLike) — 以下いずれかです:
    • 文字列、huggingface.co上のモデルリポジトリにホストされている事前学習済みモデル設定のmodel id。
    • save_pretrained() メソッドを使用して設定ファイルを保存した ディレクトリ へのパス。例: ./my_model_directory/
    • 保存済みの設定 JSON ファイルへのパス。例: ./my_model_directory/configuration.json
  • cache_dir (str または os.PathLike、省略可) — 標準のキャッシュを使用しない場合、ダウンロードした事前学習済みモデルの設定をキャッシュするディレクトリのパス。
  • force_download (bool、任意、デフォルトは False) — 設定ファイルを(再)ダウンロードを強制し、キャッシュされたバージョンが存在する場合にそれを上書きするかどうか。
  • proxies (dict[str, str]、省略可) — プロトコルまたはエンドポイントごとに使用するプロキシサーバーの辞書です。例: {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. 各リクエストでこれらのプロキシが使用されます。
  • token (str または bool、省略可) — リモートファイルの HTTP ベアラ認証に使用するトークンです。True の場合、または指定されていない場合は、hf auth login を実行した際に生成されたトークン(~/.huggingface に保存)が使用されます。
  • revision (str, 省略可, デフォルトは "main") — 使用する特定のモデルのバージョンです。huggingface.co ではモデルやその他の成果物を保存するために git ベースのシステムを使用しているため、ブランチ名、タグ名、またはコミット ID を指定できます。したがって、 revision には git で許可される任意の識別子を指定できます。

    Hub で作成した pull request をテストするには、revision="refs/pr/<pr_number>" を渡すことができます。

  • return_unused_kwargs (bool, 省略可, デフォルトは False) — が False, の場合、この関数は最終的な設定オブジェクトのみを返します。

    Trueの場合、この関数はTuple(config, unused_kwargs)を返します。unused_kwargsは、キーが設定属性でないキー/値のペアで構成される辞書です。つまり、configの更新に使用されず、それ以外は無視されるkwargsの部分です。

  • subfolder (str、任意、デフォルトは "") — huggingface.co 上のモデルリポジトリのサブフォルダ内に該当するファイルが配置されている場合、ここにフォルダ名を指定できます。
  • kwargs (dict[str, Any], 省略可) — kwargs の値のうち、キーが設定属性であるものは、読み込まれた値の上書きに使用されます。キーが設定属性ではないキー/値ペアの動作は、return_unused_kwargs キーワード引数によって制御されます。

戻り値

PreTrainedConfig

この事前学習モデルからインスタンス化された設定オブジェクト。

事前学習済みモデルの設定から、PreTrainedConfig(または派生クラス)をインスタンス化します。

例:

# We can't instantiate directly the base class *PreTrainedConfig* so let's show the examples on a
# derived class: BertConfig
config = BertConfig.from_pretrained(
    "google-bert/bert-base-uncased"
)  # Download configuration from huggingface.co and cache.
config = BertConfig.from_pretrained(
    "./test/saved_model/"
)  # E.g. config (or model) was saved using *save_pretrained('./test/saved_model/')*
config = BertConfig.from_pretrained("./test/saved_model/my_configuration.json")
config = BertConfig.from_pretrained("google-bert/bert-base-uncased", output_attentions=True, foo=False)
assert config.output_attentions == True
config, unused_kwargs = BertConfig.from_pretrained(
    "google-bert/bert-base-uncased", output_attentions=True, foo=False, return_unused_kwargs=True
)
assert config.output_attentions == True
assert unused_kwargs == {"foo": False}

get_config_dict

< >

( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]

パラメータ

  • pretrained_model_name_or_path (str または os.PathLike) — パラメータの辞書を取得したい事前学習済みチェックポイントの識別子です。

戻り値

tuple[Dict, Dict]

設定オブジェクトをインスタンス化するために使用される辞書。

pretrained_model_name_or_pathから、from_dictを使用してPreTrainedConfigをインスタンス化するために使用するパラメータの辞列を解決します。

get_mtp_config

< >

( )

MTPモデルの作成に使用するmtpテキスト設定を返します。MTPレイヤーはメインモデルと同じクラスをインスタンス化して作成されるため、layer_typesやmtp_layer_typesなどのインデックス固有のプロパティを上書きして、正しいMTPレイヤーを作成し、レイヤー内のインデックス問題を回避する必要があります(MTPレイヤーではレイヤーのインデックス付けが0からやり直されるため)。

get_text_config

< >

( decoder = Noneencoder = None )

パラメータ

  • decoder (Optional[bool]、任意) — True に設定すると、デコーダーの構成ファイル名のみを検索します。
  • encoder (Optional[bool]、任意) — True に設定すると、エンコーダーの設定名のみを検索します。

モデルのテキスト入力(エンコーダー)またはテキスト出力(デコーダー)に関連するテキスト設定を返します。decoderおよびencoderの引数を使用して、関心のあるモデルのどの側かを指定できます。これは、テキスト入力と出力の両方のモダリティを持つモデルで有用です。

このメソッドを使用した場合、3つの結果が考えられます。

  1. ほとんどのモデルでは、元のconfigインスタンス自体を返します。
  2. 新しい(2024年以降の)複合モデルでは、有効な名前のセットの下にネストされたconfigのテキストセクションを返します。
  3. 古い(2023年以前)の複合モデルでは、encoder=True の場合、decoder 専用のパラメータを破棄し、その逆も同様です。

is_custom_code

< >

( )

現在の設定がカスタムコードであるかどうかを返します。つまり、ハブから読み込まれたコード、またはユーザー固有のモジュール/セッションで定義されたコードのいずれかです。

is_remote_code

< >

( )

現在の設定がカスタムコード(つまり、ハブから読み込まれたコード)であるか、register_for_auto_class 経由で登録したばかりのクラスであるかを返します。

register_for_auto_class

< >

( auto_class = 'AutoConfig' )

パラメータ

  • auto_class (str または type、省略可能、デフォルトは "AutoConfig") — この新しい設定を登録する auto クラスです。

このクラスを指定されたオートクラスに登録します。ライブラリ内の設定はすでにAutoConfigにマッピングされているため、このメソッドはカスタム設定でのみ使用すべきです。

save_pretrained

< >

( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )

パラメータ

  • save_directory (str または os.PathLike) — 設定 JSON ファイルを保存するディレクトリ(存在しない場合は作成されます)。
  • push_to_hub (bool、省略可、デフォルトは False) — モデルを保存した後、Hugging Face モデルハブにプッシュするかどうかを指定します。プッシュ先のリポジトリは repo_id で指定できます(指定しない場合、save_directory の名前があなたのネームスペース内でデフォルトとして使用されます)。
  • kwargs (dict[str, Any]、省略可) — push_to_hub() メソッドに渡される追加のキーワード引数。

設定オブジェクトをディレクトリ save_directory に保存し、from_pretrained() クラスメソッドによって再読み込みできるようにします。

to_dict

< >

( ) → dict[str, Any]

戻り値

dict[str, Any]

この設定インスタンスを構成するすべての属性の辞書。

このインスタンスをPythonの辞書にシリアライズします。

to_diff_dict

< >

( ) → dict[str, Any]

戻り値

dict[str, Any]

この設定インスタンスを構成するすべての属性の辞書。

config 属性は常に保持しつつ、デフォルト設定の属性に対応するすべての属性を削除し、可読性を高めます。Python の辞書にシリアライズします。

to_json_file

< >

( json_file_path: str | os.PathLikeuse_diff: bool = True )

パラメータ

  • json_file_path (str または os.PathLike) — この設定インスタンスのパラメータを保存する JSON ファイルへのパス。
  • use_diff (bool、省略可、デフォルトはTrue) — Trueに設定すると、設定インスタンスとデフォルトのPreTrainedConfig()との差分のみがJSONファイルにシリアライズされます。

このインスタンスをJSONファイルに保存します。

to_json_string

< >

( use_diff: bool = True ) → str

パラメータ

  • use_diff (bool、省略可、デフォルトは True) — True に設定すると、設定インスタンスとデフォルトの PreTrainedConfig() の差分のみが JSON 文字列にシリアライズされます。

戻り値

str

この設定インスタンスを構成するすべての属性を JSON 形式で含む文字列。

このインスタンスをJSON文字列にシリアライズします。

update

< >

( config_dict: dict[str, Any] )

パラメータ

  • config_dict (dict[str, Any]) — このクラスで更新すべき属性の辞書。

config_dict の属性で、このクラスの属性を更新します。

update_from_string

< >

( update_str: str )

パラメータ

  • update_str (str) — このクラスで更新すべき属性を持つ文字列。

update_str の属性で、このクラスの属性を更新します。

期待される形式は、int、float、string はそのまま、boolean は true または false を使用することです。例: “n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”

変更するキーは、設定オブジェクトに既に存在している必要があります。

validate

< >

( )

インスタンスに対してクラスバリデータを実行します。

validate_architecture

< >

( )

@strict による検証の一部です。設定のアーキテクチャを検証します。

validate_layer_type

< >

( )

mlp_layer_typesとlayer_typesが正しく定義されていることを確認してください。

validate_token_ids

< >

( )

@strict による検証の一部です。特殊トークンの内容を検証します。

Update on GitHub