核心问题:有没有一种“开箱即用”的方案,让单机 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
  • 端到端任务

    1. 脏数据自动清洗(类型推断、缺失值策略、异常检测)
    2. 统计与可视化(描述性指标、相关矩阵、交互式图表)
    3. 模型选型与训练(回归 / 分类 / 聚类,自动调参)
    4. 结果解释(SHAP、特征重要性、业务叙事)
    5. 输出分析师级 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 页文件,目录如下:

  1. 研究背景与数据描述
  2. 缺失值与一致性检查
  3. 跨校流动网络图
  4. 辍学风险 LightGBM 模型
  5. SHAP 解释性
  6. 结论与政策建议

个人反思:我第一次跑时忘了把 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

实用摘要

  1. DeepAnalyze 把数据科学 5 大步做成自主智能体,8B 模型单机可跑。
  2. 提供开源权重 + 训练数据 + 前后端代码,可商用,可二次微调。
  3. 本地部署 30 分钟搞定,显存 20 GB 起步;node 版本用最新 LTS。
  4. 训练遵循“单能力→多能力→RL”课程,跳过步骤会导致幻觉上升。
  5. 输出 PDF 可直接用于内部分享,但仍需人工复核结论合理性。

常见问答(FAQ)

  1. Q:Windows 或 macOS 能跑吗?
    A:README 基于 Linux 给出路径与脚本;Windows 需 WSL2 + Ubuntu,macOS 需确认 torch 与 vllm 兼容。

  2. Q:显存不足 20 GB 怎么办?
    A:可试 --load-in-4bit--kv-cache-dtype fp8,但 README 未给出官方参数,需自行验证效果。

  3. Q:支持中文 CSV 列名吗?
    A:支持;模型会按 Unicode 解析,但建议列名勿混中英文括号,防止正则抽取失败。

  4. Q:产出报告里的图表风格能改吗?
    A:前端模板在 demo/chat/components/report.tsx,可随意替换主题色与字体。

  5. Q:能否接入公司 BI 平台?
    A:后端已兼容 OpenAI-Style API,只要 BI 能调 REST 即可;返回的 Markdown 可渲染成卡片。

  6. Q:强化学习阶段需要多少人工反馈?
    A:README 用 10 万对比对;若数据规模小,可降采样至 1 万,但需重新调奖励函数权重。

  7. Q:许可证?
    A:权重与代码均 Apache 2.0,可商用,但需保留原版权声明。

  8. Q:会出更大模型吗?
    A:README 未提及,当前 8B 是权衡显存与效果后的选择。