Skip to content
longxing-altPublic

About

数据集体检与微调评测工作台 · 2026 上海开源软件应用创新大赛参赛作品(开源 AI 工具赛道)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

DataForge · 数据集体检与微调评测工作台

2026 上海开源软件应用创新大赛 · 开源 AI 工具赛道 · 重点方向 ①「数据处理、微调与模型评测」

微调一个模型之前,最难的问题不是"怎么调",而是"这份数据到底能不能用"。 DataForge 把这件事变成可量化、可复现、可执行的三步:体检 → 清洗 → 出方案。


解决什么问题

做过微调的团队都清楚:整理一份干净的数据集、设计一套能说明问题的评测指标, 工作量不比训练模型小。真实痛点有三类:

  1. 不知道数据有多脏 —— 缺失、重复、标注冲突、格式错误混在一起,肉眼看不出来
  2. 知道脏但不知道从哪下手 —— 删哪些?留哪些?删多少会伤到数据分布?
  3. 微调完不知道有没有真的变好 —— 只看准确率,不看置信区间和显著性,容易被噪声骗

DataForge 对应给出三个可解释的答案。


四个核心能力

1. 数据集体检(10 项检查 → 8 维评分 → 100 分制)

维度 权重 检查内容
完整性 18% 缺失值分布、字段级缺失率排序
唯一性 14% 完全重复(MD5 签名)+ 近似重复(字符 5-gram Jaccard)
合法性 16% 数值/URL/日期格式校验
一致性 12% 同一输入是否对应多个标签(标注冲突)
标签质量 16% 空标签、稀有类(样本数 < max(2, n×1%))
文本质量 10% 过短文本、乱码字符、模板化检测(首 12 字重复度)
类别平衡 8% 标签分布熵比
噪声控制 6% 数值字段 MAD 离群点(阈值 3.5)

每条问题都给出:问题码 + 级别(error/warn/info)+ 命中条数 + 样本行号 + 可执行修复建议。

2. 自动清洗

按优先级执行六个动作,全部有日志:

去空标签 → 去完全重复 → 去近似重复 → 格式修复 → 去缺失字段行 →(可选)去离群点

验证结果:在注入 6 类缺陷的 441 条样例上,总分 75.7 → 100.0,保留 392 条有效数据; 清洗具幂等性(重复执行不再删数据)。

3. 微调方案推荐(LoRA 超参 + 收益预测)

核心是有效样本量折算——这是本工具区别于"查表给参数"的地方:

有效样本量 = (原始样本 − 重复样本×0.5 − 冲突样本) × 质量系数
质量系数 = clamp((总分 − 40) / 55, 0, 1)      # 40分→0,95分→1

再据有效样本量给出:LoRA 秩 r、alpha、dropout、目标模块(按任务类型)、 学习率、批大小、梯度累积、epochs、总步数、显存估算、预期收益区间(百分点),以及风险清单。

4. 评测一致性分析

不止算准确率,还回答"这个提升是真的吗":

  • 宏/微 F1、逐类 P/R/F1、混淆矩阵主要误判
  • 自助法 95% 置信区间(2000 次重采样)
  • 配对符号检验对比基线,输出 p 值与"显著优于/劣于/无显著差异"结论
  • 生成质量:CV、P10/P50/P90、稳定性判定
  • 综合评测健康度评分(样本量、最弱类别、波动、显著性)

快速开始

# 纯 Python 标准库,无需安装任何依赖(Web UI 需要 fastapi + uvicorn)

# 1) 核心引擎自测(生成样例 → 体检 → 清洗 → 出方案 → 评测)
python dataforge.py

# 2) 自动化评测(43 项断言)
python eval.py

# 3) Web UI
python webui.py     # → http://127.0.0.1:8766

依赖:核心引擎零依赖(Python 3.8+);Web UI 需 fastapi、uvicorn、pydantic。


界面

四个标签页对应四个能力,数据在页面间流转:

  • ① 数据体检 —— 粘贴 JSON / 上传 .json/.csv → 体检报告(总分 + 8 维雷达 + 问题清单 + 标签分布)
  • ② 自动清洗 —— 调节近似重复阈值 → 清洗前后对比 + 动作统计(结果自动回写到输入框)
  • ③ 微调方案 —— 选底座模型与任务类型 → 完整超参 + 风险提示
  • ④ 模型评测 —— 输入真值/预测/基线 → 指标 + 置信区间 + 显著性 + 逐类明细

字段名任意,工具自动识别语义类型(text / label / id / number / url / date)。


提交接口(供二次开发)

from dataforge import dataset_health, clean_dataset, tune_plan, evaluate_model

rep = dataset_health(rows, label_field="label")      # → HealthReport
print(rep.score, rep.verdict, [i.code for i in rep.issues])

cleaned, actions = clean_dataset(rows)               # → (List[dict], Dict[str,int])

plan = tune_plan(rep, base_model_params=7.0, target_task="instruction")
print(plan["lora"]["r"], plan["expected_gain_points"])

ev = evaluate_model(y_true, y_pred, baseline_pred=y_base, per_sample_scores=scores)
print(ev["accuracy_ci95"], ev["baseline"]["p_value"], ev["eval_score"])

验证结果

python eval.py  →  43/43 通过

覆盖:6 类注入缺陷全部检出 · 清洗提升与幂等性 · 微调方案随规模/质量变化 · 指标边界(完美/全错预测)· 显著性判定正确性 · 确定性与边界情况。


设计原则

  1. 可解释 —— 每个分数都有计算依据,不做黑盒判断;折算系数与阈值都写在代码里
  2. 可复现 —— 同输入必得同输出;样例数据由固定 seed 生成
  3. 可执行 —— 每条问题都给出"接下来做什么",而不是只报告"有问题"
  4. 零门槛 —— 核心引擎不依赖任何第三方库,不需要 GPU,不调用外部 API

目录结构

07-DataForge/
├── dataforge.py     核心引擎(体检 / 清洗 / 微调 / 评测)+ 自测
├── webui.py         Web UI(FastAPI 单文件应用)
├── eval.py          自动化评测(43 项断言)
├── README.md        本文件
└── LICENSE          开源协议

Roadmap

  • v0.2 —— 支持 HuggingFace datasets 直接加载;导出清洗报告为 PDF
  • v0.3 —— 接入真实 LoRA 训练(peft + transformers),把"预期收益"换成实测曲线
  • v0.4 —— 增加数据去偏与合成增强建议;支持多语言(英文数据集质量规则)
  • v1.0 —— 评测榜单服务:同一任务的多模型结果统一对比与排名

详见 开发路线图。


License

MIT License,详见 LICENSE。

About

数据集体检与微调评测工作台 · 2026 上海开源软件应用创新大赛参赛作品(开源 AI 工具赛道)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages