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

大语言模型的进展催生出了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的一个工作。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/898684.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高速数字化仪,4路每路20M同步AD模拟信号采集卡——PCIe8531B/8532B

阿尔泰科技 型号:PCIe8531B/8532B 简介: PCIe8531B/8532B, 是4 通道12/14 位20Ms/s 采样数字化仪,专为输入信号高达 10M 的高频和高动态范国的信号而设计。模拟输入范围可以通过软件编程设罝为1V或者主SV。配备了容量高达256MB…

Java的评论大冒险:用代码征服API数据

在一个充满数字奥秘的虚拟世界里,Java勇士正准备踏上他的新征程:获取商品评论的API数据。这不仅是一次技术的挑战,更是一次与时间赛跑的较量。Java勇士,这位编程界的探险家,打开了他的IDE,准备开始这场冒险…

Qt贪吃蛇-游戏房间窗口(3)

目录 游戏房间 房间渲染 房间背景设置 设置房间标题和尺寸 运动逻辑 定义可能会用到的对象 向上移动逻辑 向下移动 向右移动 判断失败 绘制蛇 初始化贪吃蛇 创建食物 蛇的吃吃吃 绘制食物 连接上文 游戏房间 房间渲染 房间背景设置 背景图比例 绘制背景 设置…

【大模型】AutoDL部署AI绘图大模型Stable Diffusion使用详解

目录 一、前言 二、AI绘图大模型概述 2.1 AI绘图大模型介绍 2.2 AI绘图大模型特点 2.3 AI绘图大模型优势 三、主流的AI绘图大模型介绍 3.1 Midjourney 3.1.1 Midjourney介绍 3.1.2 Midjourney功能特点 3.1.3 Midjourney使用场景 3.2 Stable Diffusion 3.2.1 Stable …

【资料集】项目全周期过程管理资料、各类软件建设方案、源码梳理清单(全原件)

该资源库深度覆盖开发、运维、实施等核心流程,全面囊括项目从立项至结项的各类必需文档,如验收辅助材料、资质审核流程及投标策略方案等,确保项目生命周期的每个阶段都能找到相应的支持与依据。此外,资源库精心整理了研发流程细节…

代码随想录算法训练营第46期Day37,38,39,41

这几天晚上看比赛,就把刷题耽误了。还好是开新章节,前面的题都比较简单。 然后周天做完了又忘记发了 动态规划 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数 Day37前两道题太简单…

DBeaver查看已保存连接的密码

打开Dbeaver窗口菜单-首选项-工作空间,找到工作空间路径 在文件管理器中打开工作空间路径\General.dbeaver,找到credentials-config.json。 在Linux下,使用如下命令对credentials-config.json文件进行解密 openssl aes-128-cbc -d -K babb4…

简历怎么写?怎么准备面试?怎么让面试官感兴趣?

视频地址:如何写好简历打开找工作的第一道门_哔哩哔哩_bilibili项目介绍不过关,项目责任不清楚,项目技术方案有漏洞,项目优势不明显,八股文没有准备好。都是面试大忌讳。, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚…

AI 搜索战火重燃:Perplexity 企业版 VS Glean AI | LeetTalk Daily

“LeetTalk Daily”,每日科技前沿,由LeetTools AI精心筛选,为您带来最新鲜、最具洞察力的科技新闻。 在当今快速发展的人工智能(AI)领域,企业面临着日益增长的数据碎片化挑战。为了提高生产力和决策效率&am…

【element-tiptap】如何把分隔线改造成下拉框的形式?

当前的分隔线只有细横线这一种形式 但是咱们可以看一下wps中的分隔线,花里胡哨的 这些在wps里都需要使用快捷键打出来,真没找到菜单在哪里 那么这篇文章咱们就来看一下如何改造分隔线组件,改造成下拉框的形式,并且把咱们想要的分…

数据结构-八大排序之归并排序

归并排序 一、概念 归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使…

友思特技术 | 视觉阶梯发展:传感器材料对短波红外成像技术的影响

导读 短波红外成像技术的发展受到了传感器材料种类的限制与推动,从硅基到铟镓砷,从量子点到锗基,丰富的材料影响着短波红外相机的分辨率、质量、成本等性能特征。 短波红外成像与传感器 短波红外光通常定义在 900 - 1700nm,相比…

使用 Python 处理 CSV 文件

文章目录 常见问题及解决方案使用 Python 处理 CSV 文件:全面指南CSV 文件的基本概念使用内置 csv 模块使用 pandas 库处理缺失值使用 DictReader 和 DictWriter案例分析最佳实践参考资源性能比较结论 常见问题及解决方案 问题:文件编码错误 解决方案&am…

大厂为什么要禁止使用数据库自增主键

大表为何不能用自增主键? 数据库自增主键,以mysql为例,设置表的ID列为自动递增,便可以在插入数据时,ID字段值自动从1开始自动增长,不需要人为干预。 在小公司,或者自己做项目时,设置…

Ollama 离线安装

1. 查看服务器CPU的型号 ## 查看Linux系统CPU型号命令,我的服务器cpu型号是x86_64 lscpu 2. 根据CPU型号下载Ollama安装包,并保存到/home/Ollama目录 我下载的是Ollama的v0.1.31版本,后面均以此版本为例说明 下载地址 https://github.…

拴柱说Mac之Mac的高效使用技巧第三期

Mac的设计有着非常多的使用技巧,这些技巧能够极大的提高你的使用效率,但是还是有许多人并不知道,那么今天Mac高效使用技巧分享第三期来了 Mac有一个独特的设置,那就触发角,触发角有着非常多的妙用 在 “系统偏好设置…

为什么计算机科学存在图灵机和Lambda演算两种世界观,而量子力学却存在三种世界图景?

计算机科学存在两种基本的世界观:图灵机和Lambda演算,它们指出了到达图灵完备的两条技术路线。但是量子力学中却存在着三种世界图景:薛定谔图景,海森堡图景和狄拉克图景。为什么计算机科学有两种基本世界观,但是量子力…

【Python数据可视化】利用Matplotlib绘制美丽图表!

【Python数据可视化】利用Matplotlib绘制美丽图表! 数据可视化是数据分析过程中的重要步骤,它能直观地展示数据的趋势、分布和相关性,帮助我们做出明智的决策。在 Python 中,Matplotlib 是最常用的可视化库之一,它功能…

Netty-TCP服务端粘包、拆包问题(两种格式)

前言 最近公司搞了个小业务,需要使用TCP协议,我这边负责服务端。客户端是某个设备,客户端传参格式、包头包尾等都是固定的,不可改变,而且还有个蓝牙传感器,透传数据到这个设备,然后通过这个设备…

使用ORDER BY排序

在一个不明确的查询结果中排序返回的行。ORDER BY子句用于排序。如果使用了ORDER BY子句,它必须位于SQL语句的最后。 SELECT语句的执行顺序如下: 1.FROM子句 2.WHERE子句 3.SELECT子句 4.ORDER BY子句 示例一:查询employees表中的所有雇…