Transformers 4.37 中文文档(十四)(6)

简介: Transformers 4.37 中文文档(十四)

Transformers 4.37 中文文档(十四)(5)https://developer.aliyun.com/article/1564959


TFPreTrainedModel

class transformers.TFPreTrainedModel

<来源>

( config *inputs **kwargs )

所有 TF 模型的基类。

TFPreTrainedModel 类负责存储模型的配置,并处理加载、下载和保存模型的方法,以及一些所有模型通用的方法:

  • 调整输入嵌入,
  • 修剪自注意力头。

类属性(由派生类覆盖):

  • config_class (PretrainedConfig) — 用作此模型架构的配置类的 PretrainedConfig 的子类。
  • base_model_prefix (str) — 一个字符串,指示派生类中基础模型关联的属性,在同一架构的派生类中添加模块到基础模型之上。
  • main_input_name (str) — 模型的主要输入的名称(通常为 NLP 模型的input_ids,视觉模型的pixel_values和语音模型的input_values)。
push_to_hub

<来源>

( repo_id: str use_temp_dir: Optional[bool] = None commit_message: Optional[str] = None private: Optional[bool] = None max_shard_size: Optional[Union[int, str]] = '10GB' token: Optional[Union[bool, str]] = None use_auth_token: Optional[Union[bool, str]] = None create_pr: bool = False **base_model_card_args )

参数

  • repo_id (str) — 您要将模型推送到的存储库的名称。在推送到给定组织时,应包含您的组织名称。
  • use_temp_dir (bool, 可选) — 是否使用临时目录存储保存的文件,直到它们被推送到 Hub。如果没有名为repo_id的目录,则默认为True,否则为False
  • commit_message (str, 可选) — 推送时要提交的消息。默认为"Upload model"
  • privatebool可选)— 是否应创建私有存储库。
  • tokenboolstr可选)— 用作远程文件的 HTTP bearer 授权的令牌。如果为True,将使用运行huggingface-cli login时生成的令牌(存储在~/.huggingface中)。如果未指定repo_url,则默认为True
  • max_shard_sizeintstr可选,默认为"10GB")— 仅适用于模型。在分片之前的检查点的最大大小。然后,检查点分片将每个大小小于此大小。如果表示为字符串,需要是数字后跟一个单位(如"5MB")。
  • create_prbool可选,默认为False)— 是否创建带有上传文件的 PR 或直接提交。

将模型文件上传到🤗模型 Hub,同时同步存储库的本地克隆到repo_path_or_name中。

示例:

from transformers import TFAutoModel
model = TFAutoModel.from_pretrained("bert-base-cased")
# Push the model to your namespace with the name "my-finetuned-bert".
model.push_to_hub("my-finetuned-bert")
# Push the model to an organization with the name "my-finetuned-bert".
model.push_to_hub("huggingface/my-finetuned-bert")
can_generate

<来源>

( ) → export const metadata = 'undefined';bool

返回

bool

此模型是否可以使用.generate()生成序列。

返回此模型是否可以使用.generate()生成序列。

compile

<来源>

( optimizer = 'rmsprop' loss = 'auto_with_warning' metrics = None loss_weights = None weighted_metrics = None run_eagerly = None steps_per_execution = None **kwargs )

这是一个薄包装器,如果用户没有指定自己的损失函数,则将模型的损失输出头设置为损失。

create_model_card

<来源>

( output_dir model_name: str language: Optional[str] = None license: Optional[str] = None tags: Optional[str] = None finetuned_from: Optional[str] = None tasks: Optional[str] = None dataset_tags: Optional[Union[str, List[str]]] = None dataset: Optional[Union[str, List[str]]] = None dataset_args: Optional[Union[str, List[str]]] = None 

参数

  • output_dirstros.PathLike)— 创建模型卡片的文件夹。
  • model_namestr可选)— 模型的名称。
  • languagestr可选)— 模型的语言(如果适用)
  • licensestr可选)— 模型的许可证。如果给定给Trainer的原始模型来自 Hub 上的 repo,则默认为使用的预训练模型的许可证。
  • tagsstrList[str]可选)— 要包含在模型卡片的元数据中的一些标签。
  • finetuned_fromstr可选)— 用于微调此模型的模型的名称(如果适用)。如果来自 Hub 的原始模型的Trainer给出的 repo 的名称,则默认为原始模型的名称。
  • tasksstrList[str]可选)— 一个或多个任务标识符,要包含在模型卡片的元数据中。
  • dataset_tagsstrList[str]可选)— 一个或多个数据集标签,要包含在模型卡片的元数据中。
  • datasetstrList[str]可选)— 一个或多个数据集标识符,要包含在模型卡片的元数据中。
  • dataset_argsstrList[str]可选)— 一个或多个数据集参数,要包含在模型卡片的元数据中。

使用Trainer可用的信息创建模型卡片的草稿。

eager_serving

<来源>

( inputs )

参数

  • inputsDict[str, tf.Tensor])— 保存模型的输入,作为张量字典。

用于提供模型的方法。此方法已弃用,将被移除。

from_pretrained

<来源>

( pretrained_model_name_or_path: Optional[Union[str, os.PathLike]] *model_args config: Optional[Union[PretrainedConfig, str, os.PathLike]] = None cache_dir: Optional[Union[str, os.PathLike]] = None ignore_mismatched_sizes: bool = False force_download: bool = False local_files_only: bool = False token: Optional[Union[str, bool]] = None revision: str = 'main' use_safetensors: bool = None **kwargs )

参数

  • pretrained_model_name_or_pathstr可选)— 可以是:
  • 一个字符串,预训练模型的模型 id,托管在 huggingface.co 上的模型存储库中。有效的模型 id 可以位于根级别,如bert-base-uncased,或者在用户或组织名称下命名空间,如dbmdz/bert-base-german-cased
  • 一个目录的路径,其中包含使用 save_pretrained()保存的模型权重,例如,./my_model_directory/
  • 一个 PyTorch state_dict 保存文件 的路径或 url(例如,./pt_model/pytorch_model.bin)。在这种情况下,from_pt 应设置为 True,并且应将配置对象作为 config 参数提供。使用此加载路径比使用提供的转换脚本将 PyTorch 模型转换为 TensorFlow 模型并随后加载 TensorFlow 模型要慢。
  • 如果您同时提供配置和状态字典(分别使用关键字参数 configstate_dict),则为 None
  • model_args(位置参数序列,可选) — 所有剩余的位置参数将传递给底层模型的 __init__ 方法。
  • config (Union[PretrainedConfig, str], 可选) — 可以是:
  • 从 PretrainedConfig 派生的类的实例,
  • 作为 from_pretrained() 输入有效的字符串。
  • 用于替代自动加载配置的模型配置。当以下情况发生时,配置可以自动加载:
  • 模型是库提供的模型(使用预训练模型的 模型 id 字符串加载)。
  • 模型是使用 save_pretrained() 保存的,并通过提供保存目录重新加载。
  • 通过提供本地目录作为 pretrained_model_name_or_path 并在目录中找到名为 config.json 的配置 JSON 文件来加载模型。
  • from_pt (bool, 可选, 默认为 False) — 从 PyTorch state_dict 保存文件加载模型权重(请参阅 pretrained_model_name_or_path 参数的文档字符串)。
  • ignore_mismatched_sizes (bool, 可选, 默认为 False) — 是否在检查点的某些权重与模型的权重大小不同时引发错误(例如,如果您从具有 3 个标签的检查点实例化具有 10 个标签的模型)。
  • cache_dir (str, 可选) — 下载的预训练模型配置应缓存在其中的目录路径,如果不应使用标准缓存。
  • force_download (bool, 可选, 默认为 False) — 是否强制(重新)下载模型权重和配置文件,覆盖缓存版本(如果存在)。
  • resume_download (bool, 可选, 默认为 False) — 是否删除接收不完整的文件。如果存在这样的文件,将尝试恢复下载。代理 — (Dict[str, str], 可选): 用于每个请求的协议或端点的代理服务器字典,例如 {‘http’: ‘foo.bar:3128’, ‘http://hostname’: ‘foo.bar:4012’}。代理将用于每个请求。output_loading_info(bool, *可选*, 默认为 False`): 是否返回包含缺失键、意外键和错误消息的字典。
  • local_files_only(bool, 可选, 默认为 False) — 是否仅查看本地文件(例如,不尝试下载模型)。
  • token (strbool, 可选) — 用作远程文件的 HTTP bearer 授权的令牌。如果为 True,或者未指定,则将使用运行 huggingface-cli login 时生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称或提交 id,因为我们在 huggingface.co 上使用基于 git 的系统存储模型和其他工件,所以 revision 可以是 git 允许的任何标识符。

从预训练模型配置实例化预训练的 TF 2.0 模型。

警告 Weights from XXX not initialized from pretrained model 意味着 XXX 的权重不是与模型的其余部分一起预训练的。您需要使用下游微调任务来训练这些权重。

警告来自 XXX 的权重在 YYY 中未使用表示层 XXX 未被 YYY 使用,因此这些权重被丢弃。

示例:

>>> from transformers import BertConfig, TFBertModel
>>> # Download model and configuration from huggingface.co and cache.
>>> model = TFBertModel.from_pretrained("bert-base-uncased")
>>> # Model was saved using *save_pretrained('./test/saved_model/')* (for example purposes, not runnable).
>>> model = TFBertModel.from_pretrained("./test/saved_model/")
>>> # Update configuration during loading.
>>> model = TFBertModel.from_pretrained("bert-base-uncased", output_attentions=True)
>>> assert model.config.output_attentions == True
>>> # Loading from a Pytorch model file instead of a TensorFlow checkpoint (slower, for example purposes, not runnable).
>>> config = BertConfig.from_json_file("./pt_model/my_pt_model_config.json")
>>> model = TFBertModel.from_pretrained("./pt_model/my_pytorch_model.bin", from_pt=True, config=config)
get_bias

<来源>

( ) → export const metadata = 'undefined';tf.Variable

返回

tf.Variable

表示偏置的权重,如果不是 LM 模型则为 None。

附加到 LM head 的偏置的字典。键表示偏置属性的名称。

get_head_mask

<来源>

( head_mask: tf.Tensor | None num_hidden_layers: int )

参数

  • head_mask (tf.Tensor,形状为 [num_heads][num_hidden_layers x num_heads]可选) — 指示我们是否应保留头部的掩码(保留为 1.0,丢弃为 0.0)。
  • num_hidden_layers (int) — 模型中的隐藏层数量。

如果需要,准备头部掩码。

get_input_embeddings

<来源>

( ) → export const metadata = 'undefined';tf.Variable

返回

tf.Variable

将词汇映射到隐藏状态的嵌入层。

返回模型的输入嵌入层。

get_lm_head

<来源>

( ) → export const metadata = 'undefined';tf.keras.layers.Layer

返回

tf.keras.layers.Layer

如果模型有 LM head 层,则为 LM head 层,否则为 None。

LM Head 层。该方法必须被所有具有 lm head 的模型覆盖。

get_output_embeddings

<来源>

( ) → export const metadata = 'undefined';tf.Variable

返回

tf.Variable

将词汇映射到隐藏状态的新权重。

返回模型的输出嵌入

get_output_layer_with_bias

<来源>

( ) → export const metadata = 'undefined';tf.keras.layers.Layer

返回

tf.keras.layers.Layer

处理偏置的层,如果不是 LM 模型则为 None。

获取处理偏置属性的层,如果模型具有将权重绑定到嵌入的 LM head

get_prefix_bias_name

<来源>

( ) → export const metadata = 'undefined';str

返回

str

偏置的连接前缀名称。

从模型名称到父层的偏置的连接前缀名称

load_repo_checkpoint

<来源>

( repo_path_or_name ) → export const metadata = 'undefined';dict

参数

  • repo_path_or_name (str) — 可以是 Hub 中您的 {object} 的存储库名称,也可以是本地文件夹的路径(在这种情况下,存储库将使用该本地文件夹的名称)。

返回

dict

来自检查点的额外元数据字典,通常是“时代”计数。

从存储库加载已保存的检查点(模型权重和优化器状态)。返回检查点生成时的当前时代计数。

prepare_tf_dataset

<来源>

( dataset: 'datasets.Dataset' batch_size: int = 8 shuffle: bool = True tokenizer: Optional['PreTrainedTokenizerBase'] = None collate_fn: Optional[Callable] = None collate_fn_args: Optional[Dict[str, Any]] = None drop_remainder: Optional[bool] = None prefetch: bool = True ) → export const metadata = 'undefined';Dataset

参数

  • dataset (Any) — 要包装为 tf.data.Dataset 的 [~datasets.Dataset]。
  • batch_size (int,默认为 8) — 要返回的批次大小。
  • shuffle (bool,默认为 True) — 是否以随机顺序返回数据集中的样本。通常对于训练数据集为 True,对于验证/测试数据集为 False
  • tokenizer(PreTrainedTokenizerBase,可选) — 用于填充样本以创建批次的 PreTrainedTokenizer。如果传递了特定的 collate_fn,则不会产生影响。
  • collate_fn (Callable可选) — 一个将数据集中的样本整理成单个批次的函数。如果未提供 tokenizer,则默认为 DefaultDataCollator,如果传递了 tokenizer,则为 DataCollatorWithPadding
  • collate_fn_args (Dict[str, Any], 可选) — 传递给collate_fn的参数字典,以及样本列表。
  • drop_remainder (bool, 可选) — 是否丢弃最后一个批次,如果批次大小不能整除数据集长度。默认设置与shuffle相同。
  • prefetch (bool, 默认为 True) — 是否在tf.data管道的末尾添加预取。这几乎总是有利于性能,但在边缘情况下可以禁用。

返回

Dataset

一个准备传递给 Keras API 的tf.data.Dataset

将 HuggingFace Dataset包装为带有整理和批处理的tf.data.Dataset。此方法旨在创建一个“即插即用”的数据集,可以直接传递给 Keras 方法,如fit(),而无需进一步修改。如果数据集中的列与模型的输入名称不匹配,该方法将删除这些列。如果您想指定要返回的列名,而不是使用与此模型匹配的名称,我们建议使用Dataset.to_tf_dataset()

prune_heads

<来源>

( heads_to_prune )

参数

  • heads_to_prune (Dict[int, List[int]]) — 键为选定的层索引(int)的字典,相关值为要在该层中修剪的头部列表(int列表)。例如,{1: [0, 2], 2: [2, 3]}将在第 1 层修剪头部 0 和 2,在第 2 层修剪头部 2 和 3。

修剪基础模型的头部。

register_for_auto_class

<来源>

( auto_class = 'TFAutoModel' )

参数

  • auto_class (strtype, 可选, 默认为 "TFAutoModel") — 要注册此新模型的自动类。

使用给定的自动类注册此类。这应仅用于自定义模型,因为库中的模型已经与自动类映射。

此 API 是实验性的,可能在下一个版本中有一些轻微的破坏性更改。

resize_token_embeddings

<来源>

( new_num_tokens: Optional[int] = None ) → export const metadata = 'undefined';tf.Variable or tf.keras.layers.Embedding

参数

  • new_num_tokens (int, 可选) — 嵌入矩阵中的新标记数量。增加大小将在末尾添加新初始化的向量。减小大小将从末尾删除向量。如果未提供或为None,则只返回指向输入标记的指针,而不执行任何操作。

返回

tf.Variabletf.keras.layers.Embedding

模型的输入标记的指针。

如果new_num_tokens != config.vocab_size,则调整模型的输入标记嵌入矩阵大小。

如果模型类具有tie_weights()方法,则在之后处理权重嵌入。

save_pretrained

<来源>

( save_directory saved_model = False version = 1 push_to_hub = False signatures = None max_shard_size: Union[int, str] = '10GB' create_pr: bool = False safe_serialization: bool = False token: Optional[Union[str, bool]] = None **kwargs )

参数

  • save_directory (str) — 要保存到的目录。如果不存在,将创建该目录。
  • saved_model (bool, 可选, 默认为 False) — 是否还要将模型保存为 saved model 格式。
  • version (int, 可选, 默认为 1) — 已保存模型的版本。为了能够被 TensorFlow Serving 正确加载,保存的模型需要进行版本化,详细信息请参阅官方文档www.tensorflow.org/tfx/serving/serving_basic
  • push_to_hub (bool, 可选, 默认为 False) — 是否在保存后将模型推送到 Hugging Face 模型中心。您可以使用repo_id指定要推送到的存储库(将默认为您的命名空间中的save_directory名称)。
  • signatures (dicttf.function, 可选) — 用于 serving 的模型签名。这将传递给 model.save()的signatures参数。
  • max_shard_size (intstr, 可选, 默认为 "10GB") - 在分片之前的检查点的最大大小。然后,检查点分片将小于此大小。如果表示为字符串,需要是数字后跟一个单位(如 "5MB")。
    如果模型的单个权重大于 max_shard_size,它将在自己的检查点分片中,该分片将大于 max_shard_size
  • create_pr (bool, 可选, 默认为 False) - 是否创建带有上传文件的 PR 或直接提交。
  • safe_serialization (bool, 可选, 默认为 False) - 是否使用 safetensors 或传统的 TensorFlow 方式(使用 h5)保存模型。
  • token (strbool, 可选) - 用作远程文件的 HTTP bearer 授权的令牌。如果为 True,或未指定,将使用运行 huggingface-cli login 时生成的令牌(存储在 ~/.huggingface 中)。
  • kwargs (Dict[str, Any], 可选) - 传递给 push_to_hub() 方法的额外关键字参数。

将模型及其配置文件保存到目录中,以便可以使用 from_pretrained() 类方法重新加载。

serving
( inputs )

参数

  • 用于提供模型的方法。没有特定的签名,但将作为具体的专业化 -
  • 使用 save_pretrained 保存时的 functions。 - 输入(Dict[str, tf.Tensor]):保存模型的输入,作为张量字典。
serving_output

<来源>

( output )

准备保存模型的输出。如果需要特定的服务修改,可以进行覆盖。

set_bias

<来源>

( value )

参数

  • value (Dict[tf.Variable]) - 附加到 LM 头部的所有新偏置。

设置 LM 头部中的所有偏置。

set_input_embeddings

<来源>

( value )

参数

  • value (tf.Variable) - 将隐藏状态映射到词汇表的新权重。

设置模型的输入嵌入

set_output_embeddings

<来源>

( value )

参数

  • value (tf.Variable) - 将隐藏状态映射到词汇表的新权重。

设置模型的输出嵌入

test_step

<来源>

( data )

对 Keras 默认的 train_step 进行修改,正确处理模型输出与标签的匹配,并支持直接在损失输出头上进行训练。此外,它确保适当时将输入键复制到标签中。当使用虚拟损失时,它还会将标签键复制到输入字典中,以确保它们在前向传递期间对模型可用。

train_step

<来源>

( data )

对 Keras 默认的 train_step 进行修改,正确处理模型输出与标签的匹配,并支持直接在损失输出头上进行训练。此外,它确保适当时将输入键复制到标签中。当使用虚拟损失时,它还会将标签键复制到输入字典中,以确保它们在前向传递期间对模型可用。

TFModelUtilsMixin

class transformers.modeling_tf_utils.TFModelUtilsMixin

<来源>

( )

用于 tf.keras.Model 的一些实用程序,可用作混合。

num_parameters

< source >

( only_trainable: bool = False ) → export const metadata = 'undefined';int

参数

  • only_trainable (bool, optional, 默认为 False) — 是否仅返回可训练参数的数量

返回

int

参数数量。

获取模型中的(可选的可训练)参数数量。


Transformers 4.37 中文文档(十四)(7)https://developer.aliyun.com/article/1564961

相关文章
|
4月前
|
PyTorch TensorFlow 调度
Transformers 4.37 中文文档(十五)(5)
Transformers 4.37 中文文档(十五)
53 1
Transformers 4.37 中文文档(十五)(5)
|
4月前
|
存储 缓存 安全
Transformers 4.37 中文文档(十四)(7)
Transformers 4.37 中文文档(十四)
36 4
|
4月前
|
存储 PyTorch 测试技术
Transformers 4.37 中文文档(十四)(5)
Transformers 4.37 中文文档(十四)
56 4
|
4月前
|
存储 缓存 PyTorch
Transformers 4.37 中文文档(十四)(4)
Transformers 4.37 中文文档(十四)
92 4
|
4月前
|
存储 自然语言处理 算法
Transformers 4.37 中文文档(十四)(3)
Transformers 4.37 中文文档(十四)
68 4
|
4月前
|
存储 数据可视化 PyTorch
Transformers 4.37 中文文档(十四)(1)
Transformers 4.37 中文文档(十四)
70 1
|
4月前
|
存储 JSON 算法框架/工具
Transformers 4.37 中文文档(十四)(2)
Transformers 4.37 中文文档(十四)
56 1
|
4月前
|
存储
Transformers 4.37 中文文档(十五)(2)
Transformers 4.37 中文文档(十五)
62 1
|
4月前
|
自然语言处理 算法 PyTorch
Transformers 4.37 中文文档(十五)(4)
Transformers 4.37 中文文档(十五)
49 1
|
4月前
|
存储 JSON 缓存
Transformers 4.37 中文文档(十五)(1)
Transformers 4.37 中文文档(十五)
78 1