Transformers 文件

配置

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

配置

基類 PretrainedConfig 實現了從本地檔案或目錄,或從庫提供的預訓練模型配置(從 Hugging Face 的 AWS S3 儲存庫下載)載入/儲存配置的通用方法。

每個派生的配置類都實現了特定於模型的屬性。所有配置類中都存在的通用屬性是:`hidden_size`、`num_attention_heads` 和 `num_hidden_layers`。文字模型還實現了:`vocab_size`。

PretrainedConfig

class transformers.PretrainedConfig

< >

( **kwargs )

引數

  • name_or_path (str, 可選, 預設為 "") — 儲存傳遞給 PreTrainedModel.from_pretrained()TFPreTrainedModel.from_pretrained() 的字串,作為 `pretrained_model_name_or_path`(如果配置是用這種方法建立的)。
  • output_hidden_states (bool, 可選, 預設為 False) — 模型是否應返回所有隱藏狀態。
  • output_attentions (bool, 可選, 預設為 False) — 模型是否應返回所有注意力權重。
  • return_dict (bool, 可選, 預設為 True) — 模型是否應返回 ModelOutput 而不是普通的元組。
  • is_encoder_decoder (bool, 可選, 預設為 False) — 模型是否用作編碼器/解碼器。
  • is_decoder (bool, 可選, 預設為 False) — 在編碼器-解碼器架構中是否只使用解碼器,否則它對僅解碼器或僅編碼器架構沒有影響。
  • cross_attention_hidden_size** (bool, 可選) — 當模型在編碼器-解碼器設定中用作解碼器,且交叉注意力隱藏維度與 `self.config.hidden_size` 不同時,交叉注意力層的隱藏大小。
  • add_cross_attention (bool, 可選, 預設為 False) — 是否應向模型新增交叉注意力層。請注意,此選項僅與可在 EncoderDecoderModel 類中用作解碼器模型的模型相關,其中包括 `AUTO_MODELS_FOR_CAUSAL_LM` 中的所有模型。
  • tie_encoder_decoder (bool, 可選, 預設為 False) — 是否應將所有編碼器權重與其等效的解碼器權重繫結。這要求編碼器和解碼器模型具有完全相同的引數名稱。
  • prune_heads (dict[int, list[int]], 可選, 預設為 {}) — 模型的剪枝頭。鍵是所選層的索引,關聯的值是要在該層中剪枝的頭的列表。

    例如,`{1: [0, 2], 2: [2, 3]}` 將在第 1 層剪枝頭 0 和 2,在第 2 層剪枝頭 2 和 3。

  • chunk_size_feed_forward (int, 可選, 預設為 0) — 殘差注意力塊中所有前饋層的塊大小。塊大小為 `0` 意味著前饋層不分塊。塊大小為 n 意味著前饋層一次處理 `n` < sequence_length 個嵌入。有關前饋分塊的更多資訊,請參閱 前饋分塊如何工作?

用於微調任務的引數

  • architectures (list[str], 可選) — 可與模型預訓練權重一起使用的模型架構。
  • finetuning_task (str, 可選) — 用於微調模型的任務名稱。這可以在從原始(TensorFlow 或 PyTorch)檢查點轉換時使用。
  • id2label (dict[int, str], 可選) — 從索引(例如預測索引或目標索引)到標籤的對映。
  • label2id (dict[str, int], 可選) — 模型從標籤到索引的對映。
  • num_labels (int, 可選) — 新增到模型的最後一層使用的標籤數,通常用於分類任務。
  • task_specific_params (dict[str, Any], 可選) — 用於儲存當前任務的額外關鍵字引數。
  • problem_type (str, 可選) — `XxxForSequenceClassification` 模型的問題型別。可以是 `"regression"`、`"single_label_classification"` 或 `"multi_label_classification"` 之一。

與分詞器相關的引數

  • tokenizer_class (str, 可選) — 要使用的關聯分詞器類的名稱(如果未設定,預設使用與模型關聯的分詞器)。
  • prefix (str, 可選) — 在呼叫模型之前,應在每個文字開頭新增的特定提示。
  • bos_token_id (int, 可選) — *序列開始* 標記的 ID。
  • pad_token_id (int, 可選) — *填充* 標記的 ID。
  • eos_token_id (int, 可選) — *序列結束* 標記的 ID。
  • decoder_start_token_id (int, 可選) — 如果編碼器-解碼器模型使用不同於 *bos* 的標記開始解碼,則為該標記的 ID。
  • sep_token_id (int, 可選) — *分隔* 標記的 ID。

PyTorch 特定引數

  • torchscript (bool, 可選, 預設為 False) — 模型是否應與 TorchScript 一起使用。
  • tie_word_embeddings (bool, 可選, 預設為 True) — 模型的輸入和輸出詞嵌入是否應該繫結。請注意,這僅在模型具有輸出詞嵌入層時才相關。
  • torch_dtype (str, 可選) — 權重的 `dtype`。此屬性可用於將模型初始化為非預設的 `dtype`(通常是 `float32`),從而實現最佳的儲存分配。例如,如果儲存的模型是 `float16`,理想情況下我們希望使用載入 `float16` 權重所需的最小記憶體來載入它。由於配置物件以純文字形式儲存,因此此屬性僅包含浮點型別字串,不帶 `torch.` 字首。例如,對於 `torch.float16`,`torch_dtype` 是 `"float16"` 字串。

    此屬性目前在模型載入時未使用,但這可能會在未來版本中改變。但我們可以透過使用 save_pretrained 儲存 dtype 來為未來做準備。

TensorFlow 特定引數

  • use_bfloat16 (bool, 可選, 預設為 False) — 模型是否應使用 BFloat16 標量(僅由某些 TensorFlow 模型使用)。
  • tf_legacy_loss (bool, 可選, 預設為 False) — 模型是否應使用舊版 TensorFlow 損失。舊版損失具有可變的輸出形狀,可能與 XLA 不相容。此選項用於向後相容,並將在 Transformers v5 中移除。
  • loss_type (str, 可選) — 模型應使用的損失型別。它應為 `LOSS_MAPPING` 的鍵之一,否則將根據模型架構自動推斷損失。

所有配置類的基類。處理所有模型配置通用的幾個引數,以及載入/下載/儲存配置的方法。

配置檔案可以載入並儲存到磁碟。載入配置檔案並使用此檔案初始化模型並**不會**載入模型權重。它隻影響模型的配置。

類屬性(由派生類覆蓋)

  • model_type (str) — 模型型別的識別符號,序列化到 JSON 檔案中,並用於在 AutoConfig 中重新建立正確的物件。
  • has_no_defaults_at_init (bool) — 配置類是否可以在不提供輸入引數的情況下初始化。某些配置要求在初始化時定義輸入並且沒有預設值,通常這些是複合配置(但不一定),例如 EncoderDecoderConfig~RagConfig。它們必須從兩個或多個 PretrainedConfig 型別的配置中初始化。
  • keys_to_ignore_at_inference (list[str]) — 在推理期間檢視模型字典輸出時預設忽略的鍵列表。
  • attribute_map (dict[str, str]) — 將模型特定屬性名稱對映到屬性標準命名的字典。
  • base_model_tp_plan (dict[str, Any]) — 一個字典,將基礎模型的子模組 FQN 對映到當呼叫 `model.tensor_parallel` 時應用於該子模組的張量並行計劃。
  • base_model_pp_plan (dict[str, tuple[list[str]]]) — 一個字典,將基礎模型的子模組對映到流水線並行計劃,使使用者能夠將子模組放置在適當的裝置上。

通用屬性(存在於所有子類中)

  • vocab_size (int) — 詞彙表中的詞元數量,也是嵌入矩陣的第一個維度(對於沒有文字模態的模型,如 ViT,此屬性可能缺失)。
  • hidden_size (int) — 模型的隱藏層大小。
  • num_attention_heads (int) — 模型的多頭注意力層中使用的注意力頭數量。
  • num_hidden_layers (int) — 模型中的塊數。

在模型配置中設定序列生成引數已被棄用。為了向後相容,載入其中一些引數仍然是可能的,但嘗試覆蓋它們會引發異常 — 您應該在 [~transformers.GenerationConfig] 中設定它們。有關各個引數的更多資訊,請查閱 [~transformers.GenerationConfig] 的文件。

push_to_hub

< >

( repo_id: str use_temp_dir: typing.Optional[bool] = None commit_message: typing.Optional[str] = None private: typing.Optional[bool] = None token: typing.Union[bool, str, NoneType] = None max_shard_size: typing.Union[str, int, NoneType] = '5GB' create_pr: bool = False safe_serialization: bool = True revision: typing.Optional[str] = None commit_description: typing.Optional[str] = None tags: typing.Optional[list[str]] = None **deprecated_kwargs )

引數

  • repo_id (str) — 您想將配置推送到的儲存庫名稱。當推送到特定組織時,它應包含您的組織名稱。
  • use_temp_dir (bool, 可選) — 是否使用臨時目錄來儲存推送到 Hub 之前儲存的檔案。如果沒有名為 `repo_id` 的目錄,則預設為 `True`,否則為 `False`。
  • commit_message (str, 可選) — 推送時提交的訊息。預設為 `"Upload config"`。
  • private (bool, 可選) — 是否將儲存庫設為私有。如果為 `None`(預設值),除非組織的預設設定是私有,否則儲存庫將是公開的。如果儲存庫已存在,則忽略此值。
  • token (bool or str, 可選) — 用於遠端檔案 HTTP 持有者授權的令牌。如果為 `True`,將使用執行 `huggingface-cli login` 時生成的令牌(儲存在 `~/.huggingface` 中)。如果未指定 `repo_url`,則預設為 `True`。
  • max_shard_size (int or str, 可選, 預設為 "5GB") — 僅適用於模型。檢查點在分片前的最大大小。然後,每個檢查點分片的大小將低於此大小。如果表示為字串,則需要是數字後跟一個單位(如 `"5MB"`)。我們預設為 `"5GB"`,以便使用者可以在免費的 Google Colab 例項上輕鬆載入模型,而不會出現 CPU OOM 問題。
  • create_pr (bool, 可選, 預設為 False) — 是建立包含上傳檔案的拉取請求還是直接提交。
  • safe_serialization (bool, 可選, 預設為 True) — 是否將模型權重轉換為 safetensors 格式以進行更安全的序列化。
  • revision (str, 可選) — 要將上傳檔案推送到的分支。
  • commit_description (str, 可選) — 將建立的提交的描述
  • 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")

dict_torch_dtype_to_str

< >

( d: dict )

檢查傳遞的字典及其巢狀字典是否具有 *torch_dtype* 鍵,如果它不為 None,則將 torch.dtype 轉換為僅包含型別的字串。例如,`torch.float32` 會被轉換為 *“float32”* 字串,然後可以以 json 格式儲存。

from_dict

< >

( config_dict: dict **kwargs ) PretrainedConfig

引數

  • config_dict (dict[str, Any]) — 將用於例項化配置物件的字典。這樣的字典可以利用 get_config_dict() 方法從預訓練的檢查點中檢索。
  • kwargs (dict[str, Any]) — 用於初始化配置物件的附加引數。

返回

PretrainedConfig

從這些引數例項化的配置物件。

從一個 Python 引數字典例項化一個 PretrainedConfig

from_json_file

< >

( json_file: typing.Union[str, os.PathLike] ) PretrainedConfig

引數

  • json_file (str or os.PathLike) — 包含引數的 JSON 檔案的路徑。

返回

PretrainedConfig

從該 JSON 檔案例項化的配置物件。

從一個引數的 JSON 檔案路徑例項化一個 PretrainedConfig

from_pretrained

< >

( pretrained_model_name_or_path: typing.Union[str, os.PathLike] cache_dir: typing.Union[str, os.PathLike, NoneType] = None force_download: bool = False local_files_only: bool = False token: typing.Union[bool, str, NoneType] = None revision: str = 'main' **kwargs ) PretrainedConfig

引數

  • pretrained_model_name_or_path (stros.PathLike) — 這可以是以下任一項:

    • 一個字串,即託管在 huggingface.co 的模型倉庫中的預訓練模型配置的 模型 ID
    • 一個包含使用 save_pretrained() 方法儲存的配置檔案的 目錄 路徑,例如 ./my_model_directory/
    • 一個指向已儲存的配置 JSON 檔案 的路徑或 URL,例如 ./my_model_directory/configuration.json
  • cache_dir (stros.PathLike, 可選) — 如果不應使用標準快取,則為用於快取下載的預訓練模型配置的目錄路徑。
  • force_download (bool, 可選, 預設為 False) — 是否強制(重新)下載配置檔案並覆蓋已存在的快取版本。
  • resume_download — 已棄用並忽略。所有下載現在在可能的情況下都會預設斷點續傳。將在 Transformers v5 中移除。
  • proxies (dict[str, str], 可選) — 一個用於按協議或端點使用的代理伺服器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理將在每次請求時使用。
  • token (strbool, 可選) — 用於遠端檔案的 HTTP Bearer 認證的令牌。如果為 True 或未指定,將使用執行 huggingface-cli login 時生成的令牌(儲存在 ~/.huggingface)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱或提交 ID,因為我們在 huggingface.co 上使用基於 git 的系統來儲存模型和其他工件,所以 revision 可以是 git 允許的任何識別符號。

    要測試你在 Hub 上建立的拉取請求,可以傳遞 revision="refs/pr/<pr_number>"

  • return_unused_kwargs (bool, 可選, 預設為 False) — 如果為 False,則此函式僅返回最終的配置物件。

    如果為 True,則此函式返回一個 Tuple(config, unused_kwargs),其中 unused_kwargs 是一個由鍵/值對組成的字典,這些鍵/值對的鍵不是配置屬性:即,kwargs 中未用於更新 config 且在其他情況下被忽略的部分。

  • 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: typing.Union[str, os.PathLike] **kwargs ) tuple[Dict, Dict]

引數

  • pretrained_model_name_or_path (stros.PathLike) — 我們想要獲取其引數字典的預訓練檢查點的識別符號。

返回

tuple[Dict, Dict]

將用於例項化配置物件的字典。

從一個 pretrained_model_name_or_path 解析出一個引數字典,用於使用 from_dict 例項化一個 PretrainedConfig

get_text_config

< >

( decoder = False )

引數

  • decoder (Optional[bool], 可選, 預設為 False) — 如果設定為 True,則只搜尋解碼器配置名稱。

返回用於文字 IO 的配置。在大多數模型上,它就是原始的配置例項本身。在特定的複合模型上,它在一組有效的名稱下。

register_for_auto_class

< >

( auto_class = 'AutoConfig' )

引數

  • auto_class (strtype, 可選, 預設為 "AutoConfig") — 要註冊此新配置的自動類。

將此類註冊到給定的自動類中。這應該只用於自定義配置,因為庫中的配置已經與 AutoConfig 對映。

save_pretrained

< >

( save_directory: typing.Union[str, os.PathLike] push_to_hub: bool = False **kwargs )

引數

  • save_directory (stros.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: typing.Union[str, os.PathLike] use_diff: bool = True )

引數

  • json_file_path (stros.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 字串。

返回

字串

包含此配置例項所有屬性的 JSON 格式字串。

將此例項序列化為 JSON 字串。

update

< >

( config_dict: dict )

引數

  • config_dict (dict[str, Any]) — 應為此類更新的屬性字典。

config_dict 中的屬性更新此類的屬性。

update_from_string

< >

( update_str: str )

引數

  • update_str (str) — 包含應為此類更新的屬性的字串。

update_str 中的屬性更新此類的屬性。

預期的格式是整數、浮點數和字串保持原樣,布林值使用 truefalse。例如:“n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”

要更改的鍵必須已經存在於配置物件中。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.