solo-learn

GitHub
1.6k 200 简单 1 次阅读 3天前MIT开发框架语言模型
AI 解读 由 AI 自动生成,仅供参考

solo-learn 是一个基于 PyTorch Lightning 构建的开源库,专注于自监督视觉表示学习。它旨在为研究人员和开发者提供一个统一、高效的实验环境,集成了多种最先进的自监督学习方法(如 SimCLR、BYOL、MoCo V3、MAE 等),解决了不同算法实现分散、难以公平对比以及复现成本高的问题。

无论是希望快速验证新想法的学术研究者,还是需要将自监督预训练模型应用于实际项目的工程师,都能从 solo-learn 中受益。该库不仅支持开箱即用的主流算法,还内置了丰富的训练技巧与优化策略,例如混合精度训练、多裁剪增强、LARS 优化器改进以及对 ConvNeXt 等现代架构的支持。其独特的配置系统基于 OmegaConf 和 Hydra,提供了极高的灵活性与清晰度,同时支持断点续训和自动化评估流程,大幅降低了实验门槛。通过标准化的接口设计,用户既可以利用全套流程进行端到端训练,也能轻松提取模型用于外部项目,是探索无标签图像数据价值的得力助手。

使用场景

某医疗影像初创公司的算法团队需要在缺乏专家标注的情况下,从数万张未标记的肺部 CT 扫描图中提取高质量特征,以辅助早期病灶检测。

没有 solo-learn 时

  • 复现成本极高:团队需手动从零编写 SimCLR、MoCo 或 BYOL 等自监督算法代码,不仅耗时数周,还极易因细节错误导致模型无法收敛。
  • 实验对比困难:由于缺乏统一的训练框架和标准化配置,不同算法间的性能对比受超参数和环境差异影响,难以公平评估哪种方法最适合医疗数据。
  • 资源利用率低:缺少对混合精度训练、Channel Last 优化及多节点分布式训练的内置支持,导致昂贵的 GPU 集群训练速度缓慢,迭代周期长。
  • 工程维护繁琐:断点续训、数据增强流水线调整等功能需自行开发,一旦实验中途崩溃,往往需要从头开始,严重拖慢研发进度。

使用 solo-learn 后

  • 快速部署 SOTA 模型:直接调用 solo-learn 内置的 MoCo V3、MAE 等前沿算法,仅需修改配置文件即可在几天内完成基线模型搭建与验证。
  • 公平且高效的评估:依托 PyTorch Lightning 的统一环境,团队能在完全一致的条件下对比多种自监督方法,迅速锁定最适合 CT 影像特征的预训练模型。
  • 训练加速显著:利用 solo-learn 集成的 LARS 优化器、自动混合精度及 DALI 数据加载模块,将大规模无标签数据的训练时间缩短了 40% 以上。
  • 稳健的实验管理:借助自动恢复(Auto-resume)功能和灵活的 Hydra 配置系统,即使遇到硬件故障也能无缝接续训练,大幅提升了研发效率。

solo-learn 通过提供标准化、高性能的自监督学习工具箱,让团队得以在无标注数据上低成本地挖掘高价值视觉特征,显著降低了医疗 AI 的落地门槛。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU (若使用 Nvidia DALI 加速),显存大小取决于模型和数据集 (如 ImageNet 训练通常需大显存),CUDA 版本需与安装的 PyTorch 版本兼容

内存

未说明 (建议 16GB+ 以处理大型数据集)

依赖
notes可选安装 nvidia-dali 以提升数据处理速度(需额外配置 NVIDIA 源);支持 H5 数据格式和 UMAP 可视化需安装额外依赖;建议使用 Pillow-SIMD 替代 Pillow 以提升非 DALI 模式下的图像加载速度;配置管理使用 Hydra/OmegaConf。
python3.8+
torch
torchvision
pytorch-lightning
lightning-bolts
torchmetrics
timm
einops
scipy
tqdm
wandb
solo-learn hero image

快速开始

tests Documentation Status codecov

solo-learn

一个基于 PyTorch Lightning 的自监督方法库,用于无监督视觉表征学习。我们的目标是在可比较的环境中提供当前最优的自监督方法,并同时实现一系列训练技巧。该库是自包含的,但用户也可以在 solo-learn 外部使用其中的模型。更多详情请参阅我们的论文


最新动态

  • [2024年1月14日]::clap: 2023年期间进行了大量稳定性改进 :) 同时新增了 All4One
  • [2023年1月7日]::diving_mask: 添加了 MAE 在 ImageNet 上的结果、检查点和配置文件。感谢 HuangChiEn 的贡献。
  • [2022年12月31日]::stars: 全新Logo!特别感谢 Luiz
  • [2022年9月27日]::pencil: 全新的配置系统,采用 OmegaConf/Hydra 框架,提升了清晰度和灵活性。后续将推出更多教程!
  • [2022年8月4日]::paintbrush: 新增 MAE,并支持通过 main_linear.py 对主干网络进行微调,以及 mixup、cutmix 和 随机增强
  • [2022年7月13日]::sparkling_heart: 增加了对 H5 数据的支持,优化了脚本和数据处理流程。
  • [2022年6月26日]::fire: 新增了 MoCo V3
  • [2022年6月10日]::bomb: 改进了 LARS 优化器。
  • [2022年6月9日]::lollipop: 增加了对 WideResnet 的支持,为 SwAV 添加了多尺度裁剪功能,并引入了均衡化数据增强技术。
  • [2022年5月2日]::diamond_shape_with_a_dot_inside: 使用 DataModule 封装了 Dali,增加了线性评估的自动恢复功能以及 Wandb 运行的恢复功能。
  • [2022年4月12日]::rainbow: 改进了模型设计,并支持仅使用部分数据进行训练。
  • [2022年4月1日]::mag: 新增了使用 通道最后转换 的选项,这能显著缩短训练时间。
  • [2022年2月4日]::partying_face: 论文已被 JMLR 接受。
  • [2022年1月31日]::eye: 增加了与 timm 集成的 ConvNeXt 支持。
  • [2021年12月20日]::thermometer: 添加了 MoCo V2+ 在 ImageNet 上的结果、脚本和检查点。
  • [2021年12月5日]::notes: 将 SupCon 从 SimCLR 中分离出来,并添加了相关运行记录。
  • [2021年12月1日]::fountain: 新增了 PoolFormer
  • [2021年11月29日]::bangbang: 重大变更!请更新版本!!!
  • [2021年11月29日]::book: 新增教程!
  • [2021年11月29日]::houses: 新增了离线 K-NN 和离线 UMAP 功能。
  • [2021年11月29日]::rotating_light: 更新了 PyTorch 和 PyTorch Lightning 的版本,速度提升了约 10%。
  • [2021年11月29日]::beers: 添加了行为准则、贡献指南、问题模板以及 UMAP 教程。
  • [2021年11月23日]::space_invader: 新增了 VIbCReg
  • [2021年10月21日]::triumph: 增加了通过 Detectron v2 进行目标检测的支持,并实现了自动恢复功能,能够自动尝试恢复因崩溃或超时而中断的实验。
  • [2021年10月10日]::japanese_ogre: 重构了数据增强流水线,以提高灵活性并支持多尺度裁剪。同时为 BYOL 添加了多尺度裁剪功能。
  • [2021年9月27日]::pizza: 新增了 NNSiamNNBYOL,并推出了关于如何实现新方法的新教程 12,进一步加强了测试,并修复了自定义数据和线性评估方面的问题。
  • [2021年9月19日]::kangaroo: 新增了在线 k-NN 评估功能。
  • [2021年9月17日]::robot: 新增了 ViTSwin
  • [2021年9月13日]::book: 改进了 文档,并新增了关于 预训练离线线性评估 的教程。
  • [2021年8月13日]::whale: DeepCluster V2 现已可用。

路线图及所需帮助

  • 重新整理文档以提升清晰度。
  • 提供更好、更及时的教程。
  • 增加性能相关的测试,确保方法在每次更新后都能保持一致的性能。
  • 持续添加新方法。

可用方法


额外特色

主干网络

数据处理

  • 使用 Nvidia Dali 将数据处理速度提升高达 100%。
  • 灵活的数据增强技术。

评估

  • 通过停止梯度进行在线线性评估,便于调试和原型开发(也可选择在动量骨干网络上使用)。
  • 标准的离线线性评估。
  • 在线和离线 K-NN 评估。
  • 使用 UMAP 自动可视化特征空间。

训练技巧

  • PyTorch Lightning 的所有优势(混合精度、梯度累积、梯度裁剪等)。
  • 通道最后转换。
  • 按照 SwAV 实现的多裁剪数据加载:
    • 注意:目前仅 SimCLR、BYOL 和 SwAV 支持此功能。
  • 将批归一化层和偏置项排除在权重衰减和 LARS 优化之外。
  • 投影头不使用学习率调度器(如 SimSiam 中的做法)。

日志记录

  • 使用 WandB 在云端记录指标。
  • 自定义模型检查点保存,并采用简洁的文件组织方式。

需求

  • torch
  • torchvision
  • tqdm
  • einops
  • wandb
  • pytorch-lightning
  • lightning-bolts
  • torchmetrics
  • scipy
  • timm

可选

  • nvidia-dali
  • matplotlib
  • seaborn
  • pandas
  • umap-learn

安装

首先克隆仓库。

然后,若需安装支持 Dali 和/或 UMAP 的 solo-learn,可运行以下命令:

pip3 install .[dali,umap,h5] --extra-index-url https://developer.download.nvidia.com/compute/redist

若无需 Dali/UMAP/H5 支持,则直接安装仓库即可:

pip3 install .

本地开发时:

pip3 install -e .[umap,h5]
# 确保已安装 pre-commit 钩子
pre-commit install

注意:若遇到 Dali 安装问题,请按照其官方 指南 进行安装。

注意 2:建议安装 Pillow-SIMD,以便在不使用 Dali 时提升加载速度。

注意 3:即将上线 PyPI。


训练

预训练骨干网络时,可参考 scripts/pretrain/ 目录下的多个 Bash 脚本。我们目前使用 Hydra 处理配置文件,常见用法如下:

python3 main_pretrain.py \
    # 指定训练脚本所在目录
    --config-path scripts/pretrain/imagenet-100/ \
    # 指定训练配置文件名
    --config-name barlow.yaml
    # 可通过 ++new_argument=VALUE 添加新参数(例如未在 YAML 文件中定义的参数)
    # 也可在此处添加 PyTorch Lightning 的相关参数。

完成预训练后,可参照 scripts/linearscripts/finetune 中的示例进行离线线性评估或对整个骨干网络进行微调。

K-NN 评估和 UMAP 可视化则可在 scripts/{knn,umap} 目录下的脚本中找到。

注意:这些脚本会尽量保持最新,并尽可能遵循各论文推荐的超参数,但请在运行前仔细核对。


教程

请查看我们的 文档 和教程:

若希望为 solo-learn 做贡献,请务必阅读 如何贡献 并遵守 行为准则


模型库

所有预训练模型均可通过下方表格直接下载,或通过运行以下脚本以编程方式获取: zoo/cifar10.shzoo/cifar100.shzoo/imagenet100.shzoo/imagenet.sh


结果

注意:部分超参数可能并非最优,我们将在后续重新运行表现较差的方法。

CIFAR-10

方法 主干网络 Epochs Dali Acc@1 Acc@5 检查点
All4One ResNet18 1000 :x: 93.24 99.88 :link:
Barlow Twins ResNet18 1000 :x: 92.10 99.73 :link:
BYOL ResNet18 1000 :x: 92.58 99.79 :link:
DeepCluster V2 ResNet18 1000 :x: 88.85 99.58 :link:
DINO ResNet18 1000 :x: 89.52 99.71 :link:
MoCo V2+ ResNet18 1000 :x: 92.94 99.79 :link:
MoCo V3 ResNet18 1000 :x: 93.10 99.80 :link:
NNCLR ResNet18 1000 :x: 91.88 99.78 :link:
ReSSL ResNet18 1000 :x: 90.63 99.62 :link:
SimCLR ResNet18 1000 :x: 90.74 99.75 :link:
Simsiam ResNet18 1000 :x: 90.51 99.72 :link:
SupCon ResNet18 1000 :x: 93.82 99.65 :link:
SwAV ResNet18 1000 :x: 89.17 99.68 :link:
VIbCReg ResNet18 1000 :x: 91.18 99.74 :link:
VICReg ResNet18 1000 :x: 92.07 99.74 :link:
W-MSE ResNet18 1000 :x: 88.67 99.68 :link:

CIFAR-100

方法 主干网络 Epochs Dali Acc@1 Acc@5 检查点
All4One ResNet18 1000 :x: 72.17 93.35 :link:
Barlow Twins ResNet18 1000 :x: 70.90 91.91 :link:
BYOL ResNet18 1000 :x: 70.46 91.96 :link:
DeepCluster V2 ResNet18 1000 :x: 63.61 88.09 :link:
DINO ResNet18 1000 :x: 66.76 90.34 :link:
MoCo V2+ ResNet18 1000 :x: 69.89 91.65 :link:
MoCo V3 ResNet18 1000 :x: 68.83 90.57 :link:
NNCLR ResNet18 1000 :x: 69.62 91.52 :link:
ReSSL ResNet18 1000 :x: 65.92 89.73 :link:
SimCLR ResNet18 1000 :x: 65.78 89.04 :link:
Simsiam ResNet18 1000 :x: 66.04 89.62 :link:
SupCon ResNet18 1000 :x: 70.38 89.57 :link:
SwAV ResNet18 1000 :x: 64.88 88.78 :link:
VIbCReg ResNet18 1000 :x: 67.37 90.07 :link:
VICReg ResNet18 1000 :x: 68.54 90.83 :link:
W-MSE ResNet18 1000 :x: 61.33 87.26 :link:

ImageNet-100

方法 主干网络 轮数 Dali 精确率@1(在线) 精确率@1(离线) 精确率@5(在线) 精确率@5(离线) 检查点
All4One ResNet18 400 :heavy_check_mark: 81.93 - 96.23 - :link:
Barlow Twins :rocket: ResNet18 400 :heavy_check_mark: 80.38 80.16 95.28 95.14 :link:
BYOL :rocket: ResNet18 400 :heavy_check_mark: 80.16 80.32 95.02 94.94 :link:
DeepCluster V2 ResNet18 400 :x: 75.36 75.4 93.22 93.10 :link:
DINO ResNet18 400 :heavy_check_mark: 74.84 74.92 92.92 92.78 :link:
DINO :sleepy: ViT Tiny 400 :x: 63.04 TODO 87.72 TODO :link:
MoCo V2+ :rocket: ResNet18 400 :heavy_check_mark: 78.20 79.28 95.50 95.18 :link:
MoCo V3 :rocket: ResNet18 400 :heavy_check_mark: 80.36 80.36 95.18 94.96 :link:
MoCo V3 :rocket: ResNet50 400 :heavy_check_mark: 85.48 84.58 96.82 96.70 :link:
NNCLR :rocket: ResNet18 400 :heavy_check_mark: 79.80 80.16 95.28 95.30 :link:
ReSSL ResNet18 400 :heavy_check_mark: 76.92 78.48 94.20 94.24 :link:
SimCLR :rocket: ResNet18 400 :heavy_check_mark: 77.64 TODO 94.06 TODO :link:
Simsiam ResNet18 400 :heavy_check_mark: 74.54 78.72 93.16 94.78 :link:
SupCon ResNet18 400 :heavy_check_mark: 84.40 TODO 95.72 TODO :link:
SwAV ResNet18 400 :heavy_check_mark: 74.04 74.28 92.70 92.84 :link:
VIbCReg ResNet18 400 :heavy_check_mark: 79.86 79.38 94.98 94.60 :link:
VICReg :rocket: ResNet18 400 :heavy_check_mark: 79.22 79.40 95.06 95.02 :link:
W-MSE ResNet18 400 :heavy_check_mark: 67.60 69.06 90.94 91.22 :link:

:rocket: 表示超参数经过大量调优的方法。

:sleepy: ViT 非常消耗计算资源且不稳定,因此我们正在逐步尝试更大规模的架构和更大的批量大小。目前总批量大小为 128,且需要使用 float32 精度。如果您想参与运行,请联系我们!

ImageNet

方法 主干网络 轮数 Dali 精确率@1(在线) 精确率@1(离线) 精确率@5(在线) 精确率@5(离线) 检查点 微调后的检查点
Barlow Twins ResNet50 100 :heavy_check_mark: 67.18 67.23 87.69 87.98 :link:
BYOL ResNet50 100 :heavy_check_mark: 68.63 68.37 88.80 88.66 :link:
MoCo V2+ ResNet50 100 :heavy_check_mark: 62.61 66.84 85.40 87.60 :link:
MAE ViT-B/16 100 :x: ~ 81.60(微调后) ~ 95.50(微调后) :link: :link:?

DALI 的训练效率

我们在一台配备 Intel i9-9820X 处理器和两块 RTX 2080 Ti 显卡的服务器上,使用带有和不带 DALI 的 ResNet18 模型(每张 GPU 配置 4 个工作进程),报告了部分方法的训练效率。

方法 Dali 20 个 epoch 的总耗时 每个 epoch 的耗时 GPU 显存(每张 GPU)
Barlow Twins :x: 1 小时 38 分 27 秒 4 分 55 秒 5097 MB
:heavy_check_mark: 43 分 2 秒 2 分 10 秒(快 56%) 9292 MB
BYOL :x: 1 小时 38 分 46 秒 4 分 56 秒 5409 MB
:heavy_check_mark: 50 分 33 秒 2 分 31 秒(快 49%) 9521 MB
NNCLR :x: 1 小时 38 分 30 秒 4 分 55 秒 5060 MB
:heavy_check_mark: 42 分 3 秒 2 分 6 秒(快 64%) 9244 MB

:GPU 显存占用的增加并不与模型大小成正比,而是与工作进程的数量相关。


引用

如果您使用 solo-learn,请引用我们的论文:

@article{JMLR:v23:21-1155,
  author  = {Victor Guilherme Turrisi da Costa 和 Enrico Fini 和 Moin Nabi 和 Nicu Sebe 和 Elisa Ricci},
  title   = {solo-learn:用于视觉表征学习的自监督方法库},
  journal = {机器学习研究期刊},
  year    = {2022},
  volume  = {23},
  number  = {56},
  pages   = {1-6},
  url     = {http://jmlr.org/papers/v23/21-1155.html}
}

版本历史

1.0.82023/12/07
1.0.72023/06/01
1.0.62022/10/18
1.0.52022/06/30
1.0.42022/06/14
1.0.32021/12/01
1.0.22021/09/29
1.0.12021/09/21
1.02021/09/17
0.92021/08/13
0.82021/07/28
0.72021/07/26
0.62021/07/14
0.52021/07/05
0.42021/06/30
0.32021/06/24
0.22021/06/02
0.12021/05/20

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

142.7k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|今天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent