TRL documentation

Utilitaires de scripts

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

Paramètres

  • dataset_name (str,, facultatif) — Chemin ou nom du jeu de données à charger. Si datasets est fourni, ce paramètre sera ignoré.
  • dataset_config (str, facultatif) — Nom de la configuration du jeu de données. Correspond à l'argument name de la fonction load_dataset. Si datasets est fourni, ce paramètre sera ignoré.
  • dataset_train_split (str, facultatif, par défaut "train") — Partie du jeu de données à utiliser pour l’entraînement. Si datasets est fourni, ce paramètre est ignoré.
  • dataset_test_split (str, facultatif, par défaut "test") — Partie du jeu de données à utiliser pour l'évaluation. Si datasets est fourni, ce paramètre sera ignoré.
  • dataset_streaming (bool, facultatif, valeur par défaut False) — Indique s'il faut diffuser le jeu de données. Si True, le jeu de données sera chargé en mode streaming. Si datasets est fourni, cette option sera ignorée.
  • ignore_bias_buffers (bool, facultatif, valeur par défaut False) — Argument de débogage pour l’entraînement distribué. Correctif pour les problèmes de DDP liés aux buffers de biais/masque des LM - type scalaire invalide, opération in place. Voir https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992.

Arguments communs à tous les 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 )

Paramètres

  • dataclass_types (DataClassType | Iterable[DataClassType], facultatif) — Types de dataclass à utiliser pour l’analyse des arguments.
  • **kwargs — Arguments supplémentaires passés au constructeur transformers.HfArgumentParser.

Une sous-classe de transformers.HfArgumentParser conçue pour l’analyse des arguments de ligne de commande avec des configurations basées sur des dataclass, tout en prenant en charge le chargement de fichiers de configuration et la gestion des variables d’environnement.

Exemples :

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

Analyser les arguments de la ligne de commande et le fichier de configuration pour créer des instances des types de dataclass spécifiés.

Cette méthode encapsule transformers.HfArgumentParser.parse_args_into_dataclasses et analyse également le fichier de configuration spécifié avec le drapeau --config. Le fichier de configuration (au format YAML) fournit des valeurs d'arguments qui remplacent les valeurs par défaut des dataclasses. Les arguments de la ligne de commande peuvent écraser les valeurs définies par le fichier de configuration. La méthode définit également les variables d'environnement spécifiées dans le champ env du fichier de configuration.

parse_args_into_dataclasses

< >

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

Paramètres

  • args — Liste de chaînes à analyser. La valeur par défaut est prise dans sys.argv. (identique à argparse.ArgumentParser)
  • return_remaining_strings — Si true, renvoie également une liste des chaînes d'arguments restantes.
  • look_for_args_file — Si défini sur true, recherche un fichier « .args » portant le même nom de base que le script de point d’entrée de ce processus, et ajoute son contenu éventuel aux arguments de la ligne de commande.
  • args_filename — Si la valeur n'est pas None, ce fichier est utilisé à la place du fichier « .args » spécifié dans l'argument précédent.
  • args_file_flag — Si la valeur n’est pas None, un fichier sera recherché parmi les arguments de la ligne de commande spécifiés avec cet indicateur. L’indicateur peut être spécifié plusieurs fois et la priorité est déterminée par l’ordre (le dernier l’emporte).

Retourne

Tuple composé de

  • les instances de dataclass dans le même ordre que celui dans lequel elles ont été passées à l'initialisateur.abspath
  • le cas échéant, un espace de noms supplémentaire pour d'autres arguments (non basés sur des dataclasses) ajoutés à l'analyseur après l'initialisation.
  • La liste potentielle des chaînes d'arguments restantes. (identique à argparse.ArgumentParser.parse_known_args)

Analyser les arguments de la ligne de commande en instances des types de dataclass spécifiés.

Cela repose sur ArgumentParser.parse_known_args d’argparse. Consultez la documentation à l’adresse : docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

set_defaults_with_config

< >

( **kwargs )

Remplace les valeurs par défaut de l’analyseur par celles fournies via des arguments nommés, y compris pour les sous-analyseurs.

Tout argument dont la valeur par défaut a été mise à jour sera également marqué comme non obligatoire s'il était auparavant obligatoire.

Retourne une liste de chaînes de caractères qui n'ont pas été consommées par l'analyseur.

get_dataset

trl.get_dataset

< >

( mixture_config: DatasetMixtureConfig ) → DatasetDict

Paramètres

  • mixture_config (DatasetMixtureConfig) — Arguments du script contenant la configuration des jeux de données.

Retourne

DatasetDict

Ensembles de données combinés issus de la configuration de mélange, avec une éventuelle division entraînement/test si test_split_size est défini.

Charger un mélange de jeux de données basé sur la configuration.

Exemple :

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

Paramètres

  • path (str) — Chemin ou nom du jeu de données.
  • name (str, facultatif) — Définit le nom de la configuration du jeu de données.
  • data_dir (str, facultatif) — Définit le data_dir de la configuration du jeu de données. S’il est spécifié pour les constructeurs génériques (csv, text, etc.) ou les jeux de données du Hub et que data_files est None, le comportement est équivalent à passer os.path.join(data_dir, **) en tant que data_files pour référencer tous les fichiers d’un répertoire.
  • data_files (str ou Sequence ou Mapping, facultatif) — Chemin(s) du ou des fichier(s) de données source.
  • split (str, facultatif, par défaut "train") — Quelle partie des données charger.
  • columns (list[str], facultatif) — Liste des noms de colonnes à sélectionner dans le jeu de données. Si None, toutes les colonnes sont sélectionnées.
  • fraction (float, optional) — Target share of this dataset in the final mixture. Fractions are normalized to sum to one across all datasets, and the mixture size is capped so that no dataset is oversampled: the first round(fraction * N) rows of each dataset are kept, where N is the largest mixture size that avoids oversampling. Must be set for either all datasets in the mixture or none of them. Not supported for streaming datasets. When unset, the full datasets are concatenated.

Configuration pour un jeu de données.

Cette classe correspond à la signature de load_dataset et les arguments sont utilisés directement dans la fonction load_dataset. Vous pouvez consulter la documentation de load_dataset pour plus de détails.

DatasetMixtureConfig

classe trl.DatasetMixtureConfig

< >

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

Paramètres

  • datasets (list[DatasetConfig]) — Liste des configurations de jeu de données à inclure dans le mélange.
  • streaming (bool, facultatif, par défaut False) — Indique s'il faut diffuser les jeux de données. Si True, les jeux de données seront chargés en mode diffusion.
  • test_split_size (float, facultatif) — Taille de la partie de test. Reportez-vous au paramètre test_size de la fonction train_test_split pour plus de détails. Si None, le jeu de données ne sera pas divisé en ensembles d'entraînement et de test.

Classe de configuration pour un mélange de jeux de données.

À l’aide de HfArgumentParser, nous pouvons transformer cette classe en arguments argparse qui peuvent être spécifiés sur la ligne de commande.

Utilisation :

Lors de l'utilisation de l'interface en ligne de commande, vous pouvez ajouter la section suivante à votre fichier de configuration 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