TRL documentation

Utilitários 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

Utilitários de scripts

ScriptArguments

classe 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) — Caminho ou nome do dataset a ser carregado. Se datasets for fornecido, este será ignorado.
  • dataset_config (str, opcional) — Nome da configuração do dataset. Corresponde ao argumento name da função load_dataset. Se datasets for fornecido, isso será ignorado.
  • dataset_train_split (str, opcional, padrão "train") — Divisão do dataset a ser usada para o treinamento. Se datasets for fornecido, este parâmetro será ignorado.
  • dataset_test_split (str, opcional, padrão "test") — Divisão do dataset a ser usada para avaliação. Se datasets for fornecido, isso será ignorado.
  • dataset_streaming (bool, opcional, padrão False) — Se deve transmitir o dataset. Se True, o dataset será carregado em modo de streaming. Se datasets for fornecido, isso será ignorado.
  • ignore_bias_buffers (bool, opcional, padrão False) — Argumento de depuração para treinamento distribuído. Correção para problemas de DDP com buffers de viés/máscara de LM - tipo de escalar inválido, operação in-place. Veja https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992.

Argumentos comuns a todos os scripts.

TrlParser

classe 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 serem usados para a análise de argumentos.
  • **kwargs — Argumentos de palavra-chave adicionais passados para o construtor transformers.HfArgumentParser.

Uma subclasse de transformers.HfArgumentParser projetada para analisar argumentos de linha de comando com configurações baseadas em dataclasses, além de suportar o carregamento de arquivos de configuração e o gerenciamento de variáveis de ambiente.

Exemplos:

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

Analisa os argumentos de linha de comando e o arquivo de configuração em instâncias dos tipos de dataclass especificados.

Este método encapsula transformers.HfArgumentParser.parse_args_into_dataclasses e também analisa o arquivo de configuração especificado com a flag --config. O arquivo de configuração (em formato YAML) fornece valores de argumentos que substituem os valores padrão nos dataclasses. Os argumentos da linha de comando podem sobrescrever os valores definidos pelo arquivo de configuração. O método também define as variáveis de ambiente especificadas no campo env do arquivo de configuração.

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 strings para analisar. O padrão é obtido de sys.argv. (igual a argparse.ArgumentParser)
  • return_remaining_strings — Se true, também retorna uma lista das strings de argumentos restantes.
  • look_for_args_file — Se true, procurará por um arquivo “.args” com o mesmo nome base que o script de ponto de entrada deste processo e anexará seu conteúdo potencial aos argumentos da linha de comando.
  • args_filename — Se não for None, usará este arquivo em vez do arquivo “.args” especificado no argumento anterior.
  • args_file_flag — Se não for None, procurará um arquivo nos argumentos de linha de comando especificados com esta flag. A flag pode ser especificada várias vezes e a precedência é determinada pela ordem (a última prevalece).

Retorna

Tupla consistindo de

  • as instâncias de dataclass na mesma ordem em que foram passadas para o inicializador.abspath
  • se aplicável, um namespace adicional para mais argumentos (não baseados em dataclass) adicionados ao parser após a inicialização.
  • A lista potencial de strings de argumentos restantes. (igual a argparse.ArgumentParser.parse_known_args)

Analisa os argumentos da linha de comando em instâncias dos tipos de dataclass especificados.

Isso depende do ArgumentParser.parse_known_args do argparse. Consulte a documentação em: docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

set_defaults_with_config

< >

( **kwargs )

Substitui os valores padrão do parser pelos fornecidos por meio de argumentos de palavra-chave, incluindo para subparsers.

Qualquer argumento com um valor padrão atualizado também será marcado como não obrigatório, caso fosse obrigatório anteriormente.

Retorna uma lista de strings que não foram consumidas pelo parser.

get_dataset

trl.get_dataset

< >

( mixture_config: DatasetMixtureConfig ) → DatasetDict

Parâmetros

  • mixture_config (DatasetMixtureConfig) — Argumentos do script contendo a configuração do conjunto de dados.

Retorna

DatasetDict

Conjunto(s) de dados combinado(s) da configuração de mistura, com divisão opcional de treino/teste se test_split_size estiver definido.

Carrega uma mistura de conjuntos de dados com base na configuração.

Exemplo:

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

classe 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) — Caminho ou nome do conjunto de dados.
  • name (str, opcional) — Define o nome da configuração do conjunto de dados.
  • data_dir (str, opcional) — Define o data_dir da configuração do dataset. Se especificado para os construtores genéricos (csv, text etc.) ou para os datasets do Hub e data_files for None, o comportamento é igual ao de passar os.path.join(data_dir, **) como data_files para referenciar todos os arquivos em um diretório.
  • data_files (str ou Sequence ou Mapping, opcional) — Caminho(s) para o(s) arquivo(s) de dados de origem.
  • split (str, opcional, padrão "train") — Qual divisão dos dados carregar.
  • columns (list[str], opcional) — Lista de nomes de colunas a serem selecionadas do conjunto de dados. Se None, todas as colunas são selecionadas.
  • fraction (float, opcional) — Fração-alvo deste conjunto de dados na mistura final. As frações são normalizadas para que a soma entre todos os conjuntos de dados seja igual a um, e o tamanho da mistura é limitado para que nenhum conjunto de dados seja superamostrado: as primeiras round(fraction * N) linhas de cada conjunto de dados são mantidas, onde N é o maior tamanho de mistura que evita a superamostragem. Deve ser definido para todos os conjuntos de dados da mistura ou para nenhum deles. Não é suportado para conjuntos de dados em streaming. Quando não definido, os conjuntos de dados completos são concatenados.

Configuração para um conjunto de dados.

Esta classe corresponde à assinatura de load_dataset e os argumentos são usados diretamente na função load_dataset. Você pode consultar a documentação de load_dataset para mais detalhes.

DatasetMixtureConfig

classe trl.DatasetMixtureConfig

< >

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

Parâmetros

  • datasets (list[DatasetConfig]) — Lista de configurações de dataset a serem incluídas na mistura.
  • streaming (bool, opcional, padrão False) — Se deve transmitir os conjuntos de dados. Se True, os conjuntos de dados serão carregados no modo de transmissão.
  • test_split_size (float, opcional) — Tamanho do conjunto de teste. Consulte o parâmetro test_size na função train_test_split para mais detalhes. Se None, o conjunto de dados não será dividido em conjuntos de treino e teste.

Classe de configuração para uma mistura de conjuntos de dados.

Usando HfArgumentParser, podemos transformar essa classe em argumentos argparse que podem ser especificados na linha de comando.

Uso:

Ao usar a CLI, você pode adicionar a seguinte seção ao seu arquivo de configuração 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