惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
量子位
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
博客园_首页
D
Docker
博客园 - 叶小钗
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
F
Fortinet All Blogs
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
腾讯CDC
罗磊的独立博客
雷峰网
雷峰网
博客园 - Franky

博客园 - AlfredZhao

Oracle Property Graph 结合 In-Memory 的性能验证 sed 一条命令批量替换 SQL 文件路径 执行新项目 python 脚本前,先用 conda 建一个独立环境 Git 提交代码:从报错到 SSH 免密推送 GitHub 克隆他人私有仓库:从授权到下载 理解Oracle Property Graph:以账户转账示例完成图特性最小测试 APEX 无法分配 SH 用户?一个存储过程轻松解决 SH 中文化样例数据使用手册 Oracle 排除非业务表:一份能直接抄的“全量过滤”SQL 进程都杀了,为什么 `netstat` 还能看到端口? MAC 空间告急?Codex 的 156GB 缓存垃圾,这样清! 人工清理问题数据:先查准,再删除 TK(Trusted Knowledge)为何而生? 使用快捷键快速切换 Mac 外接显示器模式 客户环境 Nginx 配置:流式报表与超时排查要点 Security Central:数据库安全的统一控制与运营平台 Palantir 眼中的一次“订单可能延期”,如何成为实时决策的起点? 从一条订单消息到 Bronze、Silver、Gold:我的第一次 Kafka + Lakehouse 实验 UUID v4 与 v7:同样是唯一 ID,为什么数据库表现可能完全不同? 用 crontab 给 LLM 使用量装上“监控眼” DeepSeek 与 GPT API 价格调整:该关注什么? 查看 Oracle 数据库中的定时任务执行情况 Codex 专用用户登录后自动进入默认项目目录 Mac 小技巧:用方向键优雅处理超长网址 Oracle GDD 与 Raft:别把共识机制和数据主权混为一谈 在 Oracle APEX 中用 BGE_BASE 生成向量:从模型导入到历史数据更新 行业人+AI:真正有价值的四个关键要素 知识库文件解析失败:一次由 Domain Index 引发的定位记录 Unicode 码位数、UTF-8 字节数、中英文差异和 Oracle 长度别再混淆了 Skill 的使用:从路径到能力边界
切换 Embedding 模型时,千万别忽略历史向量维度
AlfredZhao · 2026-08-19 · via 博客园 - AlfredZhao

2026-08-19 07:08  AlfredZhao  阅读(0)  评论()    收藏  举报

笔者最近在测试知识库系统时,因原 Embedding 模型不可用而切换了新模型。看似只是更换模型,却因为历史向量仍在数据库中,导致文档重新解析后依然报错。

01 | 问题关键:向量维度不一致

不同 Embedding 模型输出的向量维度可能不同。例如,笔者测试的旧模型输出过 2560 维,新模型为 1536 维;而最终排查发现,历史记忆表中还存有 2048 维向量。

当新旧向量混在同一套问答链路中,就可能触发维度不匹配错误。

02 | 重新解析文档为何无效

笔者多次重新解析文档仍报错。原因是重新解析仅影响文本向量表 kbot_biz_txt_embedding,但旧的记忆向量还保存在 kbot_md_memory_entry 中。

可先检查两张表的向量维度:

SELECT
 VECTOR_DIMENSION_COUNT(memory_vector) AS dimensions,
 VECTOR_DIMENSION_FORMAT(memory_vector) AS element_format,
 COUNT(*) AS row_count
FROM kbot_md_memory_entry
WHERE memory_vector IS NOT NULL
GROUP BY
 VECTOR_DIMENSION_COUNT(memory_vector),
 VECTOR_DIMENSION_FORMAT(memory_vector)
ORDER BY dimensions, element_format;
SELECT
 VECTOR_DIMENSION_COUNT(embedding) AS dimensions,
 VECTOR_DIMENSION_FORMAT(embedding) AS element_format,
 COUNT(*) AS row_count
FROM kbot_biz_txt_embedding
WHERE kb_id = 41
GROUP BY
 VECTOR_DIMENSION_COUNT(embedding),
 VECTOR_DIMENSION_FORMAT(embedding)
ORDER BY dimensions, element_format;

03 | 清理旧记忆前务必确认

还可以直接查看两张表:

select * from kbot_biz_txt_embedding;
select * from kbot_md_memory_entry;

确认 kbot_md_memory_entry 存在过时维度的历史向量后,才谨慎清理:

truncate table kbot_md_memory_entry;

笔者清空该表中的旧信息后,问答恢复正常,不再报错。

切换 Embedding 模型时,除了重新解析文件,更要检查历史记忆向量是否仍使用旧维度。只有相关向量维度统一,知识库问答才能稳定运行。

关注我,和AI一起成长~