返回Skills库

Hypogenic

MIT
📊 数据知识
K-Dense-AI

表格数据集上的自动LLM驱动假设生成和检验。当您想系统地探索关于经验数据中模式的假设时使用(例如,欺骗检测、内容分析)。结合文献洞察与数据驱动的假设检验。手动假设制定请使用hypothesis-generation;创造性构思请使用scientific-brainstorming。

Hypogenic

概述

Hypogenic使用大型语言模型提供自动化假设生成和测试,以加速科学发现。该框架支持三种方法:HypoGeniC(数据驱动的假设生成)、HypoRefine(文献和数据协同整合)以及联合方法(文献和数据驱动假设的机制性组合)。

快速开始

在几分钟内开始使用Hypogenic:

# 安装软件包
uv pip install hypogenic

# 克隆示例数据集
git clone https://github.com/ChicagoHAI/HypoGeniC-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")

何时使用此技能

在处理以下工作时使用此技能:

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

关键功能

自动化假设生成

  • 在几分钟内从数据生成10-20+个可测试假设
  • 基于验证性能的迭代优化
  • 支持基于API(OpenAI、Anthropic)和本地LLM

文献整合

  • 通过PDF处理从研究论文中提取见解
  • 将理论基础与经验模式结合
  • 使用GROBID进行系统的文献到假设流程

性能优化

  • Redis缓存减少重复实验的API成本
  • 大规模假设测试的并行处理
  • 自适应优化专注于具有挑战性的示例

灵活配置

  • 基于模板的提示工程与变量注入
  • 特定于领域的自定义标签提取
  • 模块化架构便于扩展

经过验证的结果

  • 比少样本基线提高8.97%
  • 比仅文献方法提高15.75%
  • 80-84%的假设多样性(非冗余见解)
  • 人类评估者报告显著的决策改进

核心功能

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

仅通过迭代优化从观察数据生成假设。

过程:

  1. 使用小数据子集初始化以生成候选假设
  2. 基于性能迭代优化假设
  3. 用来自具有挑战性示例的新假设替换性能不佳的假设

最适合: 没有现有文献的探索性研究、新数据集中的模式发现

2. HypoRefine:文献和数据整合

通过代理框架将现有文献与经验数据协同结合。

过程:

  1. 从相关研究论文中提取见解(通常10篇论文)
  2. 从文献生成基于理论的假设
  3. 从观察模式生成数据驱动的假设
  4. 通过迭代改进优化两个假设库

最适合: 具有既定理论基础的研究、验证或扩展现有理论

3. 联合方法

机制性地组合仅文献假设与框架输出。

变体:

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

最适合: 全面的假设覆盖、消除冗余同时保持多样化视角

安装

通过pip安装:

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

数据集格式

数据集必须遵循HuggingFace数据集格式,并具有特定的命名约定:

必需文件:

  • <TASK>_train.json:训练数据
  • <TASK>_val.json:验证数据
  • <TASK>_test.json:测试数据

JSON中的必需键:

  • text_features_1text_features_n:包含特征值的字符串列表
  • label:包含基本真值标签的字符串列表

示例(标题点击预测):

{
  "headline_1": [
    "What Up, Comet? You Just Got *PROBED*",
    "Scientists Made a Breakthrough in Quantum Computing"
  ],
  "headline_2": [
    "Scientists Everywhere Were Holding Their Breath Today. Here's Why.",
    "New Quantum Computer Achieves Milestone"
  ],
  "label": [
    "Headline 2 has more clicks than Headline 1",
    "Headline 1 has more clicks than Headline 2"
  ]
}

重要说明:

  • 所有列表必须具有相同的长度
  • 标签格式必须与您的extract_label()函数输出格式匹配
  • 特征键可以自定义以匹配您的领域(例如,review_textpost_content等)

配置

每个任务需要一个config.yaml文件,指定:

必需元素:

  • 数据集路径(train/val/test)
  • 以下内容的提示模板:
  • 观察生成
  • 批量假设生成
  • 假设推理
  • 相关性检查
  • 自适应方法(用于HypoRefine)

模板功能:

  • 数据集占位符用于动态变量注入(例如,${text_features_1}${num_hypotheses}
  • 特定于领域的自定义标签提取函数
  • 基于角色的提示结构(系统、用户、助手角色)

配置结构:

task_name: your_task_name

train_data_path: ./your_task_train.json
val_data_path: ./your_task_val.json
test_data_path: ./your_task_test.json

prompt_templates:
  # 可重用提示组件的额外键
  observations: |
    特征1:${text_features_1}
    特征2:${text_features_2}
    观察:${label}

  # 必需模板
  batched_generation:
    system: "您的系统提示在此"
    user: "您的用户提示,带有${num_hypotheses}占位符"

  inference:
    system: "您的推理系统提示"
    user: "您的推理用户提示"

  # 高级功能的可选模板
  few_shot_baseline: {...}
  is_relevant: {...}
  adaptive_inference: {...}
  adaptive_selection: {...}

有关完整示例配置,请参阅references/config_template.yaml

文献处理(HypoRefine/Union方法)

要使用基于文献的假设生成,必须预处理PDF论文。

注意: 以下命令在克隆的 HypoGenic 仓库 中运行,而不是在此技能目录中。

步骤1:设置GROBID(仅首次)

bash ./modules/setup_grobid.sh

步骤2:添加PDF文件

将研究论文放在literature/YOUR_TASK_NAME/raw/

步骤3:处理PDF

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

# 为您的任务处理PDF
cd examples
python pdf_preprocess.py --task_name YOUR_TASK_NAME

这将PDF转换为结构化格式以进行假设提取。未来的版本将支持自动文献搜索。

CLI使用

假设生成

hypogenic_generation --help

关键参数:

  • 任务配置文件路径
  • 模型选择(基于API或本地)
  • 生成方法(HypoGeniC、HypoRefine或Union)
  • 要生成的假设数量
  • 假设库的输出目录

假设推理

hypogenic_inference --help

关键参数:

  • 任务配置文件路径
  • 假设库文件路径
  • 测试数据集路径
  • 推理方法(默认或多假设)
  • 结果的输出文件

Python API使用

对于编程控制和自定义工作流,直接在Python代码中使用Hypogenic:

基本HypoGeniC生成

from hypogenic import BaseTask

# 首先克隆示例数据集
# git clone https://github.com/ChicagoHAI/HypoGeniC-datasets.git ./data

# 使用自定义extract_label函数加载您的任务
task = BaseTask(
    config_path="./data/your_task/config.yaml",
    extract_label=lambda text: extract_your_label(text)
)

# 生成假设
task.generate_hypotheses(
    method="hypogenic",
    num_hypotheses=20,
    output_path="./output/hypotheses.json"
)

# 运行推理
results = task.inference(
    hypothesis_bank="./output/hypotheses.json",
    test_data="./data/your_task/your_task_test.json"
)

HypoRefine/Union方法

# 对于文献整合方法
# git clone https://github.com/ChicagoHAI/Hypothesis-agent-datasets.git ./data

# 使用HypoRefine生成
task.generate_hypotheses(
    method="hyporefine",
    num_hypotheses=15,
    literature_path="./literature/your_task/",
    output_path="./output/"
)
# 这生成3个假设库:
# - HypoRefine(整合方法)
# - 仅文献假设
# - Literature∪HypoRefine(联合)

多假设推理

from examples.multi_hyp_inference import run_multi_hypothesis_inference

# 同时测试多个假设
results = run_multi_hypothesis_inference(
    config_path="./data/your_task/config.yaml",
    hypothesis_bank="./output/hypotheses.json",
    test_data="./data/your_task/your_task_test.json"
)

自定义标签提取

extract_label()函数对于解析LLM输出至关重要。根据您的任务实施它:

def extract_label(llm_output: str) -> str:
    """从LLM推理文本中提取预测的标签。

    默认行为:搜索'final answer:\s+(.*)'模式。
    为您的特定于领域的输出格式进行自定义。
    """
    import re
    match = re.search(r'final answer:\s+(.*)', llm_output, re.IGNORECASE)
    if match:
        return match.group(1).strip()
    return llm_output.strip()

重要: 提取的标签必须与数据集label值中的格式匹配,以便正确计算准确性。

工作流示例

示例1:数据驱动的假设生成(HypoGeniC)

场景: 在没有既定理论框架的情况下检测AI生成的内容

步骤:

  1. 准备带有文本样本和标签的数据集(人类vs AI生成)
  2. 创建带有适当提示模板的config.yaml
  3. 运行假设生成:
   hypogenic_generation --config config.yaml --method hypogenic --num_hypotheses 20
  1. 在测试集上运行推理:
   hypogenic_inference --config config.yaml --hypotheses output/hypotheses.json --test_data data/test.json
  1. 分析结果以查找正式性、语法精确度和语气差异等模式

示例2:文献告知的假设测试(HypoRefine)

场景: 基于现有研究进行酒店评论中的欺骗检测

步骤:

  1. 收集10篇关于语言欺骗线索的相关论文
  2. 准备带有真实和欺诈评论的数据集
  3. 配置带有文献处理和数据生成模板的config.yaml
  4. 运行HypoRefine:
   hypogenic_generation --config config.yaml --method hyporefine --papers papers/ --num_hypotheses 15
  1. 测试检查代词频率、细节特异性和其他语言模式的假设
  2. 比较基于文献和数据驱动的假设性能

示例3:全面的假设覆盖(联合方法)

场景: 最大化假设多样性的心理压力检测

步骤:

  1. 从心理健康研究论文生成文献假设
  2. 从社交媒体帖子生成数据驱动假设
  3. 运行联合方法以组合和去重:
   hypogenic_generation --config config.yaml --method union --literature_hypotheses lit_hyp.json
  1. 推理捕获理论构建(发布行为变化)和数据模式(情感语言转变)

性能优化

缓存: 启用Redis缓存以减少重复LLM调用的API成本和计算时间

并行处理: 利用多个工作程序进行大规模假设生成和测试

自适应优化: 使用具有挑战性的示例迭代改进假设质量

预期结果

使用hypogenic的研究已证明:

  • AI内容检测任务的准确性提高14.19%
  • 欺骗检测任务的准确性提高7.44%
  • 80-84%的假设对提供独特、非冗余的见解
  • 人类评估者在多个研究领域的帮助度评分很高

故障排除

问题: 生成的假设太通用

解决方案:config.yaml中优化提示模板,以请求更具体、可测试的假设

问题: 推理性能差

解决方案: 确保数据集有足够的训练示例,调整假设生成参数,或增加假设数量

问题: 标签提取失败

解决方案: 实施特定于领域的自定义extract_label()函数以进行输出解析

问题: GROBID PDF处理失败

解决方案: 确保GROBID服务正在运行(bash ./modules/run_grobid.sh)并且PDF是有效的研究论文

创建自定义任务

要向Hypogenic添加新任务或数据集:

步骤1:准备您的数据集

按照所需格式创建三个JSON文件:

  • your_task_train.json
  • your_task_val.json
  • your_task_test.json

每个文件必须包含文本特征(text_features_1等)和label的键。

步骤2:创建config.yaml

使用以下内容定义您的任务配置:

  • 任务名称和数据集路径
  • 观察、生成、推理的提示模板
  • 可重用提示组件的任何额外键
  • 占位符变量(例如,${text_features_1}${num_hypotheses}

步骤3:实施extract_label函数

创建一个自定义标签提取函数,为您的领域解析LLM输出:

from hypogenic import BaseTask

def extract_my_label(llm_output: str) -> str:
    """您的任务的自定义标签提取。

    必须以与数据集'label'字段相同的格式返回标签。
    """
    # 示例:从特定格式提取
    if "Final prediction:" in llm_output:
        return llm_output.split("Final prediction:")[-1].strip()

    # 回退到默认模式
    import re
    match = re.search(r'final answer:\s+(.*)', llm_output, re.IGNORECASE)
    return match.group(1).strip() if match else llm_output.strip()

# 使用您的自定义任务
task = BaseTask(
    config_path="./your_task/config.yaml",
    extract_label=extract_my_label
)

步骤4:(可选)处理文献

对于HypoRefine/Union方法:

  1. 创建literature/your_task_name/raw/目录
  2. 添加相关研究论文PDF
  3. 运行GROBID预处理
  4. 使用pdf_preprocess.py处理

步骤5:生成和测试

使用CLI或Python API运行假设生成和推理:

# CLI方法
hypogenic_generation --config your_task/config.yaml --method hypogenic --num_hypotheses 20
hypogenic_inference --config your_task/config.yaml --hypotheses output/hypotheses.json

# 或使用Python API(参见Python API使用部分)

仓库结构

了解仓库布局:

hypothesis-generation/
├── hypogenic/              # 核心软件包代码
├── hypogenic_cmd/          # CLI入口点
├── hypothesis_agent/       # HypoRefine代理框架
├── literature/            # 文献处理工具
├── modules/               # GROBID和预处理模块
├── examples/              # 示例脚本
│   ├── generation.py      # 基本HypoGeniC生成
│   ├── union_generation.py # HypoRefine/Union生成
│   ├── inference.py       # 单个假设推理
│   ├── multi_hyp_inference.py # 多个假设推理
│   └── pdf_preprocess.py  # 文献PDF处理
├── data/                  # 示例数据集(单独克隆)
├── tests/                 # 单元测试
└── IO_prompting/          # 提示模板和实验

关键目录:

  • hypogenic/:带有BaseTask和生成逻辑的主要软件包
  • examples/:常见工作流的参考实施
  • literature/:用于PDF处理和文献提取的工具
  • modules/:外部工具集成(GROBID等)

相关出版物

HypoBench (2025)

Liu, H., Huang, S., Hu, J., Zhou, Y., & Tan, C. (2025). HypoBench: Towards Systematic and Principled Benchmarking for Hypothesis Generation. arXiv预印本 arXiv:2504.11524.

  • 论文: https://arxiv.org/abs/2504.11524
  • 描述: 假设生成方法的系统性和原则性基准测试框架

BibTeX:

@misc{liu2025hypobenchsystematicprincipledbenchmarking,
      title={HypoBench: Towards Systematic and Principled Benchmarking for Hypothesis Generation},
      author={Haokun Liu and Sicong Huang and Jingyu Hu and Yangqiaoyu Zhou and Chenhao Tan},
      year={2025},
      eprint={2504.11524},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2504.11524},
}

Literature Meets Data (2024)

Liu, H., Zhou, Y., Li, M., Yuan, C., & Tan, C. (2024). Literature Meets Data: A Synergistic Approach to Hypothesis Generation. arXiv预印本 arXiv:2410.17309.

  • 论文: https://arxiv.org/abs/2410.17309
  • 代码: https://github.com/ChicagoHAI/hypothesis-generation
  • 描述: 介绍HypoRefine并展示基于文献和数据驱动假设生成的协同组合

BibTeX:

@misc{liu2024literaturemeetsdatasynergistic,
      title={Literature Meets Data: A Synergistic Approach to Hypothesis Generation},
      author={Haokun Liu and Yangqiaoyu Zhou and Mingxuan Li and Chenfei Yuan and Chenhao Tan},
      year={2024},
      eprint={2410.17309},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2410.17309},
}

Hypothesis Generation with Large Language Models (2024)

Zhou, Y., Liu, H., Srivastava, T., Mei, H., & Tan, C. (2024). Hypothesis Generation with Large Language Models. In Proceedings of EMNLP Workshop of NLP for Science.

  • 论文: https://aclanthology.org/2024.nlp4science-1.10/
  • 描述: 用于数据驱动假设生成的原始HypoGeniC框架

BibTeX:

@inproceedings{zhou2024hypothesisgenerationlargelanguage,
      title={Hypothesis Generation with Large Language Models},
      author={Yangqiaoyu Zhou and Haokun Liu and Tejes Srivastava and Hongyuan Mei and Chenhao Tan},
      booktitle = {Proceedings of EMNLP Workshop of NLP for Science},
      year={2024},
      url={https://aclanthology.org/2024.nlp4science-1.10/},
}

其他资源

官方链接

  • GitHub仓库: https://github.com/ChicagoHAI/hypothesis-generation
  • PyPI软件包: https://pypi.org/project/hypogenic/
  • 许可证: MIT许可证
  • 问题和支持: https://github.com/ChicagoHAI/hypothesis-generation/issues

示例数据集

克隆这些仓库以获取即用型示例:

# HypoGeniC示例(仅数据驱动)
git clone https://github.com/ChicagoHAI/HypoGeniC-datasets.git ./data

# HypoRefine/Union示例(文献+数据)
git clone https://github.com/ChicagoHAI/Hypothesis-agent-datasets.git ./data

社区与贡献

  • 贡献者: 7+个活跃贡献者
  • 星标: GitHub上89+个
  • 主题: research-tool、interpretability、hypothesis-generation、scientific-discovery、llm-application

有关贡献或问题,请访问GitHub仓库并查看问题页面。

本地资源

references/

config_template.yaml - 完整的示例配置文件,包含所有必需的提示模板和参数。这包括:

  • 任务配置的完整YAML结构
  • 所有方法的示例提示模板
  • 占位符变量文档
  • 基于角色的提示示例

scripts/

scripts目录可用于:

  • 自定义数据准备工具
  • 格式转换工具
  • 分析和评估脚本
  • 与外部工具集成

assets/

assets目录可用于:

  • 示例数据集和模板
  • 示例假设库
  • 可视化输出
  • 文档补充材料

兼容工具

Claude CodeOpenClawHermes Agent

数据来源:claude-scientific-skillsMIT 许可) | 查看上游来源

上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18

本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明