ruc-datalab/DeepAnalyze
GitHub: ruc-datalab/DeepAnalyze
DeepAnalyze 是首个面向自主数据科学的 Agentic 大语言模型,能够自动处理多种数据源并端到端完成数据分析与报告生成。
Stars: 4367 | Forks: 690
更多关于 DeepPrep 的信息
**DeepPrep** 是一个由 LLM 驱动的自主数据准备 Agentic 系统。它通过与中间表格状态的执行接地交互和运行时反馈来构建数据准备流水线,帮助在下游分析之前清理、转换和标准化原始数据。 ▶️ Demo: https://github.com/user-attachments/assets/6b94927f-5c0c-4cfe-bc33-de56b8e459cd更多关于 CoDA-Bench 的信息
**CoDA-Bench** 在一个包含数百个数据文件的 Linux sandbox 中评估 agent。给定一个自然语言问题,agent 必须发现相关数据、编写可执行代码并得出最终答案。它为 DeepAnalyze 所针对的同类型数据发现和代码执行挑战提供了一个基准测试环境。 ▶️ Demo: https://github.com/user-attachments/assets/34e50a62-744b-4079-8988-6a8bbfe166a0上传数据,DeepAnalyze 可以执行面向数据的深入研究 🔍 以及任何以数据为中心的任务 🛠
- 克隆此仓库并下载 [DeepAnalyze-8B](https://huggingface.co/RUC-DataLab/DeepAnalyze-8B)。 - 通过 vllm 部署 DeepAnalyze-8B:`vllm serve DeepAnalyze-8B` - 运行这些脚本以启动 API 和界面,然后通过浏览器进行交互 (http://localhost:4000): cd demo/chat/frontend npm install cd .. bash start.sh # 停止 api 和 interface bash stop.sh # 如有需要,停止 vllm - 如果您想在特定 IP 下部署,请在 [./demo/chat/backend.py](./demo/chat/backend.py) 和 [./demo/chat/frontend/lib/config.ts](./demo/chat/frontend/lib/config.ts) 中将 localhost 替换为您的 IP 地址。 ### WebUI v2 https://github.com/user-attachments/assets/2dd1d2aa-6fb9-4202-bc8d-cbe874844725上传数据,DeepAnalyze 可以执行面向数据的深入研究 🔍 以及任何以数据为中心的任务 🛠
- 更精简的 UI - 增加了对 HeyWhale API 密钥的支持 - 增加了对基于 Docker 的沙箱代码执行环境的支持。 - 使用方法与 WebUI 相同。 cd demo/chat_v2/frontend npm install cd .. cp .env.example .env bash start.sh # 停止 api 和 interface bash stop.sh # 如有需要,停止 vllm ### JupyterUI https://github.com/user-attachments/assets/a2335f45-be0e-4787-a4c1-e93192891c5f熟悉 Jupyter Notebook?通过 JupyterUI 试试 DeepAnalyze!
- 此 Demo 运行 Jupyter Lab 作为前端,创建一个新的 notebook,将 `` 转换为 Code 单元格并作为 `` 执行。
- 前往 [demo/jupyter](./demo/jupyter) 了解更多并进行尝试!
- 👏非常感谢贡献者 [@ChengJiale150](https://github.com/ChengJiale150)。
### CLI
https://github.com/user-attachments/assets/018acae5-b979-4143-ae1e-5b74da453c1d
通过命令行界面尝试 DeepAnalyze
- 通过 vllm 部署 DeepAnalyze-8B:`vllm serve DeepAnalyze-8B`
- 启动 API 服务器并运行 CLI 界面:
cd API
python start_server.py # In one terminal
cd demo/cli
python api_cli.py # In another terminal (English)
# 或
python api_cli_ZH.py # In another terminal (Chinese)
- CLI 提供了一个基于 Rich 的美观界面,支持文件上传和实时流式响应。
- 支持英文和中文界面。
## 🚀 快速开始
### 🔑 **使用 DeepAnalyze API**
**API 密钥现已提供!**
要申请您的密钥,请填写以下申请表之一:
* **[主要表单 (Google)](https://forms.gle/YxVkCzczqq8jeciw9)**
* **[备用表单 (飞书)](https://heywhale.feishu.cn/share/base/shrcnnBRgO0x2qhx40yq4m1HxUg)**
**📚 有关全面的使用说明,请参阅 API 指南:**
* **[文档](./docs/DeepAnalyze_API_Key_Usage_Guide.md)**
* **[飞书百科](https://heywhale.feishu.cn/wiki/TcVmw314liwCiKkxnttc2CnInfg)**
### 模型下载
在 [RUC-DataLab/DeepAnalyze-8B · Hugging Face](https://huggingface.co/RUC-DataLab/DeepAnalyze-8B) 或 [DeepAnalyze-8B · 模型库](https://www.modelscope.cn/models/RUC-DataLab/DeepAnalyze-8B/summary) 下载模型。
#### 📊 内存配置推荐参数表
| GPU 内存 | 模型类型 | 推荐 max-model-len | 使用 FP8 KV Cache |
|------------|------------|--------------------------|-----------------------|
| **16GB** | 8 位量化 | 8192 | ✓ |
| **16GB** | 4 位量化 | 49152 | ✓ |
| **24GB** | 原始模型 | 16384 | ✓ |
| **24GB** | 8 位量化 | 98304 | ✓ |
| **24GB** | 4 位量化 | 131072 | ✓ |
| **40GB** | 原始模型 | 131072 | ✓ |
| **40GB** | 8 位量化 | 131072 | |
| **80GB** | 原始模型 | 131072 | |
要获取量化模型,您可以使用 `./quantize.py`。
#### 🚀 vLLM 启动命令模板
##### 通用命令模板
```
python -m vllm.entrypoints.openai.api_server \
--model \
--served-model-name DeepAnalyze-8B \
--max-model-len \
--gpu-memory-utilization 0.95 \
--port 8000 \
\
--trust-remote-code
```
##### 按场景划分的命令示例
**场景 1:16GB GPU 内存用户(推荐:4 位量化版本)**
```
python -m vllm.entrypoints.openai.api_server \
--model /path/to/deepanalyze/4bit \
--served-model-name DeepAnalyze-8B \
--max-model-len 49152 \
--gpu-memory-utilization 0.95 \
--port 8000 \
--kv-cache-dtype fp8 \
--trust-remote-code
```
**场景 2:24GB GPU 内存用户(适用于最大上下文长度)**
```
python -m vllm.entrypoints.openai.api_server \
--model /path/to/deepanalyze/4bit \
--served-model-name DeepAnalyze-8B \
--max-model-len 131072 \
--gpu-memory-utilization 0.95 \
--port 8000 \
--kv-cache-dtype fp8 \
--trust-remote-code
```
**场景 3:80GB GPU 内存用户(最佳性能)**
```
python -m vllm.entrypoints.openai.api_server \
--model /path/to/original/model \
--served-model-name DeepAnalyze-8B \
--max-model-len 131072 \
--gpu-memory-utilization 0.95 \
--port 8000 \
--trust-remote-code
```
#### 快速选择指南
- **内存有限 (<24GB)**:使用 4 位量化版本 + FP8 KV Cache
- **均衡配置 (24-40GB)**:根据需求选择模型类型
- **内存充足 (≥40GB)**:使用原始模型以获得最佳精度
启动后,可通过 `http://localhost:8000/v1/completions` 访问 API 服务。
### 环境要求
- 安装依赖包:`torch`, `transformers`, `vllm>=0.8.5`
conda create -n deepanalyze python=3.12 -y
conda activate deepanalyze
pip install -r requirements.txt
# 用于 training
(cd ./deepanalyze/ms-swift/ && pip install -e .)
(cd ./deepanalyze/SkyRL/ && pip install -e .)
- [`requirements.txt`](requirements.txt) 列出了 DeepAnalyze 推理所需的最低依赖。
对于训练,请参阅 [`./deepanalyze/ms-swift/requirements.txt`](./deepanalyze/ms-swift/requirements.txt) 和 [`./deepanalyze/SkyRL/pyproject.toml`](./deepanalyze/SkyRL/pyproject.toml)
- 我们建议将推理和训练环境分开,以避免依赖冲突。
### 命令交互
- 通过 vllm 部署 DeepAnalyze-8B:`vllm serve DeepAnalyze-8B`
- 运行这些脚本执行任何数据科学任务:
- 您可以指定**任何数据科学任务**,包括特定的数据任务和开放式数据研究。
- 您可以指定**任意数量的数据源**,DeepAnalyze 将自动探索它们。
- 您可以指定**任何类型的数据源**,例如,结构化数据(Databases、CSV、Excel)、半结构化数据(JSON、XML、YAML)结构化数据(TXT、Markdown)
from deepanalyze import DeepAnalyzeVLLM
prompt = """# Instruction
Generate a data science report.
# Data
File 1: {"name": "bool.xlsx", "size": "4.8KB"}
File 2: {"name": "person.csv", "size": "10.6KB"}
File 3: {"name": "disabled.xlsx", "size": "5.6KB"}
File 4: {"name": "enlist.csv", "size": "6.7KB"}
File 5: {"name": "filed_for_bankrupcy.csv", "size": "1.0KB"}
File 6: {"name": "longest_absense_from_school.xlsx", "size": "16.0KB"}
File 7: {"name": "male.xlsx", "size": "8.8KB"}
File 8: {"name": "no_payment_due.xlsx", "size": "15.6KB"}
File 9: {"name": "unemployed.xlsx", "size": "5.6KB"}
File 10: {"name": "enrolled.csv", "size": "20.4KB"}"""
workspace = "/home/u2023000922/zhangshaolei/deepanalyze_public/DeepAnalyze/example/analysis_on_student_loan/"
deepanalyze = DeepAnalyzeVLLM(
"/fs/fast/u2023000922/zhangshaolei/checkpoints/deepanalyze-8b/"
)
answer = deepanalyze.generate(prompt, workspace=workspace)
print(answer["reasoning"])
您将得到一份深度研究报告,该报告可以渲染为 PDF:
# 学生入学模式和机构转学的综合分析
## 引言与研究背景
学生入学模式的分析是教育研究的一个关键领域,对机构规划、资源分配和学生支持服务具有重大意义。这项综合研究检查了一个综合数据集,包含六所教育机构的 1,194 条入学记录,并合并了补充的人口统计、财务和就业状况数据。该研究采用了高级分析技术,包括网络分析、预测建模和时间模式识别,以揭示宏观层面的机构趋势和微观层面的学生流动性模式。数据集的纵向性质跨越了 15 个月的入学记录,为了解学生通过高等教育系统的复杂动态提供了独特的见解。
我们的方法论结合了对入学持续时间、转学概率和财务指标的定量分析以及定性...
该研究通过提供机构转学网络及其与学生成果关系的经验证据,为越来越多的关于学生流动性的文献做出了贡献......
.....
### API
- 您可以使用此脚本构建 OpenAI 风格的 API(注意在 [API/config.py](API/config.py) 中将 `MODEL_PATH = "DeepAnalyze-8B"` 更改为您的 vllm 模型名称):
python API/start_server.py
- API 使用:
FILE_RESPONSE=$(curl -s -X POST "http://localhost:8200/v1/files" \
-F "file=@data.csv" \
-F "purpose=file-extract")
FILE_ID=$(echo $FILE_RESPONSE | jq -r '.id')
curl -X POST http://localhost:8200/v1/chat/completions \
-H "Content-Type: application/json" \
-d "{
\"model\": \"DeepAnalyze-8B\",
\"messages\": [
{
\"role\": \"user\",
\"content\": \"Generate a data science report.\",
\"file_ids\": [\"$FILE_ID\"]
}
]
}"
# 等待一段时间
- 详情请参阅 API/README.md。
## 🎈 开发您自己的 DeepAnalyze
### 1. 下载模型和训练数据
- 下载 [DeepSeek-R1-0528-Qwen3-8B](https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B)。或者您也可以直接基于 [DeepAnalyze-8B](https://huggingface.co/RUC-DataLab/DeepAnalyze-8B) 进行微调。
- 如果您使用 DeepSeek-R1-0528-Qwen3-8B 作为基础模型,您应该使用以下命令添加特殊 token:
MODEL_PATH=path_to_DeepSeek-R1-0528-Qwen3-8B
SAVE_PATH=path_to_save_DeepSeek-R1-0528-Qwen3-8B-addvocab
python deepanalyze/add_vocab.py \
--model_path "$MODEL_PATH" \
--save_path "$SAVE_PATH" \
--add_tags
- 下载训练数据 [DataScience-Instruct-500K](https://huggingface.co/datasets/RUC-DataLab/DataScience-Instruct-500K)。
- 解压 `DataScience-Instruct-500K/RL/data.zip`
### 2. 基于课程的 Agentic 训练
- 单能力微调:[./scripts/single.sh](./scripts/single.sh)
- 多能力 Agentic 训练(冷启动):[./scripts/multi_coldstart.sh](./scripts/multi_coldstart.sh)
- 多能力 Agentic 训练(RL):[./scripts/multi_rl.sh](./scripts/multi_rl.sh)
### 3. 评估
- 我们使用 vLLM 统一了大多数现有数据科学基准测试的评估(还会持续添加更多...)。您可以直接按照 [./playground](./playground) 中的介绍快速评估 DeepAnalyze 或您自己的 agent。
## 🌟 其他
欢迎加入 [DeepAnalyze 微信群](./assets/wechat.jpg),与他人聊天并分享想法!
如果您喜欢 DeepAnalyze,请给它一个 GitHub Star ⭐。
[](https://www.star-history.com/#ruc-datalab/DeepAnalyze&type=date&legend=top-left) 标签:DLL 劫持, 代码示例, 凭据扫描, 大语言模型, 数据分析, 数据科学, 系统调用监控, 自动化报告, 请求拦截, 资源验证, 逆向工具