TRL documentation
Utilidades de scripts
Utilidades de scripts
ScriptArguments
clase trl.ScriptArguments
< source >( 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 proporcionadatasets, este parámetro se ignorará. - dataset_config (
str, opcional) — Nombre de la configuración del dataset. Corresponde al argumentonamede la función load_dataset. Si se proporcionadatasets, 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 proporcionadatasets, 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 proporcionadatasets, este parámetro se ignorará. - dataset_streaming (
bool, opcional, valor predeterminadoFalse) — Si se debe transmitir el conjunto de datos. Si es True, el conjunto de datos se cargará en modo de transmisión. Si se proporcionadatasets, esto se ignorará. - ignore_bias_buffers (
bool, opcional, valor predeterminadoFalse) — 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
< source >( 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.
# 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'),) Noneparse_args_and_config
< source >( 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
< source >( 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
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
< source >( mixture_config: DatasetMixtureConfig ) → DatasetDict
Parámetros
- mixture_config (DatasetMixtureConfig) — Argumentos del script que contienen la configuración de los conjuntos de datos.
Devuelve
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
< source >( 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 eldata_dirde 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 ydata_filesesNone, el comportamiento es igual al de pasaros.path.join(data_dir, **)comodata_filespara hacer referencia a todos los archivos de un directorio. - data_files (
stroSequenceoMapping, 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 esNone, 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 primerasround(fraction * N)filas de cada conjunto de datos, dondeNes 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
< source >( 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 predeterminadoFalse) — Si se deben transmitir los conjuntos de datos. Si esTrue, 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ámetrotest_sizede la funcióntrain_test_splitpara más detalles. Si esNone, 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: