书生·浦语 大模型实战营(第三期) 进阶岛 第 4关 InternVL 多模态模型部署微调实践

InternVL 多模态模型部署微调实践 | 书生大模型 多模态大模型是指能处理和融合多种不同类型数据(如文本、图像、音频、视频等)的大模型常见的 MLLMInternVLGPT-4oQwen-VLLLaVA基座模型选用 InternLM2 - Chat - 20B视觉编码器选用 InternVit - 6B对齐模块选用 MLP projector主要通过## 1.导入相关依赖包## 2.使用你的模型初始化推理管线## 3.读取图片(此处使用PIL读取也行)## 4.配置推理参数。 阅读详情

基础任务(完成此任务即完成闯关)

  • follow 教学文档和视频使用QLoRA进行微调模型,复现微调效果,并能成功讲出梗图.
  • 尝试使用LoRA,或调整xtuner的config,如LoRA rank,学习率。看模型Loss会如何变化,并记录调整后效果(选做,使用LoRA或调整config可以二选一)

InternVL 是一种用于多模态任务的深度学习模型,旨在处理和理解多种类型的数据输入,如图像和文本。它结合了视觉和语言模型,能够执行复杂的跨模态任务,比如图文匹配、图像描述生成等。通过整合视觉特征和语言信息,InternVL 可以在多模态领域取得更好的表现

对于InternVL这个模型来说,它vision模块就是一个微调过的ViT,llm模块是一个InternLM的模型。对于视觉模块来说,它的特殊之处在Dynamic High Resolution。 

 Dynamic High Resolution

InternVL独特的预处理模块:动态高分辨率,是为了让ViT模型能够尽可能获取到更细节的图像信息,提高视觉特征的表达能力。对于输入的图片,首先resize成448的倍数,然后按照预定义的尺寸比例从图片上crop对应的区域。细节如图所示。

 Pixel Shuffle

Pixel Shuffle在超分任务中是一个常见的操作,PyTorch中有官方实现,即nn.PixelShuffle(upscale_factor) 该类的作用就是将一个tensor中的元素值进行重排列,假设tensor维度为[B, C, H, W], PixelShuffle操作不仅可以改变tensor的通道数,也会改变特征图的大小。

InternVL 部署微调实践 

我们选定的任务是让InternVL-2B生成文生图提示词,这个任务需要VLM对图片有格式化的描述并输出。

让我们来一起完成一个用VLM模型进行冷笑话生成,让你的模型说出很逗的冷笑话吧。在这里,我们微调InterenVL使用xtuner。部署InternVL使用lmdeploy。 

准备InternVL模型 

 我们使用InternVL2-2B模型。该模型已在share文件夹下挂载好,现在让我们把移动出来。

cd /root
mkdir -p model

# cp 模型

cp -r /root/share/new_models/OpenGVLab/InternVL2-2B /root/model/
 准备环境

 手动配置下xtuner

  • 配置虚拟环境
conda create --name xtuner python=3.10 -y

# 激活虚拟环境(注意:后续的所有操作都需要在这个虚拟环境中进行)
conda activate xtuner

# 安装一些必要的库
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y
# 安装其他依赖
apt install libaio-dev
pip install transformers==4.39.3
pip install streamlit==1.36.0
  • 安装xtuner
# 创建一个目录,用来存放源代码
mkdir -p /root/InternLM/code

cd /root/InternLM/code

git clone -b v0.1.23  https://github.com/InternLM/XTuner

由于我们在 XTuner 微调个人小助手认知那一篇章,在

root/InternLM/code目录下安装过 v0.1.21  XTuner    会出现下面提示XTuner 早已存在

 此时需要新建文件夹  比如 /root/InternLM001/code/XTuner

 进入XTuner目录

cd /root/InternLM001/code/XTuner
pip install -e '.[deepspeed]'
  • 安装LMDeploy
pip install lmdeploy==0.5.3
  • 安装验证
xtuner version

##命令

xtuner help

如图

确认一下你的版本号和我们一致哦~ 

 准备微调数据集

 我们这里使用huggingface上的zhongshsh/CLoT-Oogiri-GO据集,特别鸣谢~。

@misc{zhong2023clot,
  title={Let's Think Outside the Box: Exploring Leap-of-Thought in Large Language Models with Creative Humor Generation},
  author={Zhong, Shanshan and Huang, Zhongzhan and Gao, Shanghua and Wen, Weushao and Lin, Liang and Zitnik, Marinka and Zhou, Pan},
  journal={arXiv preprint arXiv:2312.02439},
  year={2023}
}

数据集我们从官网下载下来并进行去重,只保留中文数据等操作。并制作成XTuner需要的形式。并已在share里,我们一起从share里挪出数据集。 

## 首先让我们安装一下需要的包
pip install datasets matplotlib Pillow timm

## 让我们把数据集挪出来
cp -r /root/share/new_models/datasets/CLoT_cn_2000 /root/InternLM001/datasets/

 让我们打开数据集的一张图看看,我们选择jsonl里的第一条数据对应的图片。首先我们先把这张图片挪动到InternLM001文件夹下面。

cp InternLM001/datasets/CLoT_cn_2000/ex_images/007aPnLRgy1hb39z0im50j30ci0el0wm.jpg InternLM001/
json 图

 使用根路径

cp /root/InternLM001/datasets/CLoT_cn_2000/ex_images/MjxjVcrFf9TF
Lbr2BKR4Py1L5qAic8K4VzEQAsTph0ztWe9vj3d8DGDdAC3tJV0aiaOrSBcsKpBIXIAh6O1CDXcA.jpg /root/InternLM001/

 调出猫打架图

 cp /root/InternLM001/datasets/CLoT_cn_2000/ex_images/007aPnLRgy1h
b39z0im50j30ci0el0wm.jpg /root/InternLM001/

 

 

 InternVL 推理部署攻略

 我们用LMDeploy来推理这张图片~看看它能不能成功解释出梗图呢?

使用pipeline进行推理 

 之后我们使用lmdeploy自带的pipeline工具进行开箱即用的推理流程,首先我们新建一个文件。

touch /root/InternLM001/code/test_lmdeploy.py
cd /root/InternLM001/code/

 然后把以下代码拷贝进test_lmdeploy.py中。

from lmdeploy import pipeline
from lmdeploy.vl import load_image

pipe = pipeline('/root/model/InternVL2-2B')

image = load_image('/root/InternLM001/007aPnLRgy1hb39z0im50j30ci0el0wm.jpg')
response = pipe(('请你根据这张图片,讲一个脑洞大开的梗', image))
print(response.text)

 运行执行推理结果。

python3 test_lmdeploy.py

 推理后

 推理出来有什么文字是纯随机的,并不一定和展示结果完全一致哦~

推理后我们发现直接使用2b模型不能很好的讲出梗,现在我们要对这个2b模型进行微调。 

InternVL 微调攻略 
准备数据集

数据集格式为:



# 为了高效训练,请确保数据格式为:
{
    "id": "000000033471",
    "image": ["coco/train2017/000000033471.jpg"], # 如果是纯文本,则该字段为 None 或者不存在
    "conversations": [
      {
        "from": "human",
        "value": "<image>\nWhat are the colors of the bus in the image?"
      },
      {
        "from": "gpt",
        "value": "The bus in the image is white and red."
      }
    ]
  }

 这里我们也为大家准备好了可以直接进行微调的数据集。数据集就是咱们刚才复制进InternLM001/datasets的数据。(json图)

 配置微调参数

让我们一起修改XTuner下 InternVL的config,文件在: /root/InternLM001/code/XTuner/xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_qlora_finetune.py 

  • 需要修改的部分

 最基础修改一下模型地址和数据地址即可。

  • 总体config文件(复制即可)
# Copyright (c) OpenMMLab. All rights reserved.
from mmengine.hooks import (CheckpointHook, DistSamplerSeedHook, IterTimerHook,
                            LoggerHook, ParamSchedulerHook)
from mmengine.optim import AmpOptimWrapper, CosineAnnealingLR, LinearLR
from peft import LoraConfig
from torch.optim import AdamW
from transformers import AutoTokenizer

from xtuner.dataset import InternVL_V1_5_Dataset
from xtuner.dataset.collate_fns import default_collate_fn
from xtuner.dataset.samplers import LengthGroupedSampler
from xtuner.engine.hooks import DatasetInfoHook
from xtuner.engine.runner import TrainLoop
from xtuner.model import InternVL_V1_5
from xtuner.utils import PROMPT_TEMPLATE

#######################################################################
#                          PART 1  Settings                           #
#######################################################################
# Model
path = '/root/model/InternVL2-2B'

# Data
data_root = '/root/InternLM001/datasets/CLoT_cn_2000/'
data_path = data_root + 'ex_cn.json'
image_folder = data_root
prompt_template = PROMPT_TEMPLATE.internlm2_chat
max_length = 6656

# Scheduler & Optimizer
batch_size = 4  # per_device
accumulative_counts = 4
dataloader_num_workers = 4
max_epochs = 6
optim_type = AdamW
# official 1024 -> 4e-5
lr = 2e-5
betas = (0.9, 0.999)
weight_decay = 0.05
max_norm = 1  # grad clip
warmup_ratio = 0.03

# Save
save_steps = 1000
save_total_limit = 1  # Maximum checkpoints to keep (-1 means unlimited)

#######################################################################
#            PART 2  Model & Tokenizer & Image Processor              #
#######################################################################
model = dict(
    type=InternVL_V1_5,
    model_path=path,
    freeze_llm=True,
    freeze_visual_encoder=True,
    quantization_llm=True,  # or False
    quantization_vit=False,  # or True and uncomment visual_encoder_lora
    # comment the following lines if you don't want to use Lora in llm
    llm_lora=dict(
        type=LoraConfig,
        r=128,
        lora_alpha=256,
        lora_dropout=0.05,
        target_modules=None,
        task_type='CAUSAL_LM'),
    # uncomment the following lines if you don't want to use Lora in visual encoder # noqa
    # visual_encoder_lora=dict(
    #     type=LoraConfig, r=64, lora_alpha=16, lora_dropout=0.05,
    #     target_modules=['attn.qkv', 'attn.proj', 'mlp.fc1', 'mlp.fc2'])
)

#######################################################################
#                      PART 3  Dataset & Dataloader                   #
#######################################################################
llava_dataset = dict(
    type=InternVL_V1_5_Dataset,
    model_path=path,
    data_paths=data_path,
    image_folders=image_folder,
    template=prompt_template,
    max_length=max_length)

train_dataloader = dict(
    batch_size=batch_size,
    num_workers=dataloader_num_workers,
    dataset=llava_dataset,
    sampler=dict(
        type=LengthGroupedSampler,
        length_property='modality_length',
        per_device_batch_size=batch_size * accumulative_counts),
    collate_fn=dict(type=default_collate_fn))

#######################################################################
#                    PART 4  Scheduler & Optimizer                    #
#######################################################################
# optimizer
optim_wrapper = dict(
    type=AmpOptimWrapper,
    optimizer=dict(
        type=optim_type, lr=lr, betas=betas, weight_decay=weight_decay),
    clip_grad=dict(max_norm=max_norm, error_if_nonfinite=False),
    accumulative_counts=accumulative_counts,
    loss_scale='dynamic',
    dtype='float16')

# learning policy
# More information: https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/param_scheduler.md  # noqa: E501
param_scheduler = [
    dict(
        type=LinearLR,
        start_factor=1e-5,
        by_epoch=True,
        begin=0,
        end=warmup_ratio * max_epochs,
        convert_to_iter_based=True),
    dict(
        type=CosineAnnealingLR,
        eta_min=0.0,
        by_epoch=True,
        begin=warmup_ratio * max_epochs,
        end=max_epochs,
        convert_to_iter_based=True)
]

# train, val, test setting
train_cfg = dict(type=TrainLoop, max_epochs=max_epochs)

#######################################################################
#                           PART 5  Runtime                           #
#######################################################################
# Log the dialogue periodically during the training process, optional
tokenizer = dict(
    type=AutoTokenizer.from_pretrained,
    pretrained_model_name_or_path=path,
    trust_remote_code=True)

custom_hooks = [
    dict(type=DatasetInfoHook, tokenizer=tokenizer),
]

# configure default hooks
default_hooks = dict(
    # record the time of every iteration.
    timer=dict(type=IterTimerHook),
    # print log every 10 iterations.
    logger=dict(type=LoggerHook, log_metric_by_epoch=False, interval=10),
    # enable the parameter scheduler.
    param_scheduler=dict(type=ParamSchedulerHook),
    # save checkpoint per `save_steps`.
    checkpoint=dict(
        type=CheckpointHook,
        save_optimizer=False,
        by_epoch=False,
        interval=save_steps,
        max_keep_ckpts=save_total_limit),
    # set sampler seed in distributed evrionment.
    sampler_seed=dict(type=DistSamplerSeedHook),
)

# configure environment
env_cfg = dict(
    # whether to enable cudnn benchmark
    cudnn_benchmark=False,
    # set multi process parameters
    mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
    # set distributed parameters
    dist_cfg=dict(backend='nccl'),
)

# set visualizer
visualizer = None

# set log level
log_level = 'INFO'

# load from which checkpoint
load_from = None

# whether to resume training from the loaded checkpoint
resume = False

# Defaults to use random seed and disable `deterministic`
randomness = dict(seed=None, deterministic=False)

# set log processor
log_processor = dict(by_epoch=False)
开始训练

这里使用之前搞好的configs进行训练。咱们要调整一下batch size,并且使用qlora。要不半卡不够用的 QAQ。

cd XTuner

NPROC_PER_NODE=1 xtuner train /root/InternLM001/code/XTuner/xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_qlora_finetune.py  --work-dir /root/InternLM001/work_dir/internvl_ft_run_8_filter  --deepspeed deepspeed_zero1

3000次  运行时间会很长  可以

python3 xtuner/configs/internvl/v1_5/convert_to_official.py xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_qlora_finetune.py /root/InternLM001/work_dir/internvl_ft_run_8_filter/iter_3000.pth /root/InternLM001/InternVL2-2B/

 最后我们的模型在:/root/InternLM001/InternVL2-2B/,文件格式:

微调后效果对比 

我们把下面的代码替换进test_lmdeploy.py中,然后跑一下效果。 

from lmdeploy import pipeline
from lmdeploy.vl import load_image

pipe = pipeline('/root/InternLM001/InternVL2-2B')

image = load_image('/root/InternLM001/007aPnLRgy1hb39z0im50j30ci0el0wm.jpg')  ## 猫
response = pipe(('请你根据这张图片,讲一个脑洞大开的梗', image))
print(response.text)
cd /root/InternLM001/code

python3 test_lmdeploy.py

 换张图   

from lmdeploy import pipeline
from lmdeploy.vl import load_image

pipe = pipeline('/root/InternLM001/InternVL2-2B')
image = load_image('/root/InternLM001/MjxjVcrFf9TFLbr2BKR4Py1L5qAic8K4VzEQAsTph0ztWe9vj3d8DGDdAC3tJV0aiaOrSBcsKpBIXIAh6O1CDXcA.jpg')
    
# image = load_image('/root/InternLM001/007aPnLRgy1hb39z0im50j30ci0el0wm.jpg')  ## 猫
response = pipe(('请你根据这张图片,讲一个脑洞大开的梗', image))
print(response.text)

快 

 完

 小结 :

一定要注意  文件夹名(InternLM001)与xtuner版本对应

后来想了想,也可以将最初的InternLM改名,新建的叫InternLM,这样就不用每条命令更改名字了。 (不过,好像需要执行重构)

多模态大模型 intern_vl 2.0版本解读 (还是internvl1.5)我们介绍了InternVL2,这是目前最强大的开源多模态大语言模型(MLLM)。InternVL2家族包括从适合边缘设备的1B模型到显著更强大的108B模型。通过更大规模的语言模型,InternVL2-Pro展示了出色的多模态理解能力,在各种基准测试中表现与商业闭源模型相当。 阅读详情

相关推荐

InternVL 官方教程来了!

GitHub - OpenGVLab/InternVL: [CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的可商用开源多模态对话模型。部署、微调、API,应有尽有哦!

OpenGVLab的博客 1610

【LLM多模态】InternVL模型架构和训练过程

视觉编码器:InternViT-6B 动态高分辨率(和很多多模态LLM不一样的地方):我们将图像根据输入图像的纵横比和分辨率划分为1到40块,每块为448×448像素(图像很大则会被切分,每个块被模型独立处理,可以更好地处理图像的细节),从而支持高达4K分辨率的输入(40个小块)。具体的处理方法如下图。 使用pixel shuffle将视觉token减少到原来的四分之一(原始为1024个token)。PixelUnshuffle操作(即Space2Depth操作,即把相邻区块的特征从空间维度往通道维度上堆叠

发现问题,并解决问题,批判性思维 1万+

InternVL 多模态模型部署微调实践

多模态大语言模型 ( Multimodal Large Language Model) 是指能够处理和融合多种不同类型数据(如文本、图像、音频、视频等) 的大型人工智能模型。这些模型通常基于深度学习技术, 能够理解和生成多种模态的数据, 从而在各种复杂的应用场景中表现出强大的能力。常见的MLLM多模态研究的重点是不同模态特征空间的对齐我们主要通过## 1.导入相关依赖包## 2.使用你的模型初始化推理管线## 3.读取图片(此处使用PIL读取也行)## 4.配置推理参数。

qq_73754220的博客 2425

超速解读多模态InternVL-Chat1.5 ,如何做到开源SOTA——非官方首发核心技巧版(待修订)

快速了解最接近GPT-4的多模态大模型 InternVL chat 1.5如何做到SOTA的

啥都会一点的小程的博客 2604

InternVL 部署微调实践

我们主要通过## 1.导入相关依赖包## 2.使用你的模型初始化推理管线## 3.读取图片(此处使用PIL读取也行)## 4.配置推理参数## 5.利用 pipeline.chat 接口 进行对话,需传入生成参数## 6.之后的对话轮次需要传入之前的session,以告知模型历史上下文。

quentinrt的博客 2161

STM32G0——USB虚拟串口

STM32G0用cubeMX配置实现USB虚拟串口

阿昌 2320

InternLM Camp4 L2G400 InternVL 多模态模型部署微调实践

本博客是第四期书生大模型实战营进阶岛的第四个大任务,我们将学习多模态大模型的基本原理,并用给定数据集利用XTuner微调InternVL2-2B,用LMDeploy部署多模态大模型。多模态大语言模型(Multimodal Large Lanquage Model)是指能够处理和融合多种不同类型数据(如文本、图像、音频、视频等)的大型人工智能模型。这些模型通常基于深度学习技术能够理解和生成多种模态的数据,从而在各种复杂的应用场景中表现出强大的能力。多模态大模型研究的一个关键点是不同模态特征空间的对齐。

weixin_51617262的博客 2084

AI视频生成技术研究报告:现状、挑战与展望

AI 视频生成技术概述:介绍 AI 视频生成技术的基本概念,回顾其发展历程,从早期依赖图像拼接的简单生成方式,到如今融合多种先进技术的复杂模型应用,梳理技术演进的关键节点和重要突破。同时,分析该技术在当前阶段的特点,包括生成视频的质量、速度、灵活性等方面,以及与传统视频制作方式的差异,阐述 AI 视频生成技术如何改变视频创作的流程和模式。技术实现路径分析。

daqsdfas的博客 4575

书生大模型-进阶岛第4关:InternVL 部署微调实践

创建一个 50%A100 的开发机,镜像选 Cuda12.2-conda,其余默认。随便给自己的虚拟环境取个名字(这里我的是 Xtuner_InternVL),运行下面的命令创建我们的模型训练环境。

qq_27520611的博客 1832

脑电分析中的频谱特征提取 —— 从理论到实践

本文系统介绍了脑电信号(EEG)频谱特征提取方法及其应用。EEG信号通过频谱分析可分为Delta、Theta、Alpha、Beta和Gamma等具有明确生理意义的频段。文章详细讲解了功率谱密度、频带功率、相对功率、频谱熵等关键特征的计算方法,并提供了Python实现示例,包括模拟数据和真实CHB-MIT癫痫数据集的处理流程。这些频谱特征在脑机接口、情绪识别、疲劳监测和癫痫检测等领域具有重要应用价值。文章强调频谱特征结合时域和非线性特征可提升分析效果,为EEG研究提供了实用指导。

qq_32516809的博客 1441

计算机视觉与深度学习实战:以Python为工具,基于帧间差法进行视频目标检测

计算机视觉是一门研究如何使机器从数字图像或视频中提取、分析和理解有用信息的学科。它涉及图像处理、计算机图形学、人工智能等多个领域的知识。通过计算机视觉技术,我们可以实现图像的识别、分类、目标检测等功能。本文介绍了计算机视觉与深度学习的基本概念和原理,并以Python为工具,基于帧间差分法实现了视频目标检测。帧间差分法具有算法实现简单、程序设计复杂度低、对光线等场景变化不太敏感等优点,因此在实际应用中得到了广泛的应用。然而,帧间差分法也存在一些局限性,如对于缓慢移动或静止的物体检测效果不佳。

一个好知识的传播者 1256

【书生大模型实战营】进阶岛 第4关 InternVL 多模态模型部署微调实践

InternVL 是一种用于多模态任务的深度学习模型,旨在处理和理解多种类型的数据输入,如图像和文本。它结合了视觉和语言模型,能够执行复杂的跨模态任务,比如图文匹配、图像描述生成等。通过整合视觉特征和语言信息,InternVL 可以在多模态领域取得更好的表现。

人生不是轨道,是旷野。希望每天都有好心情。 770

论文超详细精读|万字:2s-AGCN

1. 提出了一种新的双流自适应图卷积网络(2S-AGCN)用于基于骨架的动作识别。**模型中的图的拓扑既可以统一地学习,也可以通过BP算法以端到端的方式单独学习。** 2. 提出了一种同时对**一阶和二阶信息(骨架的长度与方向)建模的双流框架**,在识别精度上有了显著的提高。 它将骨架数据的图结构参数化,并嵌入到网络中,与模型共同学习和更新。 3. 文章主要创新点有两个,一个是双流网络,另外一个是自适应。

IanYue的博客 6384

【书生实战营】- L2G4000 InternVL 多模态模型部署微调实践

InternVL多模态部署微调实践

ffffflk的博客 2494

AttifyOS 3.0实战:从固件提取到物联网设备安全评估全流程解析

本文详细解析了使用AttifyOS 3.0进行物联网设备安全评估的全流程。从获取D-Link路由器固件开始,到利用其预置的Binwalk等工具完成固件提取、解包Squashfs文件系统,并深入分析Web源码进行初步安全审计。这套集成系统极大简化了环境配置,让研究人员能专注于漏洞挖掘本身,是物联网安全评估的高效工具箱。

ice55的博客 215

AMBA-CHI协议详解(三)

Write Transactions、Atomic transactions、 Stash transactions、 Dataless transactions的等各个事务的事务流。

Crazzy_M的博客 3180

【书生·浦语实战营】进阶岛第4关:InternVL 多模态模型部署微调实践

InternVL 是一种用于多模态任务的深度学习模型,旨在处理和理解多种类型的数据输入,如图像和文本。它结合了视觉和语言模型,能够执行复杂的跨模态任务,比如图文匹配、图像描述生成等。通过整合视觉特征和语言信息,InternVL 可以在多模态领域取得更好的表现。

qq_43959624的博客 1555

软件需求规格说明书(SRS)标准模板

《软件需求规格说明书(SRS)框架解析》摘要: 本文档系统阐述了SRS的标准结构,包含7大核心部分:1)引言(目的、背景和术语);2)总体描述(产品定位与用户特征);3)功能需求(模块化功能说明);4)非功能需求(性能、安全等指标);5)接口需求(用户/硬件/软件接口);6)其他技术要求;7)附录(图表与参考资料)。重点突出了功能需求模块的标准化描述模板(FR-01),以及安全需求中的HTTPS通信、SHA-256加密等关键指标。该框架为软件开发提供了明确的需求基准,涵盖从业务背景到技术实现的完整链条,是确

moton2017的博客 2890

第四期书生大模型实战营 第10关 InternVL 多模态模型部署微调实践

我们主要通过## 1.导入相关依赖包## 2.使用你的模型初始化推理管线## 3.读取图片(此处使用PIL读取也行)## 4.配置推理参数## 5.利用 pipeline.chat 接口 进行对话,需传入生成参数## 6.之后的对话轮次需要传入之前的session,以告知模型历史上下文。

wux_labs的博客 886

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

四期书生大模型实战营(【进阶岛】- 第4关 | InternVL 多模态模型部署微调实践(差点倒在了UI使用上)

一,多模态大模型简介 1, 什么是多模态大模型 多模态大语言模型(Multimodal Large Lanquage Model)是指能够处理和融合多种不同类型数据(如文本、图像、音频、视频等)的大型人工智能模型。这些模型通常基于深度学习技术能够理解和生成多种模态的数据,从而在各种复杂的应用场景中表现出强大的能力。 2, 常见的多模态融合方式 Q-former BLIP2 三个loss: ITM loss:图文匹配 LM loss: Predict Next Token ITC loss:对比学习

qq_52928908的博客 1942

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

第四期书生大模型实战营【进阶岛】—— InternVL 多模态模型部署微调实践

# 1.导入相关依赖包## 2.使用你的模型初始化推理管线## 3.读取图片(此处使用PIL读取也行)## 4.配置推理参数## 5.利用 pipeline.chat 接口 进行对话,需传入生成参数## 6.之后的对话轮次需要传入之前的session,以告知模型历史上下文。

weixin_45730545的博客 943

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

进阶岛第4关:InternVL 多模态模型部署微调实践

InternVL 多模态模型部署微调实践

weixin_62549128的博客 1172

书生大模型进阶岛第四关InternVL 多模态模型部署微调实践

多模态大模型是一种基于深度学习的机器学习技术,其核心思想是将不同媒体数据(如文本、图像、音频和视频等)进行融合,通过学习不同模态之间的关联,实现更加智能化的信息处理。这种模型不仅可以理解文本、图像、音频和视频等单一模态的信息,还可以跨模态地理解它们之间的关系,从而实现更加全面和准确的信息处理。综上所述,多模态大模型通过融合不同模态的数据,并利用深度学习技术进行训练和优化,实现了跨模态的信息处理和理解。多模态大模型的设计模式主要关注于如何有效地融合不同模态的数据,以及如何在模型的各个层次中实现这种融合。

qq_75269600的博客 1414

InternLM进阶岛第4关InternVL 多模态模型部署微调实践

在InternVL2中,视觉模型的具体实现为InternViT,其参数量扩展到了6B,相比原来的ViT有了显著的提升。它可能是一个大型的预训练语言模型,如基于Transformer的架构,能够捕捉文本中的语义和上下文信息。在InternVL2中,语言模型与视觉模型通过特定的对齐和融合策略紧密地结合在一起,形成了一个真正的多模态模型。这些模型通常基于深度学习技术,能够理解和生成多种模态的数据,从而在各种复杂的应用场景中表现出强大的能力。例如,当视觉模型识别出一张图片时,语言模型能够生成描述这张图片的文字。

KK_427的博客 1168
上一篇: 书生·浦语 大模型实战营(第三期) 基础岛 第6关 OpenCompass 评测 InternLM-1.8B 实践
下一篇: 书生·浦语 大模型实战营(第三期) 进阶岛 第5关 茴香豆:企业级知识库问答工具
毛克卜唠嗑
博客等级 码龄3年 301粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值