当前位置: 首页 > news >正文

PaddleNLP框架训练模型:使用SwanLab教程

PaddleNLP 是一款基于飞桨深度学习框架的大语言模型(LLM)开发套件,支持在多种硬件上进行高效的大模型训练、无损压缩以及高性能推理。PaddleNLP 具备简单易用和性能极致的特点,致力于助力开发者实现高效的大模型产业级应用。

在这里插入图片描述

你可以使用PaddleNLP快速进行模型训练,同时使用SwanLab进行实验跟踪与可视化。

Demo链接:Qwen2.5-0.5B-SFT-paddlenlp

1. 引入SwanLabCallback

from swanlab.integration.paddlenlp import SwanLabCallback

SwanLabCallback是适配于PaddleNLP的日志记录类。

SwanLabCallback可以定义的参数有:

  • project、experiment_name、description 等与 swanlab.init 效果一致的参数, 用于SwanLab项目的初始化。
  • 你也可以在外部通过swanlab.init创建项目,集成会将实验记录到你在外部创建的项目中。

2. 传入Trainer

from swanlab.integration.paddlenlp import SwanLabCallback
from paddlenlp.trainer import  TrainingArguments, Trainer...# 实例化SwanLabCallback
swanlab_callback = SwanLabCallback(project="paddlenlp-demo")trainer = Trainer(...# 传入callbacks参数callbacks=[swanlab_callback],
)trainer.train()

3. 完整案例代码

需要能连接上HuggingFace服务器下载数据集。

"""
测试于:
pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
pip install paddlenlp==3.0.0b4
"""
from paddlenlp.trl import SFTConfig, SFTTrainer
from datasets import load_dataset
from swanlab.integration.paddlenlp import SwanLabCallbackdataset = load_dataset("ZHUI/alpaca_demo", split="train")training_args = SFTConfig(output_dir="Qwen/Qwen2.5-0.5B-SFT",device="gpu",per_device_train_batch_size=1,logging_steps=20)swanlab_callback = SwanLabCallback(project="Qwen2.5-0.5B-SFT-paddlenlp",experiment_name="Qwen2.5-0.5B",
)trainer = SFTTrainer(args=training_args,model="Qwen/Qwen2.5-0.5B-Instruct",train_dataset=dataset,callbacks=[swanlab_callback],
)
trainer.train()

4. GUI效果展示

超参数自动记录:

在这里插入图片描述

指标记录:

在这里插入图片描述

5 拓展:增加更多回调

试想一个场景,你希望在每个epoch结束时,让模型推理测试样例,并用swanlab记录推理的结果,那么你可以创建一个继承自SwanLabCallback的新类,增加或重构生命周期函数。比如:

class NLPSwanLabCallback(SwanLabCallback):    def on_epoch_end(self, args, state, control, **kwargs):test_text_list = ["example1", "example2"]log_text_list = []for text in test_text_list:result = model(text)log_text_list.append(swanlab.Text(result))swanlab.log({"Prediction": test_text_list}, step=state.global_step)

上面是一个在NLP任务下的新回调类,增加了on_epoch_end函数,它会在transformers训练的每个epoch结束时执行。

http://www.xdnf.cn/news/438877.html

相关文章:

  • 养生:拥抱健康生活的实用之道
  • URP相机如何将场景渲染定帧模糊绘制
  • PyTorch中mean(dim=1)的深度解析
  • P2168 NOI2015 荷马史诗
  • Kubernetes排错(十七) :kubelet日志报device or resource busy
  • 【机器人】复现 SG-Nav 具身导航 | 零样本对象导航的 在线3D场景图提示
  • ​​开放传神创始人论道AI未来|“广发证券—国信中数人工智能赛道专家交流论坛“落幕
  • MySQL——九、锁
  • 【Linux】Ext系列文件系统
  • 卷积神经网络全连接层详解:特征汇总、FCN替代与性能影响分析
  • SRM电子采购管理系统:Java+Vue,集成供应商管理,实现采购流程数字化与协同优化
  • PyQt5完整指南:从入门到实践
  • 刘强东 “猪猪侠” 营销:重构创始人IP的符号革命|创客匠人热点评述
  • 如何创建自动工作流程拆分Google Drive中的PDF文件
  • iOS视频编码详细步骤(视频编码器,基于 VideoToolbox,支持硬件编码 H264/H265)
  • 深度学习基础知识
  • RK3588 串行解串板,支持8路GMSL相机
  • 嵌入式Linux Qt开发:1、搭建基于ubuntu18.04的Qt开发环境及测试(解决Qt creator输入法问题)
  • python三方库sqlalchemy
  • 【网络协议】TCP、HTTP、MQTT 和 WebSocket 对比
  • 内存虚拟盘(RAMDisk)是什么?
  • Axure设计之轮播图——案例“一图一轮播”
  • 基于策略的强化学习方法之策略梯度(Policy Gradient)详解
  • 如何高效集成MySQL数据到金蝶云星空
  • TAOCMS漏洞代码学习及分析
  • 嵌入式自学第二十一天(5.14)
  • JVM 与云原生的完美融合:引领技术潮流
  • 【SpringBoot实战指南】集成Easy ES
  • OpenCV实现数字水印的相关函数和示例代码
  • QListWedget控件使用指南