当前位置: 首页 > news >正文

极智项目 | 多模态大模型推理平台-Streamlit版(支持Qwen2.5/InternVL3/KimiVL三大模型)

多模态大模型推理测试Web应用

软件下载链接:下载
基于Streamlit的多模态大模型推理测试平台,支持Qwen2.5-VL、InternVL3、Kimi-VL三大模型,提供transformers和vLLM两种推理框架。

软件介绍

核心功能

  • 多模型支持: 集成三大主流多模态大模型
  • 双推理框架: transformers(稳定)+ vLLM(高性能)
  • 多模态输入: 支持图片+文本联合推理
  • 智能缓存: 模型实例缓存,避免重复加载
  • 显存优化: vLLM显存动态配置,防止OOM
  • 模块化设计: 易于扩展新模型

技术特性

  • 兼容性修复: 解决Streamlit与PyTorch冲突问题
  • 性能优化: vLLM模型缓存机制,大幅提升推理速度
  • 用户友好: 现代化Web界面,实时状态反馈
  • 完整日志: 详细的推理过程追踪

支持的模型

模型开发方特点
Qwen2.5-VL阿里巴巴通义千问视觉语言模型,性能均衡
InternVL3上海AI实验室多模态理解能力强,支持长序列
Kimi-VL月之暗面轻量化设计,推理速度快

推理框架对比

框架优势适用场景
Transformers稳定可靠,兼容性好开发调试,小批量推理
vLLM高性能,显存优化生产环境,大批量推理

软件环境配置步骤

1. 系统要求

  • 操作系统: Linux (推荐Ubuntu 20.04+)
  • Python版本: 3.12.10
  • GPU: CUDA支持的NVIDIA GPU
  • 显存: 建议16GB以上

2. Python环境配置

# 使用指定的Python环境
export PYTHON_ENV="/opt/conda/envs/vllm_server_py312/bin/python"# 验证Python版本
$PYTHON_ENV --version  # 应显示: Python 3.12.10

3. 核心依赖库版本

根据您的环境,需要安装以下版本的库:

# 核心深度学习库
pip install torch==2.6.0+cu124
pip install transformers==4.51.3# 推理引擎
pip install vllm==0.8.5.post1# Web框架
pip install streamlit==1.45.1# 模型库
pip install modelscope==1.25.0# 图像处理
pip install Pillow==11.2.1# 数值计算
pip install numpy==2.2.5# 其他依赖
pip install qwen-vl-utils

4. 环境验证

# 进入项目目录
cd /path/to/streamlit_llm_infer# 验证环境
$PYTHON_ENV -c "
import torch; print(f'PyTorch: {torch.__version__}')
import transformers; print(f'Transformers: {transformers.__version__}')
import vllm; print(f'vLLM: {vllm.__version__}')
import streamlit; print(f'Streamlit: {streamlit.__version__}')
print('✅ 环境配置正确')
"

5. 模型路径配置

确保以下模型路径存在且可访问:

# Qwen2.5-VL模型路径
/path/models/Qwen/Qwen2.5-VL-7B-Instruct# InternVL3模型路径  
/path/models/OpenGVLab/InternVL3-8B-Instruct# Kimi-VL模型路径
/path/models/moonshotai/Kimi-VL-A3B-Instruct

界面预览

主界面截图

在这里插入图片描述

界面特色:

  • 🎨 简洁现代: 采用蓝紫渐变配色,界面清爽专业
  • 📱 响应式布局: 左右分栏设计,操作区域与结果区域分离
  • ⚙️ 智能配置: 侧边栏集中管理所有模型和推理参数
  • 🚀 实时反馈: 推理状态实时显示,用户体验流畅
  • 🔧 功能完整: 支持图片上传、文本输入、参数调节等全功能

主要区域说明:

  1. 顶部标题栏: 显示平台名称和版本信息
  2. 左侧配置区: 模型选择、推理框架、vLLM配置、输入参数等
  3. 右侧结果区: 推理输出、状态显示、结果复制等
  4. 底部信息栏: 版权信息和技术特性说明

软件使用说明

1. 启动应用

# 方法1: 使用启动脚本(推荐)
./run_app.sh# 方法2: 直接启动
$PYTHON_ENV -m streamlit run app.py --server.port 8501

启动成功后访问: http://localhost:8501

2. 基础操作流程

步骤1: 选择推理配置
  1. 推理框架: 选择transformers或vLLM
  2. 模型选择: 从Qwen2.5-VL、InternVL3、Kimi-VL中选择
  3. 模型路径: 使用预置路径或自定义路径
步骤2: vLLM显存配置(仅vLLM框架)
  • GPU显存使用率: 30%-95%,推荐80%
  • 最大模型长度: 1024-8192,推荐4096
步骤3: 输入内容
  1. 图片上传: 支持JPG、PNG格式(可选)
  2. 文本提示: 输入问题或描述
  3. 参数调整:
    • max_new_tokens: 生成长度(1-4096)
    • temperature: 随机性(0.0-2.0)
    • top_p: 采样阈值(0.0-1.0)
步骤4: 执行推理

点击"🚀 生成"按钮开始推理,实时查看状态和结果。

3. 高级功能

vLLM显存优化策略
GPU显存推荐配置最大长度说明
8GB50-60%2048保守设置
16GB60-70%4096平衡设置
24GB+70-80%6144+高性能设置
缓存管理
  • 模型缓存: 清空所有模型实例缓存
  • vLLM缓存: 单独清空vLLM模型缓存
  • 智能缓存: 配置变化时自动重新加载
性能优化建议
  1. 首次使用: vLLM需要加载模型(较慢)
  2. 后续推理: 直接使用缓存(快速)
  3. 显存不足: 降低GPU使用率或减少序列长度
  4. 多模型切换: 会自动释放其他模型的vLLM实例

4. 故障排除

常见错误及解决方案

CUDA out of memory

解决方案:
1. 降低vLLM的GPU显存使用率至60-70%
2. 减少最大模型长度至2048-4096
3. 减少max_new_tokens参数
4. 使用transformers推理替代vLLM

模型加载失败

检查项目:
1. 模型路径是否正确
2. 模型文件是否完整
3. 权限是否足够
4. 磁盘空间是否充足

Kimi-VL vLLM兼容性问题

解决方案:
1. 使用transformers推理(推荐)
2. 更新vLLM到最新版本
3. 或选择其他模型如Qwen2.5-VL

5. 项目结构

streamlit_llm_infer/
├── app.py                      # 主应用入口
├── run_app.sh                  # 启动脚本
├── utils/                      # 工具模块
│   ├── compatibility_fix.py    # 兼容性修复
│   └── image_utils.py          # 图像处理
├── models/                     # 模型模块
│   ├── base_model.py           # 模型基类
│   ├── model_factory.py        # 模型工厂
│   ├── qwen25vl_model.py       # Qwen2.5-VL
│   ├── internvl3_model.py      # InternVL3
│   └── kimivl_model.py         # Kimi-VL
└── README.md                   # 项目文档

扩展开发

添加新模型

  1. 创建模型类:
# models/new_model.py
from .base_model import BaseModelclass NewModel(BaseModel):def load_model(self):# 实现transformers模型加载passdef infer_transformers(self, prompt, image, max_new_tokens, temperature, top_p):# 实现transformers推理passdef infer_vllm(self, prompt, image, max_new_tokens, temperature, top_p):# 实现vLLM推理pass
  1. 注册模型:
# models/model_factory.py
_models = {"NewModel": NewModel,  # 添加新模型
}_preset_paths = {"NewModel": "/path/to/model",  # 添加模型路径
}

版本信息

  • 当前版本: v2.2
  • Python: 3.12.10
  • 主要依赖: PyTorch 2.6.0, Transformers 4.51.3, vLLM 0.8.5.post1
  • 作者: 极智视界
  • 许可: 仅供学习测试使用

相关文章:

  • 【CBAP50技术手册】#31 Observation(观察法):BA(业务分析师)的“现场侦探术”
  • 浮点数舍入规则_编程语言对比
  • CTFHub-RCE 命令注入-过滤运算符
  • [SC]SystemC在CPU/GPU验证中的应用(二)
  • R语言错误处理方法大全
  • CRISPR-Cas系统的小型化研究进展-文献精读137
  • python打卡day41
  • vue2源码解析——响应式原理
  • CentOS 7 安装docker缺少slirp4netnsy依赖解决方案
  • C51单片机
  • Python Day38 学习
  • Java BigInteger类详解与应用
  • 使用Yolov8 训练交通标志数据集:TT100K数据集划分
  • 【MLLM】多模态LLM 2025上半年技术发展(Better、Faster、Stronger)
  • 【C语言】讲解 程序分配的区域(新手)
  • 第12讲、Odoo 18 权限控制机制详解
  • 【plink 和vcftools使用】从 VCF 文件中提取指定 SNP 的 REF/ALT 方法
  • ICML 2025 Spotlight | 机器人界的「Sora」!让机器人实时进行未来预测和动作执行!
  • 【LLM相关知识点】 LLM关键技术简单拆解,以及常用应用框架整理(二)
  • linux进程用户态内存泄露问题从进程角度跟踪举例
  • 网站建设属于什么领域/广告投放的方式有哪些
  • 微信网站是怎么做的/西安网站建设维护
  • 网站升级维护期间能访问吗/免费seo网站
  • 如何做网站流量分析/曲靖新闻今日头条
  • 网站跳出/百度预测大数据官网
  • 中国建设银行官网站查询卡号/广告软文案例