TRL documentation
Utilitários de scripts
Utilitários de scripts
ScriptArguments
classe 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) — Caminho ou nome do dataset a ser carregado. Sedatasetsfor fornecido, este será ignorado. - dataset_config (
str, opcional) — Nome da configuração do dataset. Corresponde ao argumentonameda função load_dataset. Sedatasetsfor fornecido, isso será ignorado. - dataset_train_split (
str, opcional, padrão"train") — Divisão do dataset a ser usada para o treinamento. Sedatasetsfor fornecido, este parâmetro será ignorado. - dataset_test_split (
str, opcional, padrão"test") — Divisão do dataset a ser usada para avaliação. Sedatasetsfor fornecido, isso será ignorado. - dataset_streaming (
bool, opcional, padrãoFalse) — Se deve transmitir o dataset. Se True, o dataset será carregado em modo de streaming. Sedatasetsfor fornecido, isso será ignorado. - ignore_bias_buffers (
bool, opcional, padrãoFalse) — 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
< 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 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.
# 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 )
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
< source >( 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
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
< source >( mixture_config: DatasetMixtureConfig ) → DatasetDict
Parâmetros
- mixture_config (DatasetMixtureConfig) — Argumentos do script contendo a configuração do conjunto de dados.
Retorna
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
< 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) — 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 odata_dirda configuração do dataset. Se especificado para os construtores genéricos (csv, text etc.) ou para os datasets do Hub edata_filesforNone, o comportamento é igual ao de passaros.path.join(data_dir, **)comodata_filespara referenciar todos os arquivos em um diretório. - data_files (
strouSequenceouMapping, 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. SeNone, 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 primeirasround(fraction * N)linhas de cada conjunto de dados são mantidas, ondeNé 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
< source >( 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ãoFalse) — Se deve transmitir os conjuntos de dados. SeTrue, 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âmetrotest_sizena funçãotrain_test_splitpara mais detalhes. SeNone, 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: ...