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

08-MLOps与工程落地——02. 实验追踪:Weights Biases

02. 实验追踪Weights Biases一、WB概述1.1 产品定位与特点Weights BiasesWB是一个专注于机器学习实验管理的平台提供云端实验追踪、可视化、超参数搜索和协作功能。核心特点轻量级集成只需几行代码实时可视化Loss曲线、模型预测、混淆矩阵超参数自动优化Sweeps团队协作和报告生成与主流框架深度集成PyTorch、TF、Keras、HF1.2 与MLflow对比特性MLflowWeights Biases部署方式自托管、本地云优先支持私有部署价格免费开源免费版 企业版UI体验基础精美交互性强超参数搜索有限Sweeps系统强大可视化基础图表丰富直方图、散点图、平行坐标报告功能无Reports原生支持私有化部署✅ 完全可控❌ 企业版支持学习曲线低很低二、基础使用2.1 初始化与配置# 安装pipinstallwandb# 登录wandb login# 或设置 API KeyexportWANDB_API_KEYyour_api_keyimportwandb# 初始化wandb.init(projectiris-classification,entityyour_team,namexgboost-v1,config{learning_rate:0.1,max_depth:6,epochs:100,batch_size:32})2.2 参数记录# 通过 config 记录wandb.config.update({model_type:XGBoost,dataset:iris,test_size:0.2})# 运行时更新wandb.config.update({early_stopping_rounds:10},allow_val_changeTrue)2.3 指标记录importnumpyasnpforepochinrange(100):# 单指标wandb.log({loss:train_loss,acc:train_acc})# 多指标wandb.log({train/loss:train_loss,train/accuracy:train_acc,val/loss:val_loss,val/accuracy:val_acc,learning_rate:lr})# 按步数记录wandb.log({loss:loss},stepglobal_step)2.4 可视化importmatplotlib.pyplotasplt# 记录图表fig,axplt.subplots()ax.plot(train_losses,labelTrain Loss)ax.plot(val_losses,labelVal Loss)ax.legend()wandb.log({loss_curve:fig})# 记录图像wandb.log({predictions:wandb.Image(predictions_plot),confusion_matrix:wandb.plot.confusion_matrix(y_truey_test,y_predy_pred,class_namesclass_names)})# 记录表格wandb.log({results_table:wandb.Table(dataframeresults_df,columns[model,accuracy,f1_score])})三、高级功能3.1 超参数搜索Sweeps# sweep.yamlmethod:bayes# grid, random, bayesmetric:name:val_accuracygoal:maximizeparameters:learning_rate:distribution:log_uniformmin:0.001max:0.1max_depth:values:[3,5,7,9]n_estimators:distribution:int_uniformmin:50max:300subsample:distribution:uniformmin:0.6max:1.0# train.pySweep目标函数deftrain():wandb.init()configwandb.config modelXGBClassifier(learning_rateconfig.learning_rate,max_depthconfig.max_depth,n_estimatorsconfig.n_estimators,subsampleconfig.subsample)model.fit(X_train,y_train)val_accmodel.score(X_val,y_val)wandb.log({val_accuracy:val_acc})# 启动 Sweepsweep_idwandb.sweep(sweepsweep.yaml,projectiris)wandb.agent(sweep_id,functiontrain,count50)# 运行50次3.2 模型版本管理Artifacts# 记录工件artifactwandb.Artifact(namexgboost-model,typemodel,metadata{framework:xgboost,version:1.0})artifact.add_file(model.pkl)wandb.log_artifact(artifact)# 记录数据集dataset_artifactwandb.Artifact(nameiris-dataset,typedataset,metadata{samples:150,features:4})dataset_artifact.add_dir(./data)wandb.log_artifact(dataset_artifact)# 加载工件artifactwandb.run.use_artifact(xgboost-model:v0,typemodel)artifact_dirartifact.download()# 注册到模型注册表wandb.log_artifact(artifact,aliases[production,staging])3.3 报告生成Reports# Reports 在 Web UI 中创建支持# - 可视化图表拖拽# - Markdown 文本# - 表格展示# - 协作评论# 通过 Python API 创建reportwandb.Api().create_report(projectiris-classification,titleExperiment Report,descriptionComparison of XGBoost hyperparameters,runs[run1,run2,run3])3.4 与主流框架集成# PyTorchimportwandb wandb.init()# 自动记录 - 不需要手动 logwandb.watch(model,log_freq100)# 记录梯度wandb.watch(model,logall,log_freq100)# 记录模型权重分布wandb.watch(model,logparameters,log_freq100)# Hugging Face TransformersfromtransformersimportTrainer,TrainingArgumentsimportwandb wandb.init(projecthf-finetune)training_argsTrainingArguments(output_dir./results,report_towandb,# 关键配置logging_steps10,)trainerTrainer(modelmodel,argstraining_args,train_datasettrain_dataset,eval_dataseteval_dataset)trainer.train()四、团队协作4.1 项目共享# 设置团队空间wandb.init(projectchurn-prediction,entityml-team)# 可视化面板# 所有团队成员可实时查看实验进度# 支持评论和标注4.2 权限管理# 团队权限层级# - Admin: 完全控制# - Member: 读写项目# - Viewer: 只读访问# API Key 管理# 不同用户使用不同 API Key# 支持服务账号用于 CI/CD4.3 注释与讨论# 在代码中添加注释wandb.notesThis experiment uses XGBoost with default paramswandb.tags[baseline,xgboost,no-feature-engineering]# 通过 API 添加评论wandb.Api().run(entity/project/run_id).comment(Overfitting detected)五、部署选项5.1 云端SaaS# 免费版100GB 存储 无限项目# 支持个人和小团队# 企业版# - SSO/SAML# - 审计日志# - 私有部署支持# - 优先级支持5.2 私有部署# 企业私有部署dockerrun-d\-p8080:8080\-eLICENSEyour_license\wandb/local:latest# 配置本地服务器wandb.init(hosthttp://wandb.yourcompany.com)六、实战WB实验管理importwandbimportxgboostasxgbfromsklearn.datasetsimportload_breast_cancerfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportroc_auc_score,accuracy_scoreimportmatplotlib.pyplotasplt# 加载数据dataload_breast_cancer()X_train,X_test,y_train,y_testtrain_test_split(data.data,data.target,test_size0.2,random_state42)# 1. 初始化实验wandb.init(projectcancer-detection,namexgboost-sweep-01,config{learning_rate:0.05,max_depth:6,n_estimators:150,subsample:0.8,colsample_bytree:0.8,eval_metric:logloss})configwandb.config# 2. 记录数据集信息wandb.log({train_samples:len(X_train),test_samples:len(X_test),features:data.data.shape[1],classes:len(data.target_names)})# 3. 模型训练modelxgb.XGBClassifier(learning_rateconfig.learning_rate,max_depthconfig.max_depth,n_estimatorsconfig.n_estimators,subsampleconfig.subsample,colsample_bytreeconfig.colsample_bytree,eval_metricconfig.eval_metric,use_label_encoderFalse)# 4. 训练日志forepochinrange(1,config.n_estimators1,10):model.fit(X_train,y_train,eval_set[(X_test,y_test)],verbose0)y_pred_probamodel.predict_proba(X_test)[:,1]# 记录指标wandb.log({epoch:epoch,train_accuracy:model.score(X_train,y_train),val_accuracy:model.score(X_test,y_test),val_auc:roc_auc_score(y_test,y_pred_proba)})# 5. 最终评估final_accuracymodel.score(X_test,y_test)y_pred_probamodel.predict_proba(X_test)[:,1]final_aucroc_auc_score(y_test,y_pred_proba)# 6. 可视化混淆矩阵fromsklearn.metricsimportconfusion_matrix,ConfusionMatrixDisplay y_predmodel.predict(X_test)cmconfusion_matrix(y_test,y_pred)dispConfusionMatrixDisplay(confusion_matrixcm)disp.plot()wandb.log({confusion_matrix:wandb.Image(plt.gcf())})# 7. 特征重要性importancemodel.feature_importances_ fig,axplt.subplots()ax.barh(data.feature_names,importance)ax.set_xlabel(Importance)wandb.log({feature_importance:wandb.Image(fig)})# 8. 记录模型wandb.log_artifact(model.pkl,namexgboost-model,typemodel)# 9. 记录最终指标wandb.log({final_accuracy:final_accuracy,final_auc:final_auc,best_iteration:model.best_iteration})# 10. 添加摘要wandb.run.summary[best_accuracy]final_accuracy wandb.run.summary[best_auc]final_aucprint(fFinal Accuracy:{final_accuracy:.4f}, AUC:{final_auc:.4f})wandb.finish() 参考资源WB 官方文档WB 快速入门WB 示例项目

相关文章:

08-MLOps与工程落地——02. 实验追踪:Weights Biases

02. 实验追踪:Weights & Biases 一、W&B概述 1.1 产品定位与特点 Weights & Biases(W&B)是一个专注于机器学习实验管理的平台,提供云端实验追踪、可视化、超参数搜索和协作功能。 核心特点: 轻量…...

终极魔兽地图转换指南:3分钟解决地图版本兼容性问题

终极魔兽地图转换指南:3分钟解决地图版本兼容性问题 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 你是否遇到过精心制作的魔兽地图在新版本游戏中无法运行?或者老地图在1.32.8版本中频频…...

5分钟掌握Upscayl:免费开源AI图像放大工具实战指南

5分钟掌握Upscayl:免费开源AI图像放大工具实战指南 【免费下载链接】upscayl 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl 还在为模糊的老…...

Flowstep 1.0 技术深度解析:AI 设计引擎的架构、渲染与工程化实现

摘要 Flowstep 1.0 是一款面向开发者与技术设计师的 AI 设计工程化工具,核心解决 “设计 - 代码” 重复转换的低效痛点。本文从技术底层出发,系统拆解 Flowstep 1.0 的核心架构设计、无限画布渲染引擎、AI 生成模型体系、代码导出引擎、MCP 协议集成五大…...

AI 免费获客结束进入商业化验证,豆包付费测试能否破解盈利难题?

【AI 商业化新阶段开启】免费获客阶段结束,AI 应用开始进入“成本分层 用户分层 商业化验证”阶段。最近,豆包 App Store 页面出现了付费订阅信息,除免费基础版外,可能有 68 元/月标准版、200 元/月加强版、500 元/月专业版&…...

【MCP 2026边缘部署性能优化权威指南】:基于17个工业现场POC数据,提炼出的3.2μs级时序收敛公式

更多请点击: https://intelliparadigm.com 第一章:MCP 2026边缘部署性能优化的工程意义与边界定义 MCP 2026(Multi-Controller Protocol 2026)作为新一代边缘协同控制协议,其在资源受限设备上的高效部署直接决定工业物…...

WSA-Pacman:Windows安卓子系统图形化包管理的终极解决方案

WSA-Pacman:Windows安卓子系统图形化包管理的终极解决方案 【免费下载链接】wsa_pacman A GUI package manager and package installer for Windows Subsystem for Android (WSA) 项目地址: https://gitcode.com/gh_mirrors/ws/wsa_pacman 在Windows 11上运行…...

AXOrderBook:构建微秒级A股高频交易订单簿系统的完整指南

AXOrderBook:构建微秒级A股高频交易订单簿系统的完整指南 【免费下载链接】AXOrderBook A股订单簿工具,使用逐笔行情进行订单簿重建、千档快照发布、各档委托队列展示等,包括python模型和FPGA HLS实现。 项目地址: https://gitcode.com/gh_…...

开发极简主义运动实践指南手册:软件测试从业者的效率跃升之路

一、测试困境与极简主义的觉醒在软件开发快速迭代的浪潮中,软件测试从业者正陷入一场前所未有的“数字喧嚣”困境。每天,我们穿梭于海量的需求文档、日益庞杂的技术栈、数不胜数的测试用例以及永不停歇的通知流之间。当“更多”成为下意识的追求——更多…...

从驱动到调试:用CuteCom和CH341在Ubuntu上玩转串口通信

从驱动到调试:用CuteCom和CH341在Ubuntu上玩转串口通信 嵌入式开发的世界里,串口通信就像空气一样无处不在却又容易被忽视。当你第一次拿到Arduino或ESP32开发板时,那个小小的USB转串口模块(比如本文主角CH341)就是连接…...

ESP-CSI实战指南:用Wi-Fi信号实现无接触智能感知的完整解决方案

ESP-CSI实战指南:用Wi-Fi信号实现无接触智能感知的完整解决方案 【免费下载链接】esp-csi Applications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection 项目地址: https://gitcode.com/GitHub_Trending/es/esp-c…...

Docker容器在支付清算系统中神秘崩溃?(央行科技司认证的8类调试路径全披露)

更多请点击: https://intelliparadigm.com 第一章:Docker容器在支付清算系统中神秘崩溃?(央行科技司认证的8类调试路径全披露) 支付清算系统对稳定性与可追溯性要求极高,Docker容器偶发性崩溃常导致交易状…...

长期项目使用 Taotoken 后账单可追溯性带来的管理便利

长期项目使用 Taotoken 后账单可追溯性带来的管理便利 1. 多维度账单记录的价值 在长期项目中,AI 调用成本的管理往往面临数据分散、难以归集的问题。传统方式下,团队可能需要手动记录不同模型、不同时间段的调用量,或依赖多个供应商提供的…...

从Monster.com到LinkedIn:聊聊在线招聘20年变迁,以及如何让你的简历被AI筛选器一眼相中

从Monster.com到LinkedIn:在线招聘的技术革命与AI时代的简历突围指南 二十年前,当Monster.com以"电子招聘市场先驱"的姿态颠覆传统报纸分类广告时,没人能预料到算法筛选会彻底改变求职游戏的规则。今天,全球每天有超过2…...

ChanlunX:深度解析缠论分析自动化在通达信中的专业实现

ChanlunX:深度解析缠论分析自动化在通达信中的专业实现 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是一个文章写手,你负责为开源项目写专业易懂的文章。现在需要为ChanlunX撰…...

3步搞定视频水印:用LAMA模型批量清理平台标识的终极指南

3步搞定视频水印:用LAMA模型批量清理平台标识的终极指南 【免费下载链接】WatermarkRemover 批量去除视频中位置固定的水印 项目地址: https://gitcode.com/gh_mirrors/wa/WatermarkRemover 还在为视频中的平台水印烦恼吗?想要制作干净无痕的视频…...

CVPR 2026 Oral|横扫室内3D场景!港科大提出LegoOcc:刷新单目开放词汇占据预测SOTA

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号:CVer2233,小助手拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶…...

实验室4篇论文被ICML 2026录用

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号:CVer2233,小助手拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶…...

ICLR 2026 | Earth-Agent:地球科学智能体来了!

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号:CVer2233,小助手拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶…...

SwiftChat:基于React Native与Amazon Bedrock的高性能跨平台AI助手深度解析

1. 项目概述:一个真正“快”的跨平台AI助手 如果你和我一样,厌倦了那些启动慢、响应卡顿、功能单一的移动端AI应用,那么 SwiftChat 的出现,绝对值得你花时间了解一下。这不是又一个简单的聊天机器人外壳,而是一个由…...

3步掌握ZenTimings:AMD Ryzen内存时序监控终极指南

3步掌握ZenTimings:AMD Ryzen内存时序监控终极指南 【免费下载链接】ZenTimings 项目地址: https://gitcode.com/gh_mirrors/ze/ZenTimings 想要深入了解AMD Ryzen平台内存性能表现?ZenTimings是一款专为AMD Ryzen处理器设计的开源内存时序监控工…...

GitHub 中文插件:3分钟让全球最大开发者平台说你的语言

GitHub 中文插件:3分钟让全球最大开发者平台说你的语言 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 作为一名开发者&am…...

开源游戏汉化实战:从文本提取到字体替换的完整技术流程

1. 项目概述:一个开源游戏汉化的“小作坊”如果你是一个喜欢玩独立游戏,尤其是那些来自海外开发者的精品小游戏的玩家,大概率会遇到一个头疼的问题:游戏本身质量上乘,但偏偏没有中文。这时候,你可能会去社区…...

AI辅助开发:让快马AI成为你的系统修复顾问,智能诊断kernel32.dll问题

AI辅助开发:让快马AI成为你的系统修复顾问,智能诊断kernel32.dll问题 最近在开发一个Windows系统工具时,遇到了kernel32.dll相关的错误,这让我意识到系统文件修复其实是个挺复杂的问题。kernel32.dll作为Windows核心动态链接库&a…...

从生态竞争到商业博弈:Lotka-Volterra模型如何解释市场中的‘你死我活’与‘共存共荣’

从生态竞争到商业博弈:Lotka-Volterra模型如何解释市场中的‘你死我活’与‘共存共荣’ 商业竞争的本质是什么?为什么有些市场最终形成双寡头格局,而另一些则演变为赢家通吃?当我们观察iOS与Android、可口可乐与百事可乐、美团与饿…...

配网缺陷检测图像数据集,螺栓销钉缺失

配网缺陷检测图像数据集,螺栓销钉缺失 1.配网销钉缺失检测图像数据集(1200多张,voc,销钉缺失) 2.配网缺陷检测图像数据集(3000多张,voc,销钉缺失与绑扎不规范缺陷 ) 针对…...

别再傻傻用IP核了!手把手教你用Verilog写一个高性能FPGA除法器(附完整代码)

突破FPGA除法性能瓶颈:从零构建定制化移位-减法除法器 在FPGA开发中,除法运算一直是性能优化的重点难点。当项目遇到严格的时序约束时,即便是Xilinx或Intel提供的优化IP核,也可能无法满足高频时钟需求。本文将带您深入硬件除法器的…...

Functional-php源码解析:深入理解函数式编程的实现原理

Functional-php源码解析:深入理解函数式编程的实现原理 【免费下载链接】functional-php Primitives for functional programming in PHP 项目地址: https://gitcode.com/gh_mirrors/fu/functional-php 在PHP中实现函数式编程往往需要基础构建模块的支持&…...

3分钟上手:用easy-topo轻松绘制专业网络拓扑图

3分钟上手:用easy-topo轻松绘制专业网络拓扑图 【免费下载链接】easy-topo vuesvgelement-ui 快捷画出网络拓扑图 项目地址: https://gitcode.com/gh_mirrors/ea/easy-topo 你是否曾经为了绘制一张清晰明了的网络拓扑图而头疼?传统的绘图工具要么…...

给单片机项目选Type-C接口?6P、16P、24P引脚电路图与选型避坑指南

单片机项目Type-C接口选型实战:从引脚电路到避坑全攻略 Type-C接口早已超越手机充电的单一场景,成为嵌入式开发中的"万能插座"。但当你打开元器件商城,面对6P、16P、24P各种封装的Type-C连接器,是否感到选择困难&#x…...