SuperAPI AI 工具集

dspy-data

数据与分析

查看项目

更新于 10-15 23:58

技能介绍

用途:为 DSPy 优化器和评估器准备数据。DSPy 的数据容器是 dspy.Example,可像字典一样存放命名字段,并通过 with_inputs() 标记哪些字段是输入、哪些是期望输出。优化器、评估器和度量函数都要求数据为 dspy.Example 列表。

主要能力:用关键字参数或字典创建 Example;用 with_inputs("字段") 标记输入,之后 .inputs() 返回输入字段、.labels() 返回输出字段;模块调用返回 dspy.Prediction,行为类似 Example。支持从 CSV(csv.DictReader 或 pandas)、JSON、JSONL、HuggingFace datasets 加载并转换;DSPy 内置 HotPotQA、GSM8k、Colors 数据集,构造参数含 train_seed、train_size、dev_size、test_size。

使用方式:加载后统一转为 dspy.Example(**row).with_inputs(...);用随机或分层方式划分 train/dev,划分前先固定随机种子打乱;优化前可用校验函数检查是否缺少 with_inputs() 或字段名不匹配。安装数据集依赖:pip install datasets。

适用场景:分类、抽取、开放生成等任务的数据准备,以及需要 compile() 优化或 dspy.Evaluate 正式评估的场合。一次性调用模块或仅原型阶段可直接传关键字参数,无需 Example。

限制与注意:传给优化器或评估器的每个 Example 都必须调用 with_inputs(),且只标记输入字段,不能包含输出字段;优化器不接受原始 dict;数据量建议 20–300 条,过大应采样;按标签或日期排序的数据划分前必须打乱,类别不平衡时用分层划分。