在训练大模型(LLM)的实战中,Ubuntu 确实是绝对的“统治者”。如果你去查看 Hugging Face、GitHub 上的开源项目文档,或者各大云厂商(阿里云、腾讯云、AWS等)的官方推荐镜像,你会发现 Ubuntu 几乎是标配。
这并非偶然,也不是因为某家公司的营销策略,而是由软件生态兼容性、驱动支持稳定性、社区资源密度以及工程化便利性共同决定的。以下是几个核心原因的深度拆解:
1. CUDA 和 NVIDIA 驱动的“亲儿子”待遇
这是最硬核的原因。目前主流的大模型训练都依赖 NVIDIA GPU(A100, H100, V100 等)。NVIDIA 的 CUDA Toolkit 和 cuDNN 对 Linux 的支持是最优先且最完善的。
- 驱动兼容性:NVIDIA 官方提供的闭源驱动包(
.run或.deb),在 Ubuntu 上的安装流程最为标准化。相比之下,CentOS/RHEL 系列虽然也能用,但往往需要处理内核版本匹配问题,甚至在某些新硬件上,CentOS 的内核更新速度跟不上 NVIDIA 最新驱动的需求。 - 版本锁定:深度学习框架(PyTorch, TensorFlow)的二进制包通常只针对特定的 glibc 版本和内核进行编译测试。Ubuntu LTS(长期支持版)提供了极其稳定的基础环境,减少了“在我的机器上能跑,在你那里报错”的概率。
2. 包管理器与依赖管理的效率
Ubuntu 使用 apt 和 dpkg,配合 pip 和 conda,形成了一套非常流畅的开发工作流。
- 系统级库的快速部署:训练大模型需要大量的底层库,如
libnccl-dev(NVIDIA Collective Communications Library)、openmpi,cuda-toolkit等。在 Ubuntu 上,一条apt install就能搞定大部分系统依赖。而在 RHEL/CentOS 系列中,很多开发库默认不安装在最小化镜像里,需要手动配置 EPEL 源或额外挂载 ISO,步骤繁琐。 - Python 环境的隔离性:虽然 Conda 是跨平台的,但在 Ubuntu 上,虚拟环境(venv/conda)与系统 Python 的冲突较少。许多 AI 框架的安装脚本(如 PyTorch 的 pip install 命令)都是基于 Debian/Ubuntu 的路径结构编写的。
3. 容器化与 Kubernetes 的原生契合
现代大模型训练很少直接在裸机上运行,而是通过 Docker 容器或 Kubernetes 集群进行调度和管理。
- Docker 官方支持:Docker 团队本身就在 Ubuntu 上进行了最严格的测试。大多数 AI 相关的 Docker 镜像(如 Nvidia/cuda 镜像)的基础层都是 Ubuntu。
- K8s 生态:国内外的云计算平台(包括阿里云 ACK、腾讯云 TKE、AWS EKS)在提供 GPU 节点池时,默认推荐的操作系统镜像往往是 Ubuntu。这是因为 K8s 的 CNI(网络插件)、CSI(存储插件)以及 NVIDIA Device Plugin 在 Ubuntu 上的兼容性最好,故障率最低。
4. 社区资源与“抄作业”成本
当你遇到一个诡异的 Bug 时,你希望能在 StackOverflow 或 GitHub Issues 中找到类似案例。
- 错误信息的可搜索性:假设你遇到了
NCCL ERROR或CUDA out of memory,你在 Google 搜索这些错误码时,前 10 个结果绝大多数是基于 Ubuntu 环境的解决方案。 - 教程的一致性:从 Colab 到 Kaggle,再到本地的 Jupyter Notebook,几乎所有的主流 AI 教程、博客、论文复现代码,其前提假设都是 Ubuntu。如果你用 CentOS,你可能需要花费大量时间去翻译那些“Ubuntu 专用”的操作步骤,这种时间成本在快速迭代的 AI 领域是巨大的浪费。
5. 为什么不是 CentOS?
很多人会问:“CentOS 不是更稳定吗?”
- 历史包袱:CentOS 7 已经停止维护,CentOS Stream 的定位偏向于滚动更新,对于追求极致稳定性的生产环境来说,部分用户感到不安。
- RHEL 的成本:Red Hat Enterprise Linux (RHEL) 是企业级首选,但它收费昂贵。对于初创公司和个人开发者,Ubuntu Server 是免费且同样企业级的替代品。
- 替代方案的出现:Rocky Linux 和 AlmaLinux 虽然是 CentOS 的继任者,但它们的市场份额远小于 Ubuntu,导致相关技术支持和社区讨论相对较少。
6. 云厂商的推动
在国内,阿里云、腾讯云、华为云等厂商为了降低用户的迁移成本,纷纷推出了基于 Ubuntu 的深度优化镜像。这些镜像预装了最新的内核模块、GPU 驱动和 AI 提速库,实现了“开箱即用”。这种生态闭环进一步巩固了 Ubuntu 的地位。
总结与建议
选择 Ubuntu 不是因为它是“最好”的系统,而是因为它是“最省心”的系统。
在大模型训练这个高度依赖第三方库、频繁迭代、对底层硬件敏感的领域,稳定性来自于生态的一致性,而非操作系统的绝对纯净。
给你的实操建议:
- 版本选择:推荐使用 Ubuntu 20.04 LTS 或 22.04 LTS。24.04 虽然新,但部分旧版深度学习框架可能尚未完全适配其较新的 glibc 版本。
- 避免桌面版:务必使用 Server 版本,不要安装 GNOME/KDE 等桌面环境,以节省宝贵的 CPU 和内存资源用于模型训练。
- 内核更新谨慎:除非你有明确的性能优化需求,否则不要随意升级内核。保持 LTS 版本的默认内核即可。
- 如果必须用 Windows/macOS:可以通过 WSL2(Windows Subsystem for Linux)或 Parallels Desktop 运行 Ubuntu 虚拟机,但要注意直通 GPU 时的性能损耗和配置复杂度,生产环境仍建议直接使用 Linux 物理机或云服务器。
简而言之:跟着 NVIDIA 走,跟着 Docker 走,跟着社区走,选 Ubuntu 准没错。
云技术博客