语义 ID 页面 — 整理你的概念词汇表 - Entity Enricher 文档

语义 ID 页面

每一次解析语义 ID的增强,要么复用你的组织已知的某个概念,要么生成一个新概念。语义 ID 页面正是让这份不断增长的词汇表变得可见的地方:浏览它、衡量两个条目究竟有多接近、手动添加词条、排查那些落到阈值之下的近似重复项、淘汰不再需要的内容,并把整套词汇表迁移到另一个嵌入模型。

打开页面

它位于侧边栏的 /semantic-ids,只有当你的组织已配置嵌入模型、且至少有一个模式带有语义 ID 时才有用——概念由增强创建,而非由该页面创建。

谁可以执行哪些操作

  • 编辑器——浏览、对比、导出、检查文本、添加概念、删除概念。
  • 所有者 / 管理员 — 还可通过导入创建概念、清除整个概念类型,以及迁移嵌入模型。

解读概念表格

每一行代表一个概念:它的规范文本(首次创建它的身份文本)、它的概念类型(它所在的空间 — 默认为实体类型名称)、有多少条记录使用它,以及它的创建时间。可按文本、按任意数量的概念类型,或按最低使用次数进行筛选,以找到值得关注的条目;导出视图将精确下载筛选器当前显示的内容。

语义 ID 页面:左侧为概念表,右侧为选中的概念
选中某一行后,相似度列将变为与该行的相似度测量值,并在右侧打开该概念。

相似度只在单个空间内计算。 向量仅在相同的概念类型嵌入模型内才可比较。位于所选概念空间之外的行显示 ,意思是“不可比较”——绝不是“0%”。

添加词条:整理循环

有时数据尚未到来,你就已经知道词汇表了——一份菜品、状态或产品系列清单。整理栏正是为录入这类清单而设计的:先将范围限定到某个概念类型——范围会写入页面地址,因此 /semantic-ids/<concept type> 就是直达该切片的链接——然后重复输入值 → 检查 → 添加按回车执行检查,再按一次回车即可添加,之后输入框会自动清空并保持焦点,因此录入五十个词条只需几分钟,全程无需使用鼠标。

整理栏提示所输入的值没有匹配项,可以添加
没有任何概念在阈值以上解析到这段文本,因此添加概念已启用。表格现在按与你所输入内容的相似度对所有概念排序。

「检查」是对真实解析阶梯的一次试运行——与增强所走的阶梯完全相同——因此它给出的结论并非估算。而且既然你已经为这个结论付过费,它同时充当重复项防护:当已有概念以不低于阈值的相似度覆盖你的文本时,添加概念 将保持禁用。

整理栏提示所输入的值已存在,添加操作被禁用
完全命中根本不产生任何费用——不会调用模型。近似匹配则会报告现有概念及其得分。

这种拒绝是有意为之:阈值以上的孪生条目永远无法在解析中胜出,还会让后续匹配在两个条目之间不可预测地分散。输入框旁的阈值滑块决定了检查时这条界线的位置——调高更严格,调低则更积极地合并。

词汇表也不必从一次扩充开始:新建概念类型…(位于页面工具栏,编辑者及以上角色可用)用于命名类型,并选择其概念所在的嵌入模型 —— 默认使用你所在组织的模型。整理栏会立即限定到该类型,而该类型会随你添加的第一个概念加入词汇表;已存在的类型将保留其模型,因为在模型之间移动词汇表正是迁移功能的用途。

查找阈值以下的重复项

高于阈值的内容已经为你合并完毕。真正值得关注的是刚好低于阈值的情况——近得可疑,却又不足以被合并。重复项视图列出的正是这一区间,滑块可以调宽或调窄它。

重复项视图,列出相似度略低于阈值的概念对
同一相似度区间,结论却截然不同:一道多宝鱼菜品的两个名称,以及两款确实不同的巧克力甜点。页面负责找出候选项,判断由你来做。

对比 → 会跳回表格并选中该概念,让你在决定之前先看看它附近还有什么。你认定为真正重复的一对,其实是在提示生成它的属性阈值:在架构编辑器中调低该阈值,后续的增强就会自动把这一对合并。使用次数则告诉你数据实际上更偏好其中哪一个。

查看单个概念

右侧面板显示该概念的 ID(可复制——这是数据库关联所依据的字段)、规范化文本、其背后的嵌入模型,以及解析到该概念的记录。所选概念是页面地址的一部分,因此地址栏中的 URL 就是可直接返回该概念的链接——可分享给同事,也值得记录在工单中。两种视图可将其置于相邻概念之中进行查看。

轨道视图:相邻概念按与其相似度相等的半径排布,阈值以虚线圆表示
轨道图——与中心的距离就是相似度,因此虚线圆环就是阈值本身:落在圈内的一切都会解析到这个概念。
3D 概念图:整个概念空间的 UMAP 布局,按测得的相似度着色
概念图(3D)——需手动开启的整体空间布局。颜色才是度量值;位置只是暗示簇的形状,因此不会绘制阈值球面。

为何位置并不代表真相

把 1536 个维度压平成 3 个必然无法保持距离,而且这种布局会夸大簇的紧密程度。两种视图都用同一套相似度色阶为每个点着色,所以要看颜色,而不是间距。一次会话中的第一张图需要几秒钟完成布局;之后的都是瞬时的。

关联记录

每条关联记录都会显示它解析到此处时的得分。 表示该 ID 是随输入传入并直接透传的,因此从未进行过任何比较——也就是语义 ID 指南中所述的免费且无歧义的路径。

导入与导出词汇表

导入并解析会将整列 CSV 数据送入同一套逐级流程,并为每一行标注将会发生的处理结果——文件大小不受限制;大文件会以每批 1000 条的方式解析,并实时显示进度。文件在你的浏览器中解析,只有值本身会被发送。

导入对话框显示值 CSV 中每一行的结果:完全一致、已匹配、将被创建
仅匹配的运行不会写入任何内容,因此它忠实预览了下一次增强在相同值上会做什么。
结果这意味着什么
exact规范化后的相同文本已存在——免费,无需调用模型。
matched另一种表述以高于阈值的相似度解析到了某个已有概念。
would_mint没有足够接近的匹配项;在此处进行增强会创建一个新概念。
minted同一情况,但已开启创建——该概念现已存在(仅限所有者)。

已解析的行可单独下载为 CSV,因此导入也可以纯粹用作审计:我们的 900 个供应商名称中,哪些已经存在,哪些会开出一个新身份?导出则反向运作,并以导出时所用的筛选条件命名文件,因此一整个文件夹的导出都能自我说明。

删除概念

这里的删除具有多数数据删除操作所不具备的安全性:词汇表会自行重建,因为下一次增强只要需要就会重新生成。回不来的是与你已存储的 ID 之间的收敛性,对话框会在你确认前用真实数字把这一点说清楚。

删除确认对话框,显示有多少记录、模式和已同步数据库会受到影响
记录会保留其已有的 ID;对同一事物的新增强会生成另一个 ID。下游数据库会将其视为一条新行。

发生这类变更后,保留旧概念才是冒险之举,而非稳妥之选:由新关键字段组成的身份仍可能落在旧向量的阈值范围内,被悄悄吸收,最终留给你一批两头都不代表的 ID。

更换嵌入模型

来自两个不同模型的向量无法相互比较,因此切换模型意味着要为每个概念重新生成嵌入向量。一旦已存在概念,此迁移就是唯一受支持的做法——这也正是组织的嵌入模型设置不会自行变更的原因。

嵌入模型迁移对话框,显示源模型、其概念数量以及目标模型选择器
一次迁移一个嵌入空间。概念 ID 永不改变,因此记录、实体、导出和数据库同步在整个过程中始终有效。

先做试运行

预览会报告重新嵌入的成本,以及哪些概念对可能碰撞——在新空间中彼此落入阈值范围内,从而开始被解析为同一个。它测量的是现实可能的候选对,而非所有配对,并会明确说明这一点。

无需暂停,也无需盯着窗口守候

在一旁构建新向量的同时,增强仍会在旧空间中继续解析;期间新生成的概念会由后续一轮处理补上。切换在最后一步一次性完成,同时也会切换你所在组织的默认嵌入模型。中断它并无害处——重新开始会从中断处继续。

本页面的开销

检查、添加和导入与其他嵌入用量一样计费,而完全命中不产生费用,因为它们根本不会到达模型。浏览、对比、轨道图、3D 图、导出和删除均免费。一天的交互式支出会合并为额度记录中的一行,这样账目才保持可读,而不会被一堆不足一分钱的零头塞满。