ShareGPT数据集在Weights and Biases中的使用:可视化训练效果和数据分析的操作教程

夜萱吖_2822

夜萱吖_2822

2026-05-24

488人浏览

原创

weights & biases(w&b)可为sharegpt数据集微调提供端到端可视化与结构化分析:一、加载数据并初始化项目,记录元信息;二、训练中记录对话级指标与样本快照;三、用w&b tables分析样本分布;四、集成hugging face evaluate自动计算评估指标;五、构建自定义面板分析指令动词多样性。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

sharegpt数据集在weights and biases中的使用:可视化训练效果和数据分析的操作教程

如果您在使用ShareGPT数据集进行模型微调时希望实时监控训练动态、对比不同提示模板的效果或深入分析对话样本分布,则Weights and Biases(W&B)可提供端到端的可视化与结构化分析能力。以下是将ShareGPT数据集接入W&B并开展训练效果可视化与数据分析的具体操作步骤:

一、准备ShareGPT数据集并初始化W&B项目

W&B本身不直接托管ShareGPT数据集,需先本地加载或通过Hugging Face Datasets库按需流式加载,并在初始化阶段将数据集元信息(如样本数、对话轮次统计、角色分布)作为配置项写入W&B。该步骤确保后续所有可视化均能关联原始数据上下文。

1、使用pip安装必要依赖:pip install wandb datasets transformers

2、从Hugging Face Hub加载ShareGPT数据集(示例为sharegpt4v dataset的简化版):from datasets import load_dataset; dataset = load_dataset("shunnli/sharegpt4v", split="train[:1000]")

3、计算基础统计量并初始化W&B:wandb.init(project="sharegpt-finetuning", name="baseline-run", config={"dataset_size": len(dataset), "avg_turns_per_conv": sum(len(x["conversations"]) for x in dataset) / len(dataset)})

二、在训练循环中记录对话级指标与样本快照

为实现细粒度训练效果可视化,需在每轮训练或每个评估批次中记录对话质量相关指标(如响应长度、系统提示覆盖率、角色切换频次),并定期上传典型对话样本作为可交互表格,便于人工复核模型行为偏差。

1、定义对话解析函数,提取关键字段:def extract_conversation_metrics(example): return {"num_turns": len(example["conversations"]), "has_system_role": any(turn.get("role") == "system" for turn in example["conversations"])}

2、在训练日志中同步记录指标:wandb.log({"batch/avg_turns": avg_turns, "batch/system_prompt_ratio": system_ratio}, step=global_step)

3、每100步构建一次对话快照表并上传:table = wandb.Table(columns=["id", "prompt", "response", "length"]); table.add_data(example["id"], example["conversations"][0]["content"][:50], example["conversations"][-1]["content"][:50], len(example["conversations"][-1]["content"])); wandb.log({"sample_conversations": table}, step=global_step)

三、使用W&B Tables进行ShareGPT样本分布分析

W&B Tables支持对大规模文本样本执行列级筛选、排序与嵌入式可视化,适用于分析ShareGPT中用户提问类型、响应风格聚类、多模态指令占比等维度,无需导出数据即可完成探索性分析。

1、构建全量样本表(限前5000条以控体积):full_table = wandb.Table(columns=["id", "model", "lang", "turn_count", "first_user_len", "last_assistant_len"]); for i, ex in enumerate(dataset.select(range(5000))): full_table.add_data(ex["id"], ex.get("model", "unknown"), ex.get("lang", "en"), len(ex["conversations"]), len(ex["conversations"][0]["content"]) if ex["conversations"] else 0, len(ex["conversations"][-1]["content"]) if ex["conversations"] else 0)

Suna
Suna

一款AI工具,主要用于全球首个开源的通用型AI Agent项目,适合需要提升相关任务效率的用户。

下载

2、将表格作为artifact保存并标记版本:artifact = wandb.Artifact("sharegpt-sample-stats", type="dataset"); artifact.add(full_table, "sharegpt_analysis_v1"); wandb.log_artifact(artifact)

3、在W&B界面中点击该artifact,进入Table视图后可:按turn_count列排序观察长对话集中区间;用Filter功能筛选lang != "en"查看非英语样本;启用Histogram对first_user_len列生成长度分布直方图

四、集成Hugging Face Evaluate自动计算对话评估指标

借助Hugging Face Evaluate库中的内置指标(如bertscore、rouge、meteor),可在验证阶段自动计算ShareGPT样本上模型输出与参考回复的语义匹配度,并将结果实时同步至W&B仪表板,形成量化质量反馈闭环。

1、加载评估器并预编译:from evaluate import load; rouge = load("rouge"); bertscore = load("bertscore")

2、在验证循环中批量计算并记录:results = rouge.compute(predictions=preds, references=refs); wandb.log({"eval/rouge1": results["rouge1"], "eval/rougeL": results["rougeL"]}, step=epoch)

3、对BERTScore结果添加置信区间标注:bs_results = bertscore.compute(predictions=preds, references=refs, lang="en"); wandb.log({"eval/bertscore_f1_mean": np.mean(bs_results["f1"]), "eval/bertscore_f1_std": np.std(bs_results["f1"])}, step=epoch)

五、构建自定义面板分析ShareGPT指令多样性

ShareGPT包含大量开放式指令,其动词分布(如“explain”、“summarize”、“code”)直接影响模型泛化能力。通过在W&B中创建自定义Panel,可将正则提取的指令动词频次热力图、时间维度上的动词演化曲线与损失曲线叠加显示,揭示指令复杂度与训练稳定性的潜在关联。

1、预处理阶段提取每条用户消息首动词:import re; def extract_verb(text): match = re.search(r"^(?:Please\s+|Kindly\s+)?(\w+)", text.strip()); return match.group(1).lower() if match else "other"

2、聚合动词频次并生成Pandas DataFrame:verb_df = pd.DataFrame([extract_verb(ex["conversations"][0]["content"]) for ex in dataset], columns=["verb"]).value_counts().reset_index(name="count")

3、上传为W&B Table并启用Bar Chart Panel:verb_table = wandb.Table(dataframe=verb_df); wandb.log({"instruction_verbs": verb_table})

相关专题

更多
数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

2023.07.04

1802

6

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.07

2450

5

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

2023.10.16

6750

14

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

2024.03.13

2984

8

Python 数据分析处理
Python 数据分析处理

本专题聚焦 Python 在数据分析领域的应用,系统讲解 Pandas、NumPy 的数据清洗、处理、分析与统计方法,并结合数据可视化、销售分析、科研数据处理等实战案例,帮助学员掌握使用 Python 高效进行数据分析与决策支持的核心技能。

2025.09.08

4365

12

Python 数据分析与可视化
Python 数据分析与可视化

本专题聚焦 Python 在数据分析与可视化领域的核心应用,系统讲解数据清洗、数据统计、Pandas 数据操作、NumPy 数组处理、Matplotlib 与 Seaborn 可视化技巧等内容。通过实战案例(如销售数据分析、用户行为可视化、趋势图与热力图绘制),帮助学习者掌握 从原始数据到可视化报告的完整分析能力。

2025.10.14

6592

24

Python 数据分析与可视化合集
Python 数据分析与可视化合集

聚焦 Python 在数据分析领域的核心应用,讲解 NumPy 数组运算、Pandas 数据清洗与聚合统计、缺失值与异常值处理、数据透视表生成,以及使用 Matplotlib、Seaborn、Pyecharts 制作折线图、柱状图、热力图、地图等多种可视化图表,适合数据分析师和运营人员快速掌握用 Python 从原始数据中挖掘洞察的能力。

2026.04.08

316

25

Python数据分析与Pandas高级实战
Python数据分析与Pandas高级实战

本专题围绕 Python 数据分析展开,系统讲解 Pandas 的高级用法,包括数据清洗、透视表、时间序列分析以及多表合并与分组操作。通过实战案例,帮助开发者掌握高效处理与分析数据的方法,提高数据处理效率与分析能力。

2026.04.13

531

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习