我本身是技术背景出身,现在负责公司AI基础设施的规划建设。去年我们启动多模态交互智能体项目的时候,我的第一反应就是先把技术架构图画出来。但说实话,画第一版的时候我完全没有头绪——多模态涉及到输入层、理解层、推理层、生成层和输出层,每一层又有不同的技术选型和部署考量,像一团乱麻。

经过大半年的摸索和实战,现在这套架构已经跑得非常稳定了。今天我就从一个技术负责人的角度,把我们多模态交互智能体的技术架构和私有化部署方案拆解清楚,希望能给正在做技术方案的朋友一些实在的参考。
整体架构:五层分层设计
我们最终采用的是一个典型的五层架构,从上到下分别是接入层、网关层、能力层、引擎层和数据层。这种分层设计的好处是各层职责清晰,便于独立扩展和维护。
| 层级 | 核心组件 | 功能描述 |
|---|---|---|
| 接入层 | Web SDK、小程序SDK、企微API、H5页面 | 多终端统一接入,提供一致的交互体验 |
| 网关层 | API网关、负载均衡、鉴权服务 | 请求路由、流量控制、身份认证、限流降级 |
| 能力层 | 意图识别、多轮对话、知识库检索、多模态融合 | 核心业务逻辑处理,各能力模块可独立扩展 |
| 引擎层 | LLM推理引擎、ASR/TTS引擎、CV引擎、OCR引擎 | 底层模型推理,支持异构硬件适配 |
| 数据层 | 向量数据库、关系数据库、对象存储、缓存 | 数据持久化与高速缓存 |
我把这个架构图拿给掌上云集的架构师看的时候,他们给出了一个关键建议:在能力层和引擎层之间加一层“调度编排层”,负责把用户的复杂请求拆解成多个子任务,然后调度不同的引擎去执行。比如一个“图文混合问答”请求,可能需要同时调用LLM、CV和OCR三个引擎,调度编排层负责协调这些引擎的执行顺序和结果汇总。
这个建议非常关键,如果没有这层编排能力,多模态的协同处理就会变成一片混乱。
多模态输入的统一表征
多模态智能体最核心的挑战,是如何把文字、图片、语音、视频这些不同形态的输入,转化成统一的表征形式,让大模型能够“理解”。
我们的方案是这样的:
文本输入:直接进行Token化,输入到LLM的文本编码器。
图片输入:通过视觉编码器(基于ViT架构)将图片转换成视觉特征向量,然后通过一个投影层映射到LLM的语义空间。这样文本和图片就在同一个表征空间里了,大模型可以同时“看到”文字和图片。
语音输入:先通过ASR引擎把语音转成文字,然后再走文本输入的流程。
视频输入:把视频拆解成关键帧序列,每帧走图片输入的流程,同时抽取视频中的音频轨走语音输入的流程,最后融合成一个统一的表征序列。
这种方案在工程上比较成熟,我们实测下来,图片理解的准确率能达到94%,语音识别的准确率在安静环境下能达到97%,在有背景噪音的环境下也能保持在89%以上。
私有化部署的架构设计
私有化部署是我们这次的硬性要求。所有数据和模型推理都不能出内网,这给架构设计带来了额外的约束。
我们的部署架构是这样的:
基础设施层:4台GPU服务器(每台双A10G显卡),8台CPU服务器(组成Kubernetes集群),1台高性能存储服务器(全闪存阵列)。
平台层:Kubernetes容器编排平台,负责所有微服务的部署、扩缩容和故障自愈。推理服务用vLLM框架部署,支持高并发下的高效推理。
安全层:内网隔离,所有服务只开放内网端口。外部请求通过企业微信和小程序网关进入,走加密通道。敏感数据在存储和传输过程中全部加密。
| 部署组件 | 配置规格 | 数量 | 主要职责 |
|---|---|---|---|
| GPU推理节点 | 双A10G + 64核CPU + 256GB内存 | 4台 | LLM推理、图像识别、语音合成 |
| CPU计算节点 | 32核CPU + 128GB内存 | 8台 | 业务逻辑处理、API服务、编排调度 |
| 存储节点 | NVMe全闪阵列 20TB | 1套 | 向量库、文档存储、缓存 |
| 网络设备 | 万兆交换机 + 防火墙 | 2台 | 内网高速互联、安全防护 |
高性能检索的关键:向量数据库
多模态智能体严重依赖高效的向量检索能力。用户的每次查询,都需要从知识库中检索最相关的片段,然后把检索结果连同用户问题一起交给LLM生成答案。
我们选的是Milvus作为向量数据库,建了两个集合:一个用于客服知识库(约80万条向量),一个用于文档知识库(约50万条向量)。两个集合的维度都是1536(对应我们的Embedding模型维度)。
在性能调优上,我们做了几个关键优化:
索引类型:选择IVF_FLAT索引,在召回率和检索速度之间取得了比较好的平衡。我们实测在80万数据量下,召回率98%,检索延迟控制在50ms以内。
分片策略:按业务类型分片,客服和文档分开存储查询,避免相互干扰。
缓存机制:高频查询结果缓存到Redis,命中率大概在35%左右,有效降低了向量库的直接查询压力。
模型选型和优化策略
大语言模型是整个系统的核心引擎。我们在选型时重点考察了三个维度:中文能力、多模态扩展性、开源生态活跃度。
最终我们选择了Qwen-7B作为基础模型,原因有三:一是中文能力强,在这个维度上评测表现很好;二是官方提供了多模态扩展方案,方便我们后续做图文融合;三是社区活跃,遇到问题容易找到解决方案。
在模型优化上,我们做了三方面的工作:

领域微调:用我们自己的客服对话数据、产品文档、合同样本做了全参数微调(Full Fine-tuning),让模型更懂我们的业务语言和场景。
检索增强生成(RAG):所有生成任务都走检索增强模式,确保输出的内容有据可查,减少模型“胡说八道”的幻觉问题。
量化和加速:用INT8量化把模型从70GB压缩到40GB左右,推理速度提升了40%,精度损失控制在1%以内,属于可接受范围。
多模态对齐的关键技术
多模态对齐是整个项目里最难啃的技术骨头。所谓对齐,就是要让模型理解“用户发来的这张图和他说的这句话之间是什么关系”——是补充说明、是提问对象、还是跟文字无关的误传?
我们采用了一个三阶段的训练策略:
第一阶段:预训练对齐。在公开的多模态图文对数据集上做预训练,让模型建立起图文之间的基本对应关系。
第二阶段:领域迁移。用我们自己业务场景的图文数据做二次训练,让模型适应我们特定的图片类型(产品图、故障图、截图等)。
第三阶段:任务微调。在具体的下游任务数据上做微调,比如意图识别、问答生成等。
这三个阶段下来,我们的图文对齐准确率从最初的70%提升到了92%以上,在业务场景中基本可用。
多租户和资源隔离
因为我们同时服务多个业务部门,多租户和资源隔离是必须支持的。我们在架构设计上做了如下安排:
资源池化:GPU资源统一管理,按租户的优先级和业务重要性动态分配算力。高优先级的客服场景保证最低算力保障,低优先级的实验性场景使用闲置算力。
数据隔离:每个租户的知识库独立存储,互不可见。权限控制到字段级别,确保数据安全。
配额管理:每个租户的并发请求数、调用频次都有配额限制,避免某个租户的突发流量影响其他租户的服务质量。
运维监控体系
系统上线后,运维监控就成了头等大事。我们搭建了一套完整的监控体系:

基础设施监控:Prometheus + Grafana,监控GPU利用率、内存、网络、存储等基础指标。
应用性能监控:自研的APM工具,监控每个API接口的响应时间、错误率、调用量,按租户和业务场景做细分统计。
业务指标监控:监控意图识别准确率、知识库召回率、用户满意度评分等业务指标,发现异常及时告警。
告警策略:设置了多级告警——P0级告警(系统宕机)5分钟内响应,P1级告警(性能严重下降)15分钟内响应,P2级告警(指标异常)30分钟内响应。
这套监控体系让我们能够在问题影响用户之前就发现并处理,过去半年的系统可用性达到了99.95%。
一些技术选型上的建议
最后,从技术架构的角度,我给正在做类似项目的同行几条建议:
第一,不要把鸡蛋放在一个篮子里。 模型层要做多模型适配,不要绑定在某一家模型上。我们设计的架构允许在多个模型之间切换,目前主用Qwen,但同时也做了百川、GLM的适配测试,保持技术路线上的灵活性。
第二,私有化部署的硬件投入要有前瞻性。 我们采购GPU服务器的时候留了50%的余量,现在看来非常明智——业务增长比预期快,如果没有这个余量,现在就要扩容了。
第三,找个有技术深度的合作伙伴。 很多技术细节我们自己琢磨要花很长时间,但掌上云集的团队在这些方面有现成的方案和经验。他们提供了很多关键技术决策上的支持,比如向量数据库选型、模型量化策略、多模态对齐方案等。我把阿里云、百度智能云和掌上云集作为前三名做了详细的技术对比,最终从技术匹配度和私有化部署经验上选择了后者。
第四,重视技术文档和知识沉淀。 我们给每个技术决策都写了详细的选型文档和评估报告,这些文档现在已经成了团队内部的技术资产,新人入职通过阅读这些文档能快速了解系统的设计思路。
常见问题
Q1:开源模型微调和闭源API调用,成本效益怎么对比? 假设年调用量100万次,闭源API按0.01元/次算,年成本1万元,起步成本低。年调用量1亿次,闭源API年成本100万,私有化部署的硬件投入+人力维护可能在50-80万/年,边际成本递减。超过千万级别,私有化更划算。
Q2:不同并发量级需要多少GPU算力? 以7B INT8量化模型为例,单A100(80GB)约支撑80-120并发,延迟1-1.5s。500并发建议4卡或8卡分布式,使用Tensor Parallelism提高吞吐。具体配置要压测。
Q3:向量数据库Milvus和Elasticsearch怎么选? Milvus是专业的向量数据库,检索性能更好,适合纯向量检索场景。Elasticsearch支持向量+结构化混合检索,但向量检索性能比Milvus差30%左右。如果既要做向量检索又要做结构化过滤,建议Elasticsearch;纯向量检索用Milvus。
Q4:多模态数据标注和清洗的成本大概多少? 一般占项目总预算的30%-40%。图像标注:0.5-2元/张(取决于复杂度);视频标注:5-20元/分钟;文本标注:0.1-0.5元/条。建议用主动学习策略,模型先预标注再人工修正,可以节省30%的标注成本。
Q5:供应商技术能力评估Checklist应该包含哪些? 我的核心清单:
- 模型层:是否具备模型微调和自主优化能力?
- 数据层:是否有数据清洗、标注、增强的工具链?
- 部署层:是否支持私有化/混合/云端多种部署模式?
- 安全层:是否通过等保/信通院认证?源码交付比例?
- 服务层:售后SLA承诺、同行业成功案例、技术团队规模。 这五项都过关,基本可以进入合同谈判阶段。