面向垂直领域的 AI 数据构建与模型迭代工作台
从原始文档到 Benchmark / SFT / 微调 / 评测 / 诊断补数据,一站式闭环完成。
快速开始 · 效果展示 · 工作流 · 核心能力 · 模型微调 · OpenCompass 评测 · 诊断迭代
🌐 中文 · English
ProDa 不是一个“数据生成脚本集合”,而是一个真正面向模型迭代的 VSCode 风格 Web IDE。
集成文档解析、知识抽取、Benchmark 构建、SFT 数据生成、LLaMA-Factory 微调、OpenCompass 评测、错误诊断与二轮数据补强串成一个可追溯的项目工作流。
Document
↓
Knowledge Core
↓
Benchmark / SFT Data
↓
Fine-Tuning
↓
OpenCompass Evaluation
↓
Diagnosis + Supplement Data
↓
Second-Round Iteration
- 🚀 为什么你会想试试 ProDa
- 🖼️ 效果展示
- ✨ 你会得到什么
- 📦 快速开始
- 🔬 工作流建议
- 🏗️ 项目结构
- 📂 产物落盘位置
- ❓ 常见问题
- 🧭 当前状态
- 🙏 致谢
- ⭐ Star History
- 🤝 贡献与交流
- 📝 引用
- 📄 License
你可能经历过这些痛点:
- 原始领域文档很多,但很难稳定转成可训练数据
- Benchmark 构建、SFT 生成、训练、评测分散在多套脚本里
- 微调后只看一个总分,不知道模型到底错在哪、怎么修
ProDA 的目标就是:把这一切收敛到一个可视化、项目化、可追溯的闭环。
| 传统方式 | ProDA |
|---|---|
| 多个脚本手动串联 | 一个项目工作台贯穿全流程 |
| 数据、训练、评测产物分散 | 每个项目自动归档所有状态和产物 |
| 微调评测后只看总分 | 支持样本级结果、错误标注和诊断报告 |
| 二轮迭代依赖人工经验 | 基于错因生成补数据并合并训练集 |
| 训练产物难以即时验证 | 可直接选择模型 / checkpoint 流式对话 |
| 模块 | 你可以做什么 | 产物 |
|---|---|---|
| 文档处理 | 上传领域文档并抽取知识核心 | L1 / L2 / L3 知识结构 |
| Benchmark | 从推理链生成可评测题目 | MCQ Benchmark |
| SFT 数据 | 按题型比例生成训练数据 | FineTune / ShareGPT 数据 |
| 模型微调 | 调用 LLaMA-Factory 训练模型 | Checkpoint / LoRA 产物 |
| 模型对话 | 选择历史模型或 checkpoint 直接试聊 | 流式回答与参数验证 |
| OpenCompass | 评测本地模型/API模型 | 排行榜、对比图、样本明细 |
| 诊断补数据 | 分析错误样本并生成补强数据 | 诊断报告、二轮训练集 |
- 项目创建 / 切换 / 删除
- 项目状态和产物自动归档
- 历史训练与评测可回看
- 支持
pdf/txt/md/docx - 抽取三层知识表示:
L1 concepts/L2 statements/L3 reasoning chains - 支持分块策略、并发提取、结果编辑导出
- 基于 L3 链路自动生成选择题 Benchmark
- 支持并发、重试、中断、续跑、结果预览与编辑
- QA / 单选 / 多选 / 判断题比例控制
- 支持采样窗口、约束参数、历史回看
- 从 OpenCompass 错误样本生成结构化诊断报告
- 按错因生成诊断补数据
- 与原始数据合并形成二轮训练集
- 对接 LLaMA-Factory
- 训练参数可视化配置
- 实时日志 / Loss & LR 曲线
- 训练历史与输出目录管理
- 直接对已训练模型/Checkpoint进行流式对话验证
- 支持本地模型和 API 模型
- 支持 LoRA / PEFT 自动识别
- 结果看板:Leaderboard / Comparison / Samples
- 样本级错误标注与诊断联动
- 统一查看项目关键产物与活动时间线
- 导出与复盘更直接
🎬 项目讲解视频(点击播放)
ProDA_IDE.mp4
|
🖥️ IDE 总览 |
📚 文档抽取与知识核心 |
|
📈 微调与训练曲线 |
🏆 OpenCompass 结果看板 |
|
💬 模型对话验证窗口 |
|
conda create -n proda python=3.10 -y
conda activate proda
pip install -r requirements.txtProDA 工作台依赖以下外部项目:
LLaMA-Factory(训练)OpenCompass(评测)
请将 LlamaFactory、opencompass、Model 都放在 ProDA/ 根目录下:
ProDA/
├── backend/
├── frontend/
├── proda/
├── LlamaFactory/ # 训练仓库
├── opencompass/ # 评测仓库
├── Model/ # 你下载的本地模型统一放这里
│ ├── Qwen3-8B/
│ └── ...
└── ...
然后按 LlamaFactory / OpenCompass 官方文档安装依赖到同一个运行环境中。
建议:Step5 页面里将
model_root配置为ProDA/Model,后续训练与评测选模会更直接。
以下命令基于你已经在 ProDA/ 根目录,并且已激活 proda 环境:
cd LlamaFactory
pip install -e .
pip install -r requirements/metrics.txt
cd ..cd opencompass
pip install -e .
# 如需更多数据集支持,可选:
# pip install -e ".[full]"
# 如需 API 评测能力,可选:
# pip install -e ".[api]"
cd ..说明:你也可以用
pip install -U opencompass安装 pip 版,但为了和本项目补丁脚本保持一致,建议使用 source 方式。
ProDA 的 Step6 配置会默认启用:
eval_cfg.pred_postprocessor = parse_multi_choice_answer(见proda/evaluator.py)
为了确保任何用户下载“纯上游 opencompass”后也能直接跑通,请在 ProDA/ 根目录执行下面这一条命令:
bash scripts/patch_opencompass_postprocess.sh该脚本会一次性把 你当前本地同款逻辑 打到 ProDA/opencompass:
- 在
opencompass/utils/text_postprocessors.py注入并注册parse_multi_choice_answer - 在
opencompass/tasks/openicl_eval.py注入后处理器强制加载/重载兜底逻辑 - 同步注入你当前本地用于详情压缩的 prompt 提取逻辑(保持与现有行为一致)
- 执行补丁后自动做 import + registry 自检
如 opencompass 目录不在默认位置,可传路径:
bash scripts/patch_opencompass_postprocess.sh /path/to/opencompass
若脚本失败,通常是 opencompass 版本与当前补丁锚点差异过大;建议切换到与你当前项目一致的 opencompass 代码后重试。
uvicorn backend.main:app --host 0.0.0.0 --port 8002 --reload --reload-dir backend --reload-dir prodacd frontend
yarn install
yarn dev --host 0.0.0.0 --port 8503浏览器访问:http://localhost:8503
远程服务器建议先做端口转发:
ssh -L 8503:localhost:8503 -L 8002:localhost:8002 <your-server>Create Project
↓
Configure LLM API
↓
Extract Knowledge Core
↓
Generate Benchmark + SFT Data
↓
Fine-Tune with LLaMA-Factory
↓
Evaluate with OpenCompass
↓
Diagnose Errors
↓
Generate Supplement Data
↓
Second-Round Fine-Tuning
↓
Second-Round Evaluate with OpenCompass
- 创建项目
- 配置并选择 LLM API
- Step1 抽取知识核心
- Step2 生成 Benchmark
- Step3 生成 FineTune 数据
- Step5 启动微调
- Step6 执行评测
- Step3 诊断 + 生成补数据
- Step5 二轮微调
- Step6 / Step7 对比迭代收益
ProDA/
├── backend/ # FastAPI 后端
├── frontend/ # React + Vite 前端 IDE
├── proda/ # 核心流水线逻辑
├── ui/ # 旧版 Streamlit(兼容保留)
├── requirements.txt
├── README.md
└── README_zh.md
每个项目产物在:
.proda_projects/<project_id>/
常见目录:
state.json:项目状态finetune_exports/:训练配置、日志、训练历史model_outputs/:训练产物模型evaluations/opencompass/:评测输入、结果、历史diagnosis/:诊断报告、补数据、历史workflow/:二轮流程状态
检查前后端是否都启动,以及端口转发是否包含前端端口与后端端口。 若是集群终端环境,在申请计算节点后运行hostname命令获取http地址放进frontend/vite.config.ts的api中的target即可。
先在 Step3 生成并保存数据,或先完成补数据合并。
重点检查以下几项:
- OpenCompass 路径、模型路径、LoRA 路径是否正确
- OpenCompass 与 ProDA 是否在同一 Python 环境
- OpenCompass 是否完成了
parse_multi_choice_answer三步补丁(见上方 2.1) - Step5 的
model_root是否指向ProDA/Model(避免模型扫描不到)
在集群环境首次加载模型、构建 tokenizer cache、初始化多卡时是正常现象。
当前版本已覆盖从数据构建到模型评测与诊断迭代的主闭环,包含:
- 文档处理与知识抽取
- Benchmark 生成(支持续跑)
- FineTune 数据生成
- 本地微调
- OpenCompass 评测
- 诊断报告与补数据
- 二轮训练迭代
- 微调模型流式对话验证
ProDa 的实现离不开这些优秀项目与生态:
- LLaMA-Factory — 高效微调训练框架
- OpenCompass — 大模型评测体系
- FastAPI — 后端 API 服务
- React / Vite — 前端交互与工程化
- VSCode / Cursor — ProDa IDE 风格的重要灵感来源
也感谢所有真实业务场景中的反馈者:
ProDa 的目标不是做一个玩具 Demo,而是持续靠近“能真正支撑领域模型迭代”的工作台。
如果这个项目对你有帮助,欢迎点一个 Star。
欢迎提 Issue / PR 一起完善 ProDa。
你可以从这些方向参与:
- 补充更多真实领域数据工作流
- 优化 OpenCompass 样本级可视化
- 增强诊断报告与补数据策略
- 添加更完善的集群部署文档
- 补充 Docker / Conda 环境文件
- 改进 README 截图、Demo 与教程
如果你有真实业务场景(教育、医疗、金融、工业等),非常欢迎反馈,我们会优先补齐高价值能力。
TBD
MIT
ProDa 仅供教育、研究与技术交流使用。
如果你觉得这个项目有意思,欢迎 Star / Fork / 试跑一遍完整闭环。