solo-learn
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 的落地门槛。
运行环境要求
- 未说明
需要 NVIDIA GPU (若使用 Nvidia DALI 加速),显存大小取决于模型和数据集 (如 ImageNet 训练通常需大显存),CUDA 版本需与安装的 PyTorch 版本兼容
未说明 (建议 16GB+ 以处理大型数据集)

快速开始
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: 新增了 NNSiam、NNBYOL,并推出了关于如何实现新方法的新教程 1 和 2,进一步加强了测试,并修复了自定义数据和线性评估方面的问题。
- [2021年9月19日]::kangaroo: 新增了在线 k-NN 评估功能。
- [2021年9月17日]::robot: 新增了 ViT 和 Swin。
- [2021年9月13日]::book: 改进了 文档,并新增了关于 预训练 和 离线线性评估 的教程。
- [2021年8月13日]::whale: DeepCluster V2 现已可用。
路线图及所需帮助
- 重新整理文档以提升清晰度。
- 提供更好、更及时的教程。
- 增加性能相关的测试,确保方法在每次更新后都能保持一致的性能。
- 持续添加新方法。
可用方法
- All4One
- Barlow Twins
- BYOL
- DeepCluster V2
- DINO
- MAE
- MoCo V2+
- MoCo V3
- NNBYOL
- NNCLR
- NNSiam
- ReSSL
- SimCLR
- SimSiam
- 有监督对比学习
- SwAV
- VIbCReg
- VICReg
- W-MSE
额外特色
主干网络
数据处理
- 使用 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/linear 或 scripts/finetune 中的示例进行离线线性评估或对整个骨干网络进行微调。
K-NN 评估和 UMAP 可视化则可在 scripts/{knn,umap} 目录下的脚本中找到。
注意:这些脚本会尽量保持最新,并尽可能遵循各论文推荐的超参数,但请在运行前仔细核对。
教程
请查看我们的 文档 和教程:
若希望为 solo-learn 做贡献,请务必阅读 如何贡献 并遵守 行为准则。
模型库
所有预训练模型均可通过下方表格直接下载,或通过运行以下脚本以编程方式获取:
zoo/cifar10.sh、zoo/cifar100.sh、zoo/imagenet100.sh 和 zoo/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/071.0.72023/06/011.0.62022/10/181.0.52022/06/301.0.42022/06/141.0.32021/12/011.0.22021/09/291.0.12021/09/211.02021/09/170.92021/08/130.82021/07/280.72021/07/260.62021/07/140.52021/07/050.42021/06/300.32021/06/240.22021/06/020.12021/05/20常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
