所有模型均开源
https://github.com/THUDM/CogVLM2
https: //github.com/THUDM/GLM-4
摘要
从VisualGLM和CogVLM开始,持续探讨了视觉语言模型(VLM)的发展,以增强视觉和语言的融合、提升更高分辨率的架构,以及扩展更广泛的模式和应用。现提出CogVLM2家族,包括CogVLM2、CogVLM2-Video和GLM-4V。作为图片理解模型,CogVLM2沿用了视觉专家架构,并将训练图像分辨率提升到1344×1344像素。作为视频理解模型,CogVLM2-Video结合了带有时间戳的多帧输入,并提出了自动生成时间标定数据的方法。值得一提的是,CogVLM2家族在如MMBench、MM-Vet、TextVQA、MVBench和VCG-Bench等基准测试中取得了最先进的结果。
2 CogVLM2 家族
CogVLM模型家族包含四个关键组件:视觉Transformer(ViT)编码器、适配器、语言模型和可选的视觉专家模块。如下图展示了CogVLM2系列所有模型的整体架构,包括CogVLM2、CogVLM2-Video和GLM-4V。
ViT编码器将离散的原始图像输入转换为具有丰富语义内容的连续图像特征。我们使用当前最先进的EVA-CLIP模型作为图像编码器。适配器在视觉和语言特征之间起桥梁作用。尽管现有方法如BLIP-2和Qwen-VL利用Q-former进行特征对齐,模型如LLaVA和PaLI则使用线性层进行对齐,但它们都存在局限性。Q-former方法可能会对空间信息细节造成损失,而LLaVA的线性映射虽然简单有效,但由于延长的图像序列和单一线性层的有限表现能力,计算效率低下。
为解决这些挑战,我们的适配器包含一个2x2卷积层,随后是一个SwiGLU模块,将这些特征与语言表征对齐,实现几乎无损的转换,既保留了关键的图像信息,又提高了计算效率。
3 预训练
预训练是VLMs训练的基础阶段,旨在增强模型理解复杂多模态数据的基本能力。本节详细介绍了在CogVLM系列模型预训练中采用的方法和数据集。
首先讨论了数据处理和生成的技术,包括迭代精炼和合成数据生成,然后详细说明预训练数据集的渐进构建过程。此外,还探讨了各种预训练设置,通过视觉和语言模态的融合达到在任务上最佳的性能。
3.1 预训练数据
视觉语言预训练旨在赋予模型理解复杂多模态数据的能力。然而,这些数据通常噪声较大,高质量的图像-文本对获取困难。此外,这些数据集侧重于对实际图像的粗粒度自然语言描述,导致分布有限。为了应对这些问题,我们采用了两种主要技术:
迭代精炼
尽管大规模图像-文本数据集提供了大量视觉语言知识,但通常噪声较大。因此,我们使用迭代精炼来提高数据质量。首先,初始模型在公开数据集上进行训练,随后用于重新标注新数据。模型生成的注释经过仔细手动校正,以确保其准确性。校正后的数据用于迭代精炼和增强模型未来的版本。
合成数据生成
大规模图像-文本数据集主要侧重粗粒度的自然语言描述,分布有限。例如,通常缺乏中文文本识别和GUI图像理解的数据。为赋予模型更广泛的视觉基础能力,我们根据具体规则合成部分数据或利用高级工具生成高质量的图像-文本对。
综上,CogVLM系列模型的预训练数据集构建是渐进和递增的。
3.2 预训练设置
以预训练语言模型为起点,视觉语言预训练的主要目标是将图像模态整合到模型中,同时尽量减少其语言能力的潜在下降。为此,探讨了三种主要的视觉-语言训练方法:
-
第一种方法是在预训练阶段逐步启用更多可训练参数。例如,在最初阶段仅训练交叉注意力层。随着训练进展,逐步将视觉Transformer或其他视觉专家的参数设为可训,从而让模型在不妥协现有语言能力的情况下,顺利整合图像模态。
-
第二种方法是在同时训练所有参数时,利用语言预训练数据和视觉-语言预训练数据。这种方法特别在GLM-4V训练中采用,确保模型接触到均衡的数据类型,在有效整合视觉信息的同时保持其语言能力。
-
第三种方法是在训练过程中逐步提高输入图像分辨率。通过从低分辨率图像开始,并逐步提升分辨率,让模型逐步适应处理高质量的视觉信息,从而增强其整体视觉理解能力。
这些预训练设置精心设计,旨在优化视觉和语言模态的整合,确保生成的模型能在涉及文本和图像的广泛任务中有效表现。
4.1 后训练数据
图像后训练数据集
我们的图像后训练数据集由一系列开源的视觉问答(VQA)数据集和注释对齐数据组成。如下图所示,实验证明,加入更多且更广泛的VQA数据可以持续且有效地增强模型的性能。
此外,我们细致标注了约30万对齐语料。根据图像和指令的特征,这些语料分为不同类别。
视频时序问答数据集
训练视频理解模型使用现有时序标注数据的范围有限,且问答格式固定。相比于用于训练LLMs的纯文本数据和用于训练VLMs的图像理解数据,视频问答和时间标定数据的高质量注释成本非常高。仅靠手工注释无法满足大规模训练的需求。
如图所示,我们提出了一条自动视频问答数据生成流程,通过先进的图像理解模型,从视频数据中提取帧级理解,然后使用GPT-4o进行数据过滤和生成。通过这个自动化的数据处理工作流和大规模训练,CogVLM2-Video不仅在公共基准测试中表现卓越,还具有大多数之前视频模型所缺乏的时序问答能力。
4.2 后训练设置
图像监督微调。在CogVLM2和GLM-4V中,采用了两阶段的SFT训练方法。在第一阶段,利用所有VQA训练数据集和30万对齐语料来增强模型的基础能力,解决在图像描述任务上预训练的限制。在第二阶段,选择一部分VQA数据集和5万偏好对齐数据,以优化模型的输出风格,使其更符合人类偏好。
第一阶段,模型进行3000次迭代,学习率为1e-5,全球批次大小为2340。在第二阶段,将全球批次大小减少到1150,进行了750次步骤。通过微调所有参数来执行图像SFT过程。为了增强和确保训练的稳定性,激活了视觉编码器的参数并对其学习率进行了调整。
视频监督微调。从一个预训练的224×224变体的CogVLM2图像理解模型开始,CogVLM2-Video以24帧作为输入,顺序提取视觉信息。我们在ViT模型的末端添加一个2×2核的卷积层,以进一步压缩视频特征。训练过程由两个阶段组成:指令调优和时间标定调优。在这两个阶段中,所有参数都是可训的。在指令调优阶段,利用内部详细描述数据和公开的问答数据来提高模型的整体视频理解能力,学习率为4e-6。主要使用VideoChat2提供的指令数据,不包括简单描述数据。还收集了一个内部视频QA数据集,以提高时间理解。总共CogVLM2-Video在TQA数据集上训练,学习率为1e-6。完整的训练过程大约需要8小时,使用8个NVIDIA A100节点的集群。对于不同的应用场景,发布了两个模型:“cogvlm2-video-llama3-base”和“cogvlm2-video-llama3-chat”。“cogvlm2-video-llama3-base”模型在第一阶段的数据集中训练,在现有的视频理解基准测试中表现杰出;而“cogvlm2-video-llama3-chat”模型在TQA数据集上进一步微调,具有时间标定能力。
5 评估
评估了CogVLM2家族,包括CogVLM2、CogVLM2-Video、GLM-4V-9B,加上在Zhipu MaaS平台上可用的强大内部视觉语言模型,能够理解图像和视频。综合评估了CogVLM2家族在广泛的图像和视频理解任务上的能力,展示了其在多种视觉领域的杰出表现。
5.1 图像任务评估
在多个图像任务上评估了模型,并与广泛使用的大型视觉语言模型,包括私有和开源变体,进行了对比。所选任务包括:(1) OCR 识别:TextVQA、DocVQA、OCRbench、VCR;(2) 图表理解:ChartQA、AI2D;(3) 专题问答:MMMU;(4) 一般目的问答:MMBench。在这些任务上,CogVLM2和GLM-4V-9B在大多数任务上达到最新的表现状态,甚至超越了许多大规模模型,如Mini-Gemini 34B、LLaVA-NeXT-110B以及私有模型如QwenVL-Plus、Claude3-Opus、Gemini 1.5 Pro、GPT-4v-20231106。
5.2 视频任务评估
CogVLM2-Video在多个视频问答任务上取得了最新的表现。如下图所示,CogVLM2-Video在MVBench、VideoChatGPT-Bench和LVBench中表现优异。更多关于MVBench的详细内容见附录C。
6 结论
CogVLM系列代表了在视觉和语言模态整合方面的重要进展,解决了传统LLMs仅限于文本输入的局限性。通过引入能够理解和生成图像和视频内容的模型,CogVLM系列扩展了LLMs在文档分析、GUI理解和时间视频标定等多种领域的潜在应用。架构创新如视觉专家和高分辨率跨模块,实现了视觉和语言特征的无缝融合,提高了模型的性能,同时不影响其语言能力。此外,高效利用高分辨率输入和复杂的数据生成技术,确保了模型能够处理复杂的视觉语言任务。未来的研究可以探索更广泛的模态和改进对齐技术,以进一步增强VLMs的能力。总体而言,CogVLM系列为开源VLMs设立了新标杆,提供了强大的工具用于学术研究和实际应用。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。