SetFit 文档

训练器类

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

训练器类

TrainingArguments

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 0x7f2cdea71ea0> 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") — 训练中如何抽取对的采样策略。可能的值有:

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

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

  • num_iterations (int, 可选) — 如果未设置,sampling_strategy将决定要生成的句子对的数量。此参数设置生成句子对的迭代次数,并与Setfit 兼容。如果使用三元组损失,此参数将被忽略。它仅与CosineSimilarityLoss一起使用。
  • head_learning_rate (float, 默认为 1e-2) — 设置分类器训练阶段的头部学习率。仅与可微分 PyTorch 头一起使用。
  • distance_metric (Callable, 默认为 BatchHardTripletLossDistanceFunction.cosine_distance) — 返回两个嵌入之间距离的函数。它用于三元组损失,对于CosineSimilarityLossSupConLoss则被忽略。
  • end_to_end (bool, 默认为 False) — 如果为 True,则在分类器训练阶段对整个模型进行端到端训练。否则,冻结SentenceTransformer主体并仅训练头部。仅与可微分 PyTorch 头一起使用。
  • warmup_proportion (float, 默认为 0.1) — 预热占总训练步数的比例。必须大于或等于 0.0 且小于或等于 1.0。
  • l2_weight (float, 可选) — 可选的 l2 权重,用于模型主体和头部,在分类器训练阶段如果使用可微分 PyTorch 头,则将其传递给 AdamW 优化器。
  • max_length (int, 可选) — 标记器可以生成的最大令牌长度。如果未提供,将使用SentenceTransformer主体的最大长度。
  • samples_per_label (int, 默认为 2) — 每个标签连续、随机且唯一的样本数。这仅与三元组损失相关,对于CosineSimilarityLoss则被忽略。批量大小应为 samples_per_label 的倍数。
  • seed (int, 默认为 42) — 将在训练开始时设置的随机种子。为了确保跨运行的可复现性,如果模型有一些随机初始化的参数,请使用Trainermodel_init参数来实例化模型。
  • "azure_ml""comet_ml""mlflow""neptune""tensorboard""clearml""wandb"。使用 "all" 报告给所有已安装的集成,"none" 表示不集成。
  • mlflow 日志记录。
  • 日志目录。默认为 *runs/CURRENT_DATETIME_HOSTNAME*
    • "no": 训练期间不进行日志记录。
    • "epoch": 在每个 epoch 结束时进行日志记录。
    • "steps": 每 logging_steps 进行日志记录。
  • logging_steps (int, 默认为 50) — 如果logging_strategy="steps",两次日志之间更新步数。
    • "no": 训练期间不进行评估。
    • "steps": 每 eval_steps 进行评估(并记录)。
    • "epoch": 在每个 epoch 结束时进行评估。
  • logging_steps相同的值。
  • eval_delay (float, 可选) — 在进行第一次评估之前等待的 epoch 或步数,具体取决于 eval_strategy。
  • eval_max_steps (int, 默认为 -1) — 如果设置为正数,则为要执行的评估总步数。当所有数据耗尽时,评估可能会在达到设定的步数之前停止。
    • "no": 训练期间不保存。
    • "epoch": 在每个 epoch 结束时保存。
    • "steps": 每 save_steps 保存。
  • save_total_limit (int, 可选, 默认为 1) — 如果传入值,将限制检查点总数。删除output_dir中较旧的检查点。请注意,如果eval_strategy不是"no",则始终保留最佳模型。
  • load_best_model_at_end (bool, 可选, 默认为 False) — 训练结束时是否加载训练期间找到的最佳模型。

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

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

to_dict

( ) Dict[str, Any]

返回

Dict[str, Any]

此数据类的字典变体。

将此实例转换为字典。

from_dict

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

实例化的 TrainingArguments 实例。

从字典初始化 TrainingArguments 实例。

创建此 TrainingArguments 实例的浅拷贝。

更新

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

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 )

参数

  • train_dataset (Dataset) — 训练数据集。
  • eval_dataset (Dataset, 可选) — 评估数据集。
  • 都将从该函数给定的新模型实例开始,当传入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 模型的训练器。

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() 函数替换为基于参数的固定模型。

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

评估

< >

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

参数

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

返回

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]]可选) — 定义试验/运行名称的函数。默认为 None。
  • kwargs (Dict[str, Any]可选) — 传递给 optuna.create_study 的附加关键字参数。有关更多信息,请参阅:

返回

trainer_utils.BestRun

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

使用 optuna 启动超参数搜索。优化量由 compute_objective 确定,默认情况下,如果没有提供指标,则返回评估损失,否则返回所有指标的总和。

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

pop_callback

< >

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

参数

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

返回

TrainerCallback

如果找到,则删除回调。

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

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

push_to_hub

< >

( repo_id: str **kwargs ) str

参数

  • repo_id (str) — 要推送到的完整仓库 ID,例如 "tomaarsen/setfit-sst2"
  • config (dict可选) — 与模型权重一起保存的配置对象。
  • commit_message (str可选) — 推送时提交的消息。
  • private (bool可选) — 是否将仓库设为私有。如果为 None(默认),除非组织的默认设置为私有,否则仓库将是公共的。如果仓库已存在,此值将被忽略。
  • api_endpoint (str可选) — 推送模型到 Hub 时使用的 API 终结点。
  • token (str可选) — 用作远程文件 HTTP 持有者授权的令牌。如果未设置,将使用通过 transformers-cli login 登录时设置的令牌(存储在 ~/.huggingface 中)。
  • branch (str可选) — 将模型推送到的 git 分支。默认为仓库中指定的默认分支,即 "main"
  • create_pr (boolean可选) — 是否从 branch 创建一个包含该提交的拉取请求。默认为 False
  • allow_patterns (List[str]str可选) — 如果提供,则只推送与至少一个模式匹配的文件。
  • ignore_patterns (List[str]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] 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可选) — 临时更改此训练调用的训练参数。

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

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 主体。

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可选) — 要训练的模型。如果未提供,则必须传递 model_init
  • args (TrainingArguments可选) — 要使用的训练参数。
  • train_dataset (Dataset) — 训练数据集。
  • eval_dataset (Dataset可选) — 评估数据集。
  • model_init (Callable[[], SetFitModel]可选) — 实例化要使用的模型的函数。如果提供,每次调用 train() 都将从该函数提供的模型新实例开始,当传递 trial 时。
  • metric (strCallable, 可选, 默认为 "accuracy") — 用于评估的指标。如果提供字符串,则将其视为指标名称并使用默认设置加载。如果提供可调用对象,则它必须接受两个参数 (y_pred, y_test)。
  • column_mapping (Dict[str, str], 可选) — 数据集中列名到模型所需列名的映射。预期格式为包含以下格式的字典:{"text_column_name": "text", "label_column_name": "label"}

使用知识蒸馏压缩 SetFit 模型的训练器。

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() 函数替换为基于参数的固定模型。

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

评估

< >

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

参数

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

返回

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]], 可选) — 定义试验/运行名称的函数。默认为 None。
  • kwargs (Dict[str, Any], 可选) — 传递给 optuna.create_study 的额外关键字参数。更多信息请参阅:

返回

trainer_utils.BestRun

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

使用 optuna 启动超参数搜索。优化量由 compute_objective 确定,默认情况下,如果没有提供指标,则返回评估损失,否则返回所有指标的总和。

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

pop_callback

< >

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

参数

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

返回

TrainerCallback

如果找到,则删除回调。

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

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

push_to_hub

< >

( repo_id: str **kwargs ) str

参数

  • repo_id (str) — 要推送到的完整仓库 ID,例如 "tomaarsen/setfit-sst2"
  • config (dict, 可选) — 要与模型权重一起保存的配置对象。
  • commit_message (str, 可选) — 推送时提交的消息。
  • private (bool, 可选) — 是否将仓库设为私有。如果为 None(默认),则除非组织默认设置为私有,否则仓库将是公共的。如果仓库已存在,则此值将被忽略。
  • api_endpoint (str, 可选) — 将模型推送到 Hub 时使用的 API 端点。
  • token (str, 可选) — 用作远程文件 HTTP bearer 授权的 token。如果未设置,将使用通过 transformers-cli login 登录时设置的 token(存储在 ~/.huggingface 中)。
  • branch (str, 可选) — 推送模型的 git 分支。默认为仓库中指定的默认分支,即 "main"
  • create_pr (boolean, 可选) — 是否从 branch 创建一个包含该提交的 Pull Request。默认为 False
  • allow_patterns (List[str]str, 可选) — 如果提供,则只推送至少匹配一个模式的文件。
  • ignore_patterns (List[str]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 模型的训练器。

add_callback

< >

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

参数

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

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

评估

< >

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

参数

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

返回

Dict[str, Dict[str, float]]

评估指标。

计算给定分类器的指标。

pop_callback

< >

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

参数

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

返回

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 承载授权的令牌。如果未设置,将使用通过 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], 可选) — 试运行或用于超参数搜索的超参数字典。

主训练入口点。

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], 可选) — 试运行或用于超参数搜索的超参数字典。

仅训练方面模型。

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], 可选) — 试运行或用于超参数搜索的超参数字典。

仅训练极性模型。

< > 在 GitHub 上更新