# MiniCPM-o 2.6
## 论文
[MiniCPM-o 2.6: A GPT-4o Level MLLM for Vision, Speech, and Multimodal Live Streaming on Your Phone](https://openbmb.notion.site/MiniCPM-o-2-6-A-GPT-4o-Level-MLLM-for-Vision-Speech-and-Multimodal-Live-Streaming-on-Your-Phone-185ede1b7a558042b5d5e45e6b237da9)
## 模型结构
MiniCPM-o 2.6用于端到端全模态建模的整体架构。该模型基于SigLip-400M Whisper-medium-300M ChatTTS-200M和Qwen2.5-7B-Instruct构建,共有8B个参数。总体框架如下所示。
## 算法原理
全模态直播流机制,包括(1)将语音编码器和解码器改为在线流,以及(2)使LLM主干网能够处理并行的多模态流信息。MiniCPM-o 2.6将输入音频分成块,其中块是对应于一秒钟音频的固定数量的音频令牌。在音频编码期间,每个块在关注自身和先前块的因果注意力范例中被编码,以(1)服务于在线流编码需求,同时(2)与离线整体编码相比保持最小的信息损失。为了实现流式语音生成,每次预填充固定数量的文本令牌(大小为n的块),并且解码器立即解码固定数量的音频令牌(大小为m的块)。然后对下一个文本令牌和音频令牌重复该过程,依此类推。值得注意的是,文本块和它们对应的音频块之间的对齐并不精确,因此在实践中为文本令牌块大小保留了更大的预算。
## 环境配置
### 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_o bash # 为以上拉取的docker的镜像ID替换
git clone http://developer.sourcefind.cn/codes/modelzoo/minicpm-o-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的使用方法
```
docker build -t internvl:latest .
docker run --shm-size 500g --network=host --name=minicpm_o --privileged --device=/dev/kfd --network=host --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it bash
git clone http://developer.sourcefind.cn/codes/modelzoo/minicpm-o-2.6_pytorch.gitit
cd /path/your_code_data/
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
### Anaconda(方法三)
此处提供本地配置、编译的详细步骤,例如:
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.hpccube.com/tool/)开发者社区下载安装。
```
DTK驱动:dtk24.04.3
python:3.10
torch:2.3.0
transformers==4.48.3
```
`Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应`
其它非深度学习库参照requirement.txt安装:
```
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
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
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simpl
```
### 单机多卡
sh finetune.sh
## 推理
### 单机多卡
音频推理:
```
CUDA_VISIBLE_DEVICES=0,1,2,3python minicpm-o_audio.py
```
视觉推理:
```
CUDA_VISIBLE_DEVICES=0,1,2,3python minicpm-o_version.py
```
## result
- 音频推理
- 视觉推理
### 精度
无
## 应用场景
### 算法类别
`对话问答`
### 热点应用行业
`科研,教育,政府,金融`
## 预训练权重
预训练权重快速下载中心:[SCNet AIModels](https://www.scnet.cn/ui/aihub/models)
项目中的预训练权重可从快速下载通道下载:[openbmb/MiniCPM-o-2_6](https://gitlab.scnet.cn:9002/model/sugon_scnet/InfiniteYou.git)
HF/github下载地址为:[openbmb/MiniCPM-o-2_6](https://huggingface.co/openbmb/MiniCPM-o-2_6)
魔搭下载路径
- [openbmb/MiniCPM-o-2_6 魔搭下载](https://www.modelscope.cn/models/OpenBMB/MiniCPM-o-2_6/files)
## 源码仓库及问题反馈
- http://developer.sourcefind.cn/codes/modelzoo/minicpm-o-2.6_pytorch.git
## 参考资料
- https://github.com/OpenBMB/MiniCPM-o