Hugging Face Transformer 的APIs应用实例

拥抱面变压器 API 简要摘要

一、说明 

        Hugging Face 的变压器库提供了广泛的 API,可用于处理各种 NLP 任务的预训练变压器模型。在本教程中,我们将探讨主要 API 并提供示例来帮助你了解它们的用法。

二、导入模型 

1. 分词器接口:

        分词器 API 用于预处理文本数据,并将其标记为转换器模型的输入特征。

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

text = "Hello, how are you?"
encoded_input = tokenizer(text, padding=True, truncation=True, return_tensors="pt")
print(encoded_input)

2. 模型接口:

        模型 API 允许您为各种 NLP 任务加载预先训练的转换器模型。

from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
outputs = model(**encoded_input)
print(outputs)

3. 管道接口:

        管道 API 简化了将预训练模型用于特定任务(如文本生成、问答、情绪分析等)的过程。

from transformers import pipeline
text_generation = pipeline("text-generation", model="gpt2")
generated_text = text_generation("Once upon a time")
print(generated_text)

三、训练过程

4. 培训师接口:

        训练器 API 可帮助您针对特定任务在自定义数据集上微调预训练的模型。

扫描二维码关注公众号,回复: 16326843 查看本文章
from transformers import Trainer, TrainingArguments

training_args = TrainingArguments("fine_tuned_model")

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    data_collator=data_collator,
)
trainer.train()

5. 数据集接口:

        数据集 API 允许您为 NLP 任务加载和预处理各种数据集。

from datasets import load_dataset
dataset = load_dataset("glue", "sst2")
print(dataset)

6. 评估接口:

        评估 API 可帮助您计算模型预测的评估指标。

from datasets import load_metric

metric = load_metric("accuracy")
predictions = model.predict(test_dataset)
accuracy = metric.compute(predictions=predictions["predictions"], references=predictions["labels"])
print(accuracy)

7. 使用自定义指标进行微调:

        您可以为培训师 API 定义自己的自定义指标。

from datasets import load_metric

metric = load_metric("accuracy")
predictions = model.predict(test_dataset)
accuracy = metric.compute(predictions=predictions["predictions"], references=predictions["labels"])
print(accuracy)
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    data_collator=data_collator,
    compute_metrics=compute_custom_metrics,
)

trainer.train()

四、训练模型存取

8. 从检查点加载模型:

        您可以加载预先训练的模型检查点并恢复训练或将其用于推理。

model_checkpoint = "fine_tuned_model/checkpoint-1000"
loaded_model = AutoModelForSequenceClassification.from_pretrained(model_checkpoint)

9. 模型推理:

        加载模型后,您可以使用它对新数据进行推理。

new_text = "This is a new text to classify"
encoded_input = tokenizer(new_text, padding=True, truncation=True, return_tensors="pt")
outputs = loaded_model(**encoded_input)
print(outputs)

五、训练模型序列化

10. 模型序列化:

        可以使用 and 方法保存和加载预先训练的模型。.save_pretrained().from_pretrained()

loaded_model.save_pretrained("saved_model")
reloaded_model = AutoModelForSequenceClassification.from_pretrained("saved_model")

        通过探索这些 API,您可以利用拥抱面变压器的强大功能来预处理数据、微调模型、执行推理并评估各种 NLP 任务的性能。该图书馆的灵活性和广泛的文档使其成为NLP从业者和研究人员的宝贵资源  拉克什·拉杰普罗希特

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/132416813