Transformer-SSL

GitHub
668 72 较难 1 次阅读 1个月前MIT语言模型
AI 解读 由 AI 自动生成,仅供参考

Transformer-SSL 是论文《Self-Supervised Learning with Swin Transformers》的官方开源实现,旨在推动基于 Transformer 架构的自监督学习研究。它核心提出了一种名为 MoBY 的新方法,巧妙融合了 MoCo v2 的动量队列机制与 BYOL 的非对称编码器设计,在大幅简化训练技巧的同时,实现了卓越的图像表征学习能力。

该项目重点解决了以往自监督学习模型难以有效迁移至下游任务(如目标检测和语义分割)的痛点。通过引入 Swin Transformer 作为骨干网络,Transformer-SSL 成为首个系统评估并验证了 Transformer 在复杂视觉任务中迁移性能的自监督学习框架。实验数据显示,其在 ImageNet-1K 线性评估中的准确率达到了 72.8%,表现媲美甚至优于当时主流的 MoCo v3 和 DINO 等方法。

Transformer-SSL 非常适合计算机视觉领域的研究人员和算法开发者使用。如果你正在探索高效的自监督预训练策略,或希望将强大的 Swin Transformer 模型应用于检测与分割任务,这套代码库提供了完整的训练脚本、配置文件及预训练模型,能帮助你快速复现前沿成果并开展进一步创新。

使用场景

某自动驾驶初创公司的算法团队正试图利用海量未标注的路况监控视频,训练一个能精准识别行人和交通标志的视觉模型。

没有 Transformer-SSL 时

  • 标注成本高昂:团队依赖人工标注数万张图像进行监督学习,耗时数月且预算严重超支,难以覆盖长尾场景。
  • 下游任务适配难:尝试使用标准的 ViT 进行自监督预训练后,迁移到目标检测任务时性能大幅下降,模型无法有效定位小物体。
  • 调参复杂繁琐:复现主流的 MoCo v3 或 DINO 方案需要大量复杂的技巧(Tricks)和超参数调整,实验迭代周期极长。
  • 特征表达能力弱:在有限标注数据下训练的模型,对遮挡、光照变化等复杂路况的鲁棒性不足,误检率居高不下。

使用 Transformer-SSL 后

  • 大幅降低标注依赖:利用 Transformer-SSL 中的 MoBY 算法对海量无标签视频进行自监督预训练,仅需少量标注数据微调即可达到高精度。
  • 原生支持下游评估:得益于 Swin Transformer 作为骨干网络,预训练模型直接在对象检测和语义分割任务上展现出卓越的迁移性能,无需额外魔改。
  • 流程简洁高效:相比以往方案,Transformer-SSL 减少了大量繁琐的训练技巧,团队能快速复现 75.3% 的 Top-1 准确率并部署到检测任务中。
  • 泛化能力显著提升:学到的视觉表示对复杂环境具有更强的适应性,显著降低了车辆在雨天或夜间场景下的漏检与误报。

Transformer-SSL 通过结合 Swin Transformer 的强大架构与高效的自监督学习策略,成功解决了从海量无标签数据到高精密度下游视觉任务的“最后一公里”难题。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU(基于高吞吐量训练需求及下游任务评估),具体型号和显存大小未说明,CUDA 版本未说明

内存

未说明

依赖
notes该项目主要支持自监督预训练、线性评估以及在目标检测(COCO)和语义分割(ADE20K)上的迁移性能评估。代码库结合了 MoCo v2 和 BYOL 的特性(称为 MoBY)。README 中未直接列出具体的环境配置脚本或版本号,详细安装步骤需参考项目链接中的 get_started.md 文件或相关的下游任务仓库(如 Swin-Transformer-Object-Detection)。由于涉及大规模模型训练(如 300 epoch),建议使用高性能计算环境。
python未说明
PyTorch
Swin Transformer
DeiT
MoCo v2
BYOL
Transformer-SSL hero image

快速开始

基于视觉Transformer的自监督学习

作者:Zhenda Xie*, Yutong Lin*, Zhuliang Yao, Zheng Zhang, Qi Dai, Yue CaoHan Hu

本仓库是论文《基于Swin Transformer的自监督学习》(arXiv:2105.04553)的官方实现。

该代码库的一个重要特性是将Swin Transformer作为骨干网络之一,从而能够在目标检测和语义分割等下游任务上评估所学表征的迁移性能。 由于此前的工作大多使用ViT/DeiT,而这些模型在下游任务上的表现尚未得到充分优化,因此通常不会包含此类评估。

目前,本仓库包含了以下任务的相关代码和模型:

自监督学习与线性评估:已包含在本仓库中。请参阅 get_started.md 以快速入门。

目标检测/实例分割的迁移性能:请参阅 Swin Transformer用于目标检测

语义分割的迁移性能:请参阅 Swin Transformer用于语义分割

亮点

  • 包含下游评估:首次针对基于Transformer的自监督学习,在下游任务上评估其迁移性能。
  • 精简的技巧:相比MoCo v3和DINO等先前工作,使用的技巧显著减少。
  • ImageNet-1K线性评估中的高精度:使用DeiT-S/16并在300个epoch上预训练时,准确率为72.8%,优于MoCo v3的72.5%和DINO的72.5%。

更新

2021年5月13日

  1. 提供了在ImageNet-1K数据集上使用DeiT-Small进行自监督学习的模型(MoBY-DeiT-Small-300Ep-PretrainedMoBY-DeiT-Small-300Ep-Linear)。
  2. 提供了支持DeiT-Small自监督学习的代码和配置文件。

2021年5月11日

初始提交:

  1. 提供了在ImageNet-1K数据集上进行自监督预训练的模型(MoBY-Swin-T-300Ep-PretrainedMoBY-Swin-T-300Ep-Linear)。
  2. 提供了支持自监督预训练、ImageNet-1K线性评估、COCO目标检测以及ADE20K语义分割的相关代码和模型。

简介

MoBY:结合MoCo v2和BYOL的自监督学习方法

MoBY(名称“MoBY”代表“Mo”Co v2与“BY”OL的结合)最初在arXiv论文(arXiv:2105.04553)中被提出,它是两种流行的自监督学习方法——MoCo v2和BYOL——的结合。它继承了MoCo v2中的动量设计、关键队列和对比损失,同时也借鉴了BYOL中的非对称编码器、非对称数据增强以及动量调度策略。

MoBY 在ImageNet-1K数据集上的线性评估中取得了相当高的准确率:分别使用DeiT和Swin-T作为骨干网络时,300个epoch的训练可达到72.8%和75.3%的Top-1准确率。这一性能与近期采用DeiT作为骨干网络的MoCo v3和DINO等方法相当,但所需的技巧却少得多。

teaser_moby

Swin Transformer作为骨干网络

Swin Transformer(名称“Swin”意为“移位窗口”)最初在arXiv论文(arXiv:2103.14030)中被提出,它能够出色地作为计算机视觉领域的通用骨干网络。在COCO目标检测任务中,其表现尤为突出(test-dev上的box AP为58.7,mask AP为51.1);而在ADE20K语义分割任务中,mIoU达到了53.5%,远超之前的模型。

我们选择Swin Transformer作为骨干网络之一,以评估其在目标检测等下游任务中的迁移性能。这使得本代码库区别于其他研究Transformer架构下自监督学习的方法。

ImageNet-1K 线性评估

方法 架构 Epochs 参数量 FLOPs img/s Top-1 准确率 预训练检查点 线性检查点
有监督 Swin-T 300 28M 4.5G 755.2 81.2 这里
MoBY Swin-T 100 28M 4.5G 755.2 70.9 待定
MoBY1 Swin-T 100 28M 4.5G 755.2 72.0 待定
MoBY DeiT-S 300 22M 4.6G 940.4 72.8 GoogleDrive/GitHub/百度网盘 GoogleDrive/GitHub/百度网盘
MoBY Swin-T 300 28M 4.5G 755.2 75.3 GoogleDrive/GitHub/百度网盘 GoogleDrive/GitHub/百度网盘
  • 1 表示采用了 MoCo v3 中的一个技巧,即用 BatchNorm 层替换 MLP 块之前的 LayerNorm 层的 MoBY 结果。

  • 百度网盘的提取码为 moby

迁移到下游任务

COCO 目标检测(2017 val)

主干网络 方法 模型 时序 box mAP mask mAP 参数量 FLOPs
Swin-T Mask R-CNN 有监督 1x 43.7 39.8 48M 267G
Swin-T Mask R-CNN MoBY 1x 43.6 39.6 48M 267G
Swin-T Mask R-CNN 有监督 3x 46.0 41.6 48M 267G
Swin-T Mask R-CNN MoBY 3x 46.0 41.7 48M 267G
Swin-T Cascade Mask R-CNN 有监督 1x 48.1 41.7 86M 745G
Swin-T Cascade Mask R-CNN MoBY 1x 48.1 41.5 86M 745G
Swin-T Cascade Mask R-CNN 有监督 3x 50.4 43.7 86M 745G
Swin-T Cascade Mask R-CNN MoBY 3x 50.2 43.5 86M 745G

ADE20K 语义分割(val)

主干网络 方法 模型 裁剪尺寸 时序 mIoU mIoU (ms+flip) 参数量 FLOPs
Swin-T UPerNet 有监督 512x512 160K 44.51 45.81 60M 945G
Swin-T UPerNet MoBY 512x512 160K 44.06 45.58 60M 945G

引用 MoBY 和 Swin

MoBY

@article{xie2021moby,
  title={Self-Supervised Learning with Swin Transformers}, 
  author={Zhenda Xie and Yutong Lin and Zhuliang Yao and Zheng Zhang and Qi Dai and Yue Cao and Han Hu},
  journal={arXiv preprint arXiv:2105.04553},
  year={2021}
}

Swin Transformer

@article{liu2021Swin,
  title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
  author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining},
  journal={arXiv preprint arXiv:2103.14030},
  year={2021}
}

开始使用

相似工具推荐

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 真正成长为懂上

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

LLMs-from-scratch

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

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

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|昨天
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|3天前
语言模型数据工具其他

gpt4all

GPT4All 是一款让普通电脑也能轻松运行大型语言模型(LLM)的开源工具。它的核心目标是打破算力壁垒,让用户无需依赖昂贵的显卡(GPU)或云端 API,即可在普通的笔记本电脑和台式机上私密、离线地部署和使用大模型。 对于担心数据隐私、希望完全掌控本地数据的企业用户、研究人员以及技术爱好者来说,GPT4All 提供了理想的解决方案。它解决了传统大模型必须联网调用或需要高端硬件才能运行的痛点,让日常设备也能成为强大的 AI 助手。无论是希望构建本地知识库的开发者,还是单纯想体验私有化 AI 聊天的普通用户,都能从中受益。 技术上,GPT4All 基于高效的 `llama.cpp` 后端,支持多种主流模型架构(包括最新的 DeepSeek R1 蒸馏模型),并采用 GGUF 格式优化推理速度。它不仅提供界面友好的桌面客户端,支持 Windows、macOS 和 Linux 等多平台一键安装,还为开发者提供了便捷的 Python 库,可轻松集成到 LangChain 等生态中。通过简单的下载和配置,用户即可立即开始探索本地大模型的无限可能。

77.3k|★☆☆☆☆|昨天
语言模型开发框架