前言

简单的介绍Hugging Face - 常用函数。

Operating System: Ubuntu 22.04.4 LTS

transformers

HfArgumentParser

api link: https://huggingface.co/docs/transformers/v4.45.2/en/internal/trainer_utils#transformers.HfArgumentParser

HfArgumentParser 是 Hugging Face Transformers 库中的一个工具,用于简化对命令行参数的解析。它基于 Python 的 argparse 模块构建,专门为处理机器学习项目中的参数和配置文件而设计。

以下是一些关于 HfArgumentParser 的关键点:

  1. 集成性:它与 Hugging Face 的其他工具和类(如 TrainingArguments)紧密集成,使得配置训练过程变得更加容易。
  2. 易用性:它提供了一种简单的方式来定义参数,并且可以自动生成帮助信息和提示。
  3. 数据类支持HfArgumentParser 可以直接与 Python 的数据类(data classes)一起工作,使得参数的定义更加清晰和结构化。
  4. 默认值和覆盖:它可以处理默认参数值,并允许通过命令行参数或配置文件来覆盖这些值。

下面是一个简单的例子,展示如何使用 HfArgumentParser

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from dataclasses import dataclass, field
from transformers import HfArgumentParser
@dataclass
class ModelArguments:
model_name_or_path: str = field(
metadata={"help": "Path to pretrained model or model identifier from huggingface.co/models"}
)
@dataclass
class DataTrainingArguments:
train_file: str = field(
metadata={"help": "The input training data file (a jsonlines or csv file)."}
)
eval_file: str = field(
metadata={"help": "An optional input evaluation data file to evaluate the perplexity on (a jsonlines or csv file)."}
)
parser = HfArgumentParser((ModelArguments, DataTrainingArguments))
model_args, data_args = parser.parse_args_into_dataclasses()
print(model_args)
print(data_args)

在这个例子中,我们定义了两个数据类 ModelArgumentsDataTrainingArguments,每个类都包含了训练或模型加载过程中可能需要的参数。然后,我们创建了一个 HfArgumentParser 实例,并将这两个数据类传递给它。最后,我们调用 parse_args_into_dataclasses() 方法来解析命令行参数,并将它们转换为相应的数据类实例。

用户可以在命令行中通过如下方式传递参数:

1
python script.py --model_name_or_path bert-base-uncased --train_file path/to/train/file --eval_file path/to/eval/file

HfArgumentParser 会解析这些参数,并将它们适当地填充到 model_argsdata_args 实例中。

结语

第二百零二篇博文写完,开心!!!!

今天,也是充满希望的一天。