← 全部文章

AlphaFold 3 | v3.0.4 把运行门槛降下来了

想在本地运行 AlphaFold 3,过去首先要回答的往往不是“我要预测什么”,而是“我有没有一张足够新的 NVIDIA GPU”。对没有 GPU 的服务器和使用 Mac 的研究者来说,本地部署长期卡在硬件与软件栈两道门槛上。

发布于 · 约 11 分钟 · 中文正文

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 #计算生物学 #开源工具