Skip to content

Sweewangyu/s-mllm

Repository files navigation

LLaVA

0. 准备

  • 一张 3090 显卡

mllm_en:

  • 文本部分使用了 llama3.2-1b-instruct
  • 图像部分使用了 siglip-so400m-patch14-384

mllm_ch:

  • 文本部分使用了 qwen2.5-0.5b-instruct
  • 图像部分使用了 chinese-clip-vit-large-patch14-336px

将下载好的 mllm_enmllm_ch 文件夹拖入指定目录,并将 train.sh 中的 model_name_or_path 修改为对应路径。


1. 模型结构

模型结构


2. 数据来源


3. 训练过程

阶段一:特征对齐预训练

由于从 CLIP 提取的特征与 word embedding 不在同一个语义表达空间,因此需要通过预训练,将 image token embedding 对齐到 text word embedding 的语义表达空间。

  • 冻结 Vision Encoder 和 LLM 模型的权重参数,仅训练插值层 Projection W 的权重。
  • 修改 tran.sh 中的 train_typefreeze_vision_and_llm

mllm_en 预训练的损失函数:

mllm_en_loss

mllm_ch 预训练的损失函数:

mllm_ch_loss


阶段二:端到端训练

  • 冻结 Vision Encoder 的权重,同时更新插值层 Projection W 和 LLM 语言模型的权重。
  • 修改 tran.sh 中的 train_typefreeze_vision

mllm_en 微调的损失函数:

mllm_en_tuning_loss

mllm_ch 微调的损失函数:

mllm_ch_tuning_loss


测试

测试图片

mllm_en 的回答:

The image features a cluster of white flowers, specifically daisies, growing in a field.

mllm_ch 的回答:

白色的雏菊,花瓣展开,中心有黄色的花蕊。


模型权重

4. Eval

  • 部署本地语言模型作为评判 / 选择提取器:
    git clone https://github.com/open-compass/VLMEvalKit.git
    cd VLMEvalKit
    pip install -e .
    pip install lmdeploy openai

About

端侧多模态小模型

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published