【论文分享】Biomni-一个通用生物医学智能体的简介和安装
个人推荐指数:⭐️⭐️⭐️
Biomni 简介
Biomni 是一个通用生物医学 AI Agent。它包含三个部份:智能体(A1)、环境(E1)、LLM模型(R0)
智能体(A1) 是一个基于 ReAct,不断进行 “思考 -> 行动 -> 观察” 的智能体,整体上来说比较简单,也可以纳入反思过程,但默认不进行反思。
环境(E1) 是整个 Biomni 的核心,它包括:
- 工具库(Tools):覆盖 17 个生物医学子领域的专用函数,包括基因组学、药理学、免疫学、分子生物学、癌症生物学、细胞生物学、文献检索等
- 数据湖(Data Lake):约 80 个预处理的生物医学数据集,涵盖蛋白质相互作用、基因表达、药物-靶点关系、基因-疾病关联、GWAS、单细胞数据、sgRNA 等
- 软件库(Libraries):预装的 Python/R 包和 CLI 工具,如 scanpy、biopython、gget、lifelines 等
- Know-How 知识库:最佳实践、实验协议和故障排查指南文档
LLM模型(R0) 是 Biomni 团队基于 Qwen-32B 通过强化学习训练的生物学推理模型,专门针对工具使用、多步推理和复杂生物学问题求解进行了优化,支持 131072 长上下文。
Biomni E1 (Environment) 环境安装
1 | # 克隆仓库 |
自定义配置参考: https://github.com/snap-stanford/Biomni/blob/main/biomni_env/README.md
Biomni A1 (Agent) 智能体安装
1 | pip install biomni --upgrade |
Biomni R0 模型下载和本地部署启动
1 | # 安装sglang |
启动Biomni-R0的SGLang服务
1 | #!/bin/bash |
测试
1 | curl -s http://h20node6:30000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "Biomni-R0-32B-Preview", "messages": [{"role": "user", "content": "你好,你是谁?"}], "max_tokens": 500}' | jq |
配置 Gradio 前端
安装gradio
1
pip install "gradio>=5.0,<6.0" # 原始代码是用的是旧gradio的参数
编写sbatch启动脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64#!/bin/bash
#SBATCH --partition=a100
#SBATCH --nodelist=a100node1
#SBATCH --nodes=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=64G
#SBATCH --gres=gpu:0
#SBATCH --job-name=biomni
#SBATCH --output=/mnt/nfs_share/tlj/Project/scAgents/Biomni/txm_test/web/web.out
#SBATCH --error=/mnt/nfs_share/tlj/Project/scAgents/Biomni/txm_test/web/web.err
# 激活conda
source /usr/local/opt/anaconda3/etc/profile.d/conda.sh
conda activate biomni_e1
# 进入项目目录
cd /mnt/nfs_share/tlj/Project/scAgents/Biomni
# 设置环境变量
export GRADIO_SERVER_NAME=192.168.205.185
export GRADIO_SERVER_PORT=50003
# 启动 Biomni Gradio 界面
echo "启动 Biomni Gradio Web 界面..."
echo "服务器地址: http://192.168.205.185:50003"
# 禁用Python输出缓冲,确保实时输出到日志
export PYTHONUNBUFFERED=1
python -c "
from biomni.config import default_config
from biomni.agent import A1
import os
print('正在初始化 Biomni Agent...', flush=True)
# 数据库查询使用 Qwen3
default_config.llm = 'Qwen3-235B-A22B-2507'
default_config.source = 'Custom'
default_config.base_url = 'http://172.21.8.191:6080/v1'
default_config.api_key = '123456'
# Agent 推理使用 Biomni-R0
agent = A1(
path='./data',
llm='Biomni-R0-32B-Preview',
source='Custom',
base_url='http://h20node6:30000/v1',
api_key='EMPTY',
expected_data_lake_files=[]
)
print('正在启动 Gradio 界面...', flush=True)
print('服务器地址: http://192.168.205.185:50003', flush=True)
print('Gradio服务启动后,将持续监听请求直到作业结束', flush=True)
os.environ['GRADIO_SERVER_PORT'] = '50003'
agent.launch_gradio_demo(
server_name='192.168.205.185'
)
"
echo "Gradio服务已停止"
以上命令显式地指定了LLM配置,因此不需要配置 .env 文件
- 测试前端
1
你好,你是谁?
1
2告诉我这个数据的基本概况,并提出分析方案:
data/20251223/input/pbmc_granulocyte_sorted_3k_filtered_feature_bc_matrix.tar.gz
个人总结
Biomni 以一个非常简单的 ReAct Agent实现了较为完整的端到端生物医学数据分析。然而测试下来,问题还是非常的多。例如:
- Agent会擅自修改环境,当遇到以来冲突时(例如numpy2与numba),它会使用 python代码自动pip安装他所认为正确的环境。这是非常危险的行为
- 使用 R0模型的时候问题很大
- thinking 过程因为是模型自带的,因此无法在前端显示,有时候还会卡住,一直显示 “Each response must include thinking process followed by either”
- 当问“你好,你是谁?”时,他居然会自己开始分析 CRISPR sgRNA的相关东西
- 一些可以PR的小问题
- 按照官方环境配置,在调用scanpy分析单细胞数据时,numpy2与numba存在冲突
.env.example中配置的变量名是CUSTOM_MODEL_BASE_URL/LLM_SOURCE,而biomni/config.py中读取的是BIOMNI_CUSTOM_BASE_URL和BIOMNI_SOURCE
然鹅 Biomni 官方好像已经停止运维了orz,已经一个月没有更新了,持续观望吧
相关链接
评论