[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1990":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":14,"starSnapshotCount":14,"syncStatus":16,"lastSyncTime":34,"discoverSource":35},1990,"ProDa","OpenRaiser\u002FProDa","OpenRaiser","📖 Data Engineering from Raw Corpora","https:\u002F\u002Fopenraiser.github.io\u002FProDa-webpage\u002F",null,"TypeScript",161,10,0,1,2,3.12,false,"main",[21,22,23,24,25,26,27,28,29,30],"ai","artificial-intelligence","benchmark","data-engineering","data-generation","data-science","data-synthesis","ide","interactive-development-environment","software-engineering","2026-06-12 02:00:35","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F7f579d02-acc3-492e-9b24-ad508eb8cfa2\" alt=\"ProDA Logo\" width=\"320\" \u002F>\n\n**面向垂直领域的 AI 数据构建与模型迭代工作台**  \n**从原始文档到 Benchmark \u002F SFT \u002F 微调 \u002F 评测 \u002F 诊断补数据，一站式闭环完成。**\n\n\u003Cbr \u002F>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-active%20development-2ea44f?style=for-the-badge\" alt=\"Project Status\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-3776AB?style=for-the-badge&logo=python&logoColor=white\" alt=\"Python\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode.js-16+-339933?style=for-the-badge&logo=node.js&logoColor=white\" alt=\"Node.js\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Freact-18+-61DAFB?style=for-the-badge&logo=react&logoColor=black\" alt=\"React\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffastapi-backend-009688?style=for-the-badge&logo=fastapi&logoColor=white\" alt=\"FastAPI\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue?style=for-the-badge\" alt=\"License\">\n\u003C\u002Fp>\n\n\u003Cbr \u002F>\n\n**快速开始** · **效果展示** · **工作流** · **核心能力** · **模型微调** · **OpenCompass 评测** · **诊断迭代**\n\n\u003Cbr \u002F>\n\n🌐 中文 · [English](.\u002FREADME_en.md)\n\n\u003C\u002Fdiv>\n\n---\n\n> ProDa 不是一个“数据生成脚本集合”，而是一个真正面向模型迭代的 **VSCode 风格 Web IDE**。  \n> 集成文档解析、知识抽取、Benchmark 构建、SFT 数据生成、LLaMA-Factory 微调、OpenCompass 评测、错误诊断与二轮数据补强串成一个可追溯的项目工作流。\n\n```text\nDocument\n   ↓\nKnowledge Core\n   ↓\nBenchmark \u002F SFT Data\n   ↓\nFine-Tuning\n   ↓\nOpenCompass Evaluation\n   ↓\nDiagnosis + Supplement Data\n   ↓\nSecond-Round Iteration\n```\n\n---\n\n## 📖 目录\n\n- [🚀 为什么你会想试试 ProDa](#-为什么你会想试试-proda)\n- [🖼️ 效果展示](#️-效果展示占位待你补图)\n- [✨ 你会得到什么](#-你会得到什么)\n- [📦 快速开始](#-快速开始5-分钟起步)\n- [🔬 工作流建议](#-工作流建议)\n- [🏗️ 项目结构](#️-项目结构简版)\n- [📂 产物落盘位置](#-产物落盘位置)\n- [❓ 常见问题](#-常见问题)\n- [🧭 当前状态](#-当前状态)\n- [🙏 致谢](#-致谢)\n- [⭐ Star History](#-star-history)\n- [🤝 贡献与交流](#-贡献与交流)\n- [📝 引用](#-引用)\n- [📄 License](#-license)\n\n---\n\n## 🚀 为什么你会想试试 ProDa\n\n你可能经历过这些痛点：\n\n- 原始领域文档很多，但很难稳定转成可训练数据\n- Benchmark 构建、SFT 生成、训练、评测分散在多套脚本里\n- 微调后只看一个总分，不知道模型到底错在哪、怎么修\n\n**ProDA 的目标就是：把这一切收敛到一个可视化、项目化、可追溯的闭环。**\n\n| 传统方式 | ProDA |\n| --- | --- |\n| 多个脚本手动串联 | 一个项目工作台贯穿全流程 |\n| 数据、训练、评测产物分散 | 每个项目自动归档所有状态和产物 |\n| 微调评测后只看总分 | 支持样本级结果、错误标注和诊断报告 |\n| 二轮迭代依赖人工经验 | 基于错因生成补数据并合并训练集 |\n| 训练产物难以即时验证 | 可直接选择模型 \u002F checkpoint 流式对话 |\n\n---\n\n## ✨ 你会得到什么\n\n| 模块 | 你可以做什么 | 产物 |\n| --- | --- | --- |\n| 文档处理 | 上传领域文档并抽取知识核心 | `L1 \u002F L2 \u002F L3` 知识结构 |\n| Benchmark | 从推理链生成可评测题目 | MCQ Benchmark |\n| SFT 数据 | 按题型比例生成训练数据 | FineTune \u002F ShareGPT 数据 |\n| 模型微调 | 调用 LLaMA-Factory 训练模型 | Checkpoint \u002F LoRA 产物 |\n| 模型对话 | 选择历史模型或 checkpoint 直接试聊 | 流式回答与参数验证 |\n| OpenCompass | 评测本地模型\u002FAPI模型 | 排行榜、对比图、样本明细 |\n| 诊断补数据 | 分析错误样本并生成补强数据 | 诊断报告、二轮训练集 |\n\n---\n\n### 🗂️ 1) 项目制工作空间（每个项目独立隔离）\n\n- 项目创建 \u002F 切换 \u002F 删除\n- 项目状态和产物自动归档\n- 历史训练与评测可回看\n\n### 📄 2) 文档到知识核心（Step1）\n\n- 支持 `pdf` \u002F `txt` \u002F `md` \u002F `docx`\n- 抽取三层知识表示：`L1 concepts` \u002F `L2 statements` \u002F `L3 reasoning chains`\n- 支持分块策略、并发提取、结果编辑导出\n\n### 🧪 3) Benchmark 生成（Step2）\n\n- 基于 L3 链路自动生成选择题 Benchmark\n- 支持并发、重试、中断、续跑、结果预览与编辑\n\n### 🧬 4) FineTune 数据生成（Step3）\n\n- QA \u002F 单选 \u002F 多选 \u002F 判断题比例控制\n- 支持采样窗口、约束参数、历史回看\n\n### 🩺 5) 诊断报告 + 补数据（Step3 子流程）\n\n- 从 OpenCompass 错误样本生成结构化诊断报告\n- 按错因生成诊断补数据\n- 与原始数据合并形成二轮训练集\n\n### 🔥 6) 本地微调（Step5）\n\n- 对接 LLaMA-Factory\n- 训练参数可视化配置\n- 实时日志 \u002F Loss & LR 曲线\n- 训练历史与输出目录管理\n- 直接对已训练模型\u002FCheckpoint进行流式对话验证\n\n### 📊 7) OpenCompass 评测（Step6）\n\n- 支持本地模型和 API 模型\n- 支持 LoRA \u002F PEFT 自动识别\n- 结果看板：Leaderboard \u002F Comparison \u002F Samples\n- 样本级错误标注与诊断联动\n\n### 🧭 8) 结果中心（Step7）\n\n- 统一查看项目关键产物与活动时间线\n- 导出与复盘更直接\n\n---\n\n## 🖼️ 效果展示\n\n\u003Cp align=\"center\">\n  \u003Cstrong>🎬 项目讲解视频（点击播放）\u003C\u002Fstrong>\u003Cbr \u002F>\n  \u003C!-- 将下面链接替换为你的实际视频地址 -->\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fe4bda307-a898-4843-abe6-7667ae45e790\" controls width=\"100%\">\u003C\u002Fvideo>\n\u003C\u002Fp>\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Cstrong>🖥️ IDE 总览\u003C\u002Fstrong>\u003Cbr \u002F>\n      \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F57e7c482-abb5-495c-b3f1-7921788424bc\" alt=\"ProDA IDE 总览\" width=\"100%\" height=\"280\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Cstrong>📚 文档抽取与知识核心\u003C\u002Fstrong>\u003Cbr \u002F>\n      \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F64ce9df4-be31-4906-87f1-a4020239914b\" alt=\"文档抽取与知识核心\" width=\"100%\" height=\"280\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Cstrong>📈 微调与训练曲线\u003C\u002Fstrong>\u003Cbr \u002F>\n      \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F35c3222e-cab9-4622-9558-42d695a6a124\" alt=\"微调与训练曲线\" width=\"100%\" height=\"280\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Cstrong>🏆 OpenCompass 结果看板\u003C\u002Fstrong>\u003Cbr \u002F>\n      \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F82bda5cd-5eb8-4481-913b-0a5fa6f7163f\" alt=\"OpenCompass 结果看板\" width=\"100%\" height=\"280\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" colspan=\"2\">\n      \u003Cstrong>💬 模型对话验证窗口\u003C\u002Fstrong>\u003Cbr \u002F>\n      \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F64c167ba-c94a-4dc6-896b-fdd2a4ca13ba\" alt=\"模型对话验证窗口\" width=\"80%\" height=\"280\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 📦 快速开始（5 分钟起步）\n\n### 1. 创建环境并安装依赖\n\n```bash\nconda create -n proda python=3.10 -y\nconda activate proda\npip install -r requirements.txt\n```\n\n### 2. 准备外部仓库\n\nProDA 工作台依赖以下外部项目：\n\n- `LLaMA-Factory`（训练）\n- `OpenCompass`（评测）\n\n请将 `LlamaFactory`、`opencompass`、`Model` 都放在 `ProDA\u002F` 根目录下：\n\n```text\nProDA\u002F\n├── backend\u002F\n├── frontend\u002F\n├── proda\u002F\n├── LlamaFactory\u002F              # 训练仓库\n├── opencompass\u002F               # 评测仓库\n├── Model\u002F                     # 你下载的本地模型统一放这里\n│   ├── Qwen3-8B\u002F\n│   └── ...\n└── ...\n```\n\n然后按 LlamaFactory \u002F OpenCompass 官方文档安装依赖到同一个运行环境中。\n\n> 建议：Step5 页面里将 `model_root` 配置为 `ProDA\u002FModel`，后续训练与评测选模会更直接。\n\n### 2.0 安装 LlamaFactory \u002F OpenCompass 依赖（必做）\n\n以下命令基于你已经在 `ProDA\u002F` 根目录，并且已激活 `proda` 环境：\n\n#### LlamaFactory（from source）\n\n```bash\ncd LlamaFactory\npip install -e .\npip install -r requirements\u002Fmetrics.txt\ncd ..\n```\n\n#### OpenCompass（推荐 from source）\n\n```bash\ncd opencompass\npip install -e .\n# 如需更多数据集支持，可选：\n# pip install -e \".[full]\"\n# 如需 API 评测能力，可选：\n# pip install -e \".[api]\"\ncd ..\n```\n\n> 说明：你也可以用 `pip install -U opencompass` 安装 pip 版，但为了和本项目补丁脚本保持一致，建议使用 source 方式。\n\n### 2.1 OpenCompass 必改补丁（多选后处理，必须做）\n\nProDA 的 Step6 配置会默认启用：\n\n- `eval_cfg.pred_postprocessor = parse_multi_choice_answer`（见 `proda\u002Fevaluator.py`）\n\n为了确保任何用户下载“纯上游 opencompass”后也能直接跑通，请在 `ProDA\u002F` 根目录执行下面这一条命令：\n\n```bash\nbash scripts\u002Fpatch_opencompass_postprocess.sh\n```\n\n该脚本会一次性把 **你当前本地同款逻辑** 打到 `ProDA\u002Fopencompass`：\n\n- 在 `opencompass\u002Futils\u002Ftext_postprocessors.py` 注入并注册 `parse_multi_choice_answer`\n- 在 `opencompass\u002Ftasks\u002Fopenicl_eval.py` 注入后处理器强制加载\u002F重载兜底逻辑\n- 同步注入你当前本地用于详情压缩的 prompt 提取逻辑（保持与现有行为一致）\n- 执行补丁后自动做 import + registry 自检\n\n> 如 opencompass 目录不在默认位置，可传路径：\n> `bash scripts\u002Fpatch_opencompass_postprocess.sh \u002Fpath\u002Fto\u002Fopencompass`\n\n若脚本失败，通常是 opencompass 版本与当前补丁锚点差异过大；建议切换到与你当前项目一致的 opencompass 代码后重试。\n\n### 3. 启动后端\n\n```bash\nuvicorn backend.main:app --host 0.0.0.0 --port 8002 --reload --reload-dir backend --reload-dir proda\n```\n\n### 4. 启动前端\n\n```bash\ncd frontend\nyarn install\nyarn dev --host 0.0.0.0 --port 8503\n```\n\n### 5. 打开页面\n\n浏览器访问：`http:\u002F\u002Flocalhost:8503`\n\n远程服务器建议先做端口转发：\n\n```bash\nssh -L 8503:localhost:8503 -L 8002:localhost:8002 \u003Cyour-server>\n```\n\n---\n\n## 🔬 工作流建议\n\n```text\nCreate Project\n     ↓\nConfigure LLM API\n     ↓\nExtract Knowledge Core\n     ↓\nGenerate Benchmark + SFT Data\n     ↓\nFine-Tune with LLaMA-Factory\n     ↓\nEvaluate with OpenCompass\n     ↓\nDiagnose Errors\n     ↓\nGenerate Supplement Data\n     ↓\nSecond-Round Fine-Tuning\n     ↓\nSecond-Round Evaluate with OpenCompass\n```\n\n1. 创建项目\n2. 配置并选择 LLM API\n3. Step1 抽取知识核心\n4. Step2 生成 Benchmark\n5. Step3 生成 FineTune 数据\n6. Step5 启动微调\n7. Step6 执行评测\n8. Step3 诊断 + 生成补数据\n9. Step5 二轮微调\n10. Step6 \u002F Step7 对比迭代收益\n\n---\n\n## 🏗️ 项目结构（简版）\n\n```text\nProDA\u002F\n├── backend\u002F                 # FastAPI 后端\n├── frontend\u002F                # React + Vite 前端 IDE\n├── proda\u002F                   # 核心流水线逻辑\n├── ui\u002F                      # 旧版 Streamlit（兼容保留）\n├── requirements.txt\n├── README.md\n└── README_zh.md\n```\n\n---\n\n## 📂 产物落盘位置\n\n每个项目产物在：\n\n```text\n.proda_projects\u002F\u003Cproject_id>\u002F\n```\n\n常见目录：\n\n- `state.json`：项目状态\n- `finetune_exports\u002F`：训练配置、日志、训练历史\n- `model_outputs\u002F`：训练产物模型\n- `evaluations\u002Fopencompass\u002F`：评测输入、结果、历史\n- `diagnosis\u002F`：诊断报告、补数据、历史\n- `workflow\u002F`：二轮流程状态\n\n---\n\n## ❓ 常见问题\n\n### 页面打不开？\n\n检查前后端是否都启动，以及端口转发是否包含前端端口与后端端口。\n若是集群终端环境，在申请计算节点后运行hostname命令获取http地址放进frontend\u002Fvite.config.ts的api中的target即可。\n\n### Step5 没有可用训练数据？\n\n先在 Step3 生成并保存数据，或先完成补数据合并。\n\n### OpenCompass 评测失败？\n\n重点检查以下几项：\n\n- OpenCompass 路径、模型路径、LoRA 路径是否正确\n- OpenCompass 与 ProDA 是否在同一 Python 环境\n- OpenCompass 是否完成了 `parse_multi_choice_answer` 三步补丁（见上方 2.1）\n- Step5 的 `model_root` 是否指向 `ProDA\u002FModel`（避免模型扫描不到）\n\n### 日志刷新慢？\n\n在集群环境首次加载模型、构建 tokenizer cache、初始化多卡时是正常现象。\n\n---\n\n## 🧭 当前状态\n\n当前版本已覆盖从数据构建到模型评测与诊断迭代的主闭环，包含：\n\n- 文档处理与知识抽取\n- Benchmark 生成（支持续跑）\n- FineTune 数据生成\n- 本地微调\n- OpenCompass 评测\n- 诊断报告与补数据\n- 二轮训练迭代\n- 微调模型流式对话验证\n\n---\n\n## 🙏 致谢\n\nProDa 的实现离不开这些优秀项目与生态：\n\n- [LLaMA-Factory](https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory) — 高效微调训练框架\n- [OpenCompass](https:\u002F\u002Fgithub.com\u002Fopen-compass\u002Fopencompass) — 大模型评测体系\n- [FastAPI](https:\u002F\u002Ffastapi.tiangolo.com\u002F) — 后端 API 服务\n- [React](https:\u002F\u002Freact.dev\u002F) \u002F [Vite](https:\u002F\u002Fvitejs.dev\u002F) — 前端交互与工程化\n- VSCode \u002F Cursor — ProDa IDE 风格的重要灵感来源\n\n也感谢所有真实业务场景中的反馈者：  \nProDa 的目标不是做一个玩具 Demo，而是持续靠近“能真正支撑领域模型迭代”的工作台。\n\n---\n\n## ⭐ Star History\n\n如果这个项目对你有帮助，欢迎点一个 Star。  \n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#OpenRaiser\u002FNanoResearch&Date\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=OpenRaiser\u002FProDa&type=Date&theme=dark\" \u002F>\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=OpenRaiser\u002FProDa&type=Date\" \u002F>\n      \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=OpenRaiser\u002FProDa&type=Date\" width=\"100%\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n---\n\n## 🤝 贡献与交流\n\n欢迎提 Issue \u002F PR 一起完善 ProDa。\n\n你可以从这些方向参与：\n\n- 补充更多真实领域数据工作流\n- 优化 OpenCompass 样本级可视化\n- 增强诊断报告与补数据策略\n- 添加更完善的集群部署文档\n- 补充 Docker \u002F Conda 环境文件\n- 改进 README 截图、Demo 与教程\n\n如果你有真实业务场景（教育、医疗、金融、工业等），非常欢迎反馈，我们会优先补齐高价值能力。\n\n---\n\n## 📝 引用\n\n```\n@article{pan2026programming,\n  title={Programming with Data: Test-Driven Data Engineering for Self-Improving LLMs from Raw Corpora},\n  author={Pan, Chenkai and Xu, Xinglong and Xu, Yuhang and Wu, Yujun and Li, Siyuan and Chen, Jintao and He, Conghui and Wei, Jingxuan and Tan, Cheng},\n  journal={arXiv preprint arXiv:2604.24819},\n  year={2026}\n}\n```\n---\n\n## 📄 License\n\nMIT\n\n\u003Cdiv align=\"center\">\n\n**ProDa 仅供教育、研究与技术交流使用。**\n\n如果你觉得这个项目有意思，欢迎 Star \u002F Fork \u002F 试跑一遍完整闭环。\n\n\u003C\u002Fdiv>\n\n","ProDa 是一个面向垂直领域的 AI 数据构建与模型迭代工作台，支持从原始文档到 Benchmark 构建、SFT 数据生成、微调、评测及诊断补数据的一站式闭环流程。项目采用 TypeScript 开发，并集成了 FastAPI 后端和 React 前端框架，提供了一个 VSCode 风格的 Web IDE 界面。用户可以轻松上传领域文档并抽取知识核心，自动生成选择题 Benchmark 和 FineTune 数据，通过 LLaMA-Factory 进行模型微调，并利用 OpenCompass 评测模型性能。此外，ProDa 还能生成详细的诊断报告并基于错误样本生成补充训练数据，帮助开发者高效地进行模型迭代。适用于需要处理大量领域文档并希望快速构建高质量 AI 模型的场景。","2026-06-11 02:47:14","CREATED_QUERY"]