Article body
正文
引言
过去十年的 BI,是「文本驱动」的——用户用文字描述需求,系统用图表展示结果。输入是文本,输出是图表,中间是结构化的数据处理。
但人类理解数据的方式不止文字。一张销售趋势图,业务人员扫一眼就知道「Q2 有个异常飙升」;一份财务报表,CFO 一眼能看出「毛利率在恶化」。这种「看图说话」的能力,过去只有人具备,BI 系统做不到。
多模态大模型(Multimodal LLM)的成熟,让 BI 系统第一次具备了「视觉理解」能力——能读懂图表、能理解截图、能从图片中提取数据。 同时,自然语言生成图表(Text-to-Visualization)也在快速进化。
衡石 BI 在最新版本中引入了多模态 BI 能力,打通了「图表理解」和「自然语言可视化」两个方向,构建了一个双向多模态分析闭环。 本文将深入解析这套技术体系。
一、多模态 BI 的两个方向
1.1 方向一:图表理解(Chart-to-Insight)
所谓图表理解,是让 AI 「看懂」一张图表,并从中提取洞察。
典型场景:
- 用户发来竞争对手的一份行业报告截图,问「这张图里我们和竞品的差距有多大?」
- 用户把上周的月度经营看板截图发给 Agent,问「这张图里哪个指标最值得关注?」
- 用户收到一封含图表的邮件,直接把图片转给 Agent,问「这个数据趋势正常吗?」
这些场景中,输入是「图像」而非「文本」。传统 ChatBI 只能处理文本输入——遇到图片就无能为力。多模态 BI 让 Agent 能直接理解图片内容。
1.2 方向二:自然语言可视化(Text-to-Visualization)
所谓自然语言可视化,是用自然语言描述意图,系统自动生成图表。
这不是新概念——传统 BI 也有「拖拽生成图表」和「自然语言生成图表」。但多模态大模型让这一过程更智能:
- 用户说「给我看一下华东区各产品线近半年的销售趋势」→ 系统生成一张折线图
- 用户说「把这张图改成热力图,按周看」→ 系统理解「这张图」是指上一轮生成的图表,做格式转换
- 用户说「在这个看板上加一个对比去年同期的模块」→ 系统理解上下文,在已有看板基础上追加模块
方向一解决「输入多模态」问题——用户不再只能打字,还可以发图。方向二解决「输出多模态」问题——图表不只是生成一次就定格,而是可以持续对话式地迭代优化。
1.3 双向闭环
两个方向结合,形成多模态 BI 的双向闭环:
正向流(Text → Chart):自然语言 → 语义解析 → 数据查询 → 图表生成 → 多模态渲染
反向流(Chart → Insight):图表图像 → 视觉理解 → 结构化数据提取 → 洞察生成 → 自然语言回答
这个闭环让数据分析的「入口」和「出口」都变成了多模态——用户可以用任何方式提问,得到任何形式的结果。
二、图表理解的技术实现
2.1 图像输入的处理流程
当用户上传一张图表图片时,衡石的多模态 BI 引擎按以下流程处理:
步骤一:图像预处理。对上传图片做质量增强——分辨率标准化、噪声去除、表格线检测(如果是表格截图)。对于含坐标轴的长图,做智能切片,避免单图信息过载。
步骤二:图表类型识别。用视觉模型判断图表类型——折线图、柱状图、饼图、散点图、热力图、雷达图、或是含图表的混合文档(如 PPT、PDF 报告)。不同类型采用不同的解析策略。
步骤三:元素提取。从图表中提取结构化元素:
- 坐标轴:X 轴标签、Y 轴刻度、单位
- 数据系列:每条线的颜色、名称、数据点的具体数值
- 图例:各系列的含义映射
- 标题和注释:图表标题、数据来源标注、异常标注
步骤四:数据重建。把提取的视觉元素重建为结构化数据表。如一张折线图被还原为「日期 × 指标值」的二维表。这是后续分析的基础——只有变成结构化数据,AI 才能做计算。
步骤五:洞察生成。基于重建的数据表,AI 做趋势分析、异常检测、对比分析,生成自然语言洞察。
2.2 视觉理解与数据提取的精度保障
图表理解的最大难点是「数据提取精度」。如果 AI 从图片中读出的数值是错的,后续所有分析都基于错误数据。
衡石的精度保障手段:
OCR + 视觉交叉验证:对图表中的数字标签,先用 OCR 提取文本,再用视觉模型做二次确认。如果 OCR 识别「12,563」而视觉模型估算该点位置对应的 Y 值约为 12500,两个结果吻合则确认;如果不吻合,标记为「低置信度数值」并提示用户。
坐标轴映射校验:对于非标签型数据点(图表上只有点没有数字标注),通过坐标轴刻度映射推算数值。系统校验推算值是否在合理范围内——如果推算出的 Y 值超出坐标轴最大刻度,说明映射逻辑有误,触发重试。
表格截图特殊处理:当上传的是表格截图(而非图表),衡石用专门的表格结构识别模型(Table Transformer)做行列识别和单元格内容提取,准确率高于通用 OCR。
置信度标注:每个提取的数值都标注置信度。高置信度数值直接用于分析;低置信度数值在分析中标注「估计值」提示,避免用户误认为精确数据。
2.3 多模态对话的上下文管理
图表理解不仅是「一次性图片分析」,还支持多轮对话。典型交互:
- 轮 1:用户上传图片,问「这张图里的趋势怎么样?」→ Agent 理解图片,给出趋势概述
- 轮 2:用户追问「Q2 那个异常飙升是什么原因?」→ Agent 需要记住「这张图」的内容,且理解「Q2 异常飙升」指的是图中哪个数据点
- 轮 3:用户说「和去年同期比呢?」→ Agent 关联轮 1 的图片上下文和轮 2 的讨论点
上下文管理的技术要点:
- 图片理解的结果(重建的数据表 + 提取的元素)作为持久上下文存储在会话中
- 用户后续提到的「这个图」「那个异常点」通过指代消解(Coreference Resolution)映射到已存储的上下文
- 如果后续讨论需要更精确的数据(如精确数值而非视觉估算),Agent 可以触发对原图的二次精细化分析
三、自然语言可视化的技术实现
3.1 从文本到图表的生成链路
当用户用自然语言描述可视化需求时,衡石的多模态 BI 引擎按以下链路生成图表:
步骤一:意图解析。用 LLM 解析用户的自然语言描述,提取可视化要素:
- 图表类型意图(趋势 → 折线图;对比 → 柱状图;占比 → 饼图)
- 指标意图(「销售额」「利润率」)
- 维度意图(「按区域」「按产品线」)
- 时间意图(「近半年」「Q1」)
- 格式意图(「热力图」「堆叠柱状」)
步骤二:语义映射。将意图映射到 BI 语义层的具体实体。这一步复用前文所述的向量检索 × 语义层能力——把用户口中的「销售额」映射到指标定义,把「华东区」映射到标准区域编码。
步骤三:查询生成。基于映射结果生成数据查询(NL2Metrics 路线),获取可视化所需的数据。
步骤四:图表配置生成。用多模态大模型根据数据特征和分析意图,自动选择最优的图表类型、配色方案、坐标轴设置、标注位置。这不是随机选一个图表模板,而是基于数据分布特征做决策——如数据有明显时间趋势选折线图,类别数 < 5 选饼图,维度组合复杂选热力图。
步骤五:多模态渲染。将图表配置渲染为交互式可视化,支持用户进一步操作(钻取、联动、筛选)。
3.2 迭代式可视化优化
多模态 BI 的「自然语言可视化」不是一次性的,而是对话式的迭代优化:
格式调整:用户说「换成柱状图」「颜色再鲜明点」「Y 轴从 0 开始」→ Agent 理解这些格式指令,在已有图表配置上做增量修改,而非重新生成。
内容追加:用户说「再加一条去年同期的线」→ Agent 在已有图表的数据查询中追加去年同期数据,扩展图表系列。
视角切换:用户说「按周看」「改成环比」→ Agent 调整时间粒度和计算口径,重新生成图表。
智能建议:Agent 主动建议可视化优化——「当前数据有 12 个类别,饼图不易分辨,建议改用条形图」,或「检测到数据存在明显季节性,建议增加同比对比线」。
3.3 图表生成的准确性保障
文本到图表的生成同样有准确性风险——选错图表类型会误导用户,配色不当会掩盖关键数据。
衡石的保障手段:
图表类型约束:每个指标和维度组合有推荐图表类型白名单。如「时间序列 + 单指标」推荐折线图,「时间序列 + 多指标」推荐多轴折线图,系统不会生成明显不合理的图表类型。
误导性检测:生成图表后,系统做误导性检查——如是否截断了 Y 轴导致误导性对比、是否使用了红绿色盲不友好的配色、是否在分母接近零时展示了高百分比。检测到问题自动修正或提示。
数据-图表一致性校验:渲染后的图表与原始数据做一致性校验——图表上显示的数值是否等于查询结果。这避免了「数据对但图错」的低级错误。
四、多模态 BI 的综合场景
4.1 场景一:竞品报告快速解读
市场分析师收到一份竞品发布的行业报告 PDF,需要快速提取其中的关键数据,并与自家企业数据对比。
多模态 BI 流程:
- 分析师上传 PDF 报告 → 系统用文档理解模型提取所有图表和表格
- 分析师问「报告里提到的市场规模增速是多少?」→ Agent 定位到相关图表,提取数值「23%」
- 分析师说「和我们的实际增速对比一下」→ Agent 自动查询本企业数据,计算实际增速「18%」
- Agent 生成对比可视化:竞品行业 23% vs 本企业 18%,并标注差距来源(竞品新进入了某细分市场)
整个过程,分析师不需要手动从 PDF 中抄数据——多模态 BI 自动提取并结构化。
4.2 场景二:截图即分析
运营总监在手机上看到一张同事发来的实时大屏截图,发现某个指标颜色异常(红了),但不确定具体数值和趋势。
多模态 BI 流程:
- 总监把截图发给 Agent,问「这个红色指标是什么情况?」
- Agent 识别截图中的图表,提取指标名称「转化率」和当前值「2.1%」
- Agent 关联系统中的完整数据,展示转化率的历史趋势和环比变化
- Agent 给出异常归因:「转化率从上周 3.4% 降至 2.1%,主要因为新版落地页的跳出率上升」
截图成为分析入口,无需回到 PC 端操作。
4.3 场景三:对话式看板搭建
BI 分析师需要为一个新业务线搭建监控看板,但不知道该放哪些图表。
多模态 BI 流程:
- 分析师说「为社区团购业务线搭一个监控看板,重点关注 GMV、团长活跃度、履约时效」
- Agent 生成初版看板:3 个 KPI 卡片 + GMV 趋势折线图 + 团长活跃度分布柱状图 + 履约时效热力图
- 分析师说「履约时效那块,按城市拆开看」→ Agent 把热力图改为按城市维度
- 分析师说「再加一个异常预警模块」→ Agent 追加一个告警状态面板
- 分析师说「整体配色用公司的品牌蓝」→ Agent 应用品牌主题
看板搭建从「拖拽 20 个组件」变成「说 5 句话」。
五、多模态 BI 的工程挑战
5.1 视觉理解成本
多模态大模型的推理成本显著高于纯文本模型——图像 Token 的消耗远大于文本 Token。一张图表截图可能消耗数千个视觉 Token,相当于数百字文本。
优化手段:
- 图像压缩:上传图片先做分辨率优化(不需要 4K 分辨率做图表理解),减少视觉 Token
- 预处理提取:在送入视觉模型前,先用轻量级 OCR + 图表结构识别做初步提取,只把「文本化后的精简信息 + 裁剪的关键区域」送入大模型,大幅降低 Token 消耗
- 按需触发:不是所有对话都需要视觉模型。当用户的图片已经在上轮被理解过,后续轮次直接复用已提取的结构化数据,不再重新理解图片
5.2 视觉理解的准确率边界
多模态理解不是 100% 准确。在以下场景容易出错:
- 低分辨率截图导致数值模糊
- 密集图表(一个图里 30+ 条线)导致系列混淆
- 非标准图表(艺术化信息图、3D 柱状图)导致结构识别失败
应对策略:
- 置信度标注:视觉提取的每个数值标注置信度,低置信度值提示用户确认
- 降级方案:如果图片理解置信度过低,系统提示「图片理解可能不准确,建议提供原始数据或描述具体关注点」
- 用户校正:用户可以直接说「不对,那个值应该是 12500 不是 12000」,系统用校正值更新上下文
5.3 隐私与合规
多模态 BI 意味着系统要处理用户上传的图片——这些图片可能包含敏感信息(未公开的财务数据、竞品机密、内部截图)。
合规设计:
- 图片处理在隔离环境中进行,不进入通用训练数据
- 支持图片自动过期删除(如 24 小时后从会话上下文中清除)
- 企业可配置「禁止图片上传」策略,完全关闭多模态输入
- 所有图片处理记录审计日志,安全团队可审查
六、总结
多模态 BI 是 BI 演进的下一个范式跃迁。它打破了文本与图表之间的壁垒——让数据分析的入口不再只是搜索框,让数据呈现的方式不再只是静态图表。
衡石 BI 的多模态能力,两个核心突破:
- 图表理解:AI 能读懂图片中的图表,提取结构化数据,生成洞察——输入从「打字」扩展到「发图」
- 自然语言可视化:用对话迭代生成和优化图表——输出从「生成一次」进化为「持续对话」
当 BI 系统既能「看懂图」又能「说人话做图」,数据分析的门槛被降到了史无前例的低点——你甚至不需要知道字段名叫什么,发一张截图就够了。
本文是衡石 BI 技术系列第 49 篇。如需了解衡石 ChatBI 的 NL2Metrics 技术路线和 Agentic BI 的范式跃迁,请参阅我们相关的主题文章。