【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化

本文使用到的 Jupyter Notebook 可在GitHub仓库002文件夹找到,别忘了给仓库点个小心心~~~
https://github.com/LFF8888/FF-Studio-Resources
在这里插入图片描述

在自然语言处理领域,使用Hugging Face的Transformers库进行模型训练已经成为主流。然而,随着模型复杂度的增加和实验次数的增多,如何高效地跟踪和管理每一次实验的结果变得尤为重要。传统的日志记录方法往往繁琐且不够直观,难以满足快速迭代的需求。幸运的是,Weights & Biases(W&B)提供了一种轻量级的解决方案,能够无缝集成到Hugging Face的工作流程中,帮助开发者自动跟踪实验数据、可视化模型性能,并轻松比较不同架构和超参数设置的效果。本文将详细介绍如何利用这一强大组合,让每一次实验都清晰可溯,每一次优化都有据可依。

Hugging Face + W&B

通过无缝的 W&B 集成,快速可视化你的 Hugging Face 模型性能。
比较超参数、输出指标以及系统统计数据,如 GPU 利用率。

🤔 为什么我应该使用 W&B?

在这里插入图片描述

  • 统一仪表盘:所有模型指标和预测的中央存储库
  • 轻量级:无需代码更改即可与 Hugging Face 集成
  • 可访问:个人和学术团队免费使用
  • 安全:所有项目默认私有
  • 可信:被 OpenAI、Toyota、Lyft 等机器学习团队使用

将 W&B 视为机器学习模型的 GitHub——将机器学习实验保存到你的私有托管仪表盘。快速实验,确保所有模型版本都已保存,无论你在哪里运行脚本。
W&B 的轻量级集成适用于任何 Python 脚本,你只需注册一个免费的 W&B 账户即可开始跟踪和可视化你的模型。

在 Hugging Face Transformers 仓库中,我们已将 Trainer 配置为在每个日志步骤自动将训练和评估指标记录到 W&B。
以下是集成工作原理的深入分析:Hugging Face + W&B 报告。

🚀 安装、导入和登录

安装 Hugging Face 和 Weights & Biases 库,以及本教程的 GLUE 数据集和训练脚本。

  • Hugging Face Transformers:自然语言模型和数据集
  • Weights & Biases:实验跟踪和可视化
  • GLUE 数据集:语言理解基准数据集
  • GLUE 脚本:用于序列分类的模型训练脚本
!pip install datasets wandb evaluate accelerate -qU
!wget https://raw.githubusercontent.com/huggingface/transformers/master/examples/pytorch/text-classification/run_glue.py
# run_glue.py 脚本需要 transformers dev 版本
!pip install -q git+https://github.com/huggingface/transformers

🖊️ 注册免费账户 →

🔑 输入你的 API 密钥

注册后,运行下一个单元格并点击链接获取你的 API 密钥以验证此笔记本。

import wandb
wandb.login()

可选地,我们可以设置环境变量以自定义 W&B 日志记录。查看 文档。

# 可选:记录梯度和参数
%env WANDB_WATCH=all

👟 训练模型

接下来,调用下载的训练脚本 run_glue.py,并查看训练自动跟踪到 Weights & Biases 仪表盘。该脚本在 Microsoft Research Paraphrase Corpus 上微调 BERT——包含人类标注的句子对,指示它们是否语义等价。

%env WANDB_PROJECT=huggingface-demo
%env TASK_NAME=MRPC!python run_glue.py \--model_name_or_path bert-base-uncased \--task_name $TASK_NAME \--do_train \--do_eval \--max_seq_length 256 \--per_device_train_batch_size 32 \--learning_rate 2e-4 \--num_train_epochs 3 \--output_dir /tmp/$TASK_NAME/ \--overwrite_output_dir \--logging_steps 50

👀 在仪表盘中可视化结果

点击上面打印的链接,或访问 wandb.ai 查看你的结果实时流入。浏览器中查看你的运行的链接将在所有依赖项加载后出现——查找以下输出:“wandb: 🚀 View run at [URL to your unique run]”

可视化模型性能 轻松查看数十个实验,放大有趣的发现,并可视化高维数据。

在这里插入图片描述

比较架构 这是一个比较 BERT vs DistilBERT 的示例——通过自动折线图可视化,可以轻松查看不同架构如何影响训练期间的评估准确性。

在这里插入图片描述

📈 默认情况下轻松跟踪关键信息

Weights & Biases 为每个实验保存一个新的运行。以下是默认保存的信息:

  • 超参数:模型设置保存在 Config 中
  • 模型指标:流式传输的指标时间序列数据保存在 Log 中
  • 终端日志:命令行输出保存在选项卡中
  • 系统指标:GPU 和 CPU 利用率、内存、温度等

🤓 了解更多!

  • 文档:Weights & Biases 和 Hugging Face 集成的文档
  • 视频:教程、与从业者的访谈等,请访问我们的 YouTube 频道
  • 联系我们:如有问题,请发送邮件至 contact@wandb.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建一个javaWeb Project

文章目录 前言一、eclipse创建web工程二、web.xmlservlet.xml< mvc:annotation-driven/ > Spring MVC 驱动< context:component - scan >&#xff1a;扫描< bean > ... < /bean >< import > config/beans.xml beans.xmlmybatis.xml 前言 javaWe…

【蓝桥杯—单片机】第十一届省赛真题代码题解题笔记 | 省赛 | 真题 | 代码题 | 刷题 | 笔记

第十一届省赛真题代码部分 前言赛题代码思路笔记竞赛板配置内部振荡器频率设定键盘工作模式跳线扩展方式跳线 建立模板明确设计要求和初始状态显示功能部分数据界面第一部分第二部分第三部分调试时发现的问题 参数设置界面第一部分第二部分和第四部分第三部分和第五部分 按键功…

寒假2.7

题解 web&#xff1a;[HCTF 2018]WarmUp 打开是张表情包 看一下源代码 访问source.php&#xff0c;得到完整代码 代码审计 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.p…

【LeetCode Hot100 动态规划】

动态规划 动态规划五部曲简单动态规划问题爬楼梯打家劫舍 01背包类问题01背包基础二维动态数组一维动态数组分割等和子集 完全背包类问题完全背包基础零钱兑换完全平方数零钱兑换II组合总和IV单词拆分 子序列问题最长递增子序列乘积最大子数组 动态规划五部曲 确定dp数组&…

python康威生命游戏的图形化界面实现

康威生命游戏&#xff08;Conway’s Game of Life&#xff09;是由英国数学家约翰何顿康威&#xff08;John Horton Conway&#xff09;在1970年发明的一款零玩家的细胞自动机模拟游戏。尽管它的名字中有“游戏”&#xff0c;但实际上它并不需要玩家参与操作&#xff0c;而是通…

【数据结构】链表应用-链表重新排序

重新排序 反转链表预期实现思路解题过程code力扣代码核心代码完整代码 总结 删除链表中间节点代码解惑 链表重新排序题目描述解题思路解题过程复杂度代码力扣代码完整代码 反转链表 预期实现 思路 你选用何种方法解题&#xff1f; 我选用了迭代法来反转链表。这是一种经典且高…

使用mockttp库模拟HTTP服务器和客户端进行单元测试

简介 mockttp 是一个用于在 Node.js 中模拟 HTTP 服务器和客户端的库。它可以帮助我们进行单元测试和集成测试&#xff0c;而不需要实际发送 HTTP 请求。 安装 npm install mockttp types/mockttp模拟http服务测试 首先导入并创建一个本地服务器实例 import { getLocal } …

pytest-xdist 进行多进程并发测试!

在软件开发过程中&#xff0c;测试是确保代码质量和可靠性的关键步骤。随着项目规模的扩大和复杂性的增加&#xff0c;测试用例的执行效率变得尤为重要。为了加速测试过程&#xff0c;特别是对于一些可以并行执行的测试用 例&#xff0c;pytest-xdist 提供了一种强大的工具&…

mysql8安装时提示-缺少Microsoft Visual C++ 2019 x64 redistributable

MySQL8.0安装包mysql-8.0.1-winx64进行安装&#xff0c;提示&#xff1a;This application requires Visual Studio 2019 x64Redistributable, Please install the Redistributable then runthis installer again。出现这个错误是因为我们电脑缺少Microsoft Visual C 这个程序&…

基于HTML生成网页有什么优势

在互联网时代&#xff0c;网页是人们获取信息、交流互动的重要窗口&#xff0c;而基于HTML生成网页&#xff0c;是搭建网络大厦的关键。HTML语法简洁直观&#xff0c;标签和属性语义明确&#xff0c;新手也能迅速上手&#xff0c;创建包含基础元素的网页&#xff0c;极大降低了…

【MySQL】深度理解事务的隔离性:全面讲解事务的四种隔离级别

**前言&#xff1a;**上节内容我们主要说了如果没有设置保存点&#xff0c; 也可以回滚&#xff0c;但是只能回滚到事务的开始。直接使用rollback的前提是事务还没有提交。并且如果一个事务被提交了&#xff0c;就不可以回退。同时我们也可以使用savepoint设置回滚点。 可以自己…

项目实战 —— HTTP服务器设计与实现

目录 一&#xff0c;项目介绍 二&#xff0c;背景知识补充 2.1 http特点 2.2 URI&#xff0c;URL&#xff0c;URN 2.3 http请求方法 三&#xff0c;前置功能实现 3.1 日志编写 3.2 封装相关套接字 3.3 http请求结构设计 3.4 http响应结构设计 3.5 http服务器主体逻辑…

Verilog 语法篇 硬件描述语言

Verilog 是一种硬件描述语言&#xff0c;用于设计、模拟和综合数字电路和系统。它主要用于描述 ASIC&#xff08;专用集成电路&#xff09;或 FPGA&#xff08;现场可编程门阵列&#xff09;等硬件设备的结构和行为。 定义与用途&#xff1a; Verilog 是一种硬件描述语言&#…

GitHub Copilot:智能助手觉醒

GitHub Copilot: The agent awakens - The GitHub Blog github copilot 官方文档刚刚宣布支持 agent 模式&#xff01; 这一模式和之前的 chat 方式不同&#xff0c;类似于 cursor 可以根据需求直接运行、调试和修改代码 这一模式在 preview 版本可以使用&#xff0c;并且需…

网络安全威胁框架与入侵分析模型概述

引言 “网络安全攻防的本质是人与人之间的对抗&#xff0c;每一次入侵背后都有一个实体&#xff08;个人或组织&#xff09;”。这一经典观点概括了网络攻防的深层本质。无论是APT&#xff08;高级持续性威胁&#xff09;攻击、零日漏洞利用&#xff0c;还是简单的钓鱼攻击&am…

SystemUI中NavigationBar分析

需求 SystemUI是一个与系统组件显示紧密相关的应用&#xff0c;包含快捷中心、消息通知、状态栏、导航栏、任务中心等诸多模块&#xff0c;本文介绍NavigationBar模块。SystemUI源码位于/frameworks/base/packages/SystemUI&#xff0c;Android13平台。NavigationBar显示如下&…

【人工智能】Python中的序列到序列(Seq2Seq)模型:实现机器翻译

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 序列到序列(Seq2Seq)模型是自然语言处理(NLP)中一项核心技术,广泛应用于机器翻译、语音识别、文本摘要等任务。本文深入探讨Seq2Seq模…

深入浅出谈VR(虚拟现实、VR镜头)

1、VR是什么鬼&#xff1f; 近两年VR这次词火遍网上网下&#xff0c;到底什么是VR&#xff1f;VR是“Virtual Reality”&#xff0c;中文名字是虚拟现实&#xff0c;是指采用计算机技术为核心的现代高科技手段生成一种虚拟环境&#xff0c;用户借助特殊的输入/输出设备&#x…

postman免登录版本,实测可用(解决一直卡在登录界面无法进入的问题)

一、背景 2025今年开工后&#xff0c;打开postman&#xff0c;一直提示需要登录&#xff0c;但是一直卡在登录界面&#xff0c;好几个人的postman都是这样的情况&#xff0c;不知道是什么原因。 折腾几小时无果&#xff0c;网上下载了各种版本都试了&#xff0c;最新的版本也…

猫眼Java开发面试题及参考答案(上)

详细介绍项目,像项目中如何用 Redis,用到 Redis 哪些数据类型,项目中遇到哪些问题,怎么解决的 在我参与的一个电商项目中,Redis 发挥了至关重要的作用。这个电商项目主要是为用户提供商品浏览、购物车管理、订单处理等一系列功能。 在项目中使用 Redis 主要是为了提升系统…