TRL documentation

Скрипты Утилиты

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Скрипты Утилиты

ScriptArguments

класс trl.ScriptArguments

< >

( dataset_name: str | None = Nonedataset_config: str | None = Nonedataset_train_split: str = 'train'dataset_test_split: str = 'test'dataset_streaming: bool = Falseignore_bias_buffers: bool = False )

Параметры

  • dataset_name (str,, необязательный) — Путь или имя набора данных для загрузки. Если указан datasets, этот параметр игнорируется.
  • dataset_config (str, необязательный) — Имя конфигурации набора данных. Соответствует аргументу name функции load_dataset. Если указано datasets, этот параметр игнорируется.
  • dataset_train_split (str, необязательный, по умолчанию "train") — Раздел набора данных, используемый для обучения. Если указан datasets, этот параметр игнорируется.
  • dataset_test_split (str, необязательный, по умолчанию "test") — Раздел набора данных, используемый для оценки. Если указано datasets, этот параметр игнорируется.
  • dataset_streaming (bool, необязательный, по умолчанию False) — Определяет, следует ли загружать набор данных в режиме потоковой передачи. Если значение равно True, набор данных будет загружен в режиме потоковой передачи. Если указан параметр datasets, этот параметр будет проигнорирован.
  • ignore_bias_buffers (bool, необязательный, по умолчанию False) — Аргумент отладки для распределенного обучения. Исправление проблем DDP с буферами смещения/маски LM — некорректный скалярный тип, операция in-place. См. https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992.

Аргументы, общие для всех скриптов.

TrlParser

класс trl.TrlParser

< >

( dataclass_types: typing.Union[trl.scripts._hf_argparser.DataClassType, collections.abc.Iterable[trl.scripts._hf_argparser.DataClassType], NoneType] = None**kwargs )

Параметры

  • dataclass_types (DataClassType | Iterable[DataClassType], необязательный) — Типы dataclass, используемые для разбора аргументов.
  • **kwargs — Дополнительные именованные аргументы, передаваемые в конструктор transformers.HfArgumentParser.

Подкласс transformers.HfArgumentParser, предназначенный для разбора аргументов командной строки с конфигурациями на основе dataclass, а также поддерживающий загрузку файлов конфигурации и управление переменными окружения.

Примеры:

# config.yaml
env:
    VAR1: value1
arg1: 23
# main.py
import os
from dataclasses import dataclass
from trl import TrlParser


@dataclass
class MyArguments:
    arg1: int
    arg2: str = "alpha"


parser = TrlParser(dataclass_types=[MyArguments])
training_args = parser.parse_args_and_config()

print(training_args, os.environ.get("VAR1"))
$ python main.py --config config.yaml
(MyArguments(arg1=23, arg2='alpha'),) value1

$ python main.py --arg1 5 --arg2 beta
(MyArguments(arg1=5, arg2='beta'),) None

parse_args_and_config

< >

( args: collections.abc.Iterable[str] | None = Nonereturn_remaining_strings: bool = Falsefail_with_unknown_args: bool = Trueseparate_remaining_strings: bool = False )

Разбирает аргументы командной строки и файл конфигурации в экземпляры указанных типов dataclass.

Этот метод оборачивает transformers.HfArgumentParser.parse_args_into_dataclasses и дополнительно разбирает файл конфигурации, указанный с помощью флага --config. Файл конфигурации (в формате YAML) предоставляет значения аргументов, которые заменяют значения по умолчанию в dataclasses. Аргументы командной строки могут переопределять значения, установленные файлом конфигурации. Метод также устанавливает переменные окружения, указанные в поле env файла конфигурации.

parse_args_into_dataclasses

< >

( args = Nonereturn_remaining_strings = Falselook_for_args_file = Trueargs_filename = Noneargs_file_flag = None ) → Tuple consisting of

Параметры

  • args — Список строк для разбора. По умолчанию берётся из sys.argv. (аналогично argparse.ArgumentParser)
  • return_remaining_strings — Если true, также возвращает список оставшихся строковых аргументов.
  • look_for_args_file — Если установлено в true, будет искать файл «.args» с тем же базовым именем, что и сценарий точки входа для этого процесса, и добавлять его возможное содержимое к аргументам командной строки.
  • args_filename — Если не None, используется этот файл вместо файла «.args», указанного в предыдущем аргументе.
  • args_file_flag — Если не None, будет искать файл в аргументах командной строки, указанных с этим флагом. Флаг можно указать несколько раз, а приоритет определяется порядком (последний имеет преимущество).

Возвращает

Кортеж, состоящий из

  • экземпляры dataclass в том же порядке, в котором они были переданы в инициализатор.abspath
  • при необходимости, дополнительное пространство имён для дополнительных (не основанных на dataclass) аргументов, добавляемых в парсер после инициализации.
  • Потенциальный список оставшихся строковых аргументов. (аналогично argparse.ArgumentParser.parse_known_args)

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

Это опирается на ArgumentParser.parse_known_args из argparse. См. документацию по адресу: docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

set_defaults_with_config

< >

( **kwargs )

Переопределяет значения по умолчанию парсера значениями, переданными через именованные аргументы, включая подпарсеры.

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

Возвращает список строк, которые не были обработаны парсером.

get_dataset

trl.get_dataset

< >

( mixture_config: DatasetMixtureConfig ) → DatasetDict

Параметры

  • mixture_config (DatasetMixtureConfig) — аргументы скрипта, содержащие конфигурацию набора данных.

Возвращает

DatasetDict

Объединённый набор данных из конфигурации смеси, с необязательным разделением на train/test, если задан test_split_size.

Загрузите смесь наборов данных на основе конфигурации.

Пример:

>>> from trl import DatasetMixtureConfig, get_dataset
>>> from trl.scripts.utils import DatasetConfig

>>> mixture_config = DatasetMixtureConfig(datasets=[DatasetConfig(path="trl-lib/tldr")])
>>> get_dataset(mixture_config)
DatasetDict({
    train: Dataset({
        features: ['prompt', 'completion'],
        num_rows: 116722
    })
})

DatasetConfig

класс trl.scripts.utils.DatasetConfig

< >

( path: strname: str | None = Nonedata_dir: str | None = Nonedata_files: str | list[str] | dict[str, str] | None = Nonesplit: str = 'train'columns: list[str] | None = Nonefraction: float | None = None )

Параметры

  • path (str) — Путь или имя набора данных.
  • name (str, необязательный) — Определяет имя конфигурации набора данных.
  • data_dir (str, необязательный) — Определяет data_dir конфигурации набора данных. Если указано для универсальных сборщиков (csv, text и т. д.) или для наборов данных Hub, а data_files равно None, поведение эквивалентно передаче os.path.join(data_dir, **) в качестве data_files для ссылки на все файлы в каталоге.
  • data_files (str или Sequence или Mapping, необязательный) — Путь (или пути) к исходному файлу (или файлам) данных.
  • split (str, optional, по умолчанию "train") — Какой раздел данных загрузить.
  • columns (list[str], необязательный) — Список имён столбцов, которые нужно выбрать из набора данных. Если None, выбираются все столбцы.
  • fraction (float, необязательный) — Целевая доля этого набора данных в итоговой смеси. Доли нормализуются так, чтобы их сумма по всем наборам данных равнялась единице, а размер смеси ограничивается так, чтобы ни один набор данных не был избыточно выборочным: сохраняются первые round(fraction * N) строк каждого набора данных, где N — максимальный размер смеси, при котором избыточная выборка исключена. Значение должно быть задано либо для всех наборов данных в смеси, либо ни для одного. Не поддерживается для потоковых наборов данных. Если значение не задано, полные наборы данных конкатенируются.

Конфигурация набора данных.

Этот класс соответствует сигнатуре load_dataset, а аргументы используются непосредственно в функции load_dataset. Дополнительные сведения см. в документации load_dataset.

DatasetMixtureConfig

класс trl.DatasetMixtureConfig

< >

( datasets: list[trl.scripts.utils.DatasetConfig] = <factory>streaming: bool = Falsetest_split_size: float | None = None )

Параметры

  • datasets (list[DatasetConfig]) — Список конфигураций датасетов, которые нужно включить в смесь.
  • streaming (bool, необязательный, по умолчанию False) — Указывает, следует ли загружать наборы данных в режиме потоковой передачи. Если True, наборы данных будут загружаться в режиме потоковой передачи.
  • test_split_size (float, необязательный) — Размер тестовой выборки. Подробности см. в параметре test_size функции train_test_split. Если None, датасет не будет разделён на обучающую и тестовую выборки.

Класс конфигурации для смеси наборов данных.

С помощью HfArgumentParser мы можем превратить этот класс в аргументы argparse, которые можно указать в командной строке.

Использование:

При использовании CLI вы можете добавить следующий раздел в ваш YAML-файл конфигурации:

datasets:
- path: ...
    name: ...
    data_dir: ...
    data_files: ...
    split: ...
    columns: ...
    fraction: ...
- path: ...
    name: ...
    data_dir: ...
    data_files: ...
    split: ...
    columns: ...
streaming: ...
test_split_size: ...
Update on GitHub