maxtext
AI-Hypercomputer/maxtext加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

MaxText 是 Google AI-Hypercomputer 团队开源的高性能、高可扩展大语言模型训练库,完全基于纯 Python/JAX 编写,目标是同时支持 Google Cloud TPU 和 NVIDIA GPU 上的大规模分布式训练。截至 2026 年 8 月,该项目已支持 Gemma、Llama、DeepSeek、Qwen、Mistral 等数十个主流模型家族,并提供从预训练到 SFT、GRPO/GSPO 强化学习微调的完整工具链。
2023 年 11 月,Google 在一篇重磅博客中宣布:在 50,964 块 Cloud TPU v5e 芯片上完成了当时全球已知最大规模的 LLM 分布式训练任务。这背后的核心软件栈,正是 MaxText。
这次训练使用的关键技术叫 Cloud TPU Multislice Training——将多个 TPU Pod 通过 Jupiter 数据中心网络互联,形成跨越数万个芯片的统一计算平面。传统的分布式训练需要每个计算节点运行一个 Python 进程,节点之间通过 NCCL 通信;而 MaxText + Pathways 的组合将这一切抽象化:整个集群被 Pathways 视为一台"虚拟超级计算机",用户只需要写一个普通的 Python 脚本,Pathways 自动将计算图分发到所有芯片。
这意味着什么?一位 ML 工程师不需要懂 NCCL、不需要手动管理梯度同步、不需要写 CUDA 内核,只需要一个 YAML 配置文件和 python -m maxtext.trainers.pre_train.train 命令,就能在数万个 TPU 芯片上启动训练。这种"让编译器做苦力活"的哲学,正是 MaxText 区别于其他训练框架的核心哲学。
MaxText 的代码几乎全部由标准 Python 和 JAX 编写,没有任何手工优化的 CUDA 内核(除了极少数 Pallas 内核)。官方将这种做法称为 "优化免编程"(Optimization-Free)——开发者写高层次的 Python 代码,将硬件优化的责任完全交给 XLA 编译器。
具体来说,MaxText 的核心训练函数 train_step 只需要加一个 @jax.jit 装饰器:
@jax.jit
def train_step(state, batch):
def loss_fn(params):
logits = model.apply(state.params, batch)
loss = compute_loss(logits, batch)
return loss
grad_fn = jax.grad(loss_fn)
grads = grad_fn(state.params)
return state.apply_gradients(grads=grads)
XLA 会自动完成操作符融合、内存布局优化、向量化、并行化等一系列底层优化,生成针对目标硬件( TPU 或 NVIDIA GPU)高度定制化的机器码。开发者不需要写一行汇编,但得到的性能可以与手写内核相媲美。
MaxText 与 Pathways 深度集成的另一个亮点是弹性训练。Google 开发者博客记录了一次真实实验:在 TPU 运行到第 3301 步时,直接终止一个 TPU 节点。系统自动捕获异常、重新调度 Pathways 资源、恢复 Checkpoint——从故障到完全恢复步数继续训练,总耗时约 1 分 50 秒。Orbax 的 Checkpoint 管理使得这个过程无需人工干预,模型状态在 Cloud Storage 和 TPU 内存之间高效流转。
2026 年 6 月,MaxText 完成了从 Flax Linen 到 Flax NNX 的重大架构迁移。NNX 是 Flax 的下一代 API,设计更现代化,兼顾灵活性与易用性。官方明确表示现有工作负载无需修改即可继续运行,但新代码应使用 NNX API。
MaxText 的模型支持列表堪称豪华,覆盖了 2023-2026 年几乎所有重要的开源模型:
| 模型家族 | 代表模型 | 规模 |
|---|---|---|
| Google Gemma | Gemma 4 (26B MoE / 31B Dense), Gemma 3, Gemma 2, Gemma 1 | 2B–31B |
| Meta Llama | Llama 4 Scout (109B) / Maverick (400B), Llama 3.3, 3.1, 3.0, 2 | 7B–405B |
| DeepSeek | DeepSeek V3.2 (671B), DeepSeek R1, V3, V2 | 16B–671B |
| Alibaba Qwen | Qwen 3.5 MoE (397B), Qwen 3 MoE, Qwen 3 Dense | 0.6B–480B |
| Mistral AI | Mixtral 8x22B, Mistral 7B | 7B–46B |
| Moonshot AI | Kimi K2 (1T), Kimi K2-Thinking, K2.5, K2.6 | 1T 参数 |
| OpenAI | GPT-OSS (20B, 120B), GPT-3 | 6B–175B |
| Diffusion | MaxDiffusion (Wan 2.1, Flux, SDXL, LTXV) | — |
所有模型的权重转换均有官方脚本支持(如 llama_or_mistral_ckpt.py、convert_gemma_chkpt.py),用户可以从 HuggingFace 下载原始权重,转换为 Orbax/MaxText 格式后直接开始训练。
MaxText 不仅能做预训练,还提供了完整的后训练(Post-Training)能力:
此外还有 GEPA 框架用于 AIME 数学题优化提示、Kimi-K2 的 MuonClip 优化器等前沿技术。
必须正视的现实是:MaxText 的部署门槛极高。它不是"pip install 后跑个 demo"的框架。
虽然 MaxText 本身没有 Docker 一键部署,但 NVIDIA 提供了预构建容器 nvcr.io/nvidia/jax:25.10-maxtext-py3,开箱即用。Google 官方也推荐通过 pip install maxtext 使用 PyPI 版本。
# 方式1:pip 安装
pip install maxtext
# 方式2:NVIDIA 容器
docker pull nvcr.io/nvidia/jax:25.10-maxtext-py3
# 方式3:预训练脚本
bash src/dependencies/scripts/preflight.sh PLATFORM=GCE
python3 -m maxtext.trainers.pre_train.train run_name=my_run ...
MaxText 的架构哲学(信任编译器而非手写内核)在追求极致性能时存在天然瓶颈。对于极其定制化的操作(如特定 Attention 变体),纯 JAX 实现可能无法达到手写 Triton/Pallas 内核的效率。官方在架构文档中坦诚承认这一点,并仅在"最关键"的操作上使用 Pallas 内核。
此外,MaxText 与 Google 基础设施(Cloud TPU、GCS、Pathways)的耦合程度很深,在非 Google 云环境下(如本地 GPU 集群)部署的复杂度显著高于 PyTorch 生态的分布式训练工具。
MaxText 代表了 Google 在开源 AI 基础设施领域的重要布局。通过将 Gemini 训练所使用的底层技术开源,Google 意在吸引更多研究者和工程师加入 JAX 生态,与 PyTorch/HuggingFace 生态形成竞争。
从 GitHub 趋势来看,MaxText 的 Star 数在过去一年保持了稳定增长,社区贡献活跃,Issue 反馈响应较快。2026 年支持 DeepSeek V4 Flash、Kimi-K2、Qwen3.5 等最新模型,显示了项目组的持续投入。
总结一句话:如果你有 TPU/GPU 集群、想训练或微调 Gemma/Llama/DeepSeek 等主流模型、且愿意深入阅读 Google 风格的文档,MaxText 是目前 JAX 生态中无可替代的选择。但如果你只是想快速跑一个 7B 模型做推理,出门左转去找 vLLM。