TRL 文档

脚本工具

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

脚本工具

ScriptArguments

class trl.ScriptArguments

< >

( dataset_name: typing.Optional[str] = None dataset_config: typing.Optional[str] = None dataset_train_split: str = 'train' dataset_test_split: str = 'test' dataset_streaming: bool = False gradient_checkpointing_use_reentrant: bool = False ignore_bias_buffers: bool = False )

参数

  • dataset_name (str) — 数据集名称。
  • dataset_config (strNone, 可选, 默认为 None) — 数据集配置名称。对应于 load_dataset 函数的 `name` 参数。
  • dataset_train_split (str, 可选, 默认为 "train") — 用于训练的数据集分割。
  • dataset_test_split (str, 可选, 默认为 "test") — 用于评估的数据集分割。
  • dataset_streaming (bool, 可选, 默认为 False) — 是否以流式方式加载数据集。如果为 True,将以流式模式加载数据集。
  • gradient_checkpointing_use_reentrant (bool, 可选, 默认为 False) — 是否为梯度检查点应用 `use_reentrant`。
  • ignore_bias_buffers (bool, 可选, 默认为 False) — 用于分布式训练的调试参数。修复 DDP 中 LM 偏置/掩码缓冲区的问题 - 无效的标量类型、原地操作。请参阅 https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992

所有脚本通用的参数。

TrlParser

class trl.TrlParser

< >

( dataclass_types: typing.Union[transformers.hf_argparser.DataClassType, collections.abc.Iterable[transformers.hf_argparser.DataClassType], NoneType] = None **kwargs )

参数

  • dataclass_types (Union[DataClassType, Iterable[DataClassType]]None, 可选, 默认为 None) — 用于参数解析的数据类类型。
  • **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: typing.Optional[collections.abc.Iterable[str]] = None return_remaining_strings: bool = False fail_with_unknown_args: bool = True )

将命令行参数和配置文件解析为指定数据类类型的实例。

此方法包装了 `transformers.HfArgumentParser.parse_args_into_dataclasses`,并且还解析由 `--config` 标志指定的配置文件。配置文件(YAML 格式)提供替换数据类中默认值的参数值。命令行参数可以覆盖配置文件设置的值。此方法还会设置配置文件 `env` 字段中指定的任何环境变量。

parse_args_into_dataclasses

< >

( args = None return_remaining_strings = False look_for_args_file = True args_filename = None args_file_flag = None ) 由以下组成的元组

参数

  • args — 要解析的字符串列表。默认值取自 sys.argv。(与 argparse.ArgumentParser 相同)
  • return_remaining_strings — 如果为 true,也返回剩余参数字符串的列表。
  • look_for_args_file — 如果为 true,将查找与此进程的入口点脚本具有相同基本名称的“.args”文件,并将其潜在内容附加到命令行参数中。
  • args_filename — 如果不为 None,将使用此文件,而不是前一个参数中指定的“.args”文件。
  • args_file_flag — 如果不为 None,将查找命令行参数中用此标志指定的文件。该标志可以多次指定,优先级由顺序决定(最后一个获胜)。

返回

由以下组成的元组

  • 数据类实例的顺序与传递给初始化器的顺序相同。
  • 如果适用,一个额外的命名空间用于初始化后添加到解析器的更多(非数据类支持的)参数。
  • 潜在的剩余参数字符串列表。(与 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 )

使用通过关键字参数提供的值覆盖解析器的默认值,包括子解析器。

任何具有更新默认值的参数,如果之前是必需的,也将被标记为非必需。

返回解析器未使用的字符串列表。

< > 在 GitHub 上更新