Seq2Seq - это задача, которая включает в себя преобразование последовательности слов в другую последовательность слов. Она используется в машинном переводе, обобщении текста и ответах на вопросы.

Формат данных

Вы можете получить набор данных в виде CSV-файла:

text,target
"this movie is great","dieser Film ist großartig"
"this movie is bad","dieser Film ist schlecht"
.
.
.

Или в виде файла JSONL:

{"text": "this movie is great", "target": "dieser Film ist großartig"}
{"text": "this movie is bad", "target": "dieser Film ist schlecht"}
.
.
.

Столбцы

Ваш набор данных CSV/JSONL должен содержать два столбца: текстовый и целевой.

Параметры

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 для аутентификации.
  • push_to_hub (bool) — Следует ли перемещать модель в Hugging Face Hub. Значение по умолчанию False.
  • text_column (str) — Имя текстового столбца в наборе данных. По умолчанию используется “text”.
  • target_column (str) — Имя целевого текстового столбца в наборе данных. Значение по умолчанию - “target”.
  • lr (float) — Скорость усвоения для обучения. По умолчанию используется значение 5e-5.
  • 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 (Optional[str]) — Смешанный режим точной тренировки (fp16, bf16 или None).
  • save_total_limit (int) — Максимальное количество сохраняемых контрольных точек. Значение по умолчанию 1.
  • peft (bool) — Следует ли использовать точную настройку с учетом параметров (PEFT). Значение по умолчанию False.
  • quantization (Optional[str]) — Режим квантования (int4, int8 или None). По умолчанию используется значение “int8”.
  • lora_r (int) — LoRa-параметр R для PEFT. Значение по умолчанию 16.
  • lora_alpha (int) — LoRa-альфа-параметр для PEFT. Значение по умолчанию равно 32.
  • lora_dropout (float) — LoRa - параметр отсева для PEFT. Значение по умолчанию равно 0.05.
  • target_modules (str) — Целевые модули для PEFT. По умолчанию используется “all-linear”.
  • log (str) — Метод ведения журнала для отслеживания эксперимента. Значение по умолчанию - “none”.
  • early_stopping_patience (int) — Терпение для ранней остановки. Значение по умолчанию 5.
  • early_stopping_threshold (float) — Порог для досрочной остановки. Значение по умолчанию равно 0.01.

Seq2SeqParams - это класс конфигурации для последовательного обучения параметрам.