多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Lightning Fabric 安装指南:从 pip/Conda 到源码构建与验证

Lightning Fabric 安装指南:从 pip/Conda 到源码构建与验证 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.txtlitdatapip 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 给出了如下方式# 安装 nightlymaster 分支含最新未发布功能属前沿版本请自行斟酌使用 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_NAMEfabric 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, downloadTrue, trainTrue, transformtv.transforms.ToTensor()) fabric L.Fabric() # 替换原来的 device 判断与 model.to(device) fabric.launch() model tv.models.resnet18() optimizer torch.optim.SGD(model.parameters(), lr0.001) model, optimizer fabric.setup(model, optimizer) # 自动处理设备/分布式封装 dataloader torch.utils.data.DataLoader(dataset, batch_size8) 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),仅供参考
返回列表