Эта задача позволяет легко обучать или настраивать модель преобразователя предложений на своем собственном наборе данных.

AutoTrain поддерживает следующие типы точной настройки преобразователя предложений:

  • pair: набор данных с двумя предложениями: якорным (anchor) и положительным (positive)
  • pair_class: набор данных с двумя предложениями: предпосылка (premise) и гипотеза (hypothesis), а также целевая метка (target label)
  • pair_score: набор данных с двумя предложениями: sentence1 и sentence2 и целевой оценкой (target score)
  • triplet: набор данных с тремя предложениями: привязка (anchor), положительное (positive) и отрицательное (negative)
  • qa: набор данных с двумя предложениями: запрос (query) и ответ (answer)

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

Настройка преобразователя предложений принимает данные в формате CSV/JSONL. Вы также можете использовать набор данных из Hugging Face Hub.

pair

Для парного обучения данные должны быть в следующем формате:

anchorpositive
hello hi
how are you I am fine
What is your name? My name is Abhishek
Which is the best programming language? Python

pair_class

Для обучения pair_class данные должны быть в следующем формате:

premisehypothesislabel
hello hi 1
how are you I am fine 0
What is your name? My name is Abhishek 1
Which is the best programming language? Python 1

pair_score

Для обучения pair_score данные должны быть в следующем формате:

sentence1sentence2score
hello hi 0.8
how are you I am fine 0.2
What is your name? My name is Abhishek 0.9
Which is the best programming language? Python 0.7

triplet

Для триплетного обучения данные должны быть в следующем формате:

anchorpositivenegative
hello hi bye
how are you I am fine I am not fine
What is your name? My name is Abhishek Whats it to you?
Which is the best programming language? Python Javascript

qa

Для обучения QA данные должны быть в следующем формате:

queryanswer
hello hi
how are you I am fine
What is your name? My name is Abhishek
Which is the best programming language? Python

Параметры

( 
    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 
)

Parameters

  • data_path (str) — Путь к набору данных.
  • model (str) — Название используемой предварительно обученной модели. По умолчанию используется “microsoft/mpnet-base”.
  • lr (float) — Скорость усвоения для обучения. По умолчанию используется значение 3e-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.
  • 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. Значение по умолчанию - 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.
  • trainer (str) — Имя используемого тренера. По умолчанию используется “pair_score”.
  • sentence1_column (str) — Название столбца, содержащего первое предложение. По умолчанию используется “sentence1”.
  • sentence2_column (str) — Название столбца, содержащего второе предложение. По умолчанию используется “sentence2”.
  • sentence3_column (Optional[str]) — Название столбца, содержащего третье предложение (если применимо). Значение по умолчанию - None.
  • target_column (Optional[str]) — Имя столбца, содержащего целевую переменную. Значение по умолчанию - None.

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