【AI大模型】Transformers大模型库(十一):Trainer训练类

简介: 【AI大模型】Transformers大模型库(十一):Trainer训练类

一、引言

这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。

🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。

🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。

🤗 Transformers 支持三个最热门的深度学习库: Jax, PyTorch 以及 TensorFlow — 并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载和推理。

本文重点介绍Trainer训练类

二、Trainer训练类

2.1 概述

2.2 使用示例

from transformers import AutoModelForSequenceClassification, Trainer, TrainingArguments
from datasets import load_dataset
 
# 1. 加载数据集
# 假设我们使用的是Hugging Face的内置数据集,例如SST-2
dataset = load_dataset('sst2')  # 或者使用你自己的数据集
 
# 2. 数据预处理,可能需要根据模型进行Tokenization
# 以BERT为例,使用AutoTokenizer
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def tokenize_function(examples):
    return tokenizer(examples["sentence"], truncation=True)
tokenized_datasets = dataset.map(tokenize_function, batched=True)
 
# 3. 准备训练参数
training_args = TrainingArguments(
    output_dir='./results',          # 输出目录
    num_train_epochs=3,              # 总的训练轮数
    per_device_train_batch_size=16,  # 每个GPU的训练批次大小
    per_device_eval_batch_size=64,   # 每个GPU的评估批次大小
    warmup_steps=500,                # 预热步数
    weight_decay=0.01,               # 权重衰减
    logging_dir='./logs',            # 日志目录
    logging_steps=10,
)
 
# 4. 准备模型
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
 
# 5. 创建Trainer并开始训练
trainer = Trainer(
    model=model,                         # 要训练的模型
    args=training_args,                  # 训练参数
    train_dataset=tokenized_datasets['train'],  # 训练数据集
    eval_dataset=tokenized_datasets['validation'], # 验证数据集
)
 
# 开始训练
trainer.train()

整个流程是机器学习项目中的标准流程:数据准备、模型选择、参数设置、训练与评估。每个步骤都是为了确保模型能够高效、正确地训练,以解决特定的机器学习任务:

  • 加载数据集 (load_dataset('sst2')):这行代码是使用Hugging Face的datasets库加载SST-2数据集,这是一个情感分析任务的数据集。如果你使用自定义数据集,需要相应地处理和加载数据。
  • 数据预处理 (tokenizer(examples["sentence"], truncation=True)):在训练模型之前,需要将文本数据转换为模型可以理解的格式。这里使用AutoTokenizer对文本进行分词(Tokenization),truncation=True意味着如果句子超过模型的最大输入长度,将截断超出部分。这一步是将文本转换为模型输入的张量格式。
  • 训练参数 (TrainingArguments):这部分定义了训练过程的配置,包括训练轮数(num_train_epochs)、每个设备的训练和评估批次大小、预热步数(warmup_steps)、权重衰减(weight_decay)等。这些参数对训练效率和模型性能有重要影响。
  • 准备模型 (AutoModelForSequenceClassification.from_pretrained()):这里选择或初始化模型,AutoModelForSequenceClassification是用于序列分类任务的模型,from_pretrained方法加载预训练的模型权重。选择的模型(如BERT的“bert-base-uncased”)是基于任务需求的。
  • 创建Trainer (Trainer):Trainer是Transformers库中的核心类,它负责模型的训练和评估流程。它接收模型、训练参数、训练数据集和评估数据集作为输入。Trainer自动处理了训练循环、损失计算、优化器更新、评估、日志记录等复杂操作,使得训练过程更加简洁和高效。
  • 开始训练 (trainer.train()):调用此方法开始模型的训练过程。Trainer会根据之前设定的参数和数据进行模型训练,并在每个指定的步骤打印日志,训练完成后,模型的权重会保存到指定的输出目录。

三、总结

本文对transformers训练类Trainer进行讲述并赋予应用代码,希望可以帮到大家!


目录
相关文章
|
13天前
|
人工智能 Java Serverless
阿里云函数计算助力AI大模型快速部署
随着人工智能技术的快速发展,AI大模型已经成为企业数字化转型的重要工具。然而,对于许多业务人员、开发者以及企业来说,探索和利用AI大模型仍然面临诸多挑战。业务人员可能缺乏编程技能,难以快速上手AI模型;开发者可能受限于GPU资源,无法高效构建和部署AI应用;企业则希望简化技术门槛,以更低的成本和更高的效率利用AI大模型。
68 12
|
11天前
|
人工智能 安全 数据安全/隐私保护
文档智能 & RAG让AI大模型更懂业务测评
文档智能 & RAG让AI大模型更懂业务
133 73
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
GLM-4V-Flash:智谱 AI 免费开放的图像理解大模型 API 接口
智谱AI推出的GLM-4V-Flash是一款专注于图像理解的免费开放大模型,提供API接口支持用户上传图片URL或Base64编码图片获取详细的图像描述。该模型通过深度学习和卷积神经网络技术,简化了图像分析流程,提高了开发效率,适用于内容审核、辅助视障人士、社交媒体、教育和电子商务等多个应用场景。
85 14
GLM-4V-Flash:智谱 AI 免费开放的图像理解大模型 API 接口
|
11天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
12月05日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·电子科技大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
|
16天前
|
机器学习/深度学习 人工智能 JSON
【实战干货】AI大模型工程应用于车联网场景的实战总结
本文介绍了图像生成技术在AIGC领域的发展历程、关键技术和当前趋势,以及这些技术如何应用于新能源汽车行业的车联网服务中。
251 33
|
14天前
|
机器学习/深度学习 存储 人工智能
【AI系统】感知量化训练 QAT
本文介绍感知量化训练(QAT)流程,旨在减少神经网络从FP32量化至INT8时的精度损失。通过在模型中插入伪量化节点(FakeQuant)模拟量化误差,并在训练中最小化这些误差,使模型适应量化环境。文章还探讨了伪量化节点的作用、正向与反向传播处理、TensorRT中的QAT模型高效推理,以及QAT与PTQ的对比,提供了实践技巧,如从良好校准的PTQ模型开始、采用余弦退火学习率计划等。
54 2
【AI系统】感知量化训练 QAT
|
14天前
|
机器学习/深度学习 存储 人工智能
【AI系统】训练后量化与部署
本文详细介绍了训练后量化技术,涵盖动态和静态量化方法,旨在将模型权重和激活从浮点数转换为整数,以优化模型大小和推理速度。通过KL散度等校准方法和量化粒度控制,文章探讨了如何平衡模型精度与性能,同时提供了端侧量化推理部署的具体实现步骤和技术技巧。
40 1
【AI系统】训练后量化与部署
|
13天前
|
存储 人工智能 搜索推荐
整合长期记忆,AI实现自我进化,探索大模型这一可能性
本文探讨了通过整合长期记忆(LTM),AI模型能否实现自我进化,以提升处理新任务和适应环境的能力。LTM能帮助模型存储和利用长期信息,提高决策质量和服务个性化水平。文章还讨论了LTM整合的挑战及解决方案,以及如何借鉴人类记忆机制设计有效的LTM策略。[论文链接](https://arxiv.org/pdf/2410.15665)
59 17
|
13天前
|
人工智能 PyTorch 测试技术
【AI系统】并行训练基本介绍
分布式训练通过将任务分配至多个节点,显著提升模型训练效率与精度。本文聚焦PyTorch2.0中的分布式训练技术,涵盖数据并行、模型并行及混合并行等策略,以及DDP、RPC等核心组件的应用,旨在帮助开发者针对不同场景选择最合适的训练方式,实现高效的大模型训练。
50 8
|
5天前
|
人工智能 API Windows
免费部署本地AI大语言模型聊天系统:Chatbox AI + 马斯克grok2.0大模型(简单5步实现,免费且比GPT4.0更好用)
本文介绍了如何部署本地AI大语言模型聊天系统,使用Chatbox AI客户端应用和Grok-beta大模型。通过获取API密钥、下载并安装Chatbox AI、配置模型,最终实现高效、智能的聊天体验。Grok 2大模型由马斯克X-AI发布,支持超长文本上下文理解,免费且易于使用。
33 0
下一篇
DataWorks