最近清华大学的OpenBMB开源了MiniCPM-o 4.5全双工全模态大模型,用通俗易懂的话来讲,就是以前传统的LLM模型只能你一句我一句的对话,后面的多模态模型加入了原生视觉的功能,可以进行图片的识别。而全双工全模态大模型融合了LLM、视觉、听觉、TTS语音合成等模型,拥有与用户实时视频通话的功能,可以通过用户设备的摄像头和麦克风以及扬声器,与用户进行0延迟交流。

OpenBMB官方发布了三个版本的MiniCPM-o 4.5权重:

1:原生BF16精度

2:AWQ 4bit精度量化

3:GGUF量化

其中BF16和AWQ版本可以通过PyTorch进行推理,而GGUF版本只能通过C++后端llama.cpp进行推理,由于本篇教程围绕Ubuntu+CUDA生态展开,GGUF版本的部署不包含在教程内。

配置需求

  • BF16版本需要32G以上的显存(NVIDIA RTX 5090 32GB/NVIDIA RTX 4090 48GB 华强北魔改版)

  • AWQ版本需要24G以上的显存(NVIDIA RTX 3090 24GB/NVIDIA RTX 4090 24GB)

  • Ubuntu 24.04 LTS 以上版本操作系统

  • Turing架构以上的NVIDIA GPU

  • Docker以及Docker Compose运行环境

尽管BF16版本的权重大小为20G左右,而AWQ版本为12G左右,考虑到权重载入显存后还要给KV Cache和上下文留出显存空间,单靠24GB/16GB VRAM显存运行BF16/AWQ必定会在启动阶段就OOM,所以32G/24G VRAM是必须的。

因为NVIDIA在Turing架构上开始加入GSP芯片,这是一块嵌入式RISC-V芯片,主要作用是从CPU上把GPU初始化、系统管理等驱动程序处理的事情卸载到GSP芯片处理,以前的N卡驱动并没有在消费级GPU上启用GSP固件,由于这块芯片是N卡驱动转向开源的重要转折点,开源驱动依赖GSP固件,而驱动版本和CUDA计算环境的版本深度绑定,所以导致没有GSP芯片的GPU正在逐渐被淘汰。

环境配置

安装nvidia-driver-595-server-open开源驱动

sudo apt update && sudo apt-get install -y nvidia-driver-595-server-open

安装NVIDIA docker Container Toolkit

sudo apt-get update && sudo apt-get install -y --no-install-recommends \
   ca-certificates \
   curl \
   gnupg2
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.19.1-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

重启系统

sudo reboot

等待系统重启,系统重启完毕后所有的驱动和运行环境即可生效。

拉取文件

拉取Docker Hub镜像(任选其一)

BF16用户拉取

sudo docker pull bowen3131/minicpm-o-demo:latest

AWQ用户拉取

sudo docker pull bowen3131/minicpm-o-demo:awq

中国大陆BF16用户拉取(Docker Hub镜像加速)

sudo docker pull docker.bowen.games/bowen3131/minicpm-o-demo:latest

中国大陆AWQ用户拉取(Docker Hub镜像加速)

sudo docker pull docker.bowen.games/bowen3131/minicpm-o-demo:awq

拉取Docker Compose配置文件(任选其一)

BF16用户拉取

git clone https://github.com/MasterChiefCN/minicpm-o-demo.git

AWQ用户拉取

git clone -b awq https://github.com/MasterChiefCN/minicpm-o-demo.git

中国大陆BF16用户拉取(GitHub镜像加速)

git clone https://v4.gh-proxy.org/https://github.com/MasterChiefCN/minicpm-o-demo.git

中国大陆AWQ用户拉取(GitHub镜像加速)

git clone -b awq https://v4.gh-proxy.org/https://github.com/MasterChiefCN/minicpm-o-demo.git

请确保Docker和Git可以正常运行,拉取完毕后即可开始准备模型权重。

拉取模型权重

安装git-lfs实现大文件拉取

sudo apt install git-lfs

拉取模型权重(任选其一)

BF16用户拉取

git clone https://huggingface.co/openbmb/MiniCPM-o-4_5 ./minicpm-o-demo/workspace/models/MiniCPM-o-4_5

AWQ用户拉取

git clone https://huggingface.co/openbmb/MiniCPM-o-4_5-awq ./minicpm-o-demo/workspace/models/MiniCPM-o-4_5-awq

中国大陆BF16用户拉取(Hugging Face镜像加速)

git clone https://hf-mirror.com/openbmb/MiniCPM-o-4_5 ./minicpm-o-demo/workspace/models/MiniCPM-o-4_5

中国大陆AWQ用户拉取(Hugging Face镜像加速)

git clone https://hf-mirror.com/openbmb/MiniCPM-o-4_5-awq ./minicpm-o-demo/workspace/models/MiniCPM-o-4_5-awq

由于模型权重文件较大,需要多等待一些时间,等到模型权重拉取完成之后即可开始部署。

运行MiniCPM-o 4.5

通过Docker Compose运行

cd minicpm-o-demo
sudo docker compose up -d

运行完毕后会有网络创建成功以及容器已启动的提示:

此时静待几分钟等待权重加载,也可以输入nvidia-smi命令查看GPU使用情况:

过几分钟之后,当看到显存占用上升后即可尝试通过浏览器访问https://本机IP:8006,注意一定要加https前缀,http协议无法在现代浏览器中调用摄像头和麦克风。

如果成功访问,点击Omni Full-Duplex即可进入全双工实时视频对话页面。

授予浏览器摄像头和麦克风权限后尝试和AI进行对话,AI会实时根据输入的视频和语音理解用户的意图并通过语音与用户交流。