CLIP论文阅读

作者:LioneWang
链接:https://zhuanlan.zhihu.com/p/1996842714956841421
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

标题

  • Learning transferable visual models from natural language supervision
  • Clip定义是constrastive language-image pre-training
  • 无监督的训练范式
    通过正类和负类样本的比较,看到正类就拉近,看到负类就拉远

目的

从自然语言的监督信号学习迁移性能好的模型 目的是学一个泛化性能好的特征,从而在各种数据集和任务,不需要训练,直接推理就可以获得好的效果
框架

  • 对比学习预训练
  • 创建label分类器,用prompt engineering的方式将文本变成句子
  • 使用zero-shot进行推理
    摘要
  • 之前的数据集有固定的类,但是如果推理任务需要一个其他的类,这个类难道要新训练一个模型吗? 该方法可以通过zero-shot,可以通过对语义信息(而不依赖预训练的图片信息)的摘取,从而识别新出现的image,在任何新的类上进行下游任务的推理 采用的是对比学习的方法,采样了400million的pair

引入

  • 自回归和MLM的训练方式都是自监督的预训练,目标函数和下游任务无关,只是通过预训练得到一个泛化性能好的特征
  • 模型架构也和下游任务无关
  • 之前的工作,有的数据集不够大,有的模型不够好
    这篇文章的数据集使用400million的图像文本对,模型使用8个models进行对比,在30个CV的数据集上进行测试
    线性探测
  • 区分微调:线性探测完全冻结预训练参数,只是增加分类的线性头部
    使用线性探测(linear probe)的方式,发现对ImageNet的固定的1000个label,效果依然比SOTA的resnet等模型效果要好

方法

自然语言监督

优势

  • 只需要收集<图片,文本>对这种无监督的数据,无需标注
  • 监督信号是文本, 不需要学习imagenet的1-N这种gold label,输出自由度大
  • 学到的特征不是单单视觉特征,而是多模态特征,很容易做zero-shot学习
    创建大规模数据集
    现有工作
  • instagram数据集的图片,hashtag对,很多都是无效语义信息,并且数量不够,只有15million
    构建数据集
  • 自己构造400million的数据集,叫WebImageText数据集
    预训练的任务方式
    预测型任务
  • 如果给定一张图片,可以解释的语言就太多了
    对比学习
  • 只需要判断图片和文本是否配对


随着约束不断放宽,从预测到对比学习,性能提升4倍

伪代码

  • 损失函数的label是一个单位矩阵
  • loss每一行算一次,每一列算一次

细节

  • 图像和文本的encoder没有使用预训练的,而是从头训练
  • 展示层没有使用非线性层,而是线性层
  • 数据增强只使用了裁剪
  • 没有设置超参数temperature作用于softmax,而是把它作为一个可学习参数
    训练
  • 视觉模型选择resnet变体和ViT
  • 优化器Adam
  • 使用权重衰退抑制过拟合,提高泛化能力
  • 32个epochs
  • 3w个minibatch
  • 混合精度训练
    实验

Zero-shot

prompt-engineering

  • 目的是模拟预训练的文本格式,将lavel转换成句子
  • 实验结果


Prompt Engineering and Ensembling
现有问题
Polysemy(多意性)

  • 只用一个单词label来匹配图片,会有语义多意性
    Distribution Gap(分布偏差)
  • 预训练采用的文本通常是句子,因此微调为了模拟这种方式
    解决办法
    Prompt Engineering
  • 使用不同的提示词和句子
    研究发现对于OCR任务,如果对于想要识别的物体用双引号扩起来,往往效果更好
    Prompt Ensembling

  • 使用多次推理
  • 将结果综合起来考虑
    Few-shot
    LinearProbe-Clip
  • 冻住image的encoder,添加有标签的线性分类头

局限

  • 不擅长处理抽象任务:异常,数数,安全
  • 对某些特定数据集效果不好,例如MNIst,由于原始数据中不存在人工合成的数字照片,导致出现了distribution shift的情况
  • 不适合图生文的生成任务
  • 数据量太大,解决办法是可以用数据增强,self-supervision或者self-training的方式
  • 爬虫数据带有一些性别,肤色的偏见,公平性问题有待处理

优点

  • 打破固定标签范式,不需要做固定label类,而是用无监督的方式 > 收集数据更方便,训练更方便,推理更方便
  • 可以做zero-shot推理,泛化性能好
  • 应用范围广,多模态支持

Read more

SpringBoot + Low-Code + JSON 表单引擎:5 分钟配置一套审批流,告别重复 CRUD

前言 在企业级应用开发中,审批流是一个高频需求。无论是请假申请、费用报销,还是采购审批,都需要一套完整的表单和流程系统。传统开发模式下,每个审批流都需要单独开发表单页面、验证逻辑、数据存储和流程控制,不仅耗时耗力,还容易出现重复造轮子的情况。今天,我将和大家分享一个基于SpringBoot的低代码表单引擎解决方案,通过JSON配置,实现5分钟配置一套审批流,彻底告别重复的CRUD开发。 原文链接 为什么需要低代码表单引擎? 1. 开发效率问题 传统审批流开发需要经历以下步骤: * 设计表单UI界面 * 实现前端交互逻辑 * 开发后端API接口 * 编写数据验证逻辑 * 集成工作流引擎 * 实现审批节点配置 * 部署和测试 整个过程可能需要几天甚至几周时间,而且每个新流程都要重复这些步骤。 2. 维护成本高昂 随着业务发展,表单字段经常需要调整,流程节点需要变更,每次修改都需要开发人员介入,增加了维护成本和响应时间。 3. 业务人员参与度低 业务人员无法直接参与表单和流程的设计,只能被动接受开发结果,导致最终产品与实际需求存在偏差。 核心技术方案

智元机器人三大产线

智元机器人三大产线

执行摘要 2025 年 12 月 8 日,智元机器人迎来了具有里程碑意义的时刻 —— 第 5000 台通用具身机器人在上海临港工厂正式量产下线。这一成就标志着中国具身智能产业从技术验证阶段全面迈入规模商用时代。智元机器人通过三年的快速发展,已建立起远征、灵犀、精灵三大产品矩阵,累计出货 5000 台,其中远征 A1/A2 下线 1742 台,灵犀 X1/X2 下线 1846 台,精灵 G1/G2 下线 1412 台(3)。 在技术层面,智元机器人实现了多项重大突破。其自主研发的 PowerFlow 关节电机峰值扭矩超过 350N・m,重量仅 1.6kg,采用准直驱技术方案,相较传统谐波减速器方案成本降低

小龙虾配置飞书机器人(适合本地部署)

小龙虾配置飞书机器人(适合本地部署)

🚀 OpenClaw 手把手教学:配置飞书机器人 📖 目录 1. 前置准备 2. 创建飞书应用 3. 配置机器人能力 4. 获取必要凭证 5. 配置 OpenClaw 6. 测试机器人 前置准备 在开始之前,请确保你具备以下条件: ✅ 必需条件 * 飞书管理员权限 * 需要创建企业自建应用的权限 * 或联系管理员协助创建 OpenClaw 已安装 # 检查是否已安装 openclaw --version 📋 准备清单 * OpenClaw 已安装并运行 * 有飞书企业管理员权限 * 基本的命令行操作能力 创建飞书应用 步骤 1:进入飞书开放平台 1. 打开浏览器,访问 飞书开放平台 2. 使用��书账号登录 点击右上角 “开发者后台” 步骤 2:创建企业自建应用

DIY无人机--升压降压电路

DIY无人机--升压降压电路

这是无人机的电源管理核心,把电池电压一步步变成系统需要的稳定电压,我分模块给你讲清楚 1. 整体功能 * 输入:锂电池(DC4.2V,满电电压,实际放电会到 3.7V 左右) * 输出: * 5V:给电机、无线模块等供电 * 3.3V:给 STM32、陀螺仪等精密芯片供电 * 流程:电池 → 防反接 → 开关 → 升压到 5V → 降压到 3.3V 逐模块拆解 🛡️ ① 防反接 + 电源开关部分 * JP2:电池接口,VBAT接电池正极,GND接负极 * D5(二极管 S4):防反接保护 * 原理:电池接反时,二极管截止,电流无法流通,保护后面电路不被烧毁 * 正常接法:电池正极