值得细读的8个视觉大模型生成式预训练方法

Masked Multimodal Modeling (MMM) 模型解读 Masked multimodal modeling (MMM)是一种在多模态模型中使用的一种掩码(Mask)学习多模态表示的预训练目标。MMM的主要思想是在图像和文本上进行联合掩码,并预测被掩码的目标。 阅读详情

大语言模型的进展催生出了ChatGPT这样的应用,让大家对“第四次工业革命”和“AGI”的来临有了一些期待,也作为部分原因共同造就了美股2023年的繁荣。LLM和视觉的结合也越来越多:比如把LLM作为一种通用的接口,把视觉特征序列作为文本序列的PrefixToken,一起作为LLM的输入,得到图片或者视频的caption;也有把LLM和图片生成模型、视频生成模型结合的工作,以更好控制生成的内容。当然2023年比较热门的一个领域便是多模态大模型,比如BLIP系列、LLaVA系列、LLaMA-Adapter系列和MiniGPT系列的工作。LLM的预训练范式也对视觉基础模型的预训练范式产生了一定的影响,比如MAE、BEIT、iBOT、MaskFEAT等工作和BERT的Masked Language Modeling范式就很类似,不过按照GPT系列的自回归方式预训练视觉大模型的工作感觉不是特别多。下面对最近视觉基础模型的生成式预训练的工作作一些简单的介绍。

LVM

《Sequential Modeling Enables Scalable Learning for Large Vision Models》是UC Berkely和Johns Hopkins University在2023提出的一个影响比较大的工作,视觉三大中文会议也在头版头条做了报道,知乎的讨论也比较热烈。

  • Sequential Modeling Enables Scalable Learning for Large Vision Models(https://arxiv.org/abs/2312.00785)
  • https://github.com/ytongbai/LVM
  • https://yutongbai.com/lvm.html

按照自回归的生成式训练模型的工作之前也有,比如Image Transformer和Generative Pretraining from Pixels等,不过无论是训练的数据量还是模型的参数量都比较小。LVM把训练数据统一表述成visual sentences的形式。对训练数据、模型参数量都做了Scaling,并验证了Scaling的有效性和模型的In-context推理能力。

本文的一大贡献便是数据的收集和整理,和训练LLM的文本数据一样规模的视觉数据在之前缺乏的,因此从开源的各种数据源出发,得到了 1.64billion 图片的数据集 UVDv1(Unified Vision Dataset v1)。文中对数据的来源以及将不同数据统一为visual sentences描述形式的方法做了详细的介绍Fig 1,可以refer原文更多的细节。

图片Fig 1 Visual sentences 能够将不同的视觉数据格式化为统一的图像序列结构

图片Fig 2

模型的结构如图Fig 2所示,主要包含三部分:Tokenizer、Autoregressive Vision Model和DeTokenizer。

其中Tokenizer和DeTokenizer取自于VQ-GAN,codebook大小为8192,输入图片分辨率为,下采样倍数为16,因此一张输入图片对应的Token数目为,这一个模块通过LAION 5B数据的1.5B的子集来训练。

这样对于一个visual sentence,会得到一个Token的序列(和目前的很多多模态大模型不一样,这儿没有特殊的token用以指示视觉任务的类型),作为Autoregressive Vision Model的输入,通过causal attention机制预测下一个Token。文中的自回归视觉模型的结果和LLaMA的结构一样,输入的token 序列的长度为4096个token(16张图片),同时在序列的开始和结束分别会放置[BOS](begin of sentence)和[EOS](end of sentence),代表序列的开始和结束。整个模型在UVD v1(包含420 billion tokens)数据上训练了一个epoch,模型的大小包括四种:300 million、600 million、1 billion和3 billion。

图片Fig 3

从Fig 3可以看出,训练过程中,模型的loss一直在下降,而且模型参数量越大,loss下降越快

更多的实验结果分析可以refer原文。

EMU

《Generative Pretraining in Multimodality》是BAAI、THU和PKU的工作,提出了多模态大模型EMU,EMU的输入是image-text interleaved的序列,可以生成文本,也可以桥接一些扩散模型的Decoder生成图片。

  • https://arxiv.org/abs/2307.05222
  • https://github.com/baaivision/Emu

图片Fig 4

EMU的结构如图Fig 4所示,包含四个部分,Visual Encoder(文中用的EVA-02-CLIP)、Causal Transformer、Multimodal Modeling(LLaMA)和Visual Decoder(Stable Diffusion)。

对于输入的 image-text-video interleaved的序列,EVA-CLIP会提取图片的特征,同时通过causal Transformer得到个visual embeddings ,即。对于包含个frame的视频,则会得到个视觉embedding。在每一张图片或者每一帧的特征序列的开始和结束分别有特殊的token,即[IMG]和[/IMG]。

text通过文本的tokenizer得到文本特征序列,和视觉信息对应特征序列连接,并在序列的开始和结束处分别添加表述开始和结束的特殊token,即[s]和[/s]。最后得到的多模态序列作为LLaMA的输入,得到文本输出,而LLaMA输出的视觉特征序列作为扩散模型的条件输入,得到生成的图像。

Emu用Image-text pair的数据、Video-text pair的数据、Interleaved Image and Text的数据以及Interleaved Video and Text的数据进行预训练。对于预测的文本token来说,损失函数为预测下一个token的cross entropy loss;对于视觉token来说,则是的回归损失。

对Emu预训练之后,会对图片生成的Stable Diffusion的Decoder进行微调。微调的时候,只有U-Net的参数会更新,其他的参数固定不变。训练数据集为LAION-COCO和LAION-Aesthetics。每一个训练样本的文本特征序列的结尾处都会添加一个[IMG] token,最后通过自回归的方式得到个视觉特征,这些特征序列作为Decoder的输入得到生成的图片。

文中还对Emu进行多模态指令微调以对其human instructions。数据集包括来自于ShareGPT和Alpaca的文本指令、来自于LLaVA的图像-文本指令以及来自于VideoChat和Video-ChatGPT的video指令。微调的时候,Emu的参数都会固定不变,只有LoRA模块的参数更新。微调的指令跟随数据集格式如下:

User和[ASSISTANT]分别是单词“word”和“assistant”对应的embedding,不同的任务下也有所不同。

图片Fig 5

Fig 5是Emu的In-context Learning推理的一个例子,输入图片-描述,以及query文本,会得到对应的输出图片。

4M

《4M: Massively Multimodal Masked Modeling》是瑞士洛桑联邦理工和Apple发表在NeurIPS 2023的一个工作,提出了一种对视觉模型做生成式预训练的范式4M(Massively Multimodal Masked Modeling),将多模态的输入信息编码为特征序列,作为Transformer encoder-decoder的输入,同时采用Masked Modeling的方式,在大量的数据集上对模型进行了训练预训练,可以实现多模态输入、多模态输出,得到的transformer encoder也可以作为一些视觉任务的backbone网络提取图片特征。

  • 4M: Massively Multimodal Masked Modeling(https://arxiv.org/abs/2312.06647)
  • 4M: Massively Multimodal Masked Modeling(https://4m.epfl.ch/)

图片Fig 6

模型的结构如图Fig 6所示,不同模态的输入按照不同的方式编码为特征序列,同时从特征序列中随机选择一部分作为context,另外一部分作为需要预测的target,模型基于context序列预测target序列。

文中对bounding box的Tokenization方式和Pix2Seq一样,比如对于一个坐标为的框,会按照1000的分辨率对这些坐标做编码,即,这些编码之后的坐标和文本一样,通过WordPiece的text tokenizer得到对应的特征序列,训练的时候通过cross entropy的方式计算重建的loss。

分割的掩码通过ViT-B结构的encoder得到对应的特征序列,也通过ViT-B结构的decoder得到对应的重建结果,然后通过损失计算重建损失。

RGB、normals或者depth图则是用VQ_VAE的的encoder得到特征序列,同时用扩散模型的decoder得到重建结果,损失不是扩散模型里面常用的噪声回归损失,而是重建clean image的损失。

图片Fig 7

预训练之后的模型可以通过自回归的方式得到输出的特征序列,这些特征序列可以通过对应的decoder解码得到输出的图片、文本等,如图Fig7所示。训练之后encoder可以作为目标检测、语义分割等视觉任务的骨架网络。

VL-GPT

《VL-GPT: A Generative Pre-trained Transformer for Vision and Language Understanding and Generation》是西交、腾讯和港大提出的一个工作。

  • VL-GPT: A Generative Pre-trained Transformer for Vision and Language Understanding and Generation(https://arxiv.org/abs/2312.09251)
  • https://github.com/AILab-CVC/VL-GPT

图片Fig 8

模型的结构如图Fig 8所示,包含两个部分,第一个部分是image tokenizer-detokenizer框架的训练,第二个部分是VL-GPT模型的预训练和指令微调。输入模型的文本、图片分别通过Image Tokenizer和Text Tokenizer得到图像和文本特征序列,连接之后得到imate-text interleaved的文本-图像特征序列,作为LLM的输入,通过自回归的方式得到输出的特征序列,输出的特征序列通过Image和Text Detokenizer得到生成的图片和文本。

Image tokenizer-detokenizer包含一个tokenizer 将图片编码为连续的视觉特征序列。detokenizer 则是将视觉特征转换为图片输出。

文中的用了ViT结构,得到输入图片的特征序列,而detokenizer 则是用到了隐空间扩散模型,包含一个transformer decoder用于基于估计扩散模型的条件特征,可以作为扩散模型的decoder的条件得到生成的图片。训练的时候如图Fig 9所示,用预训练的CLIP模型的图像encoder和文本encoder提取图像和文本特征作为监督信息,损失函数为。

图片Fig 9

VL-GPT包含image tokenizer-detokenizer的tokenizer和detokenizer,其组件分别为LLM (文中用到了LLaMA)、图像encoder 、文本encoder 、图像detokenizer 和文本detokenizer 。输入image-text interleaved数据通过图像encoder和文本encoder得到多模态的特征序列,作为的输入,对下一个token进行预测。

预训练损失为,其中对于文本输出的token来说,损失为cross-entropy loss,对于视觉token来说,损失为。VL-GPT也用到了LLaVA、SVIT、InstructPixPix、Magicbrush和COCO Caption的数据进行指令微调。

更多的细节可以refer原文。

VILA

《VILA: On Pre-training for Visual Language Models》是NVIDIA和MIT提出的一个工作,文中对视觉语言模型预训练的有效机制进行了一些总结,并提出了一系列视觉语言的大模型VILA(Visual Language)。

  • https://arxiv.org/abs/2312.07533

图片Fig 10

模型的结构如图Fig 10左图所示,和LLaVA系列差不多,模型的训练包含三个阶段,如图Fig 10所示。

  1. LLM和ViT都是单独训练的,连接LLM和ViT的projector是随机初始化的,因此会首先对projector做训练。
  2. 这一个阶段对LLM和projector进行训练。
  3. 第二个阶段则是对预训练的模型进行视觉指令微调。

通过一系列的实验,文中得到了下面的三个结论:

  1. LLM冻结与更新:在预训练过程中,冻结大型语言模型(LLM)可以实现不错的零样本(zero-shot)性能,但缺乏上下文学习能力(in-context learning capability)。为了获得更好的上下文学习能力,需要对LLM进行更新。实验表明,更新LLM有助于在更深层次上对齐视觉和文本的潜在嵌入,这对于继承LLM的上下文学习能力至关重要。
  2. 交错预训练数据:交错的视觉语言数据(如MMC4数据集)对于预训练是有益的,而仅使用图像-文本对(如COYO数据集)则不是最佳选择。交错数据结构有助于模型在保持文本能力的同时,学习与图像相关的信息。
  3. 文本数据重混合:在指令微调(instruction fine-tuning)阶段,将文本指令数据重新混合到图像-文本数据中,不仅能够修复LLM在文本任务的性能退化,还能提高视觉语言任务的准确性。这种数据混合策略有助于模型在保持文本能力的同时,提升对视觉语言任务的处理能力。

EMU2

《Generative Multimodal Models are In-Context Learners》是Emu的团队提出的另外一个工作,文中提出的多模态大语言模型Emu2对Emu进行了一些结构和训练策略上的改进。

  • Generative Multimodal Models are In-Context Learners(https://arxiv.org/abs/2312.13286)
  • https://github.com/baaivision/Emu
  • https://baaivision.github.io/emu2/

图片Fig 11

模型的结构如图Fig 11所示,包含三个部分:Visual Encoder、Multimodal LLM和Visual Decoder,文中分别用EVA-02-CLIP-E-plus、LLaMA-33B和SDXL对上述的三个模块进行参数初始化。和Emu相比,少了Casual Transformer,输入的图片通过mean pooling以及Visual Encoder提取图像特征之后,通过线性映射连接Visual Encoder和Multimodal LLM。

在预训练阶段,用到的训练数据包括image-text pair形式的数据(LAION-2B、CapsFusion-120M)、video-text pair形式的数据(WebVid-10M)、interleaved image-text形式的数据(Multimodal-C4 MMC4)、interleaved video-text形式的数据(YT-Storyboard-1B)、grounded image-text pair形式的数据(GRIT-20M、CapsFusoion-grounded-100M),同时为了保持模型的文本推理能力,还在只有文本数据的Pile上对模型进行了训练。图片都会通过visual encoder得到大小为的图像特征序列。

  • 模型首先在image-text和video-text形式的数据上做了训练,损失函数只在text token上进行了计算。
  • 接下来,固定住Visual Encoder的参数,对linear projection layer和Multimodal LLM的参数进行训练,包括文本的分类损失(这儿应该就是Cross Entropy)以及图像回归损失(针对图像特征的损失)。训练的时候,所有形式的数据都用来对模型进行了训练。
  • 最后会对Visual Decoder进行训练,文中用SDXL-base对Visual Decoder的参数进行初始化,LLM输出的 大小为的图像特征序列会做为Decoder的条件,引导图片或者视频的生成。用到的训练数据包括LAION-COCO和LAION-Aesthetics,SDXL里面的Visual Encoder和VAE的参数都会固定不变,只有U-Net的参数会进行更新。

在指令微调阶段,用不同类型的数据,得到两个不同的指令微调模型,分别为Emu2-Chat和Emu2-Gen。Emu2-Chat可以基于多模态的输入得到对应的输出,Emu2-Gen则是接受文本、位置和图片的输入,生成符合输入条件的图片。

在训练Emu2-Chat的时候,用到了两种类型的数据,分别为academic-task-oriented 数据和multi-modal chat数据。academic-task-oriented数据包括image caption数据(比如COCO Caption和TextCaps)、visual question-answering数据(比如VQAv2、OKVQA、GQA、TextVQA)以及多模态分类数据(M3IT、RefCOCO、RecCOCO+和RefCOCOg),对应的system message为。multi-modal chat数据则是包括GPT辅助生成的数据(LLaVA和LLaVaR里面的数据)、来自于ShareGPT和Alpaca的语言指令数据和来自于VideoChat的视频指令数据,对应的system message为

图片

在训练Emu2-Gen的时候,用到的数据包括CapsFusion-grounded-100M、Kosmos-2提到的GRIT、InstructPix2Pix里面数据、CapsFusion、LAION-Asthetics、SA-1B和LAION-High-Resolution,文中还从其他付费渠道收集了数据(比如Unsplash、Midjourney-V5和DALL-E-3生成的图片等)。和其他多模态大模型不一样,物体的坐标不是以文本的形式或者ROI特征向量的方式送入LLM,而是直接在黑白图片上对应的坐标位置处绘制相应的框,得到的图片通过Visual Encoder提取特征。整个序列如下:A photo of

a man

image embedding of object localization image[IMG]image embedding of man[/IMG]sitting next to

a dog

image embedding of object localization image[IMG]image embedding of dog[/IMG][IMG]image embedding of the whole image[/IMG]

图片Fig 12

生成的一些示例图片如图Fig 12所示。

DeLVM

《Data-efficient Large Vision Models through Sequential Autoregression》是华为诺亚实验室的一个工作,是在LVM基础上提出的一个工作。

  • Data-efficient Large Vision Models through Sequential Autoregression(https://arxiv.org/abs/2402.04841)
  • https://github.com/ggjy/DeLVM

图片Fig 13

模型结构和LVM一直,如图Fig 13 a 所示,这篇文章主要在两个方面做了改进探索,比如数据增强和蒸馏。数据增强主要是对存在长尾分布的数据中数量较少的这一类型的数据做重复的采样,也提高这部分数据的数量。

AIM

《Scalable Pre-training of Large Autoregressive Image Models》是苹果提出的一个工作,也是通过自回归的方式训练视觉基础模型,也发现了和LVM类似的和数据、模型参数量有关的Scaling效果,不过实现方式和LVM还是存在不小的差异。

  • Scalable Pre-training of Large Autoregressive Image Models(https://arxiv.org/abs/2401.08541)
  • https://github.com/apple/ml-aim

图片Fig 14

模型预训练时候的结构如图Fig 14所示,输入图片划分为没有overlap且分辨率相同的patch ,并通过步长和kernel size大小相同的卷积层得到patch的特征,得到的图像特征序列通过Causal Transformer按照raster order预测下一个特征序列,得到特征向量通过一个MLP层得到对应的pixel。和LVM不一样,没有采用VQ-GAN里面的image tokenizer、detokenizer和codebook。

AIM在DFN数据集上进行了预训练,训练的损失函数为标准的预测下一个元素的自回归损失,即,在具体实现的时候则是损失,即输入的图片patch为,预测的图片patch为,损失和MAE一样,都是pixel级别的损失,即。文中也采用了和LVM类似的方式,用到了VQ-GAN类似的tokenizer,损失采用cross-entropy损失,但是效果不如pixel-wise的损失。

视觉基础模型按照自回归、causal attention的方式进行预训练,即,其中图片

但是下游的任务一般是bidirectional attention,为了弥补这种差异性,文中把图像特征序列的前几个序列看作是prefix,这部分序列在transformer里面按照bidirectional attention提取特征,且不计算loss,prefix的序列长度为,这部分序列的attentiom只大于0,即。如图Fig 15所示。

图片Fig 15

如图Fig 16,AIM观察到了和LVM一样的Scaling现象,即模型参数量越多,训练的时候损失下降越快,效果也更好。在图Fig 17中也可以看到,训练的数据量越大,在验证集上的损失下降就越低。

图片Fig 16

图片Fig 17

整体来说,是非常solid的一个工作,更多的细节可以refer原文。

如何学习大模型 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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
Decision Transformer 前沿追踪——万物皆可归于序列预测 DT(Decision Transformer)将 RL 看做一个序列建模问题(Sequence Modeling Problem),不同于传统 RL 方法的建模方法, DT 使用 Transformer 网络直接输出动作(Action)进行决策,从而避免了在 Offline RL 问题中显式的马尔可夫过程建模问题和数据 OOD(Out-of-distribution)导致的 Q-value 过估计问题。... 阅读详情

相关推荐

多模态机器学习火热idea汇总!

想发论文,却完全没头绪?那我非常推荐你关注这个潜力方向:多模态机器学习!它能够把不同模态的数据,映射到统一的高维向量空间,实现模态间的语义对齐,从而促进模态间的相互理解,提高模型的性能。多媒体内容理解、医疗健康、自动驾驶、情感分析等领域都离不开它。也因此,其在NeurIPS、ICML、CVPR等顶会上都有多篇成果!但其也面临诸多挑战:模态间的不一致性、计算资源的限制、模型的可解释性等。同时这也给我们论文创新提供了可发挥的空间!

2401_88190197的博客 729

探索未来多模态学习:4M 框架引领大规模多模态遮罩建模新时代

4M(Massively Multimodal Masked Modeling)是一个创新的开源框架,旨在推动任意到任意多模态基础模型的训练。它不仅具备扩展性,并且完全开放源代码,涵盖十多种不同的模态和任务。这个项目背后的团队由多位来自顶级研究机构的学者组成,他们共同为AI领域带来了革命性的突破。 ## 项目简介 4M的核心思想是通过分块和掩码策略在多个异构数据模态中进行大规模训练,以构建能够

gitblog_00021的博客 566

Android Geckoview实战:5分钟搞定JS与原生交互(附完整Demo代码)

本文详细介绍了在Android应用中使用GeckoView替代系统WebView,构建稳定高效的JavaScript与原生代码交互桥梁的实战方法。通过WebExtension架构,文章提供了从环境配置、扩展开发到Android端集成的完整步骤,并附有可运行的Demo代码,帮助开发者快速解决混合应用中的兼容性问题。

u5v6w7的博客 935

4M: 大规模多模态掩码建模项目教程

**4M: 大规模多模态掩码建模** 是一个用于训练“任意到任意”基础模型的框架,通过使用标记化和掩码技术,可以扩展到多种不同的模态。该项目由EPFL和Apple联合开发,旨在提供一个可扩展、开源的框架,用于训练能够执行广泛视觉任务、在未见任务和模态上表现良好,并且具有灵活性和可控性的多模态生成模型。 该项目的主要特点包括: - **多模态支持**:支持多种模态的输入和输出。 - **可扩展性*

gitblog_00390的博客 573

ROS 2实战:用MoveIt Task Constructor让机械臂完成抓取任务(附避坑指南)

本文详细介绍了如何在ROS 2环境中使用MoveIt Task Constructor框架,为Franka Panda机械臂构建一个完整的拾取放置任务流水线。通过分解任务阶段、配置规划器并处理实际部署中的常见问题,帮助开发者从基础运动规划升级到可靠的多步骤任务编排,并附有核心避坑指南。

vvv99的博客 507

Hopfield神经网络(HNN)详解

Hopfield神经网络是一种比较特殊的网络,它不像一般的神经网络那样有输入层和输出层,并且通过训练来改变神经网络中的参数,最终实现预测、识别等功能。Hopfield网络只有一群神经元节点,所有节点之间相互连接,形式如下: 虽然有些文章会画出像深度神经网络那样有输入输出的图,并且输出后又返回输入,但本质上就是多个节点之间的全连接,也就是上面的图形。Hopfield神经网络主要有两个应用:一是起到类似储存器的作用,也就是我们把多个序列或图片输入这个网络,最终这个网络会以神经元之间连接权重的形式储存这

weixin_60737527的博客 4万+

值得细读的8个视觉大模型生成式预训练方法_视觉大模型有哪些

大语言模型的进展催生出了ChatGPT这样的应用,让大家对“第四次工业革命”和“AGI”的来临有了一些期待,也作为部分原因共同造就了美股2023年的繁荣。LLM和视觉的结合也越来越多:比如把LLM作为一种通用的接口,把视觉特征序列作为文本序列的PrefixToken,一起作为LLM的输入,得到图片或者视频的caption;也有把LLM和图片生成模型、视频生成模型结合的工作,以更好控制生成的内容。

2401_84208172的博客 1765

优化Cartographer重定位速度:从子图筛选到参数调优的完整思路

本文详细介绍了优化Cartographer重定位速度的完整方法,从子图筛选到参数调优,帮助工程师在已知初始位姿的前提下将重定位耗时降低50%以上。重点分析了性能瓶颈、子图筛选策略、匹配算法选择及环境自适应的参数优化策略,并通过实战案例展示了显著效果提升。

weixin_28704565的博客 464

CVPR 2024技术风向标:从论文高频词看计算机视觉研究新范式

CVPR 2024揭示了计算机视觉研究的新范式,重点关注扩散模型、3D重建、大语言模型和多模态融合等颠覆性技术。MIT的Physics-aware Diffusion和NVIDIA的Instant Diffusion展示了扩散模型的工业级进化,而NeRF技术则通过Gaussian Splatting实现了速度与精度的突破。多模态研究从拼接走向化合,边缘智能也在算力上取得显著进展。这些趋势标志着计算机视觉从传统任务向跨模态理解和物理世界建模的转变。

weixin_30381317的博客 433

Zabbix 7.0 从入门到精通部署手册

zabbix 入门到精通

weixin_43806846的博客 1031

汇川伺服Modbus-RTU通讯实战:从帧结构解析到西门子PLC配置

本文详细解析了汇川伺服与西门子PLC通过Modbus-RTU协议进行通讯的实战步骤,包括帧结构解析、硬件连接、参数设置及PLC程序配置。通过具体案例和常见问题排查指南,帮助工程师快速掌握工业自动化中的通讯技术,提升设备调试效率。

weixin_33670713的博客 453

大模型内部知识检索:SSRL框架实现高效‘自我回忆’

大语言模型并非知识匮乏,而是缺乏对已内化知识的高效检索能力。其知识以高维向量关联模式沉淀于参数中,传统RAG依赖外部搜索,带来延迟、成本与噪声问题。SSRL(Self-Supervised Retrieval Learning)提出一种轻量级推理时优化范式,通过问题重表述、内部知识激活与可信度校验三步,在不修改模型结构、不新增参数的前提下,显著提升模型对训练数据中固有事实的提取准确率与响应速度。该技术尤其适用于金融研报、医疗问答、工业诊断等强事实性、低时效敏感性场景,兼顾本地部署、数据合规与推理自主性,是R

注重长远 天天积累 cqujsjcyj 479

161、车载环视系统的ISP多路同步架构——海思Hi3516DV300的4路鱼眼校正与拼接的帧同步误差控制

文章摘要: 针对海思Hi3516DV300车载环视系统四路鱼眼摄像头拼接画面动态撕裂问题,分析发现根本原因为帧同步误差(部分通道帧起始时间差1.2ms)。关键解决措施包括:1)通过VI通道主从同步模式(MASTER/SLAVE)结合软件补偿控制帧延迟;2)优化VPSS通道帧率锁定与丢帧策略确保拼接时序一致;3)严格校准鱼眼校正LUT参数与产线标定数据匹配;4)建议采用硬件同步信号(如sensor的FSIN引脚)降低软件同步压力。调试阶段需通过示波器直接测量sensor VSYNC信号,量产时需注意动态切换分

zzfmlxs的博客 136

Galactica科学大模型:48小时兴衰背后的符号感知与可验证推理

科学大语言模型是面向科研场景的专用AI系统,其核心在于解决通用模型在符号语义、结构化知识和论证可追溯性上的根本缺陷。通过科学符号感知分词、跨模态对齐训练数据与Symbolic Reward Modeling(SRM)等关键技术,模型得以实现公式可执行性验证、文献可追溯引用与逻辑一致性校验,显著提升科研内容生成的可靠性与专业性。这类技术不仅支撑论文写作、实验设计与文献综述等高频科研工作流,更推动AI从‘文本生成工具’向‘可证伪的认知协作者’演进。Galactica作为典型代表,虽因高置信度幻觉与责任边界问题紧

duiker 685

大模型系列——Ollama简明教程

在这篇文章中,我们将了解如何使用 Ollama、如何在 Ollama 中创建自己的模型 以及如何使用 Ollama 构建聊天机器人。这是深入研究 Ollama 的第一部分,以及我所学到的有关本地 LLM 的知识以及如何将它们用于基于推理的应用程序。在这篇文章中,你将了解——

2401_84052244的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

AI从业者周度实战指南:政策、多模态、量化与对齐落地要点

大语言模型(LLM)已从技术概念进入工程化深水区,其核心挑战不再局限于模型训练,而在于如何在真实业务场景中实现可控、合规、高效且可维护的落地。理解多模态模型的能力边界、选择适配硬件的量化方案、构建语义级数据清洗流程、实施可验证的AI对齐机制,已成为算法工程师、产品经理与技术负责人的共性能力需求。尤其在教育、医疗、金融等强监管领域,模型参数量门槛、内容溯源要求、输出风险校验等约束正倒逼开发范式升级。本文基于一线项目实测数据,拆解政策立法动向、Gemini与GPT-4V的架构差异、Prompt Flow工作流实

circularr9834的博客 460

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

4M-21: An Any-to-Any Vision Model for Tens of Tasks and Modalities论文精度

4M-21: An Any-to-Any Vision Model for Tens of Tasks and Modalities

Leon_____的博客 944

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 这本真绝!《自然语言处理新范式:基于预训练模型的方法》真的不要太强(附PDF)
下一篇: 如何从传统产品经理转行成为顶尖的AI产品经理?
AI_小站
博客等级 码龄3年 6255粉丝 1152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值