声明:我是引用的 付费文章,文章搬过来只是为了自己学习方便,不用每次输入验证口令。如果侵权,第一时间删除。 原文链接:gxlbvdk4ilp.feishu.cn/wiki/Ye0bwg...
本文讨论了2025年初一意内部评估通过的VLM技术在财务审计项目中的应用,以及如何在本地部署高并发、服务化的推理模型,包括大语言模型和多模态模型。关键要点包括:
-
VLM技术优势:在财务审计项目中,准确结果达95%以上,源于OCR技术沉淀,微调用于数据识别处理任务,成本骤降。
-
课程目的与定位:呈现一意当时接入数据处理范式的过程,定位"生产",聚焦应用,不深入算法。
-
推理框架选择:用vLLM推理大语言模型,SGLang推理多模态模型,也可用纯API方案(无足够算力时)。
-
推理过程:先推1个LLM + 1个VLM,VLM负责非结构化数据识别、提取,LLM负责结构化处理或入库,推理后成为本地openai API。
-
安装与推理:分别创建conda环境,安装依赖,按指令推理大模型和多模态模型,介绍推理参数作用。
-
算力计算:给出计算模型使用显存的公式,以SGLang推理olmOCR-7B-0225-preview为例说明。
-
实践代码汇总:汇总推理大模型和多模态模型的指令,方便逐步操作。
前言
VLM是在2025年初,通过一意内部评估,加入达到生产要求清单的
一意发现,在财务审计项目中,准确结果达到95%以上,源于OC·R技术多年的技术、数据沉淀,原本VLM微调用于数据识别处理任务,成本骤降,也是2025年,一意认为最值得跟进的技术领域;
课程目的,就是把大家,拉到2025年初,把一意当时接入数据处理范式的过程,呈现出来;
课程定位"生产",实现如何在自己的设备上推理,目前市面上主流推理模型框架有很多,篇幅有限,一意会聚焦应用,不会深入算法,如果你是算法工程师,建议你深入到这些推理框架中,可以帮助你拥有更多方法,接入生产
本次,选择用vLLM、SGLang推理models集群,后面我们要围绕他,做生产应用;
推理分布是这样的
vLLM:推理大语言模型(LLM)
SGLang:推理多模态模型(VLM)
SGLang对于多模态模型来说,拥有更多支持,vLLM则在大模型管理方面,更加合适;
当然,你也可以使用纯API方案实现(对于没有足够算力的朋友),如果你准备使用纯API方案,你就不需要在本地推理模型了,跳过本课;
一、推理过程
生产环境,计算资源非常珍贵,models,不太可能仅为一个任务而推理
我们要想,如何充分压榨硬件的计算资源,达到均衡的吞吐与延迟
比较通用的集群结构是这样的:
序号 | 模型类型 | 英文 | 功能 | 场景 |
---|---|---|---|---|
1 | 大语言模型 | LLM | 文本生成、问答、翻译等 | 自然语言处理、对话系统、内容生成 |
2 | 多模态模型 | VLM | 图文理解、视觉问答、跨模态检索等 | 图文分析、内容创作、智能推荐 |
3 | 向量模型 | Embedding | 文本/图像向量化表示 | 搜索引擎、推荐系统、相似度计算 |
4 | 重排模型 | Reranker | 结果排序优化、提升检索相关性 | 搜索引擎、推荐系统、信息检索 |
每一个应用,背后都是一个大模型集群,看任务,可能还会有更多的专用模型,LLM是每个应用的基础,本次应用目的,就是讲VLM如何接入生产?与当下LLM组合成更强大系统的;
这是一个models的集群,是单独模块化设计的,同时,也是应用的基础!
我们会先推1个LLM+1个VLM,稍后跟着推理起来,之后分工是:
VLM-->负责非结构化数据的识别、提取
LLM-->负责承接VLM提取出来的数据,将它结构化处理或入库
以上两个模型,推理起来后,是一个本地的openai API,任何的应用,都可以接入!
1.1 推理大模型
这个过程,我们在会员圈里都发过很多资料,目前用得比较广的是:vLLM,生产场景,也推荐用它;
注意,这里我们聚焦应用,不会深入算法,如果你是算法工程师,你一定要深入去研究vLLM;
本地部署以及推理模型
在我们之前部署好的基本环境之后,就可以正式部署推理框架
先看conda版本,确保环境正常使用
css
conda --version

创建conda环境
下方指令,Vllm是命名,可以输入自己想好的命名,注意,1个model,1个环境,便于管理,避免依赖冲突
ini
conda create -n Vllm python==3.10
出现Proceed我们输入Y ,让他继续安装


命令行出现上面,代表成功安装
激活环境!
conda activate Vllm

安装依赖!
我们用的是12.4的cuda,这里我们直接安装vLLM最新版
注意,如果是11.8的话,要根据vllm文档方法编译;
这里将到清华源下载,避免部分朋友无法翻墙;
arduino
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple


推理大模型!
运行下方指令,就可以推理了!
每个人环境不同,稍后把下方参数展开,你也可以根据自己的算力,推理起来
scss
CUDA_VISIBLE_DEVICES=0 vllm serve /media/ubu/文档/大模型/qwen-2.5-14B-GPTQ-int8 \
--served-model-name qwen-2.5-14B-GPTQ-int8 \
--dtype auto \
--port 8001 \
--max-model-len 4096 \
--gpu-memory-utilization 0.9

bash
#新开一个终端,测试模型端口
curl http://0.0.0.0:8003/v1/models

讲讲推理参数!
我们演示的设备是有多张卡的,举例:
假设你的机器有 4 张 GPU,编号为 0, 1, 2, 3
,你希望使用第二张卡(即编号为 1
的 GPU)进行推理
scss
CUDA_VISIBLE_DEVICES=0 vllm serve /media/ubu/文档/大模型/qwen-2.5-14B-GPTQ-int8 \
--served-model-name Qwen2.5-14B-Instruct-GPTQ-Int8 \
--dtype auto \
--port 8001 \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
各部分作用:
-
CUDA_VISIBLE_DEVICES=0
:- 这个环境变量限制只能用编号为
0
的 GPU,如果需要多张卡,就将它填上去,0, 1
这是两张卡
- 这个环境变量限制只能用编号为
-
vllm serve
:- 使用
vLLM
提供的服务模式启动模型推理服务
- 使用
-
/root/model/Qwen2.5-14B-Instruct-GPTQ-Int8
:- 指定模型的绝对路径,这里是
Qwen2.5-14B-Instruct-GPTQ-Int8
模型
- 指定模型的绝对路径,这里是
-
--served-model-name Qwen2.5-14B-Instruct-GPTQ-Int8
:- 指定对外暴露的服务名称,客户端可以通过这个名称访问模型,这个名称不能错,否则程序找不到
-
--dtype auto
:- 自动选择模型的数据类型(例如
float16
或bfloat16
),以优化推理性能
- 自动选择模型的数据类型(例如
-
--port 8001
:- 指定服务监听的端口号为
8001
,不能冲突,因为是模型集群,每个模型都要指定端口
- 指定服务监听的端口号为
-
--max-model-len 4096
:- 设置模型支持的最大上下文长度为
4096
,长度越长,需要的显存资源就越多
- 设置模型支持的最大上下文长度为
-
--gpu-memory-utilization 0.9
:- 设置 GPU 显存利用率上限为
90%
,防止显存溢出,不管多大模型,只要是指定了这个参数,就会使用90%显存
- 设置 GPU 显存利用率上限为
更多的参数,到这里看:
docs.vllm.com.cn/en/latest/s...
1.2 推理多模态模型

优势:
RadixAttention 优化:通过共享前缀请求和高效缓存策略,SGLang 能在理论上实现十万级 token/s 的超高吞吐量,同时显著降低响应延迟。
高效结构化输出:内置高性能 JSON 解析模块,便于构建面向结构化数据查询的 API 服务,适合复杂自动化工作流。
轻量模块化架构:采用灵活的模块化设计,便于快速集成新技术(如 FlashInfer 内核),不断优化推理效率。
安装的过程也非常简单
先创建每一个新的conda环境,以免依赖冲突
创建conda环境并激活!
ini
#虚拟环境安装方式与上面安装VLLM方式一样
conda create -n SGLANG python==3.10
conda activate SGLANG
pip install --upgrade pip

安装sglang!
arduino
pip install uv
uv pip install "sglang[all]>=0.4.5.post3"


推理大模型!
css
#SGLANG启动指令 --model-path 是模型所在路径 --port是端口号
CUDA_VISIBLE_DEVICES=1
python -m sglang.launch_server \
--model-path /media/ubu/文档/大模型/olmOCR-7B-0225-preview \
--port 30000
--chat-template=qwen2-vl


可以新开一个终端发送验证请求
bash
curl http://127.0.0.1:30000/v1/models

讲讲推理参数!
ini
CUDA_VISIBLE_DEVICES=1
python -m sglang.launch_server \
--model-path /media/ubu/文档/大模型/olmOCR-7B-0225-preview \
--port 30000
--chat-template=qwen2-vl
各部分作用:
-
CUDA_VISIBLE_DEVICES=1
:- 设置环境变量,告诉程序只使用编号为
1
的 GPU - 在程序中,这张 GPU 会被映射为逻辑上的
GPU 0
- 设置环境变量,告诉程序只使用编号为
-
python -m sglang.launch_server
:- 启动
sglang
的服务模块
- 启动
-
--model-path /home/ubu/jun/olmOCR-7B-0225-preview
:- 指定模型绝对路径
-
--port 30000
:- 指定服务监听的端口号为
30000
- 指定服务监听的端口号为
-
--chat-template=qwen2-vl
:- 使用 Qwen2-VL 的视觉聊天模板,必需参数以支持图像输入
更多参数,看这里:
二、需要多少算力
在群里,大家经常会问,自己的显卡中的显存够不够跑模型。这次课程教给大家一个计算模型使用显存的简单公式。

字母 | 含义 |
---|---|
M | GPU 内存 |
P | 模型中的参数数量。例如,一个 7B 模型有 7 亿参数。 |
4B | 4 字节,即每个参数使用的字节数 |
32 | 4 字节中有 32 位 |
Q | 加载模型时应使用的位数,例如 16 位、8 位或 4 位。比如FP16、INT8、INT4 |
1.2-1.4 | 表示在 GPU 内存中加载额外内容的 20%-40% 开销 |
就拿我们用SGLang推理olmOCR-7B-0225-preview为例。
olmOCR-7B-0225-preview是基于qwen2进行微调得到的模型,qwen2使用的是FP16精度。所以我们得到:
该模型的参数为
P | 7B |
---|---|
Q | 16 |
根据公式可以得到大概占用显存16.8-19.6之间

三、实践代码逐步合集
将指令汇总一下,你按照步骤,一步步粘贴复制,就能推理了
ini
第一部分:推理大模型指令合集
# 创建conda环境
conda create -n Vllm python==3.10
# 激活环境
conda activate Vllm
# 安装vllm,指定清华源
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
# 推理模型,下方全部复制
CUDA_VISIBLE_DEVICES=0 vllm serve /root/model/Qwen2.5-14B-Instruct-GPTQ-Int8 \
--served-model-name Qwen2.5-14B-Instruct-GPTQ-Int8 \
--dtype auto \
--port 8001 \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
第二部分:推理多模态指令合集
# 创建conda环境
conda create -n SGLANG python==3.10
# 激活环境
conda activate SGLANG
# 升级pip
pip install --upgrade pip
pip install uv
uv pip install "sglang[all]>=0.4.5.post3"
# 推理模型
CUDA_VISIBLE_DEVICES=1
python -m sglang.launch_server \
--model-path /media/ubu/文档/大模型/olmOCR-7B-0225-preview \
--port 30000