SetFit 文档
训练器类
并获得增强的文档体验
开始使用
训练器类
TrainingArguments
class setfit.TrainingArguments
< source >( 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 损失设置,并为CosineSimilarityLoss
和SupConLoss
忽略。 - margin (
float
, 默认为0.25
) — triplet 损失的 margin。负样本应至少比正样本更远离锚点 margin。它为CosineSimilarityLoss
、BatchHardSoftMarginTripletLoss
和SupConLoss
忽略。 - 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 to2
) — 每个标签抽取的连续、随机且唯一的样本数。这仅与 triplet loss 相关,对于CosineSimilarityLoss
将被忽略。 Batch size 应为 samples_per_label 的倍数。 - show_progress_bar (
bool
, defaults toTrue
) — 是否显示训练 epochs 和迭代的进度条。 - seed (
int
, defaults to42
) — 在训练开始时设置的随机种子。为了确保跨运行的可重复性,如果模型具有一些随机初始化的参数,请使用model_init
参数来实例化 Trainer。 - report_to (
str
orList[str]
, optional, defaults to"all"
) — 用于报告结果和日志的集成列表。支持的平台有"azure_ml"
、"comet_ml"
、"mlflow"
、"neptune"
、"tensorboard"
、"clearml"
和"wandb"
。 使用"all"
报告给所有已安装的集成,使用"none"
不进行任何集成。 - run_name (
str
, optional) — 运行的描述符。通常用于 wandb 和 mlflow 日志记录。 - logging_dir (
str
, optional) — TensorBoard 日志目录。将默认为 *runs/CURRENT_DATETIME_HOSTNAME*。 - logging_strategy (
str
orIntervalStrategy
, optional, defaults to"steps"
) — 训练期间采用的日志记录策略。 可能的值为:"no"
:训练期间不进行日志记录。"epoch"
:在每个epoch结束时进行日志记录。"steps"
:每logging_steps
步进行日志记录。
- logging_first_step (
bool
, optional, defaults toFalse
) — 是否记录和评估第一个global_step
。 - logging_steps (
int
, defaults to 50) — 如果logging_strategy="steps"
,则两个日志之间的更新步数。 - eval_strategy (
str
orIntervalStrategy
, 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
orIntervalStrategy
, 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 to1
) — 如果传递一个值,将限制检查点的总数。 删除output_dir
中较旧的检查点。 注意,如果eval_strategy
不是"no"
,则始终保留最佳模型。 - load_best_model_at_end (
bool
, optional, defaults toFalse
) — 是否在训练结束时加载训练期间找到的最佳模型。当设置为
True
时,参数save_strategy
需要与eval_strategy
相同,并且如果是 “steps”,则save_steps
必须是eval_steps
的整数倍。
TrainingArguments 是与训练循环本身相关的参数子集。 请注意,使用 SetFit 进行训练在幕后包含两个阶段:微调嵌入和训练分类头部。 因此,一些训练参数可以是元组,其中两个值分别用于两个阶段。 第二个值通常仅在使用 use_differentiable_head=True
加载模型时使用。
将此实例转换为字典。
from_dict
< source >( arguments: Dict[str, Any] ignore_extra: bool = False ) → TrainingArguments
从字典初始化 TrainingArguments 实例。
创建此 TrainingArguments 实例的浅拷贝。
Trainer
class setfit.Trainer
< source >( 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 (
str
或Callable
, 可选, 默认为"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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )
将回调添加到当前的 TrainerCallback
列表中。
apply_hyperparameters
< source >( params: typing.Dict[str, typing.Any] final_model: bool = False )
将超参数字典应用于训练器和模型
evaluate
< source >( dataset: typing.Optional[datasets.arrow_dataset.Dataset] = None metric_key_prefix: str = 'test' ) → Dict[str, float]
计算给定分类器的指标。
hyperparameter_search
< source >( 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 (
str
或HPSearchBackend
, 可选) — 用于超参数搜索的后端。目前仅支持 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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] ) → TrainerCallback
从当前的 TrainerCallback
列表中删除回调并返回它。
如果未找到回调,则返回 None
(并且不会引发错误)。
push_to_hub
< source >( 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]
orstr
, optional) — 如果提供,则仅推送与至少一个模式匹配的文件。 - ignore_patterns (
List[str]
orstr
, optional) — 如果提供,则不推送与任何模式匹配的文件。
Returns
str
模型在给定仓库中提交的 URL。
使用 huggingface_hub
将模型检查点上传到 Hub。
请参阅 huggingface_hub 文档,了解您的 huggingface_hub
版本的完整参数列表。
remove_callback
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )
从当前的 TrainerCallback
列表中删除回调。
train
< source >( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )
主要的训练入口点。
train_classifier
< source >( 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 )
执行分类器阶段的方法:拟合分类器头。
train_embeddings
< source >( 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 )
执行嵌入阶段的方法:微调 SentenceTransformer
主体。
DistillationTrainer
class setfit.DistillationTrainer
< source >( 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
orCallable
, 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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )
将回调添加到当前的 TrainerCallback
列表中。
apply_hyperparameters
< source >( params: typing.Dict[str, typing.Any] final_model: bool = False )
将超参数字典应用于训练器和模型
evaluate
< source >( dataset: typing.Optional[datasets.arrow_dataset.Dataset] = None metric_key_prefix: str = 'test' ) → Dict[str, float]
计算给定分类器的指标。
hyperparameter_search
< source >( 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
orHPSearchBackend
, 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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] ) → TrainerCallback
从当前的 TrainerCallback
列表中删除回调并返回它。
如果未找到回调,则返回 None
(并且不会引发错误)。
push_to_hub
< source >( 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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )
从当前的 TrainerCallback
列表中删除回调。
train
< source >( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )
主要的训练入口点。
train_classifier
< source >( x_train: typing.List[str] args: typing.Optional[setfit.training_args.TrainingArguments] = None )
执行分类器阶段的方法:拟合学生分类器头部。
train_embeddings
< source >( 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 )
执行嵌入阶段的方法:微调 SentenceTransformer
主体。
AbsaTrainer
class setfit.AbsaTrainer
< source >( 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 (
str
或Callable
, 可选, 默认为"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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )
将回调添加到当前的 TrainerCallback
列表中。
evaluate
< source >( dataset: typing.Optional[datasets.arrow_dataset.Dataset] = None ) → Dict[str, Dict[str, float]]
计算给定分类器的指标。
pop_callback
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] ) → Tuple[``TrainerCallback
, TrainerCallback``]
从当前的 TrainerCallback
列表中删除回调并返回它。
如果未找到回调,则返回 None
(并且不会引发错误)。
push_to_hub
< source >( 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
< source >( callback: typing.Union[type, transformers.trainer_callback.TrainerCallback] )
从当前的 TrainerCallback
列表中删除回调。
train
< source >( 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 )
主要的训练入口点。
train_aspect
< source >( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )
仅训练方面模型。
train_polarity
< source >( args: typing.Optional[setfit.training_args.TrainingArguments] = None trial: typing.Union[ForwardRef('optuna.Trial'), typing.Dict[str, typing.Any], NoneType] = None **kwargs )
仅训练极性模型。