AutoTrain 文档

使用 Python 快速入门

您正在查看 main 版本,该版本需要从源代码安装。如果您想要常规 pip 安装,请查看最新的稳定版本 (v0.8.24)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

使用 Python 快速入门

AutoTrain 是一个库,允许您在 Hugging Face Spaces 或本地训练最先进的模型。它提供了一个简单易用的界面,用于训练各种任务的模型,如 llm 微调、文本分类、图像分类、目标检测等等。

在本快速入门指南中,我们将向您展示如何使用 Python 中的 AutoTrain 训练模型。

入门指南

AutoTrain 可以使用 pip 安装。

$ pip install autotrain-advanced

下面的示例代码展示了如何在 Python 中使用 AutoTrain 微调 LLM 模型

import os

from autotrain.params import LLMTrainingParams
from autotrain.project import AutoTrainProject


params = LLMTrainingParams(
    model="meta-llama/Llama-3.2-1B-Instruct",
    data_path="HuggingFaceH4/no_robots",
    chat_template="tokenizer",
    text_column="messages",
    train_split="train",
    trainer="sft",
    epochs=3,
    batch_size=1,
    lr=1e-5,
    peft=True,
    quantization="int4",
    target_modules="all-linear",
    padding="right",
    optimizer="paged_adamw_8bit",
    scheduler="cosine",
    gradient_accumulation=8,
    mixed_precision="bf16",
    merge_adapter=True,
    project_name="autotrain-llama32-1b-finetune",
    log="tensorboard",
    push_to_hub=True,
    username=os.environ.get("HF_USERNAME"),
    token=os.environ.get("HF_TOKEN"),
)


backend = "local"
project = AutoTrainProject(params=params, backend=backend, process=True)
project.create()

在此示例中,我们正在 `HuggingFaceH4/no_robots` 数据集上微调 `meta-llama/Llama-3.2-1B-Instruct` 模型。我们正在训练模型 3 个 epoch,批次大小为 1,学习率为 `1e-5`。我们正在使用 `paged_adamw_8bit` 优化器和 `cosine` 调度器。我们还使用混合精度训练,梯度累积为 8。最终模型将在训练后推送到 Hugging Face Hub。

要训练模型,请运行以下命令

$ export HF_USERNAME=<your-hf-username>
$ export HF_TOKEN=<your-hf-write-token>
$ python train.py

这将创建一个名为 `autotrain-llama32-1b-finetune` 的新项目目录,并启动训练过程。训练完成后,模型将被推送到 Hugging Face Hub。

只有当您想推送模型或访问受限模型或数据集时,才需要您的 HF_TOKEN 和 HF_USERNAME。

AutoTrainProject 类

class autotrain.project.AutoTrainProject

< >

( params: typing.Union[autotrain.trainers.clm.params.LLMTrainingParams, autotrain.trainers.text_classification.params.TextClassificationParams, autotrain.trainers.tabular.params.TabularParams, autotrain.trainers.seq2seq.params.Seq2SeqParams, autotrain.trainers.image_classification.params.ImageClassificationParams, autotrain.trainers.text_regression.params.TextRegressionParams, autotrain.trainers.object_detection.params.ObjectDetectionParams, autotrain.trainers.token_classification.params.TokenClassificationParams, autotrain.trainers.sent_transformers.params.SentenceTransformersParams, autotrain.trainers.image_regression.params.ImageRegressionParams, autotrain.trainers.extractive_question_answering.params.ExtractiveQuestionAnsweringParams, autotrain.trainers.vlm.params.VLMTrainingParams] backend: str process: bool = False )

用于训练 AutoTrain 项目的类

属性

params : Union[ LLMTrainingParams, TextClassificationParams, TabularParams, Seq2SeqParams, ImageClassificationParams, TextRegressionParams, ObjectDetectionParams, TokenClassificationParams, SentenceTransformersParams, ImageRegressionParams, ExtractiveQuestionAnsweringParams, VLMTrainingParams, ] AutoTrain 项目的参数。 backend : str 用于 AutoTrain 项目的后端。它应该是以下之一

  • local
  • spaces-a10g-large
  • spaces-a10g-small
  • spaces-a100-large
  • spaces-t4-medium
  • spaces-t4-small
  • spaces-cpu-upgrade
  • spaces-cpu-basic
  • spaces-l4x1
  • spaces-l4x4
  • spaces-l40sx1
  • spaces-l40sx4
  • spaces-l40sx8
  • spaces-a10g-largex2
  • spaces-a10g-largex4 process : bool 标志,指示是否应处理参数和数据集。如果您的数据格式不可被 AutoTrain 读取,请将其设置为 True。如有疑问,请设置为 True。默认为 False。

方法

post_init(): 验证 backend 属性。 create(): 基于后端创建运行器并初始化 AutoTrain 项目。

参数

文本任务

class autotrain.trainers.clm.params.LLMTrainingParams

< >

( model: str = 'gpt2' project_name: str = 'project-name' data_path: str = 'data' train_split: str = 'train' valid_split: typing.Optional[str] = None add_eos_token: bool = True block_size: typing.Union[int, typing.List[int]] = -1 model_max_length: int = 2048 padding: typing.Optional[str] = 'right' trainer: str = 'default' use_flash_attention_2: bool = False log: str = 'none' disable_gradient_checkpointing: bool = False logging_steps: int = -1 eval_strategy: str = 'epoch' save_total_limit: int = 1 auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None lr: float = 3e-05 epochs: int = 1 batch_size: int = 2 warmup_ratio: float = 0.1 gradient_accumulation: int = 4 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 chat_template: typing.Optional[str] = None quantization: typing.Optional[str] = 'int4' target_modules: typing.Optional[str] = 'all-linear' merge_adapter: bool = False peft: bool = False lora_r: int = 16 lora_alpha: int = 32 lora_dropout: float = 0.05 model_ref: typing.Optional[str] = None dpo_beta: float = 0.1 max_prompt_length: int = 128 max_completion_length: typing.Optional[int] = None prompt_text_column: typing.Optional[str] = None text_column: str = 'text' rejected_text_column: typing.Optional[str] = None push_to_hub: bool = False username: typing.Optional[str] = None token: typing.Optional[str] = None unsloth: bool = False distributed_backend: typing.Optional[str] = None )

参数

  • model (str) — 用于训练的模型名称。默认为 “gpt2”。
  • project_name (str) — 项目和输出目录的名称。默认为 “project-name”。
  • data_path (str) — 数据集的路径。默认为 “data”。
  • train_split (str) — 训练数据拆分的配置。默认为 “train”。
  • valid_split (Optional[str]) — 验证数据拆分的配置。默认为 None。
  • add_eos_token (bool) — 是否在序列末尾添加 EOS 令牌。默认为 True。
  • block_size (Union[int, List[int]]) — 用于训练的块大小,可以是单个整数或整数列表。默认为 -1。
  • model_max_length (int) — 模型输入的最大长度。默认为 2048。
  • padding (Optional[str]) — 在哪一侧填充序列(左侧或右侧)。默认为 “right”。
  • trainer (str) — 要使用的训练器类型。默认为 “default”。
  • use_flash_attention_2 (bool) — 是否使用 flash attention version 2。默认为 False。
  • log (str) — 用于实验跟踪的日志记录方法。默认为“none”。
  • disable_gradient_checkpointing (bool) — 是否禁用梯度检查点。默认为 False。
  • logging_steps (int) — 日志事件之间的步数。默认为 -1。
  • eval_strategy (str) — 评估策略(例如,“epoch”)。默认为“epoch”。
  • save_total_limit (int) — 要保留的最大检查点数量。默认为 1。
  • auto_find_batch_size (bool) — 是否自动查找最佳批大小。默认为 False。
  • mixed_precision (Optional[str]) — 要使用的混合精度类型(例如,“fp16”,“bf16”或 None)。默认为 None。
  • lr (float) — 训练的学习率。默认为 3e-5。
  • epochs (int) — 训练 epoch 的数量。默认为 1。
  • batch_size (int) — 训练的批大小。默认为 2。
  • warmup_ratio (float) — 用于学习率预热的训练比例。默认为 0.1。
  • gradient_accumulation (int) — 在更新之前累积梯度的步数。默认为 4。
  • optimizer (str) — 用于训练的优化器。默认为“adamw_torch”。
  • scheduler (str) — 要使用的学习率调度器。默认为“linear”。
  • weight_decay (float) — 应用于优化器的权重衰减。默认为 0.0。
  • max_grad_norm (float) — 梯度裁剪的最大范数。默认为 1.0。
  • seed (int) — 用于可重复性的随机种子。默认为 42。
  • chat_template (Optional[str]) — 基于聊天的模型的模板,选项包括:None、zephyr、chatml 或 tokenizer。默认为 None。
  • quantization (Optional[str]) — 要使用的量化方法(例如,“int4”,“int8”或 None)。默认为“int4”。
  • target_modules (Optional[str]) — 用于量化或微调的目标模块。默认为“all-linear”。
  • merge_adapter (bool) — 是否合并适配器层。默认为 False。
  • peft (bool) — 是否使用参数高效微调 (PEFT)。默认为 False。
  • lora_r (int) — LoRA 矩阵的秩。默认为 16。
  • lora_alpha (int) — LoRA 的 Alpha 参数。默认为 32。
  • lora_dropout (float) — LoRA 的 Dropout 率。默认为 0.05。
  • model_ref (Optional[str]) — DPO 训练器的参考模型。默认为 None。
  • dpo_beta (float) — DPO 训练器的 Beta 参数。默认为 0.1。
  • max_prompt_length (int) — 提示的最大长度。默认为 128。
  • max_completion_length (Optional[int]) — 完成的最大长度。默认为 None。
  • prompt_text_column (Optional[str]) — 提示文本的列名。默认为 None。
  • text_column (str) — 文本数据的列名。默认为“text”。
  • rejected_text_column (Optional[str]) — 拒绝文本数据的列名。默认为 None。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。默认为 False。
  • username (Optional[str]) — 用于身份验证的 Hugging Face 用户名。默认为 None。
  • token (Optional[str]) — 用于身份验证的 Hugging Face 令牌。默认为 None。
  • unsloth (bool) — 是否使用 unsloth 库。默认为 False。
  • distributed_backend (Optional[str]) — 用于分布式训练的后端。默认为 None。

LLMTrainingParams: 使用 autotrain 库训练语言模型的参数。

class autotrain.trainers.sent_transformers.params.SentenceTransformersParams

< >

( data_path: str = None model: str = 'microsoft/mpnet-base' lr: float = 3e-05 epochs: int = 3 max_seq_length: int = 128 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' username: typing.Optional[str] = None log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 trainer: str = 'pair_score' sentence1_column: str = 'sentence1' sentence2_column: str = 'sentence2' sentence3_column: typing.Optional[str] = None target_column: typing.Optional[str] = None )

参数

  • data_path (str) — 数据集的路径。
  • model (str) — 要使用的预训练模型的名称。默认为 “microsoft/mpnet-base”。
  • lr (float) — 训练的学习率。默认为 3e-5。
  • epochs (int) — 训练 epoch 的数量。默认为 3。
  • max_seq_length (int) — 输入的最大序列长度。默认为 128。
  • batch_size (int) — 训练的批大小。默认为 8。
  • warmup_ratio (float) — 用于学习率预热的训练比例。默认为 0.1。
  • gradient_accumulation (int) — 在更新之前累积梯度的步数。默认为 1。
  • optimizer (str) — 要使用的优化器。默认为 “adamw_torch”。
  • scheduler (str) — 要使用的学习率调度器。默认为 “linear”。
  • weight_decay (float) — 要应用的权重衰减。默认为 0.0。
  • max_grad_norm (float) — 用于梯度裁剪的最大梯度范数。默认为 1.0。
  • seed (int) — 用于可重复性的随机种子。默认为 42。
  • train_split (str) — 训练数据分割的名称。默认为 “train”。
  • valid_split (Optional[str]) — 验证数据分割的名称。默认为 None。
  • logging_steps (int) — 日志记录之间的步数。默认为 -1。
  • project_name (str) — 输出目录的项目名称。默认为 “project-name”。
  • auto_find_batch_size (bool) — 是否自动查找最佳批大小。默认为 False。
  • mixed_precision (Optional[str]) — 混合精度训练模式(fp16、bf16 或 None)。默认为 None。
  • save_total_limit (int) — 要保存的最大检查点数量。默认为 1。
  • token (Optional[str]) — 用于访问 Hugging Face Hub 的令牌。默认为 None。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。默认为 False。
  • eval_strategy (str) — 要使用的评估策略。默认为 “epoch”。
  • username (Optional[str]) — Hugging Face 用户名。默认为 None。
  • log (str) — 实验跟踪的日志记录方法。 默认为“none”。
  • early_stopping_patience (int) — 训练停止前,在没有改进的情况下等待的 epoch 数量。 默认为 5。
  • early_stopping_threshold (float) — 用于衡量新最优值的阈值,以符合改进的条件。 默认为 0.01。
  • trainer (str) — 要使用的训练器名称。 默认为“pair_score”。
  • sentence1_column (str) — 包含第一句话的列的名称。 默认为“sentence1”。
  • sentence2_column (str) — 包含第二句话的列的名称。 默认为“sentence2”。
  • sentence3_column (Optional[str]) — 包含第三句话的列的名称(如果适用)。 默认为 None。
  • target_column (Optional[str]) — 包含目标变量的列的名称。 默认为 None。

SentenceTransformersParams 是一个配置类,用于设置训练句子转换器的参数。

class autotrain.trainers.seq2seq.params.Seq2SeqParams

< >

( data_path: str = None model: str = 'google/flan-t5-base' username: typing.Optional[str] = None seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None project_name: str = 'project-name' token: typing.Optional[str] = None push_to_hub: bool = False text_column: str = 'text' target_column: str = 'target' lr: float = 5e-05 epochs: int = 3 max_seq_length: int = 128 max_target_length: int = 128 batch_size: int = 2 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 logging_steps: int = -1 eval_strategy: str = 'epoch' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 peft: bool = False quantization: typing.Optional[str] = 'int8' lora_r: int = 16 lora_alpha: int = 32 lora_dropout: float = 0.05 target_modules: str = 'all-linear' log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集的路径。
  • model (str) — 要使用的模型的名称。 默认为“google/flan-t5-base”。
  • username (Optional[str]) — Hugging Face 用户名。
  • seed (int) — 用于重现性的随机种子。 默认为 42。
  • train_split (str) — 训练数据分割的名称。 默认为“train”。
  • valid_split (Optional[str]) — 验证数据分割的名称。
  • project_name (str) — 项目或输出目录的名称。 默认为“project-name”。
  • token (Optional[str]) — 用于身份验证的 Hub Token。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。 默认为 False。
  • text_column (str) — 数据集中文本列的名称。 默认为“text”。
  • target_column (str) — 数据集中目标文本列的名称。 默认为“target”。
  • lr (float) — 训练的学习率。 默认为 5e-5。
  • epochs (int) — 训练 epoch 的数量。 默认为 3。
  • max_seq_length (int) — 输入文本的最大序列长度。 默认为 128。
  • max_target_length (int) — 目标文本的最大序列长度。 默认为 128。
  • batch_size (int) — 训练批量大小。 默认为 2。
  • warmup_ratio (float) — 预热步骤的比例。 默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。 默认为 1。
  • optimizer (str) — 要使用的优化器。 默认为 “adamw_torch”。
  • scheduler (str) — 要使用的学习率调度器。 默认为 “linear”。
  • weight_decay (float) — 优化器的权重衰减。 默认为 0.0。
  • max_grad_norm (float) — 用于梯度裁剪的最大梯度范数。 默认为 1.0。
  • logging_steps (int) — 日志记录之间的步数。 默认为 -1 (禁用)。
  • eval_strategy (str) — 评估策略。 默认为 “epoch”。
  • auto_find_batch_size (bool) — 是否自动查找批量大小。 默认为 False。
  • mixed_precision (Optional[str]) — 混合精度训练模式 (fp16, bf16, 或 None)。
  • save_total_limit (int) — 要保存的最大检查点数量。 默认为 1。
  • peft (bool) — 是否使用参数高效微调 (PEFT)。 默认为 False。
  • quantization (Optional[str]) — 量化模式 (int4, int8, 或 None)。 默认为 “int8”。
  • lora_r (int) — PEFT 的 LoRA-R 参数。 默认为 16。
  • lora_alpha (int) — PEFT 的 LoRA-Alpha 参数。 默认为 32。
  • lora_dropout (float) — PEFT 的 LoRA-Dropout 参数。 默认为 0.05。
  • target_modules (str) — PEFT 的目标模块。 默认为 “all-linear”。
  • log (str) — 用于实验跟踪的日志记录方法。 默认为 “none”。
  • early_stopping_patience (int) — 早停的耐心值。 默认为 5。
  • early_stopping_threshold (float) — 早停的阈值。 默认为 0.01。

Seq2SeqParams 是序列到序列训练参数的配置类。

class autotrain.trainers.token_classification.params.TokenClassificationParams

< >

( data_path: str = None model: str = 'bert-base-uncased' lr: float = 5e-05 epochs: int = 3 max_seq_length: int = 128 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None tokens_column: str = 'tokens' tags_column: str = 'tags' logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' username: typing.Optional[str] = None log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集的路径。
  • model (str) — 要使用的模型的名称。 默认为 “bert-base-uncased”。
  • lr (float) — 学习率。 默认为 5e-5。
  • epochs (int) — 训练轮数。默认为 3。
  • max_seq_length (int) — 最大序列长度。默认为 128。
  • batch_size (int) — 训练批次大小。默认为 8。
  • warmup_ratio (float) — 预热比例。默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。默认为 1。
  • optimizer (str) — 要使用的优化器。默认为 “adamw_torch”。
  • scheduler (str) — 要使用的调度器。默认为 “linear”。
  • weight_decay (float) — 权重衰减。默认为 0.0。
  • max_grad_norm (float) — 最大梯度范数。默认为 1.0。
  • seed (int) — 随机种子。默认为 42。
  • train_split (str) — 训练拆分名称。默认为 “train”。
  • valid_split (Optional[str]) — 验证拆分名称(可选)。默认为 None。
  • tokens_column (str) — tokens 列的名称。默认为 “tokens”。
  • tags_column (str) — tags 列的名称。默认为 “tags”。
  • logging_steps (int) — 日志记录步数之间的步数。默认为 -1。
  • project_name (str) — 项目名称。默认为 “project-name”。
  • auto_find_batch_size (bool) — 是否自动查找批次大小。默认为 False。
  • mixed_precision (Optional[str]) — 混合精度设置(fp16、bf16 或 None)。默认为 None。
  • save_total_limit (int) — 要保存的检查点总数。默认为 1。
  • token (Optional[str]) — 用于身份验证的 Hub 令牌(可选)。默认为 None。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。默认为 False。
  • eval_strategy (str) — 评估策略。默认为 “epoch”。
  • username (Optional[str]) — Hugging Face 用户名(可选)。默认为 None。
  • log (str) — 用于实验跟踪的日志记录方法。默认为 “none”。
  • early_stopping_patience (int) — 提前停止的耐心值。默认为 5。
  • early_stopping_threshold (float) — 提前停止的阈值。默认为 0.01。

TokenClassificationParams 是用于token分类训练参数的配置类。

class autotrain.trainers.extractive_question_answering.params.ExtractiveQuestionAnsweringParams

< >

( data_path: str = None model: str = 'bert-base-uncased' lr: float = 5e-05 epochs: int = 3 max_seq_length: int = 128 max_doc_stride: int = 128 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None text_column: str = 'context' question_column: str = 'question' answer_column: str = 'answers' logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' username: typing.Optional[str] = None log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 预训练模型名称。 默认为 “bert-base-uncased”。
  • lr (float) — 优化器的学习率。 默认为 5e-5。
  • epochs (int) — 训练轮数。 默认为 3。
  • max_seq_length (int) — 输入的最大序列长度。 默认为 128。
  • max_doc_stride (int) — 分割上下文的最大文档步幅。 默认为 128。
  • batch_size (int) — 训练的批大小。 默认为 8。
  • warmup_ratio (float) — 学习率调度器的预热比例。 默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。 默认为 1。
  • optimizer (str) — 优化器类型。 默认为 “adamw_torch”。
  • scheduler (str) — 学习率调度器类型。 默认为 “linear”。
  • weight_decay (float) — 优化器的权重衰减。 默认为 0.0。
  • max_grad_norm (float) — 梯度裁剪的最大梯度范数。 默认为 1.0。
  • seed (int) — 用于重现性的随机种子。 默认为 42。
  • train_split (str) — 训练数据分割的名称。 默认为 “train”。
  • valid_split (Optional[str]) — 验证数据分割的名称。 默认为 None。
  • text_column (str) — 上下文/文本的列名。 默认为 “context”。
  • question_column (str) — 问题的列名。 默认为 “question”。
  • answer_column (str) — 答案的列名。 默认为 “answers”。
  • logging_steps (int) — 日志记录的步数间隔。 默认为 -1。
  • project_name (str) — 输出目录的项目名称。 默认为 “project-name”。
  • auto_find_batch_size (bool) — 自动查找最佳批大小。 默认为 False。
  • mixed_precision (Optional[str]) — 混合精度训练模式 (fp16, bf16, 或 None)。 默认为 None。
  • save_total_limit (int) — 要保存的最大检查点数量。 默认为 1。
  • token (Optional[str]) — Hugging Face Hub 的身份验证令牌。 默认为 None。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。默认为 False。
  • eval_strategy (str) — 训练期间的评估策略。默认为 “epoch”。
  • username (Optional[str]) — 用于身份验证的 Hugging Face 用户名。默认为 None。
  • log (str) — 用于实验跟踪的日志记录方法。默认为 “none”。
  • early_stopping_patience (int) — 提前停止所需的无改进 epoch 轮数。默认为 5。
  • early_stopping_threshold (float) — 提前停止改进的阈值。默认为 0.01。

ExtractiveQuestionAnsweringParams

class autotrain.trainers.text_classification.params.TextClassificationParams

< >

( data_path: str = None model: str = 'bert-base-uncased' lr: float = 5e-05 epochs: int = 3 max_seq_length: int = 128 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None text_column: str = 'text' target_column: str = 'target' logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' username: typing.Optional[str] = None log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 要使用的模型名称。默认为 “bert-base-uncased”。
  • lr (float) — 学习率。默认为 5e-5。
  • epochs (int) — 训练 epoch 轮数。默认为 3。
  • max_seq_length (int) — 最大序列长度。默认为 128。
  • batch_size (int) — 训练批次大小。默认为 8。
  • warmup_ratio (float) — 预热比例。默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。默认为 1。
  • optimizer (str) — 要使用的优化器。默认为 “adamw_torch”。
  • scheduler (str) — 要使用的调度器。默认为 “linear”。
  • weight_decay (float) — 权重衰减。默认为 0.0。
  • max_grad_norm (float) — 最大梯度范数。默认为 1.0。
  • seed (int) — 随机种子。默认为 42。
  • train_split (str) — 训练拆分名称。默认为 “train”。
  • valid_split (Optional[str]) — 验证拆分名称。默认为 None。
  • text_column (str) — 数据集中文本列的名称。默认为 “text”。
  • target_column (str) — 数据集中目标列的名称。默认为 “target”。
  • logging_steps (int) — 日志记录之间的步数。默认为 -1。
  • project_name (str) — 项目名称。默认为 “project-name”。
  • auto_find_batch_size (bool) — 是否自动查找批次大小。默认为 False。
  • mixed_precision (Optional[str]) — 混合精度设置(fp16、bf16 或 None)。默认为 None。
  • save_total_limit (int) — 要保存的检查点总数。默认为 1。
  • token (Optional[str]) — 用于身份验证的 Hub 令牌。默认为 None。
  • push_to_hub (bool) — 是否将模型推送到 Hub。默认为 False。
  • eval_strategy (str) — 评估策略。默认为“epoch”。
  • username (Optional[str]) — Hugging Face 用户名。默认为 None。
  • log (str) — 用于实验跟踪的日志记录方法。默认为“none”。
  • early_stopping_patience (int) — 训练停止前,经过多少个epoch 验证指标没有提升。默认为 5。
  • early_stopping_threshold (float) — 用于衡量继续训练的新最佳值的阈值。默认为 0.01。

TextClassificationParams 是文本分类训练参数的配置类。

class autotrain.trainers.text_regression.params.TextRegressionParams

< >

( data_path: str = None model: str = 'bert-base-uncased' lr: float = 5e-05 epochs: int = 3 max_seq_length: int = 128 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None text_column: str = 'text' target_column: str = 'target' logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' username: typing.Optional[str] = None log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 要使用的预训练模型的名称。默认为“bert-base-uncased”。
  • lr (float) — 优化器的学习率。默认为 5e-5。
  • epochs (int) — 训练 epoch 的数量。默认为 3。
  • max_seq_length (int) — 输入的最大序列长度。默认为 128。
  • batch_size (int) — 训练的批次大小。默认为 8。
  • warmup_ratio (float) — 执行学习率预热的训练比例。默认为 0.1。
  • gradient_accumulation (int) — 更新前要累积梯度的步数。默认为 1。
  • optimizer (str) — 要使用的优化器。默认为“adamw_torch”。
  • scheduler (str) — 要使用的学习率调度器。默认为“linear”。
  • weight_decay (float) — 应用的权重衰减。默认为 0.0。
  • max_grad_norm (float) — 梯度的最大范数。默认为 1.0。
  • seed (int) — 用于重现性的随机种子。默认为 42。
  • train_split (str) — 训练数据分割的名称。默认为“train”。
  • valid_split (Optional[str]) — 验证数据分割的名称。默认为 None。
  • text_column (str) — 包含文本数据的列名。默认为“text”。
  • target_column (str) — 包含目标数据的列名。默认为“target”。
  • logging_steps (int) — 日志记录之间的步数。默认为 -1(不记录日志)。
  • project_name (str) — 输出目录的项目名称。默认为“project-name”。
  • mixed_precision (Optional[str]) — Mixed precision training mode (fp16, bf16, or None). Default is None.
  • save_total_limit (int) — Maximum number of checkpoints to save. Default is 1.
  • token (Optional[str]) — Token for accessing Hugging Face Hub. Default is None.
  • push_to_hub (bool) — Whether to push the model to Hugging Face Hub. Default is False.
  • eval_strategy (str) — Evaluation strategy to use. Default is “epoch”.
  • username (Optional[str]) — Hugging Face 用户名。默认为 None。
  • log (str) — 实验跟踪的日志记录方法。默认为 “none”。
  • early_stopping_patience (int) — 训练停止前,在没有改进的情况下等待的轮数。默认为 5。
  • early_stopping_threshold (float) — 用于衡量新最优值的阈值,以确定是否为改进。默认为 0.01。

TextRegressionParams 是用于设置文本回归训练参数的配置类。

图像任务

class autotrain.trainers.image_classification.params.ImageClassificationParams

< >

( data_path: str = None model: str = 'google/vit-base-patch16-224' username: typing.Optional[str] = None lr: float = 5e-05 epochs: int = 3 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' image_column: str = 'image' target_column: str = 'target' log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 预训练模型名称或路径。默认为 “google/vit-base-patch16-224”。
  • username (Optional[str]) — Hugging Face 账户用户名。
  • lr (float) — 优化器的学习率。默认为 5e-5。
  • epochs (int) — 训练的轮数。默认为 3。
  • batch_size (int) — 训练的批次大小。默认为 8。
  • warmup_ratio (float) — 学习率调度器的预热比例。默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。默认为 1。
  • optimizer (str) — 优化器类型。默认为 “adamw_torch”。
  • scheduler (str) — 学习率调度器类型。默认为 “linear”。
  • weight_decay (float) — 优化器的权重衰减。默认为 0.0。
  • max_grad_norm (float) — 梯度裁剪的最大范数。默认为 1.0。
  • seed (int) — 用于重现性的随机种子。默认为 42。
  • train_split (str) — 训练数据拆分的名称。默认为 “train”。
  • valid_split (Optional[str]) — 验证数据拆分的名称。
  • logging_steps (int) — 日志记录之间的步数。默认为 -1。
  • project_name (str) — 输出目录的项目名称。默认为 “project-name”。
  • auto_find_batch_size (bool) — 自动查找最佳批次大小。默认为 False。
  • mixed_precision (Optional[str]) — 混合精度训练模式(fp16、bf16 或 None)。
  • save_total_limit (int) — 要保留的最大检查点数量。默认为 1。
  • token (Optional[str]) — 用于身份验证的 Hugging Face Hub 令牌(可选)。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。默认为 False。
  • eval_strategy (str) — 训练期间的评估策略。默认为 “epoch”。
  • image_column (str) — 数据集中图像的列名。默认为 “image”。
  • target_column (str) — 数据集中目标标签的列名。默认为 “target”。
  • log (str) — 用于实验跟踪的日志记录方法。默认为 “none”。
  • early_stopping_patience (int) — 提前停止训练且无改进的 epoch 数量。默认为 5。
  • early_stopping_threshold (float) — 提前停止训练的阈值。默认为 0.01。

ImageClassificationParams 是用于图像分类训练参数的配置类。

class autotrain.trainers.image_regression.params.ImageRegressionParams

< >

( data_path: str = None model: str = 'google/vit-base-patch16-224' username: typing.Optional[str] = None lr: float = 5e-05 epochs: int = 3 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' image_column: str = 'image' target_column: str = 'target' log: str = 'none' early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 要使用的模型名称。默认为 “google/vit-base-patch16-224”。
  • username (Optional[str]) — Hugging Face 用户名(可选)。
  • lr (float) — 学习率。默认为 5e-5。
  • epochs (int) — 训练 epoch 数量。默认为 3。
  • batch_size (int) — 训练批次大小。默认为 8。
  • warmup_ratio (float) — Warmup 比例。默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。默认为 1。
  • optimizer (str) — 要使用的优化器。默认为 “adamw_torch”。
  • scheduler (str) — 要使用的调度器。默认为 “linear”。
  • weight_decay (float) — 权重衰减。默认为 0.0。
  • max_grad_norm (float) — 最大梯度范数。默认为 1.0。
  • seed (int) — 随机种子。默认为 42。
  • train_split (str) — 训练拆分名称。默认为 “train”。
  • valid_split (Optional[str]) — 验证拆分名称(可选)。
  • logging_steps (int) — 日志记录步数。默认为 -1。
  • project_name (str) — 输出目录名称。默认为 “project-name”。
  • auto_find_batch_size (bool) — 是否自动查找批次大小。默认为 False。
  • mixed_precision (Optional[str]) — 混合精度类型(fp16、bf16 或 None)(可选)。
  • save_total_limit (int) — 保存总数限制。默认为 1。
  • token (Optional[str]) — Hub 令牌(可选)。
  • push_to_hub (bool) — 是否推送到 Hub。默认为 False。
  • eval_strategy (str) — 评估策略。默认为 “epoch”。
  • image_column (str) — 图像列名。默认为 “image”。
  • target_column (str) — 目标列名。默认为 “target”。
  • log (str) — 使用实验跟踪进行日志记录。默认为 “none”。
  • early_stopping_patience (int) — 早停耐心值。默认为 5。
  • early_stopping_threshold (float) — 早停阈值。默认为 0.01。

ImageRegressionParams 是用于图像回归训练参数的配置类。

class autotrain.trainers.object_detection.params.ObjectDetectionParams

< >

( data_path: str = None model: str = 'google/vit-base-patch16-224' username: typing.Optional[str] = None lr: float = 5e-05 epochs: int = 3 batch_size: int = 8 warmup_ratio: float = 0.1 gradient_accumulation: int = 1 optimizer: str = 'adamw_torch' scheduler: str = 'linear' weight_decay: float = 0.0 max_grad_norm: float = 1.0 seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None logging_steps: int = -1 project_name: str = 'project-name' auto_find_batch_size: bool = False mixed_precision: typing.Optional[str] = None save_total_limit: int = 1 token: typing.Optional[str] = None push_to_hub: bool = False eval_strategy: str = 'epoch' image_column: str = 'image' objects_column: str = 'objects' log: str = 'none' image_square_size: typing.Optional[int] = 600 early_stopping_patience: int = 5 early_stopping_threshold: float = 0.01 )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 要使用的模型名称。默认为 “google/vit-base-patch16-224”。
  • username (Optional[str]) — Hugging Face 用户名。
  • lr (float) — 学习率。默认为 5e-5。
  • epochs (int) — 训练轮数。默认为 3。
  • batch_size (int) — 训练批次大小。默认为 8。
  • warmup_ratio (float) — 预热比例。默认为 0.1。
  • gradient_accumulation (int) — 梯度累积步数。默认为 1。
  • optimizer (str) — 要使用的优化器。默认为 “adamw_torch”。
  • scheduler (str) — 要使用的调度器。默认为 “linear”。
  • weight_decay (float) — 权重衰减。默认为 0.0。
  • max_grad_norm (float) — 最大梯度范数。默认为 1.0。
  • seed (int) — 随机种子。默认为 42。
  • train_split (str) — 训练数据拆分名称。默认为 “train”。
  • valid_split (Optional[str]) — 验证数据拆分名称。
  • logging_steps (int) — 日志记录步数间隔。默认为 -1。
  • project_name (str) — 输出目录的项目名称。默认为 “project-name”。
  • auto_find_batch_size (bool) — 是否自动查找批次大小。默认为 False。
  • mixed_precision (Optional[str]) — 混合精度类型(fp16、bf16 或 None)。
  • save_total_limit (int) — 要保存的检查点总数。默认为 1。
  • token (Optional[str]) — 用于身份验证的 Hub Token。
  • push_to_hub (bool) — 是否将模型推送到 Hugging Face Hub。默认为 False。
  • eval_strategy (str) — 评估策略。默认为“epoch”。
  • image_column (str) — 数据集中图像列的名称。默认为“image”。
  • objects_column (str) — 数据集中目标列的名称。默认为“objects”。
  • log (str) — 实验跟踪的日志记录方法。默认为“none”。
  • image_square_size (Optional[int]) — 图像将被调整大小到的最长尺寸,然后填充为正方形。默认为 600。
  • early_stopping_patience (int) — 训练停止前,容忍多少个epoch没有改进。默认为 5。
  • early_stopping_threshold (float) — 作为改进的最小更改幅度。默认为 0.01。

ObjectDetectionParams 是用于对象检测训练参数的配置类。

表格任务

class autotrain.trainers.tabular.params.TabularParams

< >

( data_path: str = None model: str = 'xgboost' username: typing.Optional[str] = None seed: int = 42 train_split: str = 'train' valid_split: typing.Optional[str] = None project_name: str = 'project-name' token: typing.Optional[str] = None push_to_hub: bool = False id_column: str = 'id' target_columns: typing.Union[typing.List[str], str] = ['target'] categorical_columns: typing.Optional[typing.List[str]] = None numerical_columns: typing.Optional[typing.List[str]] = None task: str = 'classification' num_trials: int = 10 time_limit: int = 600 categorical_imputer: typing.Optional[str] = None numerical_imputer: typing.Optional[str] = None numeric_scaler: typing.Optional[str] = None )

参数

  • data_path (str) — 数据集路径。
  • model (str) — 要使用的模型名称。默认为“xgboost”。
  • username (Optional[str]) — Hugging Face 用户名。
  • seed (int) — 用于重现性的随机种子。默认为 42。
  • train_split (str) — 训练数据拆分的名称。默认为“train”。
  • valid_split (Optional[str]) — 验证数据拆分的名称。
  • project_name (str) — 输出目录的名称。默认为“project-name”。
  • token (Optional[str]) — 用于身份验证的 Hub Token。
  • push_to_hub (bool) — 是否将模型推送到 hub。默认为 False。
  • id_column (str) — ID 列的名称。默认为“id”。
  • target_columns (Union[List[str], str]) — 数据集中的目标列。默认为 [“target”]。
  • categorical_columns (Optional[List[str]]) — 类别列的列表。
  • numerical_columns (Optional[List[str]]) — 数值列的列表。
  • task (str) — 任务类型(例如,“classification”)。默认为“classification”。
  • num_trials (int) — 用于超参数优化的试验次数。默认为 10。
  • time_limit (int) — 训练时间限制,单位为秒。默认为 600。
  • categorical_imputer (Optional[str]) — 类别列的插补策略。
  • numerical_imputer (Optional[str]) — 数值列的插补策略。
  • numeric_scaler (Optional[str]) — 数值列的缩放策略。

TabularParams 是用于表格数据训练参数的配置类。

< > Update on GitHub