AlphaFold 3 | v3.0.4 把运行门槛降下来了
想在本地运行 AlphaFold 3,过去首先要回答的往往不是“我要预测什么”,而是“我有没有一张足够新的 NVIDIA GPU”。对没有 GPU 的服务器和使用 Mac 的研究者来说,本地部署长期卡在硬件与软件栈两道门槛上。
Google DeepMind · 2026年7月28日
CPU-only、Apple Silicon 与多项推理优化,一次更新全部到位
✨ 导语
想在本地运行 AlphaFold 3,过去首先要回答的往往不是“我要预测什么”,而是“我有没有一张足够新的 NVIDIA GPU”。对没有 GPU 的服务器和使用 Mac 的研究者来说,本地部署长期卡在硬件与软件栈两道门槛上。
现在,AlphaFold v3.0.4 把门推开了一些:CPU-only 机器终于可以运行 AlphaFold 3,Apple Silicon 也能借助 MPS 调用内置 GPU 加速推理。与此同时,JAX、Tokamax、显存占用和结果文件都得到了一轮更新。
但“能跑”不等于“都适合拿来跑生产任务”。Linux + NVIDIA GPU 仍是最稳妥的主线,CPU 和 Mac 更适合试用、流程验证与规模较小的任务。
一句话理解:v3.0.4 最大的变化不是模型能力换代,而是让更多硬件第一次进入 AlphaFold 3 的本地运行范围。
🚀 v3.0.4 更新了什么?
这次更新不大,却很实用。可以把主要变化压缩成下面这张表:
| 类型 | 更新 | 对实际使用的影响 |
|---|---|---|
| 新功能 | 支持 CPU-only 推理 | 没有 GPU 也能完成推理,但速度很慢 |
| 新功能 | 支持 Apple Silicon | 可通过社区维护的 jax-mps 使用内置 GPU |
| 新功能 | 部分路径支持 gs:// |
输入、输出、模型及部分文件可直接使用 Google Cloud Storage |
| 新功能 | summary confidence JSON 增加 chain IDs | 下游按链解析置信度结果更方便 |
| 性能 | outer product mean 从两次 einsum 合并为一次 | 减少这一模块的内存使用 |
| 性能 | JAX 0.9.1 → 0.10.2 |
改善推理速度,并修复 Blackwell GPU 的统一内存支持 |
| 性能 | Tokamax 0.0.11 → 0.0.12 |
配合新版 JAX 优化推理执行 |
| 修复 | RNG seed 提前验证为 uint32 |
输入错误更早暴露,不必跑到中途才失败 |
| 文档 | 补充用户自定义 CCD 说明 | 自定义修饰聚合物残基的使用方式更明确 |
如果需要逐行查看代码变化,可以阅读官方的 v3.0.3...v3.0.4 完整比较。
这不是一次“模型精度大升级”,而是一次运行平台扩展、工程提速与易用性修补。
🧭 先选对运行路线
开始安装前,先按自己的硬件选路线:
| 你的机器 | 推荐方式 | 适合场景 | 需要接受的代价 |
|---|---|---|---|
| Linux + NVIDIA A100/H100 等 | Docker + CUDA | 正式任务、较长序列、批量运行 | 硬件和存储成本最高 |
| Linux,无可用 GPU | uv 直接安装 + CPU |
安装验证、小规模测试 | 官方估计约比 GPU 慢 100 倍 |
| Apple Silicon Mac | uv + jax-mps |
本地试用、教学、轻量任务 | 实验性支持,速度与兼容性仍有限 |
官方安装指南以 Ubuntu 22.04、CUDA 12.6 和 NVIDIA GPU 为主要参考环境,并建议长目标配备至少 64 GB 内存。官方已验证 A100 80 GB 和 H100 80 GB 可容纳最多 5,120 tokens 的输入。
无论选哪条路线,完整数据库的下载量约为 252 GB,解压后约 630 GB;算上镜像、权重、缓存和输出,建议按最多 1 TB 空间准备,并优先放在 SSD 上。
本文是基于 v3.0.4 官方文档整理的版本指南,不代表本站已在每种硬件上完成复现。示例目录、用户名和服务器地址需要按自己的环境替换。
🛠️ Linux + NVIDIA GPU 快速安装
下面只保留一条最短主线。Docker、驱动或云服务器的完整配置细节,请以官方安装文档为准。
先检查 GPU、Docker 和磁盘
nvidia-smi
docker --version
df -h /data
再确认 Docker 容器能看到 GPU:
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi
如果这里失败,先处理 NVIDIA 驱动与 NVIDIA Container Toolkit,不要急着构建 AlphaFold 3。
获取固定版本并规划目录
git clone --branch v3.0.4 --depth 1 \
https://github.com/google-deepmind/alphafold3.git
cd alphafold3
export AF3_DB_DIR=/data/alphafold3_databases
export AF3_MODEL_DIR=/data/alphafold3_models
export AF3_INPUT_DIR=/data/alphafold3_input
export AF3_OUTPUT_DIR=/data/alphafold3_output
mkdir -p "$AF3_DB_DIR" "$AF3_MODEL_DIR" \
"$AF3_INPUT_DIR" "$AF3_OUTPUT_DIR"
数据库和模型目录不要放进源码仓库,否则 Docker 构建时可能把数百 GB 数据带进构建上下文。
下载数据库与模型参数
./fetch_databases.sh "$AF3_DB_DIR"
wget -P "$AF3_MODEL_DIR" \
https://storage.googleapis.com/alphafold3/af3.bin.zst
模型参数必须直接从 Google 获取,并受权重使用条款约束。运行前请先阅读并确认自己的用途符合条款。
构建 v3.0.4 镜像
docker build \
-t alphafold3:3.0.4 \
-f docker/Dockerfile .
如果需要启用新增的 GCS 路径支持,可在构建时加入:
docker build \
--build-arg UV_EXTRAS="--extra gcsfs" \
-t alphafold3:3.0.4 \
-f docker/Dockerfile .
需要注意,gs:// 目前只适用于 --input_dir、--json_path、--output_dir、--model_dir、--pdb_database_path,以及输入 JSON 中名称以 Path 结尾的字段;其他数据库和二进制路径仍必须是本地路径。
准备输入并完成第一次运行
在 $AF3_INPUT_DIR 中创建 fold_input.json。最小结构如下,其中氨基酸序列需要替换成自己的输入:
{
"name": "demo",
"sequences": [
{
"protein": {
"id": "A",
"sequence": "MKTAYIAKQRQISFVKSHFSRQ"
}
}
],
"modelSeeds": [1],
"dialect": "alphafold3",
"version": 1
}
然后运行:
docker run --rm -it \
--volume "${AF3_INPUT_DIR}:/root/af_input" \
--volume "${AF3_OUTPUT_DIR}:/root/af_output" \
--volume "${AF3_MODEL_DIR}:/root/models" \
--volume "${AF3_DB_DIR}:/root/public_databases" \
--gpus all \
alphafold3:3.0.4 \
python run_alphafold.py \
--json_path=/root/af_input/fold_input.json \
--model_dir=/root/models \
--output_dir=/root/af_output
第一次成功的标准不是“命令没有立刻报错”,而是数据流程、模型推理与结果写出全部完成,并在输出目录中得到结构和置信度文件。
🌐 国内网络不顺怎么办?
国内部署最常见的问题不是 AlphaFold 3 本身,而是 GitHub、PyPI、Docker Hub、GCS 分属不同下载链路。一个镜像源不能解决所有网络问题,建议按报错位置分别处理。
GitHub 或普通 HTTPS 下载失败:临时走代理
如果代理程序就运行在当前机器,并监听 7890 端口:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
git clone --branch v3.0.4 --depth 1 \
https://github.com/google-deepmind/alphafold3.git
端口要按自己的代理软件修改。如果代理在你的笔记本上、安装发生在远程服务器,服务器里的 127.0.0.1 指向服务器自己,不能直接照抄。
uv sync 卡在 PyPI:临时使用清华源
uv sync \
--default-index \
https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
这只替换 Python 包索引。它不会代理 GitHub、GCS、Docker Hub,也不会替你获取 AlphaFold 3 权重。长期使用时可参考清华 TUNA 的 uv 配置说明写入用户级 uv.toml。
Docker 构建中的下载失败:把代理传给 BuildKit
docker build \
--build-arg HTTP_PROXY=http://host.docker.internal:7890 \
--build-arg HTTPS_PROXY=http://host.docker.internal:7890 \
-t alphafold3:3.0.4 \
-f docker/Dockerfile .
host.docker.internal 主要适用于 Docker Desktop。Linux 服务器应填写容器能够访问的代理地址。若连基础镜像都拉不下来,还需要配置 Docker daemon 或 Docker Desktop 的代理;--build-arg 主要作用于镜像构建过程中的网络请求。
服务器始终构建失败:本地构建,再上传镜像
这条路线尤其适合“本地有稳定代理,服务器没有”的情况。先在服务器运行 uname -m:常见 x86_64 对应 linux/amd64,aarch64 对应 linux/arm64。
以 Apple Silicon Mac 为常见的 x86_64 GPU 服务器构建为例:
docker buildx build \
--platform linux/amd64 \
--load \
-t alphafold3:3.0.4 \
-f docker/Dockerfile .
docker save \
-o alphafold3-3.0.4-linux-amd64.tar \
alphafold3:3.0.4
scp alphafold3-3.0.4-linux-amd64.tar user@server:/data/
服务器端载入:
docker load -i /data/alphafold3-3.0.4-linux-amd64.tar
跨架构构建依赖模拟,编译可能明显变慢。更重要的是:镜像不包含 630 GB 数据库,也不应打包模型参数;这些仍需单独上传或挂载。目标服务器也必须正确安装 NVIDIA 驱动与 Container Toolkit。
简单判断:哪里下载失败,就处理哪里的网络;不要把“换清华源”当成 GitHub、Docker 和 GCS 的通用答案。
🍎 Apple Silicon 专区
v3.0.4 在 pyproject.toml 中为 macOS arm64 加入了 jax-mps==0.10.9,并在运行脚本中新增 mps 后端。这意味着 M 系列 Mac 可以通过 Metal Performance Shaders(MPS)调用内置 GPU。
先安装 HMMER 与 uv,再直接安装源码环境:
brew install hmmer uv
git clone --branch v3.0.4 --depth 1 \
https://github.com/google-deepmind/alphafold3.git
cd alphafold3
uv venv --python 3.12
source .venv/bin/activate
uv sync
uv run build_data
uv run python run_alphafold_data_test.py
准备好数据库、模型和输入后,先把几个变量指向 Mac 上的实际目录。下面以外置 SSD 为例:
export AF3_DB_DIR=/Volumes/AF3SSD/public_databases
export AF3_MODEL_DIR=/Volumes/AF3SSD/models
export AF3_INPUT_DIR=/Volumes/AF3SSD/af_input
export AF3_OUTPUT_DIR=/Volumes/AF3SSD/af_output
然后使用 MPS 推理:
uv run python run_alphafold.py \
--json_path="$AF3_INPUT_DIR/fold_input.json" \
--output_dir="$AF3_OUTPUT_DIR" \
--model_dir="$AF3_MODEL_DIR" \
--db_dir="$AF3_DB_DIR" \
--jax_backend=mps \
--flash_attention_implementation=xla
这里有三点要提前知道:
- 仅适用于 Apple Silicon,不是 Intel Mac;
jax-mps是社区维护的实验性路径,官方文档给出的参考速度约为 CPU 的 3 倍,新款芯片可能更快;- 若日志出现 Tokamax 的
NotImplementedError: Not supported on gpu,已知问题文档说明它会自动选择其他实现并继续运行,通常可以忽略。
对 Mac 用户来说,这次更新的意义是“终于有了可用的本地入口”,而不是“Mac 已经可以替代高显存 CUDA 服务器”。
🖥️ 没有 GPU 也能跑
Linux 或 Mac 都可以走 CPU-only。环境安装与上面的 uv 流程相同,运行时把后端改成 cpu:
uv run python run_alphafold.py \
--json_path="$AF3_INPUT_DIR/fold_input.json" \
--output_dir="$AF3_OUTPUT_DIR" \
--model_dir="$AF3_MODEL_DIR" \
--db_dir="$AF3_DB_DIR" \
--jax_backend=cpu \
--flash_attention_implementation=xla
CPU 和 MPS 都必须搭配 --flash_attention_implementation=xla,v3.0.4 会在推理开始前检查这一组合。
官方同时给出了很诚实的提醒:CPU-only 没有接受与 A100/H100 相同强度的数值准确性测试,而且折叠速度大约比 GPU 慢 100 倍。它适合验证安装、跑通输入输出和尝试较小任务,不适合直接替代生产级 GPU 队列。
⚠️ 开跑前必须知道
- 版本要固定。 本文命令固定到
v3.0.4,对应提交85c4d20,避免仓库后续变化造成依赖与教程不一致。 - 权重有独立条款。 代码仓库开放不代表模型参数可以无条件使用,参数必须直接从 Google 获取并遵守权重条款。
- 磁盘通常先成为瓶颈。 数据库约 252 GB 下载、630 GB 解压,源码、镜像、缓存与结果还会继续占空间。
- Mac 与 CPU 是新增入口,不是主力替代。 需要稳定吞吐、长输入或批量任务时,Linux + 高显存 NVIDIA GPU 仍是优先选择。
- 随机种子别写成负数或超范围整数。 v3.0.4 会提前检查 RNG seeds 是否能够表示为
uint32。 - GCS 支持有边界。
--db_dir、多数数据库路径和外部二进制路径仍要求本地文件。
💡 我的理解
我认为 v3.0.4 最值得关注的,不是某一个算子快了多少,而是 AlphaFold 3 的本地生态开始从“少数标准 GPU 服务器”向更多硬件环境扩展。CPU-only 让更多满足依赖、内存与存储要求的机器可以验证工作流,Apple Silicon 则让 Mac 用户第一次有了 GPU 加速的本地实验路径。
但这次更新也划出了一条很清楚的界线:可运行性扩大了,工程上的最佳实践没有反转。 完整数据库仍然很大,推理仍然重,实验性后端仍需要更多真实任务验证。
- 对初学者:先在现有机器上跑通流程,再决定是否购买或租用 GPU;
- 对实验室:继续把 Linux + NVIDIA Docker 作为共享服务主线;
- 对 Mac 用户:把 MPS 当成方便的本地测试工具,而不是服务器平替;
- 对 Blackwell 用户:新版 JAX、Tokamax 和统一内存修复值得尽快验证。
过去,本地运行 AlphaFold 3 更像是一道硬件资格题;v3.0.4 开始把它变成一道可以按任务规模选择答案的工程题。
📝 一句话总结
如果说过去的 AlphaFold 3 本地部署更像是在做:
先准备一台满足条件的 NVIDIA GPU 服务器,再谈结构预测。
那么 v3.0.4 更进一步在做的是:
让 Linux GPU、普通 CPU 和 Apple Silicon 都拥有清晰的运行入口,再按速度与稳定性选择路线。
这正是本次更新最值得关注的地方。
📄 版本与资源信息
Project
AlphaFold 3
Version
v3.0.4(commit 85c4d20)
Released
2026年7月28日
Maintainer
Google DeepMind
主要依赖变化
JAX 0.10.2;Tokamax 0.0.12;Apple Silicon 使用 jax-mps 0.10.9
🗂️ 官方资源
| 资源 | 用途 | 链接 |
|---|---|---|
| GitHub 仓库 | 源码与 README | https://github.com/google-deepmind/alphafold3 |
| v3.0.4 Release | 更新摘要 | https://github.com/google-deepmind/alphafold3/releases/tag/v3.0.4 |
| 完整变更 | v3.0.3 与 v3.0.4 对比 | https://github.com/google-deepmind/alphafold3/compare/v3.0.3...v3.0.4 |
| 安装文档 | Docker、Singularity、CPU 与 Mac | https://github.com/google-deepmind/alphafold3/blob/v3.0.4/docs/installation.md |
| 输入格式 | JSON 字段与示例 | https://github.com/google-deepmind/alphafold3/blob/v3.0.4/docs/input.md |
| 已知问题 | GPU、MSA 与 MPS 注意事项 | https://github.com/google-deepmind/alphafold3/blob/v3.0.4/docs/known_issues.md |
| 权重条款 | 模型参数使用要求 | https://github.com/google-deepmind/alphafold3/blob/v3.0.4/WEIGHTS_TERMS_OF_USE.md |
关键词
#AlphaFold3 #蛋白质结构预测 #AppleSilicon #计算生物学 #开源工具