README.md 4.04 KB
Newer Older
wanglch's avatar
wanglch committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# MiniCPM-V-2_6
## 论文

[MiniCPM-V: A GPT-4V Level MLLM on Your Phone](https://arxiv.org/abs/2408.01800)


## 模型结构

该模型包括三个关键模块:视觉编码器、压缩层和LLM。输入图像首先由利用自适应视觉编码方法的视觉编码器编码。具体来说,模型采用SigLIP SoViT-400m/14作为视觉编码器。然后由压缩层压缩视觉令牌,压缩层采用具有一层交叉注意的感知器重采样器结构。最后,压缩的视觉标记与文本输入一起被馈送到LLM中,用于条件文本生成。


<div align=center>
    <img src="./Pic/arch.png"/>
</div>

## 算法原理

为了解决幻觉问题,采用了最近的RLAIF-V方法,其中关键是从用于直接偏好优化(DPO)的开源模型中获得可扩展的高质量反馈。减少幻觉的RLAIF-V框架:(1)响应生成使用策略模型为指令生成多个响应。(2)反馈收集以分而治之的方式评估每个响应的正确性。(3)DPO在偏好数据集上优化模型

<div align=center>
    <img src="./Pic/theory.png"/>
</div>

## 环境配置
### Docker(方法一)
推荐使用docker方式运行, 此处提供[光源](https://www.sourcefind.cn/#/service-details)拉取docker镜像的地址与使用步骤
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.3.0-py3.10-dtk24.04.3-ubuntu20.04
docker run -it --shm-size=1024G -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal:/opt/hyhal --network=host --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name minicpm_v  <your IMAGE ID> bash # <your IMAGE ID>为以上拉取的docker的镜像ID替换

git clone http://developer.sourcefind.cn/codes/modelzoo/minicpm-v-2_6_pytorch.git

cd /path/your_code_data/

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

```
Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应。

### Dockerfile(方法二)
此处提供dockerfile的使用方法
```
wanglch's avatar
wanglch committed
43
44
git clone http://developer.sourcefind.cn/codes/modelzoo/minicpm-v-2_6_pytorch.git

wanglch's avatar
wanglch committed
45
docker build -t internvl:latest .
wanglch's avatar
wanglch committed
46
docker run --shm-size 500g --network=host --name=minicpm_v --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash
wanglch's avatar
wanglch committed
47
48
49
50
51
52
53
54
55

cd /path/your_code_data/

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

```
### Anaconda(方法三)
此处提供本地配置、编译的详细步骤,例如:

chenzk's avatar
chenzk committed
56
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。
wanglch's avatar
wanglch committed
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
```
DTK驱动:dtk24.04.3
python:3.10
torch:2.3.0
transformers==4.48.3
```
`Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应`

其它非深度学习库参照requirement.txt安装:
```

git clone http://developer.sourcefind.cn/codes/modelzoo/minicpm-v-2_6_pytorch.git

cd /path/your_code_data/

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
## 数据集

ms-swift 自带数据集 AI-ModelScope/LaTeX_OCR:human_handwrite#20000

## 训练

使用ms-swift框架微调
```
git clone https://github.com/modelscope/ms-swift.git

cd ms-swift

wanglch's avatar
wanglch committed
86
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
wanglch's avatar
wanglch committed
87
88
89
90
91
92
93
94
95
96
97
```

### 单机多卡

sh finetune.sh

## 推理

### 单机多卡

```
wanglch's avatar
wanglch committed
98
CUDA_VISIBLE_DEVICES=0,1,2,3 python minicpm-v_version.py
wanglch's avatar
wanglch committed
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
```

## result


<div align=left>
    <img src="./Pic/result.png"/>
</div>

### 精度





## 应用场景

### 算法类别

`对话问答`

### 热点应用行业

`科研,教育,政府,金融`

## 预训练权重


HF/github下载地址为:[openbmb/MiniCPM-V-2_6](https://huggingface.co/openbmb/MiniCPM-V-2_6)

魔搭下载路径:
- [openbmb/MiniCPM-V-2_6 魔搭下载](https://www.modelscope.cn/models/OpenBMB/MiniCPM-V-2_6/files)

## 源码仓库及问题反馈
-  http://developer.sourcefind.cn/codes/modelzoo/minicpm-v-2_6_pytorch.git

## 参考资料

- https://github.com/OpenBMB/MiniCPM-o