语义工程-05.AI时代的语义层架构-上下文语义层

回顾十到十五年前的BI系统,数据先进入数据仓库,再创建数据集市,最后用BI工具构建报表。
在这种架构中,语义层只是数据库与可视化之间的工具,帮助重命名字段、定义计算指标,避免分析师重复编写SQL。
然而,随着企业数据被BI仪表盘、自助分析工具、机器学习系统和AI代理同时使用,语义层正从一个辅助工具演变为统一的数据操作接口。语义层已成为数据基础设施本身的一部分。

为什么AI时代语义层至关重要

当大语言模型或人工智能代理查询数据时,它面临一个根本性问题:它不了解业务,也无法理解元数据的含义。如果没有语义层:

  • 它生成的 SQL 语句在技术上有效,但在业务上却行不通。
  • 它不知道 usr_acct_status = 3 表示“已流失”。
  • 它错误地连接了表,或者遗漏了关键筛选条件(例如,已软删除的行)。
  • 相同的查询结果不一致
    语义层通过为人工智能提供一个 受控的、具有业务感知能力 的数据接口来解决这个问题。包括:
  1. 查询准确性: 研究表明, 当大语言模型通过语义层而非原始表进行查询时,其数据查询的准确率可提高 3倍。Databricks报告称,其Genie本体上下文引擎将答案准确率从约50%提升至 84.5% ,远超简单的文本转SQL方法。彭博媒体内部的“知识缺口代理”仅通过将缺失的机构知识捕获为受控上下文,就将其数据访问代理的SQL准确率提高了 63% 。由于业务逻辑已直接提供给模型,因此模型不再需要猜测业务逻辑。
    当有人问“请显示上个季度各地区的总收入”时,语义层就能准确地理解这句话的意思:

    业务查询:   “上季度各地区总收入”
    
    语义解析:
      指标:总收入 → SUM(订单金额)
      维度:区域 → regions.region_name
      连接路径:订单 → 客户 → 区域(自动发现)
      时间筛选:订单日期 >= '2025-10-01'生成的 SQLSELECT r.region_name, SUM(o.amount) AS total_revenue 
      FROM analytics.sales.orders o 
      JOIN analytics.crm.customers c ON o.customer_id = c.id 
      JOIN analytics.geography.regions r ON c.region_id = r.id 
      WHERE o.order_date >= DATE '2025-10-01' 
        AND o.order_date < DATE '2026-01-01' 
      GROUP BY r.region_name 
      ORDER BY total_revenue DESC
    
  2. 指标一致性: 只需定义 net_revenue 一次,所有客服人员、仪表盘和笔记本都将沿用。财务部门确认的数字就是客服人员向客户报价的数字。无需再费力调和三个“真相”。

  3. 数据治理: 优秀的语义层会在查询时强制执行基于角色的访问控制,并为每个结果提供血缘关系。Snowflake 的 Cortex Analyst 遵循基于角色的访问控制;Microsoft 的 Fabric Data Agents 遵循 Purview 策略和行/列级安全机制;AWS Context 通过 IAM 和 Lake Formation 使每个代理查询都具备身份感知能力。代理不会意外泄露用户无权访问的列,并且每个答案都带有“数据来源”的追踪信息。这正是趣味演示与合法合规、可正式发布的产品之间的区别。

  4. 成本控制: 当定义集中在一个受控的位置时,您无需在每个提示中重复定义,并且可以将更多问题保留在受控的业务逻辑中,而不是退化到成本高昂且不可预测的原始表行为。Databricks 现在将其封装在带有硬性支出上限的 Unity AI Gateway 中;更好的语义覆盖率直接意味着更低、更稳定的账单。

  5. 可解释性: 由于指标、关系和已验证的查询都是明确的,系统可以展示其工作原理。这使得“自信”的代理转变为值得信赖的代理,尤其是在代理从回答问题转向执行操作(调整价格、下单、处理工单)时。

  6. 互操作性: 只需定义一次指标,即可将其提供给 Claude、ChatGPT、您的内部代理和 Power BI,无需为每个平台单独编写代码。

从传统语义层到上下文语义层

最早语义层很薄,薄到可以说就是数据操作接口,以至于很多企业并没有明确提出语义层。此时语义层管理对象是受控的指标 ,例如“净收入”、“活跃客户”、“客户流失率”和“地区”等概念被统一定义并作为指标、维度和关系映射到您的物理表中,从而确保每个用户(无论是人还是机器)都能获得相同的结果。
在AI时代出现了上下文层上下文层 比语义层范围更大,包含两个层面的含义:

  1. 运行时上下文:它是模型每次调用时你提供给模型的信息,例如当前对话、长期记忆的内容以及可以使用的工具。Anthropic 将这种上下文的构建称为“上下文工程”。
  2. 企业上下文层:它是代理持续可用的、跨场景的数据与知识源。企业上下文层是代理在任何地方都依赖的唯一数据源。上下文层比语义层更丰富,它将上下文描述为由六种元数据类型组成的多层结构:
    • 技术元数据 ——模式、数据类型、安全标签(IAM),直接来自源系统。
    • 语义元数据 ——业务本体、术语表、分类。
    • 操作元数据 ——血缘关系、数据概况、使用统计、质量评分。
    • 关系 ——有形资产与商业理念之间的联系。
    • 信任元数据 ——指示数据是否来自经过认证的权威来源的信号。
    • 代理指南 ——非结构化的“代理自述文件”:聚合之前要应用的过滤器、要遵循的连接路径、模式中不可见的注意事项。

上下文回答了一个更广泛的问题:代理需要了解一切,才能正确、安全地使用我们的数据。这包括语义层的定义以及周围的架构,诸如哪些数据是可信且经过认证的,数据来自哪里(血缘关系),谁可以查看数据(权限),数据的形式(模式和数据类型),表之间的关系。

目前,业内将语义层的概念逐渐融入到上下文层,从而形成了一个全新的语义层:上下文语义层。
对它的基本共识如下:

上下文语义层 = 受管指标 + 本体 + 知识图谱 + 内存 + LLM 编排。

不加说明,本专辑的语义层都是指上下文语义层。

大型企业的语义层架构洞察

我们先来洞察以下几家科技公司(Uber、Airbnb、LinkedIn、Pinterest)的“语义层“架构。
需要说明的是并非所有公司都公开展示统一的语义层,但他们都或多或少具备语义能力组件,例如指标目录、统一计算引擎等。

Uber

在 Uber,语义层实际上已经成为 机器的控制平面 ,而不仅仅是分析师的控制平面。

这里最有价值的证据是,他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI架构师@涛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值