零一万物开源Yi-VL多模态大模型,魔搭社区推理&微调最佳实践来啦!

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 近期,零一万物Yi系列模型家族发布了其多模态大模型系列,Yi Vision Language(Yi-VL)多模态语言大模型正式面向全球开源。

导读


近期,零一万物Yi系列模型家族发布了其多模态大模型系列,Yi Vision Language(Yi-VL)多模态语言大模型正式面向全球开源。凭借卓越的图文理解和对话生成能力,Yi-VL模型在英文数据集MMMU和中文数据集CMMMU上取得了领先成绩,展示了在复杂跨学科任务上的强大实力。


基于Yi语言模型的强大文本理解能力,只需对图片进行对齐,就可以得到不错的多模态视觉语言模型——这也是Yi-VL模型的核心亮点之一。



在架构设计上,Yi-VL模型基于开源 LLaVA架构,包含三个主要模块:

  • Vision Transformer(简称ViT)用于图像编码,使用开源的OpenClip ViT-H/14模型初始化可训练参数,通过学习从大规模"图像-文本"对中提取特征,使模型具备处理和理解图像的能力。
  • Projection模块为模型带来了图像特征与文本特征空间对齐的能力。该模块由一个包含层归一化(layer normalizations)的多层感知机(Multilayer Perceptron,简称MLP)构成。这一设计使得模型可以更有效地融合和处理视觉和文本信息,提高了多模态理解和生成的准确度。
  • Yi-34B-Chat和Yi-6B-Chat大规模语言模型的引入为 Yi-VL 提供了强大的语言理解和生成能力。该部分模型借助先进的自然语言处理技术,能够帮助 Yi-VL 深入理解复杂的语言结构,并生成连贯、相关的文本输出。


以下为大家带来魔搭社区推理、微调最佳实践教程。



环境配置与安装


本文使用的模型为Yi-VL-6B模型,可在ModelScope的Notebook的环境(这里以PAI-DSW为例)的配置下运行(显存24G) 。


环境配置与安装

本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :


点击模型右侧Notebook快速开发按钮,选择GPU环境:


打开Terminal环境:



模型链接和下载


Yi系列模型现已在ModelScope社区开源,包括:

Yi-VL-34B模型:

https://modelscope.cn/models/01ai/Yi-VL-34B/summary


Yi-VL-6B模型:

https://modelscope.cn/models/01ai/Yi-VL-6B/summary


社区支持直接下载模型的repo:

from modelscope import snapshot_download
model_dir = snapshot_download("01ai/Yi-VL-6B", revision = "master")



Yi多模态模型推理


安装环境

使用方式参考:https://github.com/01-ai/Yi/tree/main/VL


安装环境

git clone https://github.com/01-ai/Yi.git
cd Yi/VL
export PYTHONPATH=$PYTHONPATH:$(pwd)
pip install -r requirements.txt


模型推理

CUDA_VISIBLE_DEVICES=0 python single_inference.py --model-path /model-path --image-file /mnt/workspace/test.png --question "图里有几只羊?"


选择了几张图,试下效果:


显存占用情况如下:



Yi系列模型微调和微调后推理


我们使用SWIFT来对模型进行微调, swift是魔搭社区官方提供的LLM&AIGC模型微调推理框架. 微调代码开源地址: https://github.com/modelscope/swift

我们使用数据集coco-mini-en-2进行微调. 任务是: 描述图片中的内容。


环境准备:

git clone https://github.com/modelscope/swift.git
cd swift
pip install .[llm]


微调脚本: LoRA

# https://github.com/modelscope/swift/tree/main/examples/pytorch/llm/scripts/yi_vl_6b_chat
# Experimental environment: V100, A10, 3090
# 18GB GPU memory
CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model_type yi-vl-6b-chat \
    --sft_type lora \
    --tuner_backend swift \
    --template_type AUTO \
    --dtype AUTO \
    --output_dir output \
    --dataset coco-mini-en \
    --train_dataset_sample -1 \
    --num_train_epochs 1 \
    --max_length 2048 \
    --check_dataset_strategy warning \
    --lora_rank 8 \
    --lora_alpha 32 \
    --lora_dropout_p 0.05 \
    --lora_target_modules DEFAULT \
    --gradient_checkpointing true \
    --batch_size 1 \
    --weight_decay 0.01 \
    --learning_rate 1e-4 \
    --gradient_accumulation_steps 16 \
    --max_grad_norm 0.5 \
    --warmup_ratio 0.03 \
    --eval_steps 100 \
    --save_steps 100 \
    --save_total_limit 2 \
    --logging_steps 10 \
    --use_flash_attn false \


训练过程支持本地数据集,需要指定如下参数:

--custom_train_dataset_path xxx.jsonl \
--custom_val_dataset_path yyy.jsonl \


自定义数据集的格式可以参考:

https://github.com/modelscope/swift/blob/main/docs/source/LLM/自定义与拓展.md#注册数据集的方式


微调后推理脚本: (这里的ckpt_dir需要修改为训练生成的checkpoint文件夹)

# Experimental environment: V100, A10, 3090
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --ckpt_dir "output/yi-vl-6b-chat/vx_xxx/checkpoint-xxx" \
    --load_dataset_config true \
    --max_length 2048 \
    --use_flash_attn false \
    --max_new_tokens 2048 \
    --temperature 0.5 \
    --top_p 0.7 \
    --repetition_penalty 1. \
    --do_sample true \
    --merge_lora_and_save false \


训练后生成样例:



[PROMPT]This is a chat between an inquisitive human and an AI assistant. Assume the role of the AI assistant. Read all the images carefully, and respond to the human's questions with informative, helpful, detailed and polite answers. 这是一个好奇的人类和一个人工智能助手之间的对话。假设你扮演这个AI助手的角色。仔细阅读所有的图像,并对人类的问题做出信息丰富、有帮助、详细的和礼貌的回答。
### Human: [-100 * 1]
please describe the image.
### Assistant:
[OUTPUT]A large airplane is on display in a museum. 
###
[LABELS]People walking in a museum with a airplane hanging from the celing.
[IMAGES]['https://xingchen-data.oss-cn-zhangjiakou.aliyuncs.com/coco/2014/val2014/COCO_val2014_000000492132.jpg']


[PROMPT]This is a chat between an inquisitive human and an AI assistant. Assume the role of the AI assistant. Read all the images carefully, and respond to the human's questions with informative, helpful, detailed and polite answers. 这是一个好奇的人类和一个人工智能助手之间的对话。假设你扮演这个AI助手的角色。仔细阅读所有的图像,并对人类的问题做出信息丰富、有帮助、详细的和礼貌的回答。
### Human: [-100 * 1]
please describe the image.
### Assistant:
[OUTPUT]A bowl of fruit and cake next to a cup of coffee. 
###
[LABELS]a bowl of fruit and pastry on a table
[IMAGES]['https://xingchen-data.oss-cn-zhangjiakou.aliyuncs.com/coco/2014/val2014/COCO_val2014_000000558642.jpg']


点击直达模型卡片:

https://modelscope.cn/models/01ai/Yi-VL-34B/summary

相关文章
|
18天前
|
自然语言处理 数据可视化 物联网
Qwen1.5-MoE开源!魔搭社区推理训练最佳实践教程来啦!
通义千问团队推出Qwen系列的首个MoE模型,Qwen1.5-MoE-A2.7B。
|
3月前
|
人工智能 自然语言处理 机器人
Jina AI 发布中英和英德双语 8K 向量模型,魔搭社区开源最佳实践!
在 Jina Embeddings 英语向量模型突破百万下载后,今天,Jina AI正式开源了两款双语向量模型:中英双语(Chinese-English)和英德双语(English-German)向量模型,这也是全球首次推出支持 8K 双语文本的开源向量模型。
|
4月前
|
数据可视化 PyTorch 算法框架/工具
零一万物Yi-34B-Chat 微调模型及量化版开源!魔搭社区最佳实践教程!
11月24日,零一万物基正式发布并开源微调模型 Yi-34B-Chat,可申请免费商用。同时,零一万物还为开发者提供了 4bit/8bit 量化版模型,Yi-34B-Chat 4bit 量化版模型可以直接在消费级显卡(如RTX3090)上使用。魔搭社区已支持下载、推理训练体验,并推出相关教程,欢迎大家来玩!
|
16天前
|
数据可视化 物联网 Swift
澜舟科技开源孟子3-13B大模型,魔搭社区推理训练最佳实践!
4月1日,澜舟科技宣布开源Mengzi3-13B大模型,对学术研究完全开放,同时支持免费商用。
|
24天前
|
人工智能 知识图谱 Windows
Mistral 7B v0.2 基础模型开源,魔搭社区微调教程和评测来啦!
Mistral AI在3月24日突然发布并开源了 Mistral 7B v0.2模型,有如下几个特点
|
1月前
|
编解码 JSON 数据可视化
DeepSeek VL系列开源,魔搭社区模型微调最佳实践教程来啦!
3月11日,DeepSeek-AI开源了全新多模态大模型DeepSeek-VL系列,包含1.3b、7b两种不同规模的4个版本的模型。
|
4月前
|
人工智能 数据可视化 物联网
Mistral AI发布首个开源MoE模型,魔搭社区推理微调最佳实践来啦!
继Mistral 7B 后,Mistral AI 近日又放出一记大招——发布了引爆开源社区的首个 MoE 开源模型 Mixtral 8x7B,在 Apache 2.0 许可证下可商用。
|
8月前
|
机器学习/深度学习 数据采集 人工智能
给爆火的Llama 2划重点,Huggingface机器学习科学家写了篇分析文章
给爆火的Llama 2划重点,Huggingface机器学习科学家写了篇分析文章
173 1
|
9月前
|
机器学习/深度学习 存储 编解码
【OpenVI—论文解读系列】ICCV | 开源融合不确定度的自监督MVS框架
论文链接:Digging into Uncertainty inSelf-supervised Multi-view Stereo 多视图立体视觉作为计算机视觉领域的一项基本的任务,利用同一场景在不同视角下的多张图片来重构3D的信息。自监督多视角立体视觉(MVS)近年来取得了显著的进展。然而,以往的方法缺乏对自监督MVS中pretext任务提供的监督信号进行有效性的全面解释。本文首次提出在自监督MVS中估计认知不确定性(epistemic uncertainty)。
231 5
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
剑桥、腾讯AI Lab等提出大语言模型PandaGPT:一个模型统一六种模态
剑桥、腾讯AI Lab等提出大语言模型PandaGPT:一个模型统一六种模态
110 0

热门文章

最新文章