news 2026/9/19 20:55:48

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 官方安装文档为主体,完整覆盖pipconda两种标准安装方式、可选的扩展依赖、从源码构建的开发模式,以及安装后的环境验证与 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_lightninglightning_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-forge

Conda 会自动解析并处理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__) # Fabric

Fabric类由 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.0bitsandbytes)带有平台条件限制,例如 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 的包映射(lightninglightningpytorchpytorch_lightningfabriclightning_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

安装完成后,官方文档建议按以下路径继续深入:

  1. 从 PyTorch 迁移到 Fabric:阅读 Convert 指南,学习如何在现有 PyTorch 代码中加入 Fabric(约 5 行改动即可接入)。
  2. 查看示例代码:浏览 Fabric 示例索引,覆盖计算机视觉、NLP、强化学习等常见任务,对应可运行的源码位于 examples/fabric 目录。
  3. 继续进阶:安装完成后,可进一步阅读 加速器与硬件、启动分布式训练、混合精度训练 等基础主题,以及 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 20:53:34

Delta Lake 与 Iceberg/Hudi 深度对比:表格式选型、性能基准与生态兼容

Delta Lake 与 Iceberg/Hudi 深度对比&#xff1a;表格式选型、性能基准与生态兼容 1. 数据湖表格式概述与核心架构差异 Delta Lake、Apache Iceberg 和 Apache Hudi 是当前数据湖存储格式的三大主流解决方案&#xff0c;它们各自解决了数据湖中事务支持、模式演进和数据治理等…

作者头像 李华
网站建设 2026/9/19 20:51:35

Ryujinx Switch模拟器完整教程:从硬件体检到流畅开玩的5步流程

Ryujinx Switch模拟器完整教程&#xff1a;从硬件体检到流畅开玩的5步流程 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx是一款用 C# 编写的开源 Nintendo Switch 模拟器&…

作者头像 李华
网站建设 2026/9/19 20:49:51

VLM视觉语言模型全解析:从原理到架构、微调与部署实战

1. 2025年这个节点&#xff0c;为什么VLM成了绕不开的技术栈1.1 先从一次"看图翻车"说起上季度我在做一批内部报表自动化的需求&#xff0c;要处理的是各种带表格、图表的业务截图。一开始想走传统方案&#xff1a;写OCR脚本提取文字&#xff0c;再写规则解析表格结构…

作者头像 李华
网站建设 2026/9/19 20:48:58

NX报错‘捕获到标准C++异常’的根因与实战排查指南

1. 这个报错不是UG的锅&#xff0c;而是C运行时环境在敲警钟“捕获到标准C异常”——当你在NX&#xff08;UG&#xff09;里点开一个对话框、执行一段二次开发代码、甚至只是切换下建模环境&#xff0c;弹出这个红色警告框时&#xff0c;第一反应往往是&#xff1a;UG坏了&…

作者头像 李华
网站建设 2026/9/19 20:42:29

Cursor 填 Base URL 报 401?多写的 /v1 让请求打不到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 20:41:02

SOTIF实战指南:AI系统安全设计与动态场景验证

简介&#xff1a;本资源是一份面向智能网联汽车工程师、AI系统安全设计人员及自动驾驶领域研究者的专业文档&#xff0c;聚焦预期功能安全&#xff08;SOTIF&#xff09;在AI驱动型智能驾驶系统中的落地应用。文档深入剖析SOTIF&#xff08;ISO/PAS 21448&#xff09;与传统功能…

作者头像 李华