前言
过去两年,GenAI(生成式人工智能)的落地应用一直是行业热点话题,而 RAG (检索增强生成,Retrieval-Augmented Generation)更是每每谈及的关键技术。各大数据库厂商纷纷积极探索数据库内实现或集成向量功能,或者打造一款向量数据库,并将向量数据库与 AI 大语言模型 LLM 相结合,推出创新的 RAG 解决方案。
或许有人会说,当更好的大模型出现时,向量数据库就有些鸡肋了,非也。简单的说,LLM 是属鱼的,大语言模型能够存储的信息有限,需要向量数据库帮助持久化记忆,而且大语言模型占用的计算资源和存储资源在现阶段还非常昂贵,需要一个外置“大脑”来持久化存储语料,向量数据库就是这个“大脑”的不二之选。此外,鉴于信息安全及合规要求,许多 RAG 应用需要进行私有化部署。以知识库问答系统为例,我们需要将大量内部文档导入到系统中,并且还会不断"投喂"新的资料,而这些内容都将转化为向量数据存储到数据库中。RAG 的内容输入格式不应仅局限于 Markdown 或 PDF,以后还将支持图片、音视频等形式。随着向量数据库相关技术发展,其向量搜索能力和向量数据库的性能将得到显著提升,这也将极大地助力相关应用的生产运行效率。
TiDB:拥抱 AI 向量搜索
TiDB 是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,兼容 MySQL 协议和 MySQL 生态,支持在本地和云上部署。近几年,TiDB 在向量数据库方面也有所成就。
从 TiDB v3 开始,TiDB 引入 TiFlash 列式存储组件,为 TiDB 集群提供高性能数据分析能力。随着 TiDB v6.0 版本发布,TiFlash 正式开源。通过利用 CPU 的向量扩展指令集,TiFlash 的向量化计算引擎获得了卓越的性能提升。
2024 年 6 月,TiDB Cloud Severless 率先支持向量搜索特性。2024 年 11 月,本地部署版本 TiDB 8.4.0-DMR 发布,支持向量搜索功能。紧接着,2024 年 12 月,TiDB 8.5.0-LTS 发布,提升向量距离函数性能,提升数据更新场景下向量搜索的查询性能,并新增关于构建向量索引 CPU 使用率的监控指标。
TiDB 支持向量搜索,引入了向量数据类型和多个向量函数,支持存储高达 16383 维的向量。TiDB 目前支持 HNSW (Hierarchical Navigable Small World) 向量搜索索引算法。HNSW 是当前最流行的向量搜索索引算法之一,它性能良好,而且准确率相对较高,特定情况下可达 98%。
2025 年,如果你有新装 TiDB 或者升级原有 TiDB 的计划,强烈推荐使用 2025 年 1 月 17 日发布的 TiDB 8.5.1。TiDB v8.5.1 是目前最新的长期支持版本,尽管它仍然支持 CentOS 7 操作系统,但由于 CentOS 7 生命周期已经结束,考虑到未来的兼容性和安全性问题,强烈建议迁移到更高版本的操作系统,如 Rocky Linux 9。TiDB v9 尚未发布,但依据发版计划,TiDB v9 系列的 LTS 版本要等到今年下半年才会与大家见面。
示例:
本地环境准备 CentOS 7 系统。
[root@el7 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@el7 ~]# uname -a
Linux el7.shawnyan.cn 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
安装 TiDB 8.5.1 数据库集群。
[root@el7 ~]# mysql -h el7 -P 4000 -u root -e 'select tidb_version()' -E
*************************** 1. row ***************************
tidb_version(): Release Version: v8.5.1
Edition: Community
Git Commit Hash: fea86c8e35ad4a86a5e1160701f99493c2ee547c
Git Branch: HEAD
UTC Build Time: 2025-01-16 07:38:34
GoVersion: go1.23.4
Race Enabled: false
Check Table Before Drop: false
Store: tikv
[root@el7 ~]#
在 TiDB 中创建向量表,写入向量数据。
CREATE TABLE embedded_documents (
id INT PRIMARY KEY,
document TEXT, -- document 列存储文档的原始内容
embedding VECTOR(3) -- embedding 列存储文档的向量表示
);
INSERT INTO embedded_documents VALUES
(1, 'dog', '[1,2,1]'),
(2, 'fish', '[1,2,4]'),
(3, 'tree', '[1,0,0]');
为向量表创建 TiFlash 副本。
ALTER TABLE embedded_documents SET TIFLASH REPLICA 1;
创建 HNSW 向量搜索索引。
ALTER TABLE embedded_documents
ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) USING HNSW;
执行向量搜索查询,计算表中各向量与 [1,2,3]
的余弦距离 (vec_cosine_distance
)。
SELECT id, document,
vec_cosine_distance(embedding, '[1,2,3]') AS distance
FROM embedded_documents
ORDER BY distance
LIMIT 3;
预期输出。
+----+----------+---------------------+
| id | document | distance |
+----+----------+---------------------+
| 2 | fish | 0.00853986601633272 |
| 1 | dog | 0.12712843905603044 |
| 3 | tree | 0.7327387580875756 |
+----+----------+---------------------+
3 rows in set (0.00 sec)
目前,TiDB 支持 AI 框架 Langchain 和 LlamaIndex,基于这些框架,你可以使用 TiDB 向量搜索轻松构建 AI 应用程序。
PingCAP 还提供了 TiDB Vector SDK for Python 开源项目,该项目为 SQLAlchemy、Peewee、Django 等 Python ORM 提供了向量搜索功能,并提供了一些代码示例以供参考。
项目地址:https://github.com/pingcap/tidb-vector-python
DeepSeek:春节档顶流 + 神秘的东方力量
DeepSeek(深度求索)是中国人工智能公司 杭州深度求索人工智能基础技术研究有限公司 开发的一系列大语言模型(LLM),旨在通过高性能、低成本的 AI 技术推动行业变革。其产品覆盖自然语言处理、推理任务、代码生成、数学问题解决等多个领域,提供从客户服务到学术研究的全场景解决方案。截至 2025 年,DeepSeek 已推出多个标志性模型,并在全球 AI 市场引发广泛关注,被外媒称神秘为“神秘的东方力量”。
(DeepSeek 谷歌指数,数据来源:https://trends.google.com/trends/explore?date=today%201-m&q=DeepSeek&hl=en-US)
DeepSeek 的模型家族主要包括:高效语言处理的标杆 V 系列(V2、V3),和推理任务的王者 R 系列(R1),分别针对不同场景设计。
DeepSeek V2 采用混合专家架构(MoE),总参数2360亿,但每个Token仅激活210亿参数。其优势在于低成本训练(比前代节省42.5%成本)和高推理速度吞吐量提升5.76倍),适合多语言翻译、内容生成等大规模任务。DeepSeek V3 是 V2的升级版,总参数扩展至6710亿,激活参数370亿。通过FP8混合精度训练和多Token预测技术,生成速度达每秒60 Token(提升3倍),支持128K上下文长度,综合性能接近GPT-4o和Claude-3.5-Sonnet。适用场景包括长文本处理、自动化研究写作等。
DeepSeek R1,基于稠密Transformer,强化学习(RL)与监督微调(SFT)结合,专注于逻辑链推理。在数学、编码等任务中性能对标OpenAI o1,但API成本仅为后者1/30。适用于学术研究、复杂数据分析、竞争性考试辅导等需要深度逻辑分析的领域。例如,其开源版本R1-Distill-Qwen-32B在基准测试中超越OpenAI o1-mini,成为高性价比选择。
DeepSeek 所有模型均以MIT协议开源,允许商用及二次开发。支持本地部署,保障数据隐私,并提供蒸馏版本适配不同算力需求。蒸馏版本是相对于全尺寸模型而言,提供的较小尺寸模型,更适合企业内部部署,极大地降低了 LLM 落地成本。
(DeepSeek 组织概览,数据来源:https://next.ossinsight.io/analyze/deepseek-ai?period=past_28_days#overview)
DeepSeek 成立于2023年7月,由量化投资巨头幻方量化孵化,初期聚焦代码生成(DeepSeek-Coder)和数学问题解决(DeepSeek-Math),迅速在技术社区积累口碑。2024年12月,发布V3模型,性能比肩国际顶尖闭源模型,引发Meta等企业技术恐慌。2025年1月,R1模型开源,推动推理任务技术民主化,纳斯达克指数因市场格局变动下跌3%。
DeepSeek 的低成本策略冲击硬件市场,被喻为“AI界拼多多”。随着 DeepSeek V3 和 R1 的广泛应用,开源生态的进一步深化和计算资源的高效利用,DeepSeek 有望成为国产 AI 技术全球化的标杆,推动从学术到商业的全面革新。
国产平台 Gitee AI 联合沐曦首发全套 DeepSeek R1 蒸馏模型,模型部署在国产沐曦曦云 GPU 上。目前,开发者可免费使用。2 月 5 日,DeepSeek-V3 满血版(671B)在国产沐曦 GPU 可以成功运行在沐曦训推一体 GPU 之上,可以感受体验。
新一代 AI 驱动的开源开发者平台 GitCode,近日重磅上线国产大模型专区,引入 DeepSeek 全家桶,并提供模型本地下载功能。GitCode 已正式上线基于昇腾 GPU 的 DeepSeek Space 服务测试版,即将推出基于昇腾 GPU 的 DeepSeek 满血版 API 服务。
最新消息:deepseek-chat 模型(已经升级为 DeepSeek-V3)优惠期至北京时间 2025 年 2 月 8 日 24:00,期间 API 调用享历史价格,优惠结束后将按每百万输入 tokens 2 元,每百万输出 tokens 8 元计费。deepseek-reasoner 模型为新模型 DeepSeek-R1,按每百万输入 tokens 4元,每百万输出 tokens 16元计费。
TiDB Autoflow 与 DeepSeek 结合构建知识库问答系统
构建一个好用、易用、高效、智能的知识库问答系统,对于企业和个人而言至关重要。一个理想的知识库问答系统能够通过对用户提出的问题进行精准拆分、深度解析,快速提取关键意图信息,并在庞大的知识库中进行高效匹配,最终以文字、表格、图片等多种形式生成清晰、准确的答案。它不仅能够帮助用户快速定位所需信息,还能提升工作效率和决策质量。
AutoFlow 是 PingCAP 开发的一款开源工具,使用 TiDB 向量存储构建图谱知识库(GraphRAG:Knowledge Graph RAG)。它集成了 LlamaIndex 和 DSPy 框架,支持复杂的对话搜索和知识图谱编辑功能。用户只需使用简单的 JavaScript 代码片段,即可将对话搜索窗口嵌入到他们的网站中,从而显著提升用户体验。
AutoFlow 现支持多个大语言模型 LLM 提供商,具体有:
- OpenAI
- Google Gemini
- Vertex AI
- Amazon Bedrock
- Gitee AI
- OpenAI-Like
- OpenRouter
- Ollama
- vLLM
- Xinference
- Azure OpenAI
- Novita AI
- DeepSeek
以 DeepSeek 为例,它提供了高性能的聊天模型 deepseek-chat。用户可以通过简单的配置调用 DeepSeek-V3 模型:
{
"api_base": "https://api.deepseek.com/v1",
"is_chat_model": true
}
或者,通过添加参数 model='deepseek-reasoner'
来指定使用 DeepSeek-R1 模型,从而得到“深度思考”的反馈。
部署 AutoFlow
AutoFlow 支持本地部署,以下是使用 Docker Compose 进行部署的简要步骤。
具体细节可参考官方文档 https://tidb.ai/docs/deploy-with-docker 或 用 Autoflow + Gitee AI 搭建本地知识库问答机器人
- 克隆 AutoFlow 的代码仓库。
git clone https://gitee.com/shawnyan/autoflow.git --depth=1
- 修改配置文件,填入 TiDB 的连接信息。
cd autoflow
cp .env.example .env
vi .env
# 你可以通过执行以下命令生成新的密钥
# $ python3 -c "import secrets; print(secrets.token_urlsafe(32))"
SECRET_KEY="PmxtX1SkbycbT74bP4jA1EHOP2ylDduCMMhyUgbKXDM"
TIDB_HOST=<host>.prod.aws.tidbcloud.com
TIDB_USER=<user>
TIDB_PASSWORD=<password>
TIDB_DATABASE=tidbai_test
# 本地部署环境需要将 TIDB_SSL 设置为 false
TIDB_SSL=false
- 连接到 TiDB 集群,并创建
tidbai_test
数据库。
MySQL [(none)]> select version();
+--------------------+
| version() |
+--------------------+
| 8.0.11-TiDB-v8.5.1 |
+--------------------+
1 row in set (0.00 sec)
MySQL [(none)]> create database tidbai_test;
Query OK, 0 rows affected (0.03 sec)
- 初始化数据,并指定管理员邮箱。(若未指定,默认为 admin@example.com)
docker compose -f docker-compose-cn.yml run backend /bin/sh -c "alembic upgrade head"
docker compose -f docker-compose-cn.yml run backend /bin/sh -c "python bootstrap.py --email admin@shawnyan.cn"
预期输出,提示了管理员的邮箱和密码:
[+] Creating 1/0
✔ Container tidb-ai-redis-1 Running 0.0s
Bootstrapping the application...
/usr/local/lib/python3.11/site-packages/pydantic/_internal/_config.py:341: UserWarning: Valid config keys have changed in V2:
* 'orm_mode' has been renamed to 'from_attributes'
warnings.warn(message, UserWarning)
User 0194db19-f970-72c6-bf2e-7c3808daaae8 has registered.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[IMPORTANT] Admin user created with email: admin@shawnyan.cn and password: Q6x-tcMtRtWYkrh4MbZACQ
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
Default chat engine created.
Bootstrapping completed.
- 使用内置的本地嵌入重新排序器(embedding reranker),启动知识库服务。
docker compose -f docker-compose-cn.yml --profile local-embedding-reranker up -d --force-recreate
预期输出:
[+] Running 11/11
✔ local-embedding-reranker Pulled
✔ a2318d6c47ec Pull complete
✔ 334af29dc78e Pull complete
✔ d534b3df1e9e Pull complete
✔ 95b5b248c442 Pull complete
✔ 98d167576f7c Pull complete
✔ b43b2b497b79 Pull complete
✔ cd8c0f569963 Pull complete
✔ 53e2b092dd7d Pull complete
✔ aefda8f97784 Pull complete
✔ 927b67b93920 Pull complete
[+] Running 5/5
✔ Container tidb-ai-redis-1 Started
✔ Container tidb-ai-local-embedding-reranker-1 Started
✔ Container tidb-ai-background-1 Started
✔ Container tidb-ai-backend-1 Started
✔ Container tidb-ai-frontend-1 Started
- 访问本地 AutoFlow 服务。
现在,你可以打开浏览器访问本地 AutoFlow 服务,访问链接为:http://localhost:3000。
- 注册并登录 Gitee AI 平台,获取 API Key 访问令牌。
- 配置 AutoFlow 应用。
配置 LLM 模型。选择 Gitee AI 服务商,添加 DeepSeek 模型,例如 DeepSeek-V3
模型。
配置 Embedding 模型。创建知识库。
添加数据来源,可添加文件、网页或者网站地图。这里我们添加 TiDB v8.5 发版说明的网页作为数据源。
接下来,需要等待一段时间,应用会基于以上配置创建索引。最后,添加聊天引擎,设置用户对话界面。
- 体验问答系统
至此,我们已经完成了 TiDB + DeepSeek + AutoFlow 应用的全部配置,可以开启智能对话之旅。
结语
TiDB 是国产数据库中的佼佼者,以其卓越性能、安全可靠和强大功能,赢得了广泛的赞誉和应用。DeepSeek 是国产大模型的“地震级”里程碑,更是以其突破性的技术创新,大幅降低训练成本,普通用户可以使用公版卡或者国产 GPU 来替代 A100 这类高端显卡,完成项目落地,跨越式实现降本增效。通过将 TiDB、AutoFlow 以及 DeepSeek 进行深度整合,我们能够打造出一个完全自主可控的、纯国产的知识库问答系统解决方案。随着 GenAI 和 LLM 技术的持续创新发展,以及应用场景的不断拓展,知识库问答系统将迎来更多落地实践。我们期待 TiDB 和 DeepSeek 有更丰富的应用场景和更广阔的市场空间,为更多企业和用户提供高效、智能、可信的解决方案。