TRL documentation

スクリプト ユーティリティ

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

スクリプト ユーティリティ

ScriptArguments

クラス 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 )

パラメータ

  • dataset_name (str,, 省略可) — 読み込むデータセットのパスまたは名前。datasets が指定されている場合、この引数は無視されます。
  • dataset_config (str, オプション) — データセットの構成名。load_dataset 関数の name 引数に対応します。 datasets が指定されている場合、この引数は無視されます。
  • dataset_train_split (str、省略可、デフォルトは"train") — 学習に使用するデータセットの分割です。datasetsが指定されている場合、この引数は無視されます。
  • dataset_test_split (str、任意、デフォルトは "test") — 評価に使用する Dataset のスプリットです。datasets が指定されている場合、このパラメータは無視されます。
  • dataset_streaming (bool、省略可能、デフォルトはFalse) — データセットをストリーミングするかどうか。True の場合、データセットはストリーミングモードで読み込まれます。datasets が指定されている場合、この設定は無視されます。
  • ignore_bias_buffers (bool、任意、デフォルトはFalse) — 分散学習用のデバッグ引数です。LMのbias/maskバッファにおけるDDPの問題(不正なスカラー型、inplace操作)の修正です。 https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992を参照してください。

すべてのスクリプトで共通の引数。

TrlParser

クラス trl.TrlParser

< >

( dataclass_types: typing.Union[trl.scripts._hf_argparser.DataClassType, collections.abc.Iterable[trl.scripts._hf_argparser.DataClassType], NoneType] = None**kwargs )

パラメータ

  • dataclass_types (DataClassType | Iterable[DataClassType], 省略可) — 引数の解析に使用する Dataclass の型。
  • **kwargs — transformers.HfArgumentParserのコンストラクタに渡される追加のキーワード引数。

データクラスベースの設定を解析するためのコマンドライン引数の解析に設計されたtransformers.HfArgumentParserのサブクラスであり、設定ファイルの読み込みと環境変数の管理もサポートします。

例:

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

コマンドライン引数と設定ファイルを、指定されたdataclass型のインスタンスにパースします。

このメソッドはtransformers.HfArgumentParser.parse_args_into_dataclassesをラップし、--configフラグで指定された設定ファイルも解析します。設定ファイル(YAML形式)は、dataclasses内のデフォルト値を置き換える引数の値を提供します。コマンドライン引数は、設定ファイルで設定された値を上書きできます。また、このメソッドは、設定ファイルのenvフィールドで指定された環境変数も設定します。

parse_args_into_dataclasses

< >

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

パラメータ

  • args — 解析対象の文字列のリストです。デフォルトでは sys.argv から取得されます。(argparse.ArgumentParser と同じ)
  • return_remaining_strings — true の場合、残りの引数文字列のリストも返します。
  • look_for_args_file — true の場合、このプロセスのエントリポイントスクリプトと同じベース名を持つ“.args”ファイルを探し、その内容があればコマンドライン引数に追加します。
  • args_filename — None 以外の場合、前の引数で指定された“.args”ファイルの代わりに、このファイルを使用します。
  • args_file_flag — None 以外の場合、このフラグで指定されたコマンドライン引数からファイルを検索します。このフラグは複数回指定でき、優先順位は指定順序によって決定されます(最後に指定されたものが優先されます)。

戻り値

で構成されるタプル

  • イニシャライザーに渡されたのと同じ順序で、abspathのdataclassインスタンス
  • 適用可能な場合、初期化後にパーサーに追加される追加の引数(dataclass によるバックエンドを持たないもの)のための追加のネームスペース
  • 残りの引数文字列の潜在的なリストです(argparse.ArgumentParser.parse_known_args と同じ)

指定されたデータクラス型のインスタンスに、コマンドライン引数を解析します。

これはargparseのArgumentParser.parse_known_argsに依存しています。ドキュメントは以下を参照してください: docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

set_defaults_with_config

< >

( **kwargs )

サブパーサーを含む、キーワード引数で提供された値でパーサーのデフォルト値を上書きします。

デフォルト値が更新された引数は、以前必須であった場合でも、必須でないとしてマークされます。

パーサーによって消費されなかった文字列のリストを返します。

get_dataset

trl.get_dataset

< >

( mixture_config: DatasetMixtureConfig ) → DatasetDict

パラメータ

  • mixture_config (DatasetMixtureConfig) — データセットの構成を含むスクリプト引数。

戻り値

DatasetDict

ミックス構成からの結合データセット。test_split_sizeが設定されている場合、任意でtrain/test分割が行われます。

設定に基づいて、複数のデータセットの混合物を読み込みます。

例:

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

クラス 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 )

パラメータ

  • path (str) — データセットのパスまたは名前。
  • name (str, 省略可) — データセット設定の名前を定義します。
  • data_dir (str, 省略可) — データセット設定のdata_dirを定義します。汎用ビルダー (csv、text など) や Hub のデータセットに対して指定され、かつdata_filesがNoneの場合、ディレクトリ内のすべてのファイルを参照するためにos.path.join(data_dir, **)をdata_filesとして渡すのと同じ動作になります。
  • data_files (str または Sequence または Mapping、省略可) — ソースデータファイルへのパス。
  • split (str、任意、デフォルトは"train") — 読み込むデータの分割を指定します。
  • columns (list[str]、任意) — データセットから選択する列名のリストです。None の場合、すべての列が選択されます。
  • fraction (float, 省略可) — 最終的な混合データセットにおける、このデータセットの目標割合です。割合は、すべてのデータセットにわたって合計が 1 になるように正規化され、どのデータセットも過剰サンプリングされないように混合サイズが上限設定されます。各データセットの先頭 round(fraction * N) 行が保持されます。ここで N は、過剰サンプリングを回避できる最大の混合サイズです。混合データセット内のすべてのデータセットに設定するか、すべて設定しないかのいずれかである必要があります。ストリーミングデータセットではサポートされていません。未設定の場合、データセット全体が連結されます。

データセットの設定。

このクラスはload_datasetのシグネチャに一致しており、引数はload_dataset関数に直接使用されます。詳細については、load_datasetのドキュメントを参照してください。

DatasetMixtureConfig

クラス trl.DatasetMixtureConfig

< >

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

パラメータ

  • datasets (list[DatasetConfig]) — 混合物に含めるデータセット設定のリスト。
  • streaming (bool、任意、デフォルトは False) — データセットをストリーミングするかどうか。True の場合、データセットはストリーミングモードで読み込まれます。
  • test_split_size (float, 省略可能) — テスト分割のサイズ。詳細については、train_test_split 関数の test_size パラメータを参照してください。None の場合、データセットはトレーニングセットとテストセットに分割されません。

データセットの混合用の設定クラス。

HfArgumentParser を使用すると、このクラスをコマンドラインで指定できる argparse の引数に変換できます。

使用方法:

CLIを使用する場合、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