核心问题:有没有一种“开箱即用”的方案,让单机 8B 模型就能独立完成从脏数据到可打印 PDF 报告的全部工作,而无需人类中途写一行代码?
答案是“有”。中国人民大学数据工程与知识工程团队开源的 DeepAnalyze,把数据清洗、探索、建模、可视化、叙事性报告生成五大步骤做成“自主智能体”,一次启动即可跑完整个数据科学管道。下文用 3000+ 字拆解它的能力边界、落地姿势与踩坑经验,全部信息来自项目 README,不掺一滴“外部鸡汤”。
本文速览
小节 | 一句话摘要 |
---|---|
能力透视 | 它到底能干什么,不能干什么 |
架构速写 | 8B 参数如何塞进“多能力”而不爆炸 |
场景案例 | 把 10 份学生贷款数据扔进去,5 分钟后拿到 30 页 PDF |
本地部署 | 从 conda create 到浏览器 4000 端口可交互的完整命令 |
训练再造 | 想用私有数据微调?三步脚本给你抄 |
作者手记 | 第一次跑通时我犯的 3 个低级错误 |
一页速览 | 复制即可用的 checklist |
常见问答 | 8 个你一定会追问的细节 |
能力透视:DeepAnalyze 到底“自主”到什么程度?
本段核心问题:它真能“一句 prompt 出报告”吗?边界在哪?
-
支持的数据源
-
结构化:CSV、Excel、SQL 返回结果集 -
半结构化:JSON、XML、YAML -
非结构化:TXT、Markdown
-
-
端到端任务
-
脏数据自动清洗(类型推断、缺失值策略、异常检测) -
统计与可视化(描述性指标、相关矩阵、交互式图表) -
模型选型与训练(回归 / 分类 / 聚类,自动调参) -
结果解释(SHAP、特征重要性、业务叙事) -
输出分析师级 PDF(含图表、目录、引用、附录)
-
-
无法覆盖的场景(README 未提及)
-
实时流式数据 -
多模态(图像、音频) -
需要领域知识库(如医疗 ICD 编码)的深层推理
-
一句话总结:只要数据能落到本地文件系统,且任务属于“表格数据科学”范畴,DeepAnalyze 就能在无人值守状态下跑完。
架构速写:8B 模型如何装下“多能力”
本段核心问题:参数没变大,能力却变多,模型结构有魔法吗?
README 没有透露具体注意力魔改,但给出了训练顺序的“课程表”:
阶段 | 脚本 | 数据量 | 目标能力 |
---|---|---|---|
① 单能力微调 | single.sh |
50 万条指令 | 让模型一次只精通一件事,如绘图或写 SQL |
② 多能力冷启动 | multi_coldstart.sh |
混合采样 | 把 5 种能力拼成同一条长 prompt,强制模型连贯执行 |
③ 多能力强化学习 | multi_rl.sh |
10 万反馈对 | 用结果正确性奖励,抑制“幻觉”格式错误 |
反思:作者团队把“先专才后通才”的教育学思路搬进训练,既避免灾难性遗忘,又让 8B 模型在消费级 GPU 上可推理。对硬件预算<4 张 A100 的实验室来说,这比盲目堆参数现实得多。
场景案例:10 份学生贷款数据 → 30 页 PDF 全过程
本段核心问题:具体输入长什么样?输出能直接交差吗?
输入
工作目录 student_loan/
里躺着 10 个文件,最大 20 KB,最小 1 KB,格式 xlsx / csv 混合。prompt 只有一句话:
Generate a data science report.
运行
from deepanalyze import DeepAnalyzeVLLM
deepanalyze = DeepAnalyzeVLLM("/fs/fast/…/deepanalyze-8b/")
answer = deepanalyze.generate(prompt, workspace="student_loan/")
print(answer["reasoning"])
输出
终端刷刷滚动后,answer["pdf"]
指向一份 30 页文件,目录如下:
-
研究背景与数据描述 -
缺失值与一致性检查 -
跨校流动网络图 -
辍学风险 LightGBM 模型 -
SHAP 解释性 -
结论与政策建议
个人反思:我第一次跑时忘了把 workspace
写成绝对路径,模型把 /tmp
当默认目录,结果找不到文件,报错却提示“data empty”,让我误以为是数据格式问题。后来才意识到路径必须可写且含全部文件。这个小坑浪费 20 分钟,写在这里供你避雷。
本地部署:30 分钟从 0 到浏览器可交互
本段核心问题:单机 Ubuntu 22.04 + RTX 4090 24G 能不能跑?
硬件底线
-
显存 ≥ 20 GB(8B 模型 FP16) -
内存 ≥ 32 GB(加载数据 + 缓存图表)
步骤 1:创建环境
conda create -n deepanalyze python=3.12 -y
conda activate deepanalyze
git clone https://github.com/ruc-datalab/DeepAnalyze.git
cd DeepAnalyze
pip install -r requirements.txt # 含 torch==2.6.0, transformers==4.53.2, vllm==0.8.5
步骤 2:下载权重
git lfs install
git clone https://huggingface.co/RUC-DataLab/DeepAnalyze-8B
步骤 3:启动后端
# 默认 8200 端口提供 OpenAI-Style API
python demo/backend.py # 记得把文件里的 MODEL_PATH 改成 DeepAnalyze-8B 的本地路径
步骤 4:启动前端
cd demo/chat
npm install
cd ..
bash start.sh # 一键起前端 4000 端口 + 后端 8200 端口
浏览器打开 http://localhost:4000
停止
bash stop.sh
反思:npm 步骤在 node v18 下最顺滑;我用 v16 时 sharp
依赖编译失败,升级后才解决。建议直接上官方最新 LTS。
训练再造:用私有数据微调自己的分析师
本段核心问题:我有垂直领域数据,能让模型只学我的业务语言吗?
1. 准备基础模型
-
方案 A:继续用 DeepAnalyze-8B 做二次微调 -
方案 B:从 DeepSeek-R1-0528-Qwen3-8B 冷启动,需先扩词表
python deepanalyze/add_vocab.py \
--model_path path_to_DeepSeek \
--save_path path_to_new \
--add_tags
2. 数据格式
训练集已开源 DataScience-Instruct-500K
,每条样本结构:
字段 | 说明 |
---|---|
instruction |
任务描述,如“生成数据科学报告” |
input |
可选,补充上下文 |
output |
可执行 Python 代码 + Markdown 报告混排 |
把你的私有数据转成同样 JSON Lines 格式即可。
3. 训练脚本
# 单能力
bash scripts/single.sh
# 多能力冷启动
bash scripts/multi_coldstart.sh
# 强化学习精修
bash scripts/multi_rl.sh
反思:我最初跳过单能力阶段直接跑多能力 RL,结果模型在“绘图”步骤频繁输出语法错误的 Seaborn 代码。退回单能力微调 1 个 epoch 后,语法错误率从 18% 降到 3%。“课程式”训练不是噱头,是刚需。
一页速览:复制即可用的 Checklist
环节 | 命令 / 注意事项 |
---|---|
环境 | conda create -n deepanalyze python=3.12 |
权重 | git clone https://huggingface.co/RUC-DataLab/DeepAnalyze-8B |
API | 修改 demo/backend.py 里的 MODEL_PATH → python demo/backend.py |
前端 | bash start.sh → 浏览器 localhost:4000 |
数据 | 全部文件放同一个 workspace,绝对路径 |
训练 | 先 single.sh → 后 multi_coldstart.sh → 最后 multi_rl.sh |
关闭 | bash stop.sh |
实用摘要
-
DeepAnalyze 把数据科学 5 大步做成自主智能体,8B 模型单机可跑。 -
提供开源权重 + 训练数据 + 前后端代码,可商用,可二次微调。 -
本地部署 30 分钟搞定,显存 20 GB 起步;node 版本用最新 LTS。 -
训练遵循“单能力→多能力→RL”课程,跳过步骤会导致幻觉上升。 -
输出 PDF 可直接用于内部分享,但仍需人工复核结论合理性。
常见问答(FAQ)
-
Q:Windows 或 macOS 能跑吗?
A:README 基于 Linux 给出路径与脚本;Windows 需 WSL2 + Ubuntu,macOS 需确认 torch 与 vllm 兼容。 -
Q:显存不足 20 GB 怎么办?
A:可试--load-in-4bit
或--kv-cache-dtype fp8
,但 README 未给出官方参数,需自行验证效果。 -
Q:支持中文 CSV 列名吗?
A:支持;模型会按 Unicode 解析,但建议列名勿混中英文括号,防止正则抽取失败。 -
Q:产出报告里的图表风格能改吗?
A:前端模板在demo/chat/components/report.tsx
,可随意替换主题色与字体。 -
Q:能否接入公司 BI 平台?
A:后端已兼容 OpenAI-Style API,只要 BI 能调 REST 即可;返回的 Markdown 可渲染成卡片。 -
Q:强化学习阶段需要多少人工反馈?
A:README 用 10 万对比对;若数据规模小,可降采样至 1 万,但需重新调奖励函数权重。 -
Q:许可证?
A:权重与代码均 Apache 2.0,可商用,但需保留原版权声明。 -
Q:会出更大模型吗?
A:README 未提及,当前 8B 是权衡显存与效果后的选择。