SetFit 文档

训练器类

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

训练器类

TrainingArguments

class setfit.TrainingArguments

< >

( output_dir: str = 'checkpoints' batch_size: Union[int, Tuple[int, int]] = (16, 2) num_epochs: Union[int, Tuple[int, int]] = (1, 16) max_steps: int = -1 sampling_strategy: str = 'oversampling' num_iterations: Optional[int] = None body_learning_rate: Union[float, Tuple[float, float]] = (2e-05, 1e-05) head_learning_rate: float = 0.01 loss: Callable = <class 'sentence_transformers.losses.CosineSimilarityLoss.CosineSimilarityLoss'> distance_metric: Callable = <function BatchHardTripletLossDistanceFunction.cosine_distance at 0x7f6ba8de5750> margin: float = 0.25 end_to_end: bool = False use_amp: bool = False warmup_proportion: float = 0.1 l2_weight: Optional[float] = 0.01 max_length: Optional[int] = None samples_per_label: int = 2 show_progress_bar: bool = True seed: int = 42 report_to: str = 'all' run_name: Optional[str] = None logging_dir: Optional[str] = None logging_strategy: str = 'steps' logging_first_step: bool = True logging_steps: int = 50 eval_strategy: str = 'no' evaluation_strategy: Optional[str] = None eval_steps: Optional[int] = None eval_delay: int = 0 eval_max_steps: int = -1 save_strategy: str = 'steps' save_steps: int = 500 save_total_limit: Optional[int] = 1 load_best_model_at_end: bool = False metric_for_best_model: Optional[str] = 'embedding_loss' greater_is_better: bool = False )

参数

  • output_dir (str, 默认为 "checkpoints") — 模型预测和检查点将被写入的输出目录。
  • batch_size (Union[int, Tuple[int, int]], 默认为 (16, 2)) — 分别设置嵌入和分类器训练阶段的批量大小,如果提供整数,则同时设置两者。请注意,分类器的批量大小仅在使用可微分 PyTorch 头时使用。
  • num_epochs (Union[int, Tuple[int, int]], 默认为 (1, 16)) — 分别设置嵌入和分类器训练阶段的 epoch 数量,如果提供整数,则同时设置两者。请注意,分类器的 epoch 数量仅在使用可微分 PyTorch 头时使用。
  • max_steps (int, 默认为 -1) — 如果设置为正数,则执行的总训练步数。覆盖 num_epochs。当所有数据耗尽时,训练可能会在达到设置的步数之前停止。
  • sampling_strategy (str, 默认为 "oversampling") — 如何在训练中抽取pair的采样策略。可能的值有:

    • "oversampling": 抽取偶数数量的正/负句子对,直到每个句子对都被抽取过。
    • "undersampling": 抽取最少数量的正/负句子对,直到少数类中的每个句子对都被抽取过。
    • "unique": 抽取每个句子对组合(可能导致正/负句子对数量不平衡)。

    默认设置为 "oversampling",确保所有句子对至少被抽取一次。或者,设置 num_iterations 将覆盖此参数并确定生成的句子对的数量。

  • num_iterations (int, 可选) — 如果未设置,则 sampling_strategy 将决定要生成的句子对的数量。此参数设置生成句子对的迭代次数,并提供与 Setfit <v1.0.0 的兼容性。如果使用 triplet 损失,则忽略此参数。它仅与 CosineSimilarityLoss 结合使用。</v1.0.0>
  • body_learning_rate (Union[float, Tuple[float, float]], 默认为 (2e-5, 1e-5)) — 分别设置 SentenceTransformer 主体在嵌入和分类器训练阶段的学习率,如果提供浮点数,则同时设置两者。请注意,分类器的主体学习率仅在使用可微分 PyTorch 头 end_to_end=True 时使用。
  • head_learning_rate (float, 默认为 1e-2) — 设置分类器训练阶段 head 的学习率。仅在使用可微分 PyTorch head 时使用。
  • loss (nn.Module, 默认为 CosineSimilarityLoss) — 用于嵌入训练阶段对比学习的损失函数。
  • distance_metric (Callable, 默认为 BatchHardTripletLossDistanceFunction.cosine_distance) — 返回两个嵌入之间距离的函数。它为 triplet 损失设置,并为 CosineSimilarityLossSupConLoss 忽略。
  • margin (float, 默认为 0.25) — triplet 损失的 margin。负样本应至少比正样本更远离锚点 margin。它为 CosineSimilarityLossBatchHardSoftMarginTripletLossSupConLoss 忽略。
  • end_to_end (bool, 默认为 False) — 如果为 True,则在分类器训练阶段端到端地训练整个模型。否则,冻结 SentenceTransformer 主体并仅训练 head。仅在使用可微分 PyTorch head 时使用。
  • use_amp (bool, 默认为 False) — 是否在嵌入训练阶段使用自动混合精度 (AMP)。仅适用于 Pytorch >= 1.6.0
  • warmup_proportion (float, 默认为 0.1) — 预热在总训练步骤中的比例。必须大于或等于 0.0 且小于或等于 1.0。
  • l2_weight (float, optional) — 模型主体和头部可选的l2权重,如果使用了可微分的PyTorch头部,则在分类器训练阶段传递给 AdamW 优化器。
  • max_length (int, optional) — tokenizer可以生成的最长token长度。如果未提供,则使用 SentenceTransformer 主体的最大长度。
  • samples_per_label (int, defaults to 2) — 每个标签抽取的连续、随机且唯一的样本数。这仅与 triplet loss 相关,对于 CosineSimilarityLoss 将被忽略。 Batch size 应为 samples_per_label 的倍数。
  • show_progress_bar (bool, defaults to True) — 是否显示训练 epochs 和迭代的进度条。
  • seed (int, defaults to 42) — 在训练开始时设置的随机种子。为了确保跨运行的可重复性,如果模型具有一些随机初始化的参数,请使用 model_init 参数来实例化 Trainer
  • report_to (str or List[str], optional, defaults to "all") — 用于报告结果和日志的集成列表。支持的平台有 "azure_ml""comet_ml""mlflow""neptune""tensorboard""clearml""wandb"。 使用 "all" 报告给所有已安装的集成,使用 "none" 不进行任何集成。
  • run_name (str, optional) — 运行的描述符。通常用于 wandbmlflow 日志记录。
  • logging_dir (str, optional) — TensorBoard 日志目录。将默认为 *runs/CURRENT_DATETIME_HOSTNAME*
  • logging_strategy (str or IntervalStrategy, optional, defaults to "steps") — 训练期间采用的日志记录策略。 可能的值为:

    • "no":训练期间不进行日志记录。
    • "epoch":在每个epoch结束时进行日志记录。
    • "steps":每 logging_steps 步进行日志记录。
  • logging_first_step (bool, optional, defaults to False) — 是否记录和评估第一个 global_step
  • logging_steps (int, defaults to 50) — 如果 logging_strategy="steps",则两个日志之间的更新步数。
  • eval_strategy (str or IntervalStrategy, optional, defaults to "no") — 训练期间采用的评估策略。 可能的值为:

    • "no":训练期间不进行评估。
    • "steps":每 eval_steps 步进行评估(并记录日志)。
    • "epoch":在每个epoch结束时进行评估。
  • eval_steps (int, optional) — 如果 eval_strategy="steps",则两个评估之间的更新步数。 如果未设置,则默认为与 logging_steps 相同的值。
  • eval_delay (float, optional) — 在执行首次评估之前等待的 epochs 或步数,具体取决于 eval_strategy。
  • eval_max_steps (int, defaults to -1) — 如果设置为正数,则执行的评估步骤总数。 当所有数据耗尽时,评估可能会在达到设置的步数之前停止。
  • save_strategy (str or IntervalStrategy, optional, defaults to "steps") — 训练期间采用的检查点保存策略。 可能的值为:

    • "no":训练期间不进行保存。
    • "epoch":在每个epoch结束时进行保存。
    • "steps":每 save_steps 步进行保存。
  • save_steps (int, optional, defaults to 500) — 如果 save_strategy="steps",则两个检查点保存之间的更新步数。
  • save_total_limit (int, optional, defaults to 1) — 如果传递一个值,将限制检查点的总数。 删除 output_dir 中较旧的检查点。 注意,如果 eval_strategy 不是 "no",则始终保留最佳模型。
  • load_best_model_at_end (bool, optional, defaults to False) — 是否在训练结束时加载训练期间找到的最佳模型。

    当设置为 True 时,参数 save_strategy 需要与 eval_strategy 相同,并且如果是 “steps”,则 save_steps 必须是 eval_steps 的整数倍。

TrainingArguments 是与训练循环本身相关的参数子集。 请注意,使用 SetFit 进行训练在幕后包含两个阶段:微调嵌入训练分类头部。 因此,一些训练参数可以是元组,其中两个值分别用于两个阶段。 第二个值通常仅在使用 use_differentiable_head=True 加载模型时使用。

to_dict

< >

( ) Dict[str, Any]

Returns

Dict[str, Any]

此数据类的字典变体。

将此实例转换为字典。

from_dict

< >

( arguments: Dict[str, Any] ignore_extra: bool = False ) TrainingArguments

参数

  • arguments (Dict[str, Any]) — 参数字典。
  • ignore_extra (bool, optional) — 是否忽略 TrainingArguments init 签名中未出现的参数。 默认为 False。

Returns

TrainingArguments

实例化的 TrainingArguments 实例。

从字典初始化 TrainingArguments 实例。

copy

< >

( )

创建此 TrainingArguments 实例的浅拷贝。

update

< >

( arguments: Dict[str, Any] ignore_extra: bool = False )

Trainer

class setfit.Trainer

< >

( model: typing.Optional[ForwardRef('SetFitModel')] = None args: typing.Optional[setfit.training_args.TrainingArguments] = None train_dataset: typing.Optional[ForwardRef('Dataset')] = None eval_dataset: typing.Optional[ForwardRef('Dataset')] = None model_init: typing.Optional[typing.Callable[[], ForwardRef('SetFitModel')]] = None metric: typing.Union[str, typing.Callable[[ForwardRef('Dataset'), ForwardRef('Dataset')], typing.Dict[str, float]]] = 'accuracy' metric_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None callbacks: typing.Optional[typing.List[transformers.trainer_callback.TrainerCallback]] = None column_mapping: typing.Optional[typing.Dict[str, str]] = None )

参数

  • model (SetFitModel, 可选) — 要训练的模型。如果未提供,则必须传递 model_init
  • args (TrainingArguments, 可选) — 要使用的训练参数。
  • train_dataset (Dataset) — 训练数据集。
  • eval_dataset (Dataset, 可选) — 评估数据集。
  • model_init (Callable[[], SetFitModel], 可选) — 一个实例化要使用的模型的函数。如果提供,则每次调用 Trainer.train() 时,当传递 trial 时,都将从此函数给出的模型的新实例开始。
  • metric (strCallable, 可选, 默认为 "accuracy") — 用于评估的指标。如果提供字符串,我们将其视为指标名称并使用默认设置加载它。如果提供可调用对象,它必须接受两个参数 (y_pred, y_test) 并返回一个包含指标键值对的字典。
  • metric_kwargs (Dict[str, Any], 可选) — 关键字参数,如果 metric 是像 “f1” 这样的评估字符串,则传递给评估函数。例如,在多标签设置中,对于提供用于计算 f1 的平均策略很有用。
  • callbacks (List[``TrainerCallback``], 可选) — 用于自定义训练循环的回调列表。 将这些添加到 此处 详述的默认回调列表中。 如果您想删除使用的默认回调之一,请使用 Trainer.remove_callback() 方法。
  • column_mapping (Dict[str, str], 可选) — 从数据集中的列名到模型期望的列名的映射。 期望的格式是一个字典,格式如下:{"text_column_name": "text", "label_column_name: "label"}

用于训练 SetFit 模型的 Trainer。

add_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )

参数

  • callback (typeTrainerCallback) — TrainerCallback 类或 TrainerCallback 的实例。在第一种情况下,将实例化该类的成员。

将回调添加到当前的 TrainerCallback 列表中。

apply_hyperparameters

< >

( params: typing.Dict[str, typing.Any] final_model: bool = False )

参数

  • params (Dict[str, Any]) — 参数,通常来自 BestRun.hyperparameters
  • final_model (bool, 可选, 默认为 False) — 如果为 True,则使用基于参数的固定模型替换 model_init() 函数。

将超参数字典应用于训练器和模型

evaluate

< >

( dataset: typing.Optional[datasets.arrow_dataset.Dataset] = None metric_key_prefix: str = 'test' ) Dict[str, float]

参数

  • dataset (Dataset, 可选) — 要在其上计算指标的数据集。 如果未提供,将使用在 Trainer 初始化时通过 eval_dataset 参数传递的评估数据集。

Returns

Dict[str, float]

评估指标。

计算给定分类器的指标。

hyperparameter_search

< >

( hp_space: typing.Optional[typing.Callable[[ForwardRef('optuna.Trial')], typing.Dict[str, float]]] = None compute_objective: typing.Optional[typing.Callable[[typing.Dict[str, float]], float]] = None n_trials: int = 10 direction: str = 'maximize' backend: typing.Union[ForwardRef('str'), transformers.trainer_utils.HPSearchBackend, NoneType] = None hp_name: typing.Optional[typing.Callable[[ForwardRef('optuna.Trial')], str]] = None **kwargs ) trainer_utils.BestRun

参数

  • hp_space (Callable[["optuna.Trial"], Dict[str, float]], 可选) — 定义超参数搜索空间的功能。将默认为 default_hp_space_optuna
  • compute_objective (Callable[[Dict[str, float]], float], 可选) — 一个函数,用于从 evaluate 方法返回的指标计算要最小化或最大化的目标。 将默认为 default_compute_objective,它使用指标的总和。
  • n_trials (int, 可选, 默认为 100) — 要测试的试验运行次数。
  • direction (str, 可选, 默认为 "maximize") — 是否优化更大或更小的对象。 可以是 "minimize""maximize",当优化验证损失时应选择 "minimize",当优化一个或多个指标时应选择 "maximize"
  • backend (strHPSearchBackend, 可选) — 用于超参数搜索的后端。目前仅支持 optuna。 TODO:添加对 ray 和 sigopt 的支持。
  • hp_name (Callable[["optuna.Trial"], str]], 可选) — 定义 trial/run 名称的函数。 将默认为 None。
  • kwargs (Dict[str, Any], 可选) — 传递给 optuna.create_study 的其他关键字参数。 有关更多信息,请参见:

Returns

trainer_utils.BestRun

有关最佳运行的所有信息。

使用 optuna 启动超参数搜索。 优化的量由 compute_objective 确定,当未提供指标时,它默认为返回评估损失的函数,否则为所有指标的总和。

要使用此方法,您需要在初始化 Trainer 时提供 model_init:我们需要在每次新运行时重新初始化模型。

pop_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] ) TrainerCallback

参数

  • callback (typeTrainerCallback) — TrainerCallback 类或 TrainerCallback 的实例。 在第一种情况下,将弹出在回调列表中找到的该类的第一个成员。

Returns

TrainerCallback

删除的回调,如果找到。

从当前的 TrainerCallback 列表中删除回调并返回它。

如果未找到回调,则返回 None(并且不会引发错误)。

push_to_hub

< >

( repo_id: str **kwargs ) str

参数

  • repo_id (str) — 要推送到的完整仓库 ID,例如 "tomaarsen/setfit-sst2"
  • config (dict, optional) — 要与模型权重一起保存的配置对象。
  • commit_message (str, optional) — 推送时要提交的消息。
  • private (bool, optional) — 是否将仓库设为私有。如果为 None(默认),则仓库将是公开的,除非组织的默认设置为私有。如果仓库已存在,则忽略此值。
  • api_endpoint (str, optional) — 将模型推送到 hub 时要使用的 API 端点。
  • token (str, optional) — 用作远程文件的 HTTP Bearer 授权的令牌。如果未设置,将使用使用 transformers-cli login 登录时设置的令牌(存储在 ~/.huggingface 中)。
  • branch (str, optional) — 要在上面推送模型的分支。这默认为您的仓库中指定的默认分支,默认情况下为 "main"
  • create_pr (boolean, optional) — 是否从带有该提交的 branch 创建拉取请求。默认为 False
  • allow_patterns (List[str] or str, optional) — 如果提供,则仅推送与至少一个模式匹配的文件。
  • ignore_patterns (List[str] or str, optional) — 如果提供,则不推送与任何模式匹配的文件。

Returns

str

模型在给定仓库中提交的 URL。

使用 huggingface_hub 将模型检查点上传到 Hub。

请参阅 huggingface_hub 文档,了解您的 huggingface_hub 版本的完整参数列表。

remove_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )

参数

  • callback (typeTrainerCallback) — TrainerCallback 类或 TrainerCallback 的实例。在第一种情况下,将删除在该回调列表中找到的该类的第一个成员。

从当前的 TrainerCallback 列表中删除回调。

train

< >

( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )

参数

  • args (TrainingArguments, optional) — 临时更改此训练调用的训练参数。
  • trial (optuna.TrialDict[str, Any], optional) — 用于超参数搜索的 trial 运行或超参数字典。

主要的训练入口点。

train_classifier

< >

( x_train: typing.List[str] y_train: typing.Union[typing.List[int], typing.List[typing.List[int]]] args: typing.Optional[setfit.training_args.TrainingArguments] = None )

参数

  • x_train (List[str]) — 训练语句列表。
  • y_train (Union[List[int], List[List[int]]]) — 与训练语句对应的标签列表。
  • args (TrainingArguments, optional) — 临时更改此训练调用的训练参数。

执行分类器阶段的方法:拟合分类器头。

train_embeddings

< >

( x_train: typing.List[str] y_train: typing.Union[typing.List[int], typing.List[typing.List[int]], NoneType] = None x_eval: typing.Optional[typing.List[str]] = None y_eval: typing.Union[typing.List[int], typing.List[typing.List[int]], NoneType] = None args: typing.Optional[setfit.training_args.TrainingArguments] = None )

参数

  • x_train (List[str]) — 训练语句列表。
  • y_train (Union[List[int], List[List[int]]]) — 与训练语句对应的标签列表。
  • args (TrainingArguments, optional) — 临时更改此训练调用的训练参数。

执行嵌入阶段的方法:微调 SentenceTransformer 主体。

DistillationTrainer

class setfit.DistillationTrainer

< >

( teacher_model: SetFitModel student_model: typing.Optional[ForwardRef('SetFitModel')] = None args: TrainingArguments = None train_dataset: typing.Optional[ForwardRef('Dataset')] = None eval_dataset: typing.Optional[ForwardRef('Dataset')] = None model_init: typing.Optional[typing.Callable[[], ForwardRef('SetFitModel')]] = None metric: typing.Union[str, typing.Callable[[ForwardRef('Dataset'), ForwardRef('Dataset')], typing.Dict[str, float]]] = 'accuracy' column_mapping: typing.Optional[typing.Dict[str, str]] = None )

参数

  • teacher_model (SetFitModel) — 要模仿的教师模型。
  • student_model (SetFitModel, optional) — 要训练的模型。如果未提供,则必须传递 model_init
  • args (TrainingArguments, optional) — 要使用的训练参数。
  • train_dataset (Dataset) — 训练数据集。
  • eval_dataset (Dataset, optional) — 评估数据集。(可选)
  • model_init (Callable[[], SetFitModel], optional) — 用于实例化要使用的模型的功能函数。(可选)如果提供,则每次调用 train() 时,当传递 trial 时,都将从该函数给出的模型的新实例开始。
  • metric (str or Callable, optional, defaults to "accuracy") — 用于评估的指标。(可选,默认为 "accuracy")如果提供字符串,我们将其视为指标名称并使用默认设置加载它。如果提供可调用对象,它必须接受两个参数 (y_pred, y_test)。
  • column_mapping (Dict[str, str], optional) — 从数据集中的列名到模型预期列名的映射。(可选)预期的格式是具有以下格式的字典:{"text_column_name": "text", "label_column_name": "label"}

用于通过知识蒸馏压缩 SetFit 模型的 Trainer。

add_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )

参数

  • callback (type or TrainerCallback) — 一个 TrainerCallback 类或 TrainerCallback 的实例。在第一种情况下,将实例化该类的成员。

将回调添加到当前的 TrainerCallback 列表中。

apply_hyperparameters

< >

( params: typing.Dict[str, typing.Any] final_model: bool = False )

参数

  • params (Dict[str, Any]) — 参数,通常来自 BestRun.hyperparameters
  • final_model (bool, optional, defaults to False) — 如果为 True,则使用基于参数的固定模型替换 model_init() 函数。(可选,默认为 False

将超参数字典应用于训练器和模型

evaluate

< >

( dataset: typing.Optional[datasets.arrow_dataset.Dataset] = None metric_key_prefix: str = 'test' ) Dict[str, float]

参数

  • dataset (Dataset, optional) — 用于计算指标的数据集。(可选)如果未提供,将使用在 Trainer 初始化时通过 eval_dataset 参数传递的评估数据集。

Returns

Dict[str, float]

评估指标。

计算给定分类器的指标。

hyperparameter_search

< >

( hp_space: typing.Optional[typing.Callable[[ForwardRef('optuna.Trial')], typing.Dict[str, float]]] = None compute_objective: typing.Optional[typing.Callable[[typing.Dict[str, float]], float]] = None n_trials: int = 10 direction: str = 'maximize' backend: typing.Union[ForwardRef('str'), transformers.trainer_utils.HPSearchBackend, NoneType] = None hp_name: typing.Optional[typing.Callable[[ForwardRef('optuna.Trial')], str]] = None **kwargs ) trainer_utils.BestRun

参数

  • hp_space (Callable[["optuna.Trial"], Dict[str, float]], optional) — 定义超参数搜索空间的功能函数。(可选)将默认为 default_hp_space_optuna
  • compute_objective (Callable[[Dict[str, float]], float], optional) — 一个功能函数,用于从 evaluate 方法返回的指标中计算要最小化或最大化的目标值。(可选)将默认为 default_compute_objective,它使用指标的总和。
  • n_trials (int, optional, defaults to 100) — 要测试的试验运行次数。(可选,默认为 100)
  • direction (str, optional, defaults to "maximize") — 是否优化更大的或更小的对象。(可选,默认为 "maximize")可以是 "minimize""maximize",当优化验证损失时应选择 "minimize",当优化一个或多个指标时应选择 "maximize"
  • backend (str or HPSearchBackend, optional) — 用于超参数搜索的后端。(可选)目前仅支持 optuna。TODO:添加对 ray 和 sigopt 的支持。
  • hp_name (Callable[["optuna.Trial"], str]], optional) — 定义试验/运行名称的功能函数。(可选)将默认为 None。
  • kwargs (Dict[str, Any], optional) — 传递给 optuna.create_study 的其他关键字参数。(可选)有关更多信息,请参阅:

Returns

trainer_utils.BestRun

有关最佳运行的所有信息。

使用 optuna 启动超参数搜索。 优化的量由 compute_objective 确定,当未提供指标时,它默认为返回评估损失的函数,否则为所有指标的总和。

要使用此方法,您需要在初始化 Trainer 时提供 model_init:我们需要在每次新运行时重新初始化模型。

pop_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] ) TrainerCallback

参数

  • callback (type or TrainerCallback) — 一个 TrainerCallback 类或 TrainerCallback 的实例。在第一种情况下,将弹出在回调列表找到的该类的第一个成员。

Returns

TrainerCallback

删除的回调,如果找到。

从当前的 TrainerCallback 列表中删除回调并返回它。

如果未找到回调,则返回 None(并且不会引发错误)。

push_to_hub

< >

( repo_id: str **kwargs ) str

参数

  • repo_id (str) — 要推送到的完整仓库 ID,例如 "tomaarsen/setfit-sst2"
  • config (dict, optional) — 要与模型权重一起保存的配置对象。(可选)
  • commit_message (str, optional) — 推送时提交的消息。(可选)
  • private (bool, optional) — 是否将仓库设为私有。(可选)如果为 None(默认),则仓库将是公开的,除非组织的默认设置为私有。如果仓库已存在,则此值将被忽略。
  • api_endpoint (str, optional) — 将模型推送到 hub 时要使用的 API 终端节点。(可选)
  • token (str, optional) — 用作远程文件的 HTTP bearer 授权的令牌。(可选)如果未设置,将使用使用 transformers-cli login 登录时设置的令牌(存储在 ~/.huggingface 中)。
  • branch (str, optional) — 要在上面推送模型到的 git 分支。(可选)这默认为在您的仓库中指定的默认分支,默认情况下为 "main"
  • create_pr (boolean, 可选) — 是否从 branch 为该提交创建拉取请求。默认为 False
  • allow_patterns (List[str]str, 可选) — 如果提供,则仅推送与至少一个模式匹配的文件。
  • ignore_patterns (List[str]str, 可选) — 如果提供,则不推送与任何模式匹配的文件。

Returns

str

模型在给定仓库中提交的 URL。

使用 huggingface_hub 将模型检查点上传到 Hub。

请参阅 huggingface_hub 文档,了解您的 huggingface_hub 版本的完整参数列表。

remove_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )

参数

  • callback (typeTrainerCallback) — 一个 TrainerCallback 类或 TrainerCallback 的一个实例。在第一种情况下,将删除在回调列表找到的该类的第一个成员。

从当前的 TrainerCallback 列表中删除回调。

train

< >

( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )

参数

  • args (TrainingArguments, 可选) — 临时更改此训练调用的训练参数。
  • trial (optuna.TrialDict[str, Any], 可选) — 用于超参数搜索的试运行或超参数字典。

主要的训练入口点。

train_classifier

< >

( x_train: typing.List[str] args: typing.Optional[setfit.training_args.TrainingArguments] = None )

参数

  • x_train (List[str]) — 训练语句列表。
  • args (TrainingArguments, 可选) — 临时更改此训练调用的训练参数。

执行分类器阶段的方法:拟合学生分类器头部。

train_embeddings

< >

( x_train: typing.List[str] y_train: typing.Union[typing.List[int], typing.List[typing.List[int]], NoneType] = None x_eval: typing.Optional[typing.List[str]] = None y_eval: typing.Union[typing.List[int], typing.List[typing.List[int]], NoneType] = None args: typing.Optional[setfit.training_args.TrainingArguments] = None )

参数

  • x_train (List[str]) — 训练语句列表。
  • y_train (Union[List[int], List[List[int]]]) — 与训练语句对应的标签列表。
  • args (TrainingArguments, 可选) — 临时更改此训练调用的训练参数。

执行嵌入阶段的方法:微调 SentenceTransformer 主体。

AbsaTrainer

class setfit.AbsaTrainer

< >

( model: AbsaModel args: typing.Optional[setfit.training_args.TrainingArguments] = None polarity_args: typing.Optional[setfit.training_args.TrainingArguments] = None train_dataset: typing.Optional[ForwardRef('Dataset')] = None eval_dataset: typing.Optional[ForwardRef('Dataset')] = None metric: typing.Union[str, typing.Callable[[ForwardRef('Dataset'), ForwardRef('Dataset')], typing.Dict[str, float]]] = 'accuracy' metric_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None callbacks: typing.Optional[typing.List[transformers.trainer_callback.TrainerCallback]] = None column_mapping: typing.Optional[typing.Dict[str, str]] = None )

参数

  • model (AbsaModel) — 要训练的 AbsaModel 模型。
  • args (TrainingArguments, 可选) — 要使用的训练参数。如果未定义 polarity_args,则 args 同时用于方面和极性模型。
  • polarity_args (TrainingArguments, 可选) — 用于极性模型的训练参数。如果未定义,则 args 同时用于方面和极性模型。
  • train_dataset (Dataset) — 训练数据集。数据集必须包含 “text”、“span”、“label” 和 “ordinal” 列。
  • eval_dataset (Dataset, 可选) — 评估数据集。数据集必须包含 “text”、“span”、“label” 和 “ordinal” 列。
  • metric (strCallable, 可选, 默认为 "accuracy") — 用于评估的指标。如果提供字符串,我们将其视为指标名称并使用默认设置加载它。如果提供可调用对象,它必须接受两个参数 (y_pred, y_test)。
  • metric_kwargs (Dict[str, Any], 可选) — 如果 metric 是评估字符串(如 “f1”),则传递给评估函数的关键字参数。例如,在多标签设置中,对于计算 f1 的平均策略很有用。
  • callbacks (List[``TrainerCallback``], 可选) — 用于自定义训练循环的回调列表。 将这些添加到此处详述的默认回调列表中。 如果您想删除使用的默认回调之一,请使用 Trainer.remove_callback() 方法。
  • column_mapping (Dict[str, str], 可选) — 从数据集中的列名到模型期望的列名的映射。 预期格式是具有以下格式的字典:{"text_column_name": "text", "span_column_name": "span", "label_column_name: "label", "ordinal_column_name": "ordinal"}

用于训练 SetFit ABSA 模型的 Trainer。

add_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )

参数

  • callback (typeTrainerCallback) — 一个 TrainerCallback 类或 TrainerCallback 的一个实例。在第一种情况下,将实例化该类的一个成员。

将回调添加到当前的 TrainerCallback 列表中。

evaluate

< >

( dataset: typing.Optional[datasets.arrow_dataset.Dataset] = None ) Dict[str, Dict[str, float]]

参数

  • dataset (Dataset, 可选) — 用于计算指标的数据集。如果未提供,将使用在 Trainer 初始化时通过 eval_dataset 参数传递的评估数据集。

Returns

Dict[str, Dict[str, float]]

评估指标。

计算给定分类器的指标。

pop_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] ) Tuple[``TrainerCallback, TrainerCallback``]

参数

  • callback (typeTrainerCallback) — TrainerCallback 类或 TrainerCallback 的实例。在第一种情况下,将弹出在此回调列表找到的该类的第一个成员。

Returns

Tuple[``TrainerCallback, TrainerCallback``]

从方面和极性训练器中移除的回调(如果找到)。

从当前的 TrainerCallback 列表中删除回调并返回它。

如果未找到回调,则返回 None(并且不会引发错误)。

push_to_hub

< >

( repo_id: str polarity_repo_id: typing.Optional[str] = None **kwargs )

参数

  • repo_id (str) — 要推送到的完整仓库 ID,例如 "tomaarsen/setfit-aspect"
  • repo_id (str) — 要推送到的完整仓库 ID,例如 "tomaarsen/setfit-sst2"
  • config (dict, 可选) — 要与模型权重一起保存的配置对象。
  • commit_message (str, 可选) — 推送时提交的消息。
  • private (bool, 可选) — 是否将仓库设为私有。如果为 None (默认),则仓库将是公开的,除非组织的默认设置为私有。如果仓库已存在,则此值将被忽略。
  • api_endpoint (str, 可选) — 将模型推送到 hub 时要使用的 API 端点。
  • token (str, 可选) — 用作远程文件的 HTTP Bearer 授权的令牌。如果未设置,将使用通过 transformers-cli login 登录时设置的令牌(存储在 ~/.huggingface 中)。
  • branch (str, 可选) — 用于推送模型到的 git 分支。 默认为在您的仓库中指定的默认分支,默认为 "main"
  • create_pr (boolean, 可选) — 是否从带有该提交的 branch 创建拉取请求。默认为 False
  • allow_patterns (List[str]str, 可选) — 如果提供,则仅推送与至少一个模式匹配的文件。
  • ignore_patterns (List[str]str, 可选) — 如果提供,则不推送与任何模式匹配的文件。

使用 huggingface_hub 将模型检查点上传到 Hub。

请参阅 huggingface_hub 文档,了解您的 huggingface_hub 版本的完整参数列表。

remove_callback

< >

( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )

参数

  • callback (typeTrainerCallback) — TrainerCallback 类或 TrainerCallback 的实例。在第一种情况下,将移除在此回调列表中找到的该类的第一个成员。

从当前的 TrainerCallback 列表中删除回调。

train

< >

( args: typing.Optional[setfit.training_args.TrainingArguments] = None polarity_args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )

参数

  • args (TrainingArguments, 可选) — 临时更改此训练调用的方面训练参数。
  • polarity_args (TrainingArguments, 可选) — 临时更改此训练调用的极性训练参数。
  • trial (optuna.TrialDict[str, Any], 可选) — 用于超参数搜索的 trial 运行或超参数字典。

主要的训练入口点。

train_aspect

< >

( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )

参数

  • args (TrainingArguments, 可选) — 临时更改此训练调用的方面训练参数。
  • trial (optuna.TrialDict[str, Any], 可选) — 用于超参数搜索的 trial 运行或超参数字典。

仅训练方面模型。

train_polarity

< >

( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )

参数

  • args (TrainingArguments, 可选) — 临时更改此训练调用的方面训练参数。
  • trial (optuna.TrialDict[str, Any], 可选) — 用于超参数搜索的 trial 运行或超参数字典。

仅训练极性模型。

< > 在 GitHub 上更新