SuperAPI AI 工具集

hypogenic

数据与分析

查看项目

更新于 10-16 04:03

技能介绍

概述

Hypogenic 提供基于大语言模型的自动化假设生成与检验能力,用于加速科学发现。框架支持三种方法:HypoGeniC(数据驱动假设生成)、HypoRefine(文献与数据协同整合)以及 Union 方法(将文献假设与数据驱动假设进行机制化组合)。

主要能力

1. HypoGeniC:数据驱动假设生成

仅从观测数据出发,通过迭代优化生成假设。

流程:

  • 先用小规模数据子集初始化生成候选假设
  • 根据性能迭代优化假设
  • 用来自困难样本的新假设替换表现较差的假设

适用:无现有文献的探索性研究、新数据集中的模式发现。

2. HypoRefine:文献与数据整合

通过智能体框架将现有文献与实证数据协同结合。

流程:

  • 从相关研究论文(通常 10 篇)中提取洞见
  • 从文献生成有理论依据的假设
  • 从观测模式生成数据驱动假设
  • 通过迭代改进优化两个假设库

适用:已有理论基础的研究、验证或扩展已有理论。

3. Union 方法

将纯文献假设与框架输出进行机制化组合。

变体:

  • Literature ∪ HypoGeniC:文献假设与数据驱动生成结合
  • Literature ∪ HypoRefine:文献假设与整合方法结合

适用:全面假设覆盖,在保持多样视角的同时消除冗余。

使用方式

安装

uv pip install hypogenic

可选依赖:

  • Redis 服务器(端口 6832):缓存 LLM 响应,在迭代假设生成期间显著降低 API 成本
  • s2orc-doc2json:HypoRefine 工作流中处理文献 PDF 所需
  • GROBID:PDF 预处理所需

克隆示例数据集:

# HypoGeniC 示例
git clone https://github.com/ChicagoHAI/HypoGeniC-datasets.git ./data

# HypoRefine/Union 示例
git clone https://github.com/ChicagoHAI/Hypothesis-agent-datasets.git ./data

命令行用法

假设生成:

hypogenic_generation --config ./data/your_task/config.yaml --method hypogenic --num_hypotheses 20

假设推断:

hypogenic_inference --config ./data/your_task/config.yaml --hypotheses output/hypotheses.json

Python API 用法

from hypogenic import BaseTask

task = BaseTask(config_path="./data/your_task/config.yaml")

task.generate_hypotheses(method="hypogenic", num_hypotheses=20)

results = task.inference(hypothesis_bank="./output/hypotheses.json")

HypoRefine/Union 方法:

task.generate_hypotheses(
    method="hyporefine",
    num_hypotheses=15,
    literature_path="./literature/your_task/",
    output_path="./output/"
)

数据集格式

需遵循 HuggingFace datasets 格式与命名约定。必需文件:<TASK>_train.json、<TASK>_val.json、<TASK>_test.json。JSON 必需键:text_features_1 到 text_features_n(字符串列表,包含特征值)、label(字符串列表,包含真实标签)。所有列表长度必须一致,标签格式必须与 extract_label() 函数输出格式匹配。

配置

每个任务需要 config.yaml,指定数据集路径与提示模板,包括:观测生成、批量假设生成、假设推断、相关性检查、自适应方法(用于 HypoRefine)。模板支持数据集占位符动态注入(如 ${text_features_1}、${num_hypotheses})、自定义标签提取函数、基于角色的提示结构。

文献处理(HypoRefine/Union 方法)

使用基于文献的假设生成需预处理 PDF 论文:

# 首次设置 GROBID
bash ./modules/setup_grobid.sh

# 启动 GROBID 服务
bash ./modules/run_grobid.sh

# 处理 PDF
cd examples
python pdf_preprocess.py --task_name YOUR_TASK_NAME

将研究论文放入 literature/YOUR_TASK_NAME/raw/。自动文献检索将在未来版本中支持。

适用场景

  • 从观测数据集生成科学假设
  • 系统性检验多个竞争假设
  • 将文献洞见与实证模式结合
  • 通过自动化假设构思加速研究发现
  • 需要假设驱动分析的领域:欺骗检测、AI 生成内容识别、心理健康指标、预测建模等实证研究

性能优化

  • 缓存:启用 Redis 缓存降低重复 LLM 调用的 API 成本与计算时间
  • 并行处理:利用多个 worker 进行大规模假设生成与检验
  • 自适应优化:利用困难样本迭代提升假设质量

已知效果(据资料所述)

  • 相较 few-shot 基线提升 8.97%
  • 相较纯文献方法提升 15.75%
  • 假设多样性 80-84%(非冗余洞见)
  • AI 内容检测任务准确率提升 14.19%
  • 欺骗检测任务准确率提升 7.44%
  • 人类评估者报告决策有显著改善

自定义任务

步骤:准备三个 JSON 数据集文件 → 创建 config.yaml → 实现 extract_label 函数 →(可选)处理文献 → 使用 CLI 或 Python API 生成并测试。

限制与注意事项

  • 数据集所有列表必须长度一致,标签格式必须与 extract_label() 输出一致
  • HypoRefine/Union 需先完成 GROBID PDF 预处理
  • 自动文献检索暂未支持,需自行准备论文 PDF
  • 收费、价格、平台支持范围等具体信息暂未提供

故障排除

  • 假设过于笼统:调整 config.yaml 提示模板,要求更具体可检验的假设
  • 推断性能差:确保数据集有足够训练样本,调整生成参数或增加假设数量
  • 标签提取失败:实现自定义 extract_label() 函数
  • GROBID PDF 处理失败:确保 GROBID 服务运行且 PDF 为有效研究论文