Lightning Fabric 安装指南:从 pip/Conda 到源码构建与验证
【免费下载链接】pytorch-lightningPretrain, finetune ANY AI model of ANY size on 1 or 10,000+ GPUs with zero code changes.项目地址: https://gitcode.com/gh_mirrors/py/pytorch-lightning
本指南以 Lightning 官方安装文档为主体,完整覆盖pip与conda两种标准安装方式、可选的扩展依赖、从源码构建的开发模式,以及安装后的环境验证与 PyTorch 版本兼容性说明。阅读完本文,你将能在本机环境中正确安装 Lightning Fabric(当前仓库版本为 2.6.2),验证安装是否成功,并顺利进入下一步——将现有 PyTorch 代码迁移到 Fabric。
Fabric 是什么,它包含在哪个包里
Lightning Fabric 是 Lightning 生态中面向"专家级控制"的轻量级库:它不提供像Trainer那样的整套训练循环,而是提供Fabric类作为工具箱,让你保留自己的 PyTorch 训练/推理逻辑,同时获得分布式训练(DDP、FSDP、DeepSpeed)、混合精度、多硬件加速(CPU / GPU / TPU)等底层能力。从 docs/source-fabric/index.rst 可以看到它的定位:无需重构代码,仅改几行即可接入;训练循环由你完全掌控,一切功能按需选用(opt-in)。
关键点在于:Fabric 并不单独发布为一个独立安装包,而是lightning这个统一包的一部分(同一仓库下还同时维护pytorch_lightning与lightning_fabric两个镜像包,见 setup.py 中的包映射)。因此,安装lightning即同时获得 Fabric 与 PyTorch Lightning。
标准安装:pip 与 Conda 双通道
官方安装文档(docs/source-fabric/fundamentals/installation.rst)给出了两种官方推荐方式,本文完整保留如下。
Pip 用户
在虚拟环境或 conda 环境中执行:
pip install lightning这是最直接的安装方式。该命令不仅会安装lightning主包,还会一并安装其运行时依赖。
Conda 用户
通过 conda-forge 渠道安装:
conda install lightning -c conda-forgeConda 会自动解析并处理lightning及其依赖(包括 PyTorch 等)的版本关系,适合偏好 conda 管理环境的用户。
关于 PyTorch 版本
如果你之前没有安装 PyTorch,上述命令会同时安装最新的稳定版 PyTorch。仓库中 requirements/fabric/base.txt 记录了当前 CI 使用的依赖约束:
torch >=2.6.0, <2.14.0 fsspec[http] >=2022.5.0, <2026.4.0 packaging >=23.0, <=26.0 typing-extensions >4.5.0, <4.16.0 lightning-utilities >=0.10.0, <0.16.0文件头部注释特别说明:版本上限仅为 CI 稳定性而设,实际安装包时会丢弃该上限——即安装时并不会被强制限制在 2.14 以下,pip 会拉取符合条件的最新版本。若你希望使用特定 PyTorch 版本,可先自行按 PyTorch 官方安装页 安装,再安装lightning。
各 PyTorch 版本与 Lightning 的官方兼容对应关系,可参考仓库中的兼容性矩阵文档:docs/source-pytorch/versioning.rst。
安装后的版本验证
安装完成后,建议在 Python 中做一次快速验证,确认 Fabric 可用并查看版本号:
import lightning as L # 查看版本号 print(L.__version__) # 当前仓库对应版本:2.6.2 # 实例化 Fabric 对象(此时尚未真正启动) fabric = L.Fabric() print(type(fabric).__name__) # FabricFabric类由 src/lightning/fabric/fabric.py 定义,并在 src/lightning/fabric/init.py 中被导出(from lightning.fabric.fabric import Fabric),因此import lightning as L后可直接通过L.Fabric()使用。版本号信息来源于 src/version.info(内容为2.6.2),由 src/lightning/version.py 统一读取。
可选依赖与扩展安装
lightning支持按需安装额外依赖,以启用特定功能:
| 安装命令 | 启用能力 | 依赖来源 |
|---|---|---|
pip install lightning['extra'] | 附加扩展依赖 | requirements/fabric/extra.txt(如hydra-core等) |
pip install lightning[data] | Lightning Data 数据处理能力 | requirements/data/data.txt(litdata) |
pip install lightning['strategies'] | 分布式策略相关依赖(DeepSpeed、bitsandbytes 等) | requirements/fabric/strategies.txt |
注意:strategies类依赖(如deepspeed >=0.16.0,<0.17.0、bitsandbytes)带有平台条件限制,例如 DeepSpeed 仅安装在非 Windows、非 macOS 平台。README 的快速开始部分同样列出了pip install lightning['extra']与conda install lightning -c conda-forge两种进阶方式,与本文档一致。
从源码构建与开发模式安装
如果你需要最新的修复或功能(nightly 版本),或者希望参与开发,可以从源码安装。官方安装文档 docs/source-pytorch/starter/installation.rst 给出了如下方式:
# 安装 nightly(master 分支,含最新未发布功能,属"前沿版本",请自行斟酌使用) pip install https://github.com/Lightning-AI/lightning/archive/refs/heads/master.zip -U # 安装未来补丁版本(release/stable 分支,仅含最近主版本的问题修复) pip install https://github.com/Lightning-AI/lightning/archive/refs/heads/release/stable.zip -U在本仓库内进行开发时,setup.py 支持三种安装场景:
# 安装整个 lightning 主包(聚合 pytorch + fabric) pip install . # 仅安装其中一个子包,通过 PACKAGE_NAME 环境变量指定 # 例如仅安装 Lightning Fabric: PACKAGE_NAME=fabric pip install . # 开发模式(不复制文件到 site-packages,而是建立链接,便于本地直接编辑源码) pip install -e .从 setup.py 的包映射(lightning→lightning、pytorch→pytorch_lightning、fabric→lightning_fabric)可以看出,这三个包共用同一份源码树(src/lightning、src/lightning_fabric 与 src/pytorch_lightning),安装时按需镜像构建。
安装后的快速上手示例
Fabric 的价值体现在几乎不改变 PyTorch 代码结构的前提下获得分布式与硬件无关能力。以下示例来自仓库 README.md,演示了典型的最小接入模式:
import lightning as L import torch import torchvision as tv dataset = tv.datasets.CIFAR10("data", download=True, train=True, transform=tv.transforms.ToTensor()) fabric = L.Fabric() # 替换原来的 device 判断与 model.to(device) fabric.launch() model = tv.models.resnet18() optimizer = torch.optim.SGD(model.parameters(), lr=0.001) model, optimizer = fabric.setup(model, optimizer) # 自动处理设备/分布式封装 dataloader = torch.utils.data.DataLoader(dataset, batch_size=8) dataloader = fabric.setup_dataloaders(dataloader) # 自动处理分布式采样器 model.train() for epoch in range(10): for batch in dataloader: inputs, labels = batch optimizer.zero_grad() outputs = model(inputs) loss = torch.nn.functional.cross_entropy(outputs, labels) fabric.backward(loss) # 替代 loss.backward(),兼容混合精度与分布式 optimizer.step()从代码可以看到,model.to(device)、batch.to(device)这类样板代码被fabric.setup(...)与fabric.setup_dataloaders(...)取代,loss.backward()被fabric.backward(loss)取代——这正是文档所述"改动几行即完成迁移"的直观体现。仓库 examples/fabric 目录下还提供了 DCGAN、图像分类、k 折交叉验证、语言模型、元学习、强化学习、张量并行、FP8 分布式 Transformer 以及"构建你自己的 Trainer"等完整示例,可供安装后对照练习。
下一步:从 PyTorch 迁移到 Fabric
安装完成后,官方文档建议按以下路径继续深入:
- 从 PyTorch 迁移到 Fabric:阅读 Convert 指南,学习如何在现有 PyTorch 代码中加入 Fabric(约 5 行改动即可接入)。
- 查看示例代码:浏览 Fabric 示例索引,覆盖计算机视觉、NLP、强化学习等常见任务,对应可运行的源码位于 examples/fabric 目录。
- 继续进阶:安装完成后,可进一步阅读 加速器与硬件、启动分布式训练、混合精度训练 等基础主题,以及 Fabric 参数 与 Fabric 方法 的 API 参考。
至此,你的 Lightning Fabric 环境已经就绪,可以开始将 PyTorch 代码升级到 Fabric,逐步解锁多 GPU、多节点与混合精度等能力。
【免费下载链接】pytorch-lightningPretrain, finetune ANY AI model of ANY size on 1 or 10,000+ GPUs with zero code changes.项目地址: https://gitcode.com/gh_mirrors/py/pytorch-lightning
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考