TRL documentation

Utilidades de scripts

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

Utilidades de scripts

ScriptArguments

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

Parámetros

  • dataset_name (str,, opcional) — Ruta o nombre del conjunto de datos que se va a cargar. Si se proporciona datasets, este parámetro se ignorará.
  • dataset_config (str, opcional) — Nombre de la configuración del dataset. Corresponde al argumento name de la función load_dataset. Si se proporciona datasets, este parámetro se ignorará.
  • dataset_train_split (str, opcional, valor predeterminado "train") — División del conjunto de datos que se usará para el entrenamiento. Si se proporciona datasets, este parámetro se ignorará.
  • dataset_test_split (str, opcional, valor predeterminado "test") — División del conjunto de datos que se utilizará para la evaluación. Si se proporciona datasets, este parámetro se ignorará.
  • dataset_streaming (bool, opcional, valor predeterminado False) — Si se debe transmitir el conjunto de datos. Si es True, el conjunto de datos se cargará en modo de transmisión. Si se proporciona datasets, esto se ignorará.
  • ignore_bias_buffers (bool, opcional, valor predeterminado False) — Argumento de depuración para el entrenamiento distribuido. Corrección de problemas de DDP con los búferes de sesgo/máscara de LM: tipo de escalar no válido, operación in situ. Consulte https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992.

Argumentos comunes a todos los scripts.

TrlParser

clase trl.TrlParser

< >

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

Parámetros

  • dataclass_types (DataClassType | Iterable[DataClassType], opcional) — Tipos de dataclass a utilizar para el análisis de argumentos.
  • **kwargs — Argumentos de palabra clave adicionales que se pasan al constructor de transformers.HfArgumentParser.

Una subclase de transformers.HfArgumentParser diseñada para analizar argumentos de línea de comandos con configuraciones basadas en dataclass, al tiempo que admite la carga de archivos de configuración y la gestión de variables de entorno.

Ejemplos:

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

Analiza los argumentos de línea de comandos y el archivo de configuración en instancias de los tipos de dataclass especificados.

Este método envuelve transformers.HfArgumentParser.parse_args_into_dataclasses y también analiza el archivo de configuración especificado con la bandera --config. El archivo de configuración (en formato YAML) proporciona valores de argumentos que reemplazan los valores predeterminados en los dataclasses. Los argumentos de línea de comandos pueden anular los valores establecidos por el archivo de configuración. El método también establece las variables de entorno especificadas en el campo env del archivo de configuración.

parse_args_into_dataclasses

< >

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

Parámetros

  • args — Lista de cadenas para analizar. El valor predeterminado se toma de sys.argv. (igual que argparse.ArgumentParser)
  • return_remaining_strings — Si es true, también devuelve una lista de las cadenas de argumentos restantes.
  • look_for_args_file — Si es true, buscará un archivo “.args” con el mismo nombre base que el script de punto de entrada de este proceso y añadirá su contenido potencial a los argumentos de la línea de comandos.
  • args_filename — Si no es None, se usará este archivo en lugar del archivo “.args” especificado en el argumento anterior.
  • args_file_flag — Si no es None, buscará un archivo en los argumentos de línea de comandos especificados con esta bandera. La bandera puede especificarse varias veces y la precedencia se determina por el orden (gana la última).

Devuelve

Tupla que consiste en

  • las instancias de dataclass en el mismo orden en que se pasaron al inicializador.abspath
  • si aplica, un espacio de nombres adicional para más argumentos (no respaldados por dataclass) añadidos al parser después de la inicialización.
  • La lista potencial de cadenas de argumentos restantes. (igual que argparse.ArgumentParser.parse_known_args)

Analiza los argumentos de la línea de comandos en instancias de los tipos de dataclass especificados.

Esto se basa en ArgumentParser.parse_known_args de argparse. Consulta la documentación en: docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

set_defaults_with_config

< >

( **kwargs )

Sobrescribe los valores predeterminados del analizador con los proporcionados mediante argumentos de palabra clave, incluidos los de los subanalizadores.

Cualquier argumento con un valor predeterminado actualizado también se marcará como no obligatorio si anteriormente era obligatorio.

Devuelve una lista de cadenas que no fueron consumidas por el analizador.

get_dataset

trl.get_dataset

< >

( mixture_config: DatasetMixtureConfig ) → DatasetDict

Parámetros

  • mixture_config (DatasetMixtureConfig) — Argumentos del script que contienen la configuración de los conjuntos de datos.

Devuelve

DatasetDict

Conjunto(s) de datos combinados de la configuración de mezcla, con una división opcional de entrenamiento/prueba si se establece test_split_size.

Carga una mezcla de conjuntos de datos según la configuración.

Ejemplo:

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

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

Parámetros

  • path (str) — Ruta o nombre del conjunto de datos.
  • name (str, opcional) — Define el nombre de la configuración del conjunto de datos.
  • data_dir (str, opcional) — Define el data_dir de la configuración del conjunto de datos. Si se especifica para los constructores genéricos (csv, text, etc.) o para los conjuntos de datos del Hub y data_files es None, el comportamiento es igual al de pasar os.path.join(data_dir, **) como data_files para hacer referencia a todos los archivos de un directorio.
  • data_files (str o Sequence o Mapping, opcional) — Ruta(s) al(los) archivo(s) de datos de origen.
  • split (str, opcional, por defecto "train") — Qué división de los datos cargar.
  • columns (list[str], opcional) — Lista de nombres de columnas a seleccionar del conjunto de datos. Si es None, se seleccionan todas las columnas.
  • fraction (float, opcional) — Proporción objetivo de este conjunto de datos en la mezcla final. Las proporciones se normalizan para que sumen uno en todos los conjuntos de datos, y el tamaño de la mezcla se limita para que ningún conjunto de datos se muestree de más: se conservan las primeras round(fraction * N) filas de cada conjunto de datos, donde N es el tamaño de mezcla más grande que evita el muestreo excesivo. Debe establecerse para todos los conjuntos de datos de la mezcla o para ninguno de ellos. No se admite para conjuntos de datos de streaming. Cuando no se establece, los conjuntos de datos completos se concatenan.

Configuración para un conjunto de datos.

Esta clase coincide con la firma de load_dataset y los argumentos se utilizan directamente en la función load_dataset. Puede consultar la documentación de load_dataset para más detalles.

DatasetMixtureConfig

clase trl.DatasetMixtureConfig

< >

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

Parámetros

  • datasets (list[DatasetConfig]) — Lista de configuraciones de conjuntos de datos a incluir en la mezcla.
  • streaming (bool, opcional, valor predeterminado False) — Si se deben transmitir los conjuntos de datos. Si es True, los conjuntos de datos se cargarán en modo de transmisión.
  • test_split_size (float, opcional) — Tamaño de la división de prueba. Consulte el parámetro test_size de la función train_test_split para más detalles. Si es None, el conjunto de datos no se dividirá en conjuntos de entrenamiento y prueba.

Clase de configuración para una mezcla de conjuntos de datos.

Con HfArgumentParser podemos convertir esta clase en argumentos de argparse que se pueden especificar en la línea de comandos.

Uso:

Al usar la CLI, puedes añadir la siguiente sección a tu archivo de configuración 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