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

【机器学习工具】Weights Biases

目录

  • Weights & Biases
    • 核心功能模块
  • Python 中应用
    • 与主流框架集成示例
  • 参考

在机器学习(ML)和深度学习(DL)的快速发展中,数据科学家和研究人员面临着巨大的挑战:如何有效地管理实验、调优模型以及跟踪训练过程中的每一个细节。为了应对这些挑战, Weights & Biases(简称 W&B) 应运而生,成为了开发者和研究人员必不可少的工具之一。

Weights & Biases

Weights & Biases (W&B) 是一个 AI 开发平台,广泛用于:

  • 机器学习实验管理
  • 模型性能追踪与可视化
  • LLM 应用开发与监控(如 RAG, agent, prompt 调试)
  • MLOps 落地实践(如模型注册、监控、超参优化等)

在这里插入图片描述

它支持从模型训练到部署的全流程,并与主流框架(如 PyTorch、TensorFlow、Transformers、Langchain 等)深度集成。

核心功能模块

模型开发相关(MLOps)

  • Experiments:实验追踪与可视化
  • Sweeps:自动超参数搜索
  • Tables:数据可视化与交互式分析
  • Artifacts:模型与数据版本管理
  • Reports:生成结果可视化报告
  • Registry:模型与数据注册与共享

LLM 应用相关(LLMOps)

  • Weave:构建和调试基于 LLM 的 AI 应用(如 RAG、Agent)
  • Traces:可视化 LLM 调用路径
  • Evaluations:对 LLM 应用进行系统评估
  • Agents:Agent 系统的可观测性工具
  • Guardrails:安全控制,防止 prompt 攻击与有害输出
  • Playground:可视化 prompt 实验环境

Python 中应用

1. 安装
使用 Weights & Biases 的第一步是安装 W&B 库。可以通过以下命令进行安装:

pip install wandb

在使用 W&B 之前,需要在 W&B 的官网注册一个账户:官网-wandb。注册完成后,你将获得一个 API 密钥。使用以下命令登录:

wandb login

执行这个命令后,会要求输入 API 密钥。可以在 W&B 的网站上找到这个密钥。登录后,就可以将本地的实验数据与 W&B 的云平台同步了。


2. 初始化并记录实验

import wandb# 初始化项目
run = wandb.init(project="my-project", name="run-name")# 设置超参数
config = run.config
config.learning_rate = 0.001
config.epochs = 10# 日志记录
for epoch in range(config.epochs):loss = 0.1 * epoch  # 假设的损失值wandb.log({"epoch": epoch, "loss": loss})run.finish()

3. 可视化模型结构、梯度和指标

model = MyModel()  # 假设定义好的模型
wandb.watch(model, log="all")  # 记录模型权重、梯度等

4. 保存模型或数据作为 Artifact

artifact = wandb.Artifact("model", type="model")
artifact.add_file("model.pt")
run.log_artifact(artifact)

5. 超参数搜索(Sweeps)

创建 sweep.yaml 文件:

method: bayes
metric:name: lossgoal: minimize
parameters:learning_rate:min: 0.0001max: 0.1batch_size:values: [16, 32, 64]

然后运行:

wandb sweep sweep.yaml
wandb agent <sweep-id>

与主流框架集成示例

1、PyTorch

import wandb
run = wandb.init(project="pytorch-example")for batch_idx, (data, target) in enumerate(train_loader):output = model(data)loss = loss_fn(output, target)loss.backward()optimizer.step()wandb.log({"loss": loss.item()})

2、Transformers + Hugging Face

from transformers import Trainer, TrainingArgumentstraining_args = TrainingArguments(output_dir="./results",num_train_epochs=3,per_device_train_batch_size=16,report_to="wandb",  # 关键设置
)trainer = Trainer(model=model,args=training_args,train_dataset=train_data,eval_dataset=eval_data,
)trainer.train()

3、Langchain + Weave

import weave
from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplateweave.init("langchain-demo")llm = ChatOpenAI()
prompt = PromptTemplate.from_template("1 + {number} = ")llm_chain = prompt | llm
output = llm_chain.invoke({"number": 2})print(output)

参考

1、CSDN博客-【Weights & Biases】机器学习中的最佳实践与工具

http://www.dtcms.com/a/289047.html

相关文章:

  • C++string类用法
  • gradle微服务依赖模版
  • OpenTelemetry学习笔记(九):Elastic 对 OTLP 的原生支持
  • 【成品设计】基于STM32的宠物检测系统
  • 状态管理与团队协作 - SRE 的核心关切
  • Flink2.0学习笔记:Table API SQL
  • Ubuntu 24.04 设置静态 IP 的方法
  • XILINX JESD204B/C IP的AXI配置
  • leetCode——1492. n的第k个因子
  • ps2025下载与安装教程(附安装包) 2025最新版photoshop安装教程
  • 进阶向:基于Python的局域网文件传输工具
  • 初识软件测试
  • Redis 详解:从入门到进阶
  • Hiredis 构建 Redis 命令实战指南
  • 基于pi/4-QPSK扩频解扩和gardner环定时同步的通信系统matlab性能仿真
  • 绝对定位 vs 浮动:CSS布局核心差异解析
  • Spring 源码阅读(二) 核心概念解析 ApplicationContext、类型转化
  • 企业安全防护:堡垒机技术解析
  • 数据结构与算法汇总
  • spring-cloud使用
  • 再谈文件-ext2文件系统
  • NISP-PTE基础实操——XSS
  • PPT科研画图插件
  • 力扣-55.跳跃游戏
  • 【C语言】内存函数介绍(上)
  • axios二次封装-单个、特定的实例的拦截器、所有实例的拦截器。
  • 【机器学习深度学习】量化与选择小模型的区别:如何理解两者的优势与局限?
  • 嵌入式硬件篇---核心板制作
  • nginx定期清理日志
  • 【面向对象】C++类实现计数器:从理论到实践的编程之旅