TRL documentation
Utilitaires de scripts
Utilitaires 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 )
Paramètres
- dataset_name (
str,, facultatif) — Chemin ou nom du jeu de données à charger. Sidatasetsest fourni, ce paramètre sera ignoré. - dataset_config (
str, facultatif) — Nom de la configuration du jeu de données. Correspond à l'argumentnamede la fonction load_dataset. Sidatasetsest 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. Sidatasetsest 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. Sidatasetsest fourni, ce paramètre sera ignoré. - dataset_streaming (
bool, facultatif, valeur par défautFalse) — Indique s'il faut diffuser le jeu de données. Si True, le jeu de données sera chargé en mode streaming. Sidatasetsest fourni, cette option sera ignorée. - ignore_bias_buffers (
bool, facultatif, valeur par défautFalse) — 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
< source >( 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.
# 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 )
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
< source >( 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
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
< source >( mixture_config: DatasetMixtureConfig ) → DatasetDict
Paramètres
- mixture_config (DatasetMixtureConfig) — Arguments du script contenant la configuration des jeux de données.
Retourne
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
< 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 )
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 ledata_dirde 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 quedata_filesestNone, le comportement est équivalent à passeros.path.join(data_dir, **)en tant quedata_filespour référencer tous les fichiers d’un répertoire. - data_files (
strouSequenceouMapping, 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. SiNone, 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 firstround(fraction * N)rows of each dataset are kept, whereNis 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
< source >( 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éfautFalse) — Indique s'il faut diffuser les jeux de données. SiTrue, 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ètretest_sizede la fonctiontrain_test_splitpour plus de détails. SiNone, 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: ...