transformers+huggingface训练模型

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 本教程介绍了如何使用 Hugging Face 的 `transformers` 库训练一个 BERT 模型进行情感分析。主要内容包括:导入必要库、下载 Yelp 评论数据集、数据预处理、模型加载与配置、定义训练参数、评估指标、实例化训练器并开始训练,最后保存模型和训练状态。整个过程详细展示了如何利用预训练模型进行微调,以适应特定任务。

[TOC]

transformers+huggingface训练模型

导入必要的库

from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
import numpy as np
import evaluate
AI 代码解读

CopyInsert

  • 导入 datasets 用于加载数据集。
  • 导入 transformers 中的组件,以便使用预训练的 BERT 模型和 tokenizer。
  • 导入 numpy 用于数值计算。
  • 导入 evaluate 用于计算模型预测的指标(这里是准确率)。

数据集下载

dataset = load_dataset("yelp_review_full")
AI 代码解读

CopyInsert

  • 从 Hugging Face 的数据集中下载 Yelp 评论数据集,该数据集包含各种评论和意见。

数据预处理

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")

def tokenize_function(examples):
    return tokenizer(examples["text"], padding="max_length", truncation=True)
AI 代码解读

CopyInsert

  • 使用预训练的 BERT model("bert-base-cased")初始化 tokenizer。
  • 定义 tokenize_function 函数,将评论文本编码成模型可接受的格式,设置填充和截断。

应用数据预处理

tokenized_datasets = dataset.map(tokenize_function, batched=True)
AI 代码解读

CopyInsert

  • 对下载的数据集应用 tokenize_function,批量处理文本数据。

数据抽样

small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(1000))
small_eval_dataset = tokenized_datasets["test"].shuffle(seed=42).select(range(1000))
AI 代码解读

CopyInsert

  • 从训练和测试集中各随机抽取 1000 条样本,以加快训练速度和验证模型性能。

模型加载与训练配置

model = AutoModelForSequenceClassification.from_pretrained("bert-base-cased", num_labels=5)
AI 代码解读

CopyInsert

  • 加载预训练的 BERT 模型,并指定输出标签数(5个分类)。
model_dir = "models/bert-base-cased-finetune-yelp"

training_args = TrainingArguments(
    output_dir=model_dir,
    per_device_train_batch_size=16,
    num_train_epochs=5,
    logging_steps=100
)
AI 代码解读

CopyInsert

  • 定义模型保存路径和训练参数,如每个设备的训练批大小、训练轮数和日志记录的频率。

指标评估

metric = evaluate.load("accuracy")

def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = np.argmax(logits, axis=-1)
    return metric.compute(predictions=predictions, references=labels)
AI 代码解读

CopyInsert

  • 加载准确率评估指标。
  • 定义 compute_metrics 函数,通过计算预测标签和真实标签的比较来评估模型性能。

实例化 Trainer

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=small_train_dataset,
    eval_dataset=small_eval_dataset,
    compute_metrics=compute_metrics
)
AI 代码解读

CopyInsert

  • 创建训练器 Trainer 的实例,用于处理模型的训练过程和评估。

开始训练

trainer.train()
AI 代码解读

CopyInsert

  • 运行训练过程。

监控 GPU 使用

# 使用命令行工具: watch -n 1 nvidia-smi
AI 代码解读

CopyInsert

  • 提供了一个命令行工具提示,以监控 GPU 的使用情况。

保存模型和训练状态

trainer.save_model(model_dir)
trainer.save_state()
AI 代码解读

CopyInsert

  • 保存训练完成后的模型和状态,以便后续使用。
目录
打赏
0
3
3
0
79
分享
相关文章
HuggingFace Transformers 库深度应用指南
本文首先介绍HuggingFace Tra环境配置与依赖安装,确保读者具备Python编程、机器学习和深度学习基础知识。接着深入探讨Transformers的核心组件,并通过实战案例展示其应用。随后讲解模型加载优化、批处理优化等实用技巧。在核心API部分,详细解析Tokenizers、Models、Configuration和Dataset的使用方法。文本生成章节则涵盖基础概念、GPT2生成示例及高级生成技术。最后,针对模型训练与优化,介绍预训练模型微调、超参数优化和推理加速等内容。通过这些内容,帮助读者掌握HuggingFace Transformers的深度使用,开发高效智能的NLP应用。
833 22
MySQL 安全加固配置(等保二级)
数据库安全是等保测评和网络安全中的重要的一项内容,本文介绍一些常见的加固配置。
4663 0
conda常用操作和配置镜像源
conda常用操作和配置镜像源
25928 0
开源数据库
【8月更文挑战第26天】开源数据库
218 11
阿里云ECS云服务器经济型e实例和通用算力型u1实例区别对比、适用场景和问题解答FAQ
阿里云ECS云服务器的经济型e实例和通用算力型u1实例是开发者和中小企业常用的两种配置。e实例适合中小型网站、开发测试等轻量级应用,性价比高;u1实例性能更优,适用于中小型企业级应用、数据分析等场景。同等配置下,u1实例在网络带宽、云盘IOPS等方面表现更好,价格也相对较高。选择时,个人用户推荐e实例,中小企业则更适合u1实例
阿里云PAI部署DeepSeek及调用
本文介绍如何在阿里云PAI EAS上部署DeepSeek模型,涵盖7B模型的部署、SDK和API调用。7B模型只需一张A10显卡,部署时间约10分钟。文章详细展示了模型信息查看、在线调试及通过OpenAI SDK和Python Requests进行调用的步骤,并附有测试结果和参考文档链接。
3228 11
阿里云PAI部署DeepSeek及调用
DeepSeek技术报告解析:为什么DeepSeek-R1 可以用低成本训练出高效的模型
DeepSeek-R1 通过创新的训练策略实现了显著的成本降低,同时保持了卓越的模型性能。本文将详细分析其核心训练方法。
844 11
DeepSeek技术报告解析:为什么DeepSeek-R1 可以用低成本训练出高效的模型
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
1036 20
AutoTrain:Hugging Face 开源的无代码模型训练平台
AutoTrain 是 Hugging Face 推出的开源无代码模型训练平台,旨在简化最先进模型的训练过程。用户无需编写代码,只需上传数据即可创建、微调和部署自己的 AI 模型。AutoTrain 支持多种机器学习任务,并提供自动化最佳实践,包括超参数调整、模型验证和分布式训练。
681 4
AutoTrain:Hugging Face 开源的无代码模型训练平台
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等