魔乐+SwanLab: 快速可视化跟踪模型微调

   日期:2024-12-27    作者:yangxuebing560 移动:http://mip.riyuangf.com/mobile/quote/70778.html

SwanLab是一款开源、轻量级的AI实验跟踪工具,提供了一个跟踪、比较、和协作实验的平台,旨在加速AI研发团队100倍的研发效率。其提供了友好的API和漂亮的界面,结合了超参数跟踪、指标记录、在线协作、实验链接分享、实时消息通知等功能,让您可以快速跟踪ML实验、可视化过程、分享给同伴。借助SwanLab,科研人员可以沉淀自己的每一次训练经验,与合作者无缝地交流和协作,机器学习工程师可以更快地开发可用于生产的模型。

本教程将介绍如何使用SwanLab来可视化跟踪魔乐社区上的模型微调,帮助大家了解SwanLab的能力。感兴趣的朋友也可以亲自上手感受一下。

友情链接:

  • 魔乐社区:<https://modelers.cn/docs/zh/openmind-library/0.9.1/overview.html>
  • SwanLab项目官网:<https://swanlab.cn>
  • SwanLab离线版GitHub开源仓库:<https://github.com/SwanHubX/SwanLab>

如果了解了上述的对应机制,那么就可以跑一个简单的微调代码了,该代码参考了魔乐社区的教程文档,稍作调整,可以对比NVIDIA显卡的结果。


2.1 概述

魔乐社区(Modelers.cn)是一个为人工智能开发者及爱好者打造的社区,提供工具链、数据集、模型和应用等AI领域生产要素的托管及展示服务和支撑系统。目前,魔乐社区已支持openMind Library。该工具通过简单的API接口,帮助开发者完成模型预训练、微调、推理等流程。同时,openMind Library原生兼容PyTorch 和 MindSpore 等主流框架,原生支持昇腾NPU处理器。openMind Library可以和PEFT、DeepSpeed等三方库配合使用,来提升模型微调效率。


2.2 环境配置

2.2.1 直接安装环境

如果是昇腾AI卡系列的话,配置环境前需要先安装驱动等设备,具体可以参考软件安装-CANN商用版8.0.RC3开发文档-昇腾社区。

驱动安装&验证

首先得确定有NPU卡和NPU相关驱动,驱动是8.0.RC3.beta1,如果没安装可以参考上面软件安装的链接查看。

安装好后的验证方法是运行下面的命令,该命令作用与nvidia-smi类似,这里是查看NPU的状态和性能

可以看到如下信息的话就表示驱动已经安装完成了,左侧是安装成功后运行代码后的结果,右侧是每一部分的含义

安装好驱动之后就可以配置环境了,本次微调代码使用PyTorch框架,昇腾AI应用使能套件中自带了基于PyTorch框架的各类函数,因此正常安装就行。

安装命令如下:

注意以下几点:

  1. 可以使用镜像源来安装环境,不然会很浪费时间,可以使用清华源:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple name

  1. 魔乐社区的模型支持PyTorch和MindSpore两种不同框架。配置环境时,可根据需要选择其中一个框架进行配置。
2.2.2 docker环境安装(推荐)

魔乐社区官方库也提供了模型的docker环境。

推荐通过点击模型测试部分(下图红框)找到docker的链接,通过docker来拉起拉起环境。下面介绍docker环境的搭建教程。

首先得确定有NPU卡和NPU相关驱动,驱动是8.0.RC3.beta1,如果没安装可以参考CANN官方安装教程

完成安装后检测方法是运行

可以看到如下信息的话就表示驱动已经安装完成了。

接下来使用如下命令创建一个装好openmind环境的容器,这样可以省去大量安装环境的时间:

这将在后台开启一个名为openmind容器。使用如下命令可进入到容器当中

出现如下界面即表示进入到容器当中

最后在docker中运行如下命令安装SwanLab即可完成环境安装。

2.3 数据集处理

方法目前支持下载的数据集格式如下:

  • parquet
  • json或者jsonl
  • tar.gz
  • csv
  • 下载python脚本加载魔乐社区数据集
  • 下载python脚本加载三方站点数据集

2.4 加载模型

和transformers使用差不多,分别加载模型和分词器

2.5 训练参数配置

创建一个TrainingArguments类,其中包含可以调整的所有超参数以及不同的训练选项。

2.6 评估参数设置

Trainer在训练过程中不会自动评估模型性能,需要向Trainer传递一个函数来计算和展示指标。

2.7 可视化工具配置

swanlab支持记录openMind Library。能够在线/离线查看训练日志。SwanLab支持openMind Library通过callback调用,调用代码可参考后文。

关于SwanLab的使用方法可以参考SwanLab官方文档-快速开始

如果提示登录swanlab,可以在官网完成注册后,使用获取API KEY找到对应的登陆密钥并粘贴,这样将能够使用云上看版随时查看训练过程与结果。

2.8 全过程代码


这里使用HF Transformers实现同样的训练过程,使用NVIDIA-A100卡来跑了一次做个对比,A100对应的代码如下:

下面是Ascend NPU与A100实验对比:

首先是实验时间,此次实验epoch=3,

看样子昇腾卡比A100稍微快点

然后是显存消耗,其中两个监测NPU/GPU状态的代码如下:

显存消耗差不多

最后是loss等参数的变化

感觉A100上运行的结果震荡比较明显,昇腾卡震荡比较少。



特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号