Keras 回调函数
使用 Keras 训练 Transformers 模型时,有一些库特定的回调函数可用于自动化常见任务。
KerasMetricCallback
类 transformers.KerasMetricCallback
< 源代码 >( metric_fn: Callable eval_dataset: Union output_cols: Optional = None label_cols: Optional = None batch_size: Optional = None predict_with_generate: bool = False use_xla_generation: bool = False generate_kwargs: Optional = None )
参数
- metric_fn (
Callable
) — 用户提供的指标函数。它将使用两个参数调用 -predictions
和labels
。这些包含模型的输出和来自数据集的匹配标签。它应该返回一个字典,将指标名称映射到数值。 - eval_dataset (
tf.data.Dataset
或dict
或tuple
或np.ndarray
或tf.Tensor
) — 用于为metric_fn
生成预测的验证数据。 - output_cols (`List[str], 可选) — 要从模型输出中作为预测保留的一列列名称。默认为全部。
- label_cols (’
List[str]
, 可选’) — 要从输入数据集中作为标签保留的一列列名称。如果未提供,将自动检测。 - batch_size (
int
, 可选) — 批次大小。仅在数据不是预先批处理的tf.data.Dataset
时使用。 - predict_with_generate (
bool
, 可选,默认为False
) — 我们是否应该使用model.generate()
来获取模型的输出。 - use_xla_generation (
bool
, 可选,默认为False
) — 如果我们正在生成,是否使用 XLA 编译模型生成。这可以大大提高生成速度(最高可提高 100 倍),但需要为每个输入形状进行新的 XLA 编译。使用 XLA 生成时,最好将输入填充到相同的大小,或者在tokenizer
或DataCollator
中使用pad_to_multiple_of
参数,这将减少唯一输入形状的数量并节省大量编译时间。如果predict_with_generate
为False
,则此选项无效。
PushToHubCallback
类 transformers.PushToHubCallback
< 源代码 >( output_dir: Union save_strategy: Union = 'epoch' save_steps: Optional = None tokenizer: Optional = None hub_model_id: Optional = None hub_token: Optional = None checkpoint: bool = False **model_card_args )
参数
- output_dir (
str
) — 模型预测和检查点将被写入并与 Hub 上的存储库同步的输出目录。 - save_strategy (
str
或 IntervalStrategy, 可选,默认为"epoch"
) — 训练期间采用的检查点保存策略。可能的值为:"no"
:在训练结束时保存。"epoch"
:在每个 epoch 结束时保存。"steps"
:每隔save_steps
保存。
- save_steps (
int
, 可选) — 使用“steps”save_strategy
时,保存之间的步数。 - tokenizer (
PreTrainedTokenizerBase
, 可选) — 模型使用的分词器。如果提供,将与权重一起上传到存储库。 - hub_model_id (
str
, 可选) — 用于与本地output_dir
保持同步的存储库的名称。它可以是一个简单的模型 ID,在这种情况下,模型将推送到您的命名空间。否则,它应该是整个存储库名称,例如"user_name/model"
,这允许您使用"organization_name/model"
推送到您是成员的组织。默认为
output_dir
的名称。 - hub_token (
str
, 可选) — 用于将模型推送到 Hub 的令牌。默认为huggingface-cli login
获取的缓存文件夹中的令牌。 - checkpoint (
bool
, 可选,默认为False
) — 是否保存完整的训练检查点(包括 epoch 和优化器状态)以允许恢复训练。仅当save_strategy
为"epoch"
时可用。
此回调函数会定期保存模型并将其推送到 Hub。默认情况下,它会在每个 epoch 推送一次,但可以通过 save_strategy
参数更改。推送的模型可以像 Hub 上的任何其他模型一样访问,例如使用 from_pretrained
方法。