🔧 InteRecipe:交互式数据处理配方生成流程#

概述#

本演示展示了使用 Data-Juicer 算子池(Operator Pool)进行交互式、渐进式的数据处理配方生成工作流。该系统支持用户和智能体协同构建、编辑和验证数据处理配方,具有高度的灵活性与透明性。

InteRecipe 系统架构图

使用方法#

在运行前,请设置以下环境变量:

export DASHSCOPE_API_KEY=your_dashscope_key

安装依赖项:

uv pip install -r requirements.txt

【可选】启动copilot服务器(将../qa-copilot/setup_server.sh中的DATA_JUICER_PATH变量替换为您的data-juicer仓库的绝对路径):

cd ../qa-copilot
bash setup_server.sh

通过 Streamlit 启动演示:

streamlit run app.py

InteRecipe 主体功能与 Q&A Copilot (Ask AI组件) 相互独立,后者需单独部署但不影响前者运行。 关于 Q&A Copilot 的详细配置,请参考 qa-copilot/README_ZH.md

算子池使用示例#

查看 ./playground.ipynb 文件。


✨ 核心功能:算子池(Operator Pool)#

算子池是一个类似有序字典的专用结构,用于存储所有候选的 Data-Juicer 算子(Operators),用于数据处理任务。

每个算子包含以下信息:

  • 基本信息:名称和描述

  • 状态:是否启用

  • 参数:名称、描述、类型及当前值

  • 统计信息(基于数据集快照):最小值、最大值、均值、标准差、分位数等

  • 排序位置:算子在当前工作流中的位置

📊 可视化与交互

  • 整个算子池的状态会被可视化展示,提供清晰且可编辑的概览。

  • LLM 智能体会利用这些状态信息,建议对数据配方的修改或优化。

🛠️ 支持的操作

用户和 LLM 智能体可以执行以下操作:

  • 启用或禁用某个算子

  • 修改算子的参数值

  • 调整算子的执行顺序

每种不同的算子池配置都对应一个独特的数据处理配方。

为什么要使用算子池?

渐进式 & 交互式配方生成

数据配方的构建通常是多阶段的,例如:模态对齐、目标设定、数据分析、属性归因等。算子池允许在每个阶段进行精细控制和编辑,从而实现增量式、迭代式的开发过程。

鲁棒性 & 有效性

直接让 LLM 一次性生成完整的数据处理配方,往往会导致无效输出。而借助算子池,每次修改都会经过严格校验,确保配方的完整性,并在出现问题时提供反馈。


模块说明#

  • LLM 助手模块
    用户可以向 LLM 助手咨询当前算子池状态及相关辅助信息。用户只需点击即可应用由 LLM 生成的建议。

  • 数据分析模块
    利用 dj.analyzer 工具包进行全面的数据分析。相关统计结果会以图表形式展示,帮助用户编辑算子池。

  • [开发中] 数据归因模块
    该模块旨在衡量每个算子对验证任务的贡献。对应的工具包正在开发中,命名为 dj.attributor

  • [开发中] 沙箱模块
    利用 dj.sandbox 工具包,通过小规模实验实现反馈驱动的算子选择和编辑。


开发路线图#

InteRecipe 将在未来版本中集成到 Data-Juicer Agents 体系中,实现更智能化的自动数据处理配方生成与优化。

✅ LLM 助手模块#

  • 基础提示模板与对话框设计

  • 建议响应格式化、解析与应用

  • 高级查询功能(结合统计数据、归因结果、沙箱反馈)

✅ 数据分析模块#

  • 基础可视化功能

  • 算子池中的分位数图

  • 词云展示

  • 逐算子的序列洞察可视化

✅ 数据归因模块#

  • 基础归因器:基于文本嵌入相似度与皮尔逊相关系数的归因器

  • 高级归因器:梯度相似度、上下文困惑度、LLM 归因等

✅ 沙箱模块#

  • 基础沙箱部署

  • 监控功能

✅ 其他#

  • 配方画廊(Recipe Gallery)

  • 纯代理工作流评估

  • 基准测试

  • 最佳实践文档