当前位置: 首页 > 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结束时执行。

相关文章:

  • 虚拟机安装CentOS7网络问题
  • 数字化转型 - 标准化
  • docker 端口映射 docker run -p <宿主机端口>:<容器端口> <镜像名> ssh连不上的原因
  • Kafka进阶指南:从原理到实战
  • 认识Docker/安装Docker
  • 因为工作需要,做了一个简单的FunASR语音引擎训练材料标注工具
  • 【Linux】git
  • 时源芯微|扩频IC如何减少电磁干扰(EMI)
  • 什么是SparkONYarn模式?
  • 喜报!3N获批首个创新医疗器械三类证—「镜净GP」硬性接触镜护理消毒仪
  • JDK 命令行工具大全与学习方法总结 —— 从帮助文档到高效实践
  • 【2025.5.12】视觉语言模型 (更好、更快、更强)
  • 「Mac畅玩AIGC与多模态37」开发篇32 - 基于工作流的双插件信息整合与展示优化
  • QFileDialog文件选择框
  • vllm量化02—awq
  • 自定义分区器-基础
  • typeof运算符和深拷贝
  • js白屏检测与白屏的修正机制
  • Pomelo知识框架
  • fiftyone-dataset使用基础
  • 香港特区立法会通过条例草案便利外地公司迁册来港
  • 马上评|让查重回归促进学术规范的本意
  • 崔登荣任国家游泳队总教练
  • 郑培凯:汤显祖的“至情”与罗汝芳的“赤子之心”
  • 特朗普开启第二任期首次外访:中东行主打做生意,不去以色列
  • 金价大跌!足金饰品每克一夜便宜14元,涨势是否已终结?