外贸网站排名建材团购网站建设方案

当前位置: 首页 > news >正文

外贸网站排名,建材团购网站建设方案,百度推广怎么联系,西安网站建设huanxi1 MLLM 1.1 什么是 MLLM 多模态大语言模型#xff08;MultimodalLargeLanguageModel#xff09;是指能够处理和融合多种不同类型数据#xff08;如文本、图像、音频、视频等#xff09;的大型人工智能模型。这些模型通常基于深度学习技术#xff0c;能够理解和生成多种模…1 MLLM 1.1 什么是 MLLM 多模态大语言模型MultimodalLargeLanguageModel是指能够处理和融合多种不同类型数据如文本、图像、音频、视频等的大型人工智能模型。这些模型通常基于深度学习技术能够理解和生成多种模态的数据从而在各种复杂的应用场景中表现出强大的能力。 常见 MLLM国内 Qwen-VL、InterVL国外GPT-4o、LLaVa…… 多模态研究的重点不同模态特征空间的对齐。 对齐是多模态学习中的一个关键步骤它涉及到如何在不同的数据模态之间发现和建立对应关系。具体来说不同模态的数据可能包含相互补充的信息对齐就是将这些信息关联起来使得可以从一个模态转移到另一个模态。这一过程中特征空间的对齐是核心环节。 对齐是多模态融合的前提和基础。只有在对齐的基础上才能有效地将不同模态的数据融合在一起进行统一的分析和决策 实际应用案例 图像描述生成通过对齐图像和文本的特征空间可以生成与图像内容相符的文本描述。视频字幕生成将视频中的声音和画面进行时间对齐和语义对齐可以生成与视频内容同步的字幕。跨模态检索通过对齐不同模态的特征空间可以实现跨模态的检索功能如根据文本描述检索相关图像或视频。 常见的多模态架构 1.2 Q-Former 参考 BLIP-2。BLIP-2 预训练主要分成2步基于ViT进行视觉和语言的表征学习基于LLM模型学习从图像生成文本。 1.2.1 视觉和语言表征学习 为了视觉和语言表征学习设计了Q-Former在视觉和语言模型之间架了一道桥将时间特征和语言特征连接接。 为了进行表征学习设计了3个任务 1.图文匹配ITMImage-Text Matching 这是一个分类任务判断图像和文本描述是一对是为1否则为0。 分类需要正负样本采样策略为在一个batch内寻找负样本对于一个batch的每一个文本根据计算的相似性权重从当前batch选取一个除自身外作为负样本相似性越高选取的概率越大 2.图文对比学习(ITCImage-text Contrastive) 该部分和clip相同图像和文本分别经过bert进行encoder得到对应的特征然后分别经过一个线性层最后进行一致性loss计算 3.根据图像生成文本(ITGImage-text Generation) transfomer在decoder时需要对token进行mask。text tokens解码是输入【DEC】作为解码标记然后逐token进行解码还未解码的token先被mask住此时的token可以看到query的信息图文对比学习中的query embedding和图像交互得到的key和value值Q-Former左半部分和之前解码过的text token但query看不到text tokens的信息。 即解码时文本可以看到图像信息和解码过的文本信息但是图像看不到文本解码时看着文本和图像一起进行解码这样模型预测的文本可以从图像中学习到信息。 1.3 LLaVA 参考 Visual Instruction Tuning。 按照数据的不同LLaVA会分开处理 文本因为是大语言模型文本按正常方法给大模型处理即可图片使用CLIP-ViT转化为向量再通过一个线性层Projection转换到大模型的理解空间然后输入到大模型
模型的组成 视觉编码器Vision EncoderLLaVa 架构的视觉部分是预训练的 CLIP 视觉编码器具体来说是 ViT-L/14 变体。该组件通过 Transformer 层处理输入图像 (Xv) 以提取特征 (Zv)使模型能够有效地理解视觉信息大语言模型 (Vicuna)LLaVa 的语言能力依赖于 Vicuna它是大型语言模型 (LLM) 的一种。Vicuna 根据输入语言指令 (Xq) 理解并生成语言响应 (Xa)补充视觉编码器的功能线性投影Projection此组件充当视觉特征 (Zv) 和语言模型的嵌入空间之间的桥梁。它将视觉特征转换为视觉标记 (Hv)并将其与语言模型的词嵌入空间对齐以促进多模态对话 1.3.1 LLaVA-1.5-HD 参考论文Improved Baselines with Visual Instruction Tuning LLaVA-1.5 在 LLaVA 的基础上改进 使用 CLIP-ViT-L-336px 视觉编码器替换原先的 CLIP-ViT-L/14将原先的一层线性层替换为 MLP 层两层线性层 此外为了支持更高的图像分辨率可以提升模型的性能且不影响 LLaVA-1.5 的推理效率在 LLaVA-1.5 的基础上提出了 LLaVA-1.5-HD它采用了创新的AnyRes策略可以接受各种高分辨率的图像作为输入。具体步骤如下 首先高分辨率图像被智能分割成多个小块(Patch)以便单独处理每个块。例如CLIP-ViT-L/14型号的视觉编码器能够处理的最大分辨率为224x224像素。同时将高分辨率图像调整至视觉编码器能够处理的尺寸并利用编码器对其进行编码。 将上面两步的结果拼接在一起作为视觉特征输入到LLM。 1.3.2 LLaVA-NeXT 参考 LLaVA-NeXT LLaVA-NeXT 是 LLaVA-1.5-HD的升级版采用了动态的分辨率策略预设了多种长宽比 与LLaVA-1.5相比LLaVA-NeXT有以下几点改进 将输入图像分辨率增加到4倍以上的像素。这使它能够掌握更多的视觉细节。它支持三种宽高比高达672x672, 336x1344, 1344x336分辨率。 更好的视觉推理和OCR能力改进的视觉指令调优数据混合。 为更多场景提供更好的可视化对话涵盖不同的应用程序。更好的世界知识和逻辑推理能力。 使用SGLang进行高效部署和推理。
Q-Former与LLaVA对比 收敛速度Q-Former的参数量较大例如BLIP-2中的100M参数导致其 在训练过程中收敛速度较慢。相比之下MLP作为connector的模型如 LLaVA-1.5在相同设置下能够更快地收敛并且取得更好的性能。 性能收益在数据量和计算资源充足的情况下Q-Former并没有展现出 明显的性能提升。即使通过增加数据量和计算资源Q-Former的性能提升也并 不显著无法超越简单的MLP方案。 baseline settingLLaVA-1.5通过改进训l练数据在较少的数据量和计 算资源下取得了优异的性能成为了一个强有力的baseline。相比之下BLIP2 的后续工作InstructBLIP在模型结构上的改进并未带来显著的性能提升且无法 推广至多轮对话。 模型结构的简洁性LLaVA系列采用了最简洁的模型结构而后续从模型结构上 进行改进的工作并未取得明显的效果。这表明在当前的技术和数据条件下简 洁的模型结构可能更为有效。
2 MLLM: InterVL 参考InterVL、InterVL2 书生·万象多模态大模型InternVL 2.0。关键评测指标比肩国际顶尖商用闭源模型支持图像、视频、文本、语音、三维、医疗多种模态支持百种下游任务性能媲美任务专用模型。 InterVL2的模型结构包括视觉vision模块和语言模型LLM模块。其中视觉模块是一个微调过的ViT模型而语言模型模块则是一个InternLM的模型。
2.1 架构设计 InterVL采用LLaVA式架构设计(ViT-MLP-LLM): 基座大模型InternLM2.5视觉编码器InternViT对齐模块MLP 2.1.1 视觉编码器 InternViT InternViT-6B-448px-V1.2 倒数第四层特征最有用砍掉后三层共45层分辨率从224扩展到448与LLM联合训练时在captioning和OCR数据集上训练获取高分辨率和OCR能力 2.1.2 Pixel shuffle Why448 * 448的图patch大小为14 * 14得到32 * 321024个patch即视觉插入1024个token。这些信息有较大余消耗较多的计算资源对长的多模态上下文拓展不利。WhatPixelshuffle技术来自超分那边是把不同通道的特征拿出来拼到一个通道上从NC×r²HW转化为N,C,H×r,W×r)。r是上采样因子。How这里把采样因子设为0.5就可以把4096 * 0.5 * 0.532, 32的图像特征转化为409632 * 0.532 * 0.5下采样到256个token了。
2.1.3 Dynamic High-Resolution 动态分辨率的设计使得模型可以处理各种分辨率的情景。
2.1.4 Multitask output 利用VisionLLMv2的技术初始化了一些任务特化embedding(图像生成、分割、检测)添加了一些任务路由token训练下游任务特化embedding生成路由token时把任务embedding拼在路由embedding后面送给LLM拿到hidden_state把hidden_state送给路由到的解码器中生成图像/bounding box/masks
2.2 训练 第一阶段训练MLP用高质量预训练数据各种视觉任务第二阶段视觉指令微调ViTMLPLLM联合训练用高质量视觉-文本指令任务 3 InternVL 部署微调实践 3.1 训练环境配置 新建虚拟环境并进入: conda create –name xtuner-env python3.10 -y conda activate xtuner-env xtuner-env为训练环境名可以根据个人喜好设置在本教程中后续提到训练环境均指xtuner-env环境。安装与deepspeed集成的xtuner和相关包 pip install xtuner0.1.23 timm1.0.9 pip install xtuner[deepspeed] pip install torch2.4.1 torchvision0.19.1 torchaudio2.4.1 –index-url https://download.pytorch.org/whl/cu121 pip install transformers4.39.0 peft0.13.2训练环境既为安装成功。 配置推理所需环境 conda create -n lmdeploy python3.10 -y conda activate lmdeploy pip install lmdeploy0.6.1 gradio4.44.1 timm1.0.9 lmdeploy为推理使用环境名。3.2 LMDeploy部署 3.2.1 LMDeploy基本用法介绍 我们主要通过pipeline.chat 接口来构造多轮对话管线核心代码为

1.导入相关依赖包

from lmdeploy import pipeline, TurbomindEngineConfig, GenerationConfig from lmdeploy.vl import load_image## 2.使用你的模型初始化推理管线 model_path your_model_path pipe pipeline(model_path,backend_configTurbomindEngineConfig(session_len8192))## 3.读取图片此处使用PIL读取也行 image load_image(your_image_path)## 4.配置推理参数 gen_config GenerationConfig(top_p0.8, temperature0.8)

5.利用 pipeline.chat 接口 进行对话需传入生成参数

sess pipe.chat((describe this image, image), gen_configgen_config) print(sess.response.text)

6.之后的对话轮次需要传入之前的session以告知模型历史上下文

sess pipe.chat(What is the woman doing?, sessionsess, gen_configgen_config) print(sess.response.text)3.2.2 网页应用部署体验 我们可以使用UI界面先体验与InternVL对话 拉取本教程的github仓库https://github.com/Control-derek/InternVL2-Tutorial.git git clone https://github.com/Control-derek/InternVL2-Tutorial.git cd InternVL2-Tutorialdemo.py文件中MODEL_PATH处传入InternVL2-2B的路径如果使用的是InternStudio的开发机则无需修改否则改为模型路径。 上述命令请在vscode下运行因为vscode自带端口转发可以把部署在服务器上的网页服务转发到本地。 启动后CTRL鼠标左键点进这个链接或者复制链接到浏览器。 会看到如下界面 点击Start Chat即可开始聊天下方食物快捷栏可以快速输入图片输入示例可以快速输入文字。输入完毕后按enter键即可发送。 3.3 XTuner微调实践 3.3.1 配置文件 cd /root/xtuner conda activate xtuner-env # 或者是你自命名的训练环境原始internvl的微调配置文件在路径./xtuner/configs/internvl/v2下假设上面克隆的仓库在/root/InternVL2-Tutorial,复制配置文件到目标目录下 cp /root/InternVL2-Tutorial/xtuner_config/internvl_v2_internlm2_2b_lora_finetune_food.py /root/xtuner/xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_lora_finetune_food.py3.3.2 数据集下载 huggingface下载此数据集FoodieQA。该数据集为了防止网络爬虫污染测评效果需要向提交申请后下载使用。 由于原始数据集格式不符合微调需要格式需要处理方可使用在InternVL2-Tutorial下运行 python process_food.py即可把数据处理为XTuner所需格式。注意查看input_path和output_path变量与自己下载路径的区别。 3.3.3 开始微调 运行命令开始微调 xtuner train /root/xtuner/xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_lora_finetune_food.py –deepspeed deepspeed_zero2 –work-dir ./work_dirs/看到有日志输出即为启动成功 微调后把模型checkpoint的格式转化为便于测试的格式 python xtuner/configs/internvl/v1_5/convert_to_official.py xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_lora_finetune_food.py ./work_dirs/internvl_v2_internlm2_2b_lora_finetune_food/iter_640.pth ./work_dirs/internvl_v2_internlm2_2b_lora_finetune_food/lr35_ep10/如果修改了超参数iter_xxx.pth需要修改为对应的想要转的checkpoint。 ./work_dirs/internvl_v2_internlm2_2b_lora_finetune_food/lr35_ep10/为转换后的模型checkpoint保存的路径。 3.3.4 使用微调后的模型 修改MODEL_PATH为刚刚转换后保存的模型路径 cd /root/InternVL2-Tutorial conda activate lmdeploy python demo.py微调前模型对锅包肉的识别:
微调后模型对锅包肉的识别