Skip to content

TsinghuaISE/Alchemy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alchemy logo

Alchemy

炼丹炉已经备好,请炼制你的算法

一个面向自动化 AI 科研的标准化研究环境。
AI Scientist 只需交付 algorithm.py + hyperparameter.yaml,Alchemy 负责把科研基础设施接起来。

3 domains 15 tasks algorithm.py + hyperparameter.yaml docker singularity

Alchemy overview

⚗️ 为什么需要 Alchemy

自动化 AI 科研的难点,不只是"提出一个想法",而是"让这个想法在真实实验系统里稳定、规模化地跑起来"。

今天的大多数 AI Scientist 系统,把科学发现与科研基础设施揉在同一条链路里。AI Scientist 不仅要提出方法,还被迫处理数据接线、任务配置、训练调度、并发执行、结果收集等工程细节——这些不应该占用它最宝贵的上下文窗口和推理预算。

Alchemy 将两者显式分离:

🧠 Scientist 层 (ai_scientist/)

负责假设生成、算法实现、超参数设计与多轮迭代。
专注于:提出假设 → 设计方法 → 根据反馈迭代
🔥 研究环境层 (research_environment/)

负责任务配置、GPU 调度、容器执行、指标解析与结果收集。
负责:科研基础设施 → 异构设备 → 高并发实验

🧪 核心接口

AI Scientist 交给 Alchemy 的,是构成算法的两份文件:

🧩 algorithm.py
代码实现:模型的架构。
🎛️ hyperparameter.yaml
超参数配置:算法各个超参数的搜索空间。

可选增强:domain_knowledge.md 提供任务背景与经验知识,既可由用户维护,也可由 AI Scientist 在实验后自主总结。

🌐 支持的领域与任务

🎯 推荐系统

• 通用推荐
• 序列推荐
• 上下文感知推荐
• 知识驱动推荐
• 多模态推荐 (MMRec)
🕸️ 图学习

• 通用图学习
• 图结构学习
• 时序图学习
• 噪声图学习
• 图异常检测
⏱️ 时间序列

• 异常检测
• 分类
• 插补
• 长期预测
• 短期预测

当前 GitHub 已发布 Recsys / MMRec 与 TimeSeries,剩余任务将持续更新。新领域只需在 research_environment/tasks/ 下添加目录 + plugin.py。

🚀 快速开始

Step 1 · 配置 LLM

编辑 ai_scientist/config.yaml

model: "claude-opus-4-5-20251101"
base_url: "https://your-endpoint/v1"

tasks:
  - domain: Recsys
    task: MMRec
    metric: "recall@20"
    seeds: ["PGL_2025"]

max_rounds: 10
patience: 3

Step 2 · 配置执行环境

编辑 research_environment/config.yaml

  • 选择 dockersingularity
  • 配置 gpu_idsmax_per_gpu

Step 3 · 准备数据与镜像

以 MMRec 为例:

# 构建运行镜像
docker build -t mmrec:latest research_environment/tasks/Recsys/MMRec/container

# 数据已在 research_environment/tasks/Recsys/MMRec/dataset/ 下

Step 4 · 启动

python -m ai_scientist

系统采用的AI Scientist遵循一般流程, seed baseline 出发,进入闭环:加载Seed Baseline → 生成假设 → 生成代码与超参 → 执行评测 → 反馈迭代。

❓ FAQ

Alchemy 只是另一个 AI Scientist 吗?
不是。Alchemy 的关键在于把 Scientist 层与研究环境层显式分离。它的价值来自这两层的分工,而不只是提出一个新的Agent。
能在单机单卡上运行吗?
可以。通过 research_environment/config.yaml 指定 GPU ID 和并发数。
怎么新增一个任务?
research_environment/tasks/{domain}/{task}/ 下添加 config.yaml + plugin.py,实现 expand_hp()parse_output() 两个方法, 并在pipeline中实现任务管线即可, 我们将会在下一个公布版本提升新增任务的便捷性, 如果你有什么需要集成的新任务, 欢迎联系我们, 联系方式在下方。

🤝 贡献指南

🧪 新增任务
research_environment/tasks/ 中补充新领域或任务。
🧠 优化科学发现
提升AI Scientist的科学发现能力。
📚 补充数据
补充 seed baseline, 数据集等等。
⚙️ 强化基础设施
优化执行器、调度器与异构环境支持。

📬 联系我们

李乐晖

交流 Alchemy、自动化 AI 科研或合作共建,欢迎微信联系。
建议备注:Alchemy / 姓名 / 机构
微信二维码

📎 引用

将在项目论文或官方发布信息确定后补充。

如果你已经在论文或技术报告中使用了 Alchemy,建议标注项目名称 Alchemy 及对应仓库地址。

About

让自动化AI科研只剩最后一块拼图

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages