ai native database

AI 原生数据库设计:向量检索与结构化查询的融合

1. 从传统数据库到 AI 原生数据库 传统关系数据库为结构化数据设计,以行/列为基本单位,通过 B+ 树索引加速点查询和范围查询。AI 时代新增了一类核心需求:向量检索——在高维空间中寻找与查询向量最相似的 Top-K 条记录。 AI 原生数据库(AI-Native Database)将向量检索与结构化查询深度融合,支持: SELECT * FROM articles WHERE category = 'AI' ORDER BY embedding <-> query_vector LIMIT 10 语义相似性过滤、混合排序、元数据 + 向量联合查询 代表系统:Pinecone、Weaviate、Chroma、Qdrant、Milvus、pgvector(PostgreSQL 扩展)、StarRocks(向量化)、ClickHouse(向量化)。 2. 存储引擎架构 2.1 整体架构 ┌──────────────────────────────────────────────────┐ │ SQL / GraphQL / REST API │ ├──────────────────────────────────────────────────┤ │ Query Optimizer & Planner │ │ ┌─────────────┐ ┌─────────────┐ ┌────────┐ │ │ │Scalar Filter│ │ Vector Index│ │Sort/Max│ │ │ │ Planner │ │ Planner │ │ Planner│ │ │ └─────────────┘ └─────────────┘ └────────┘ │ ├──────────────────────────────────────────────────┤ │ Execution Engine (Vectorized) │ ├──────────────────────────────────────────────────┤ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │ │ Vector │ │ Row │ │ Column │ │ │ │ Index │ │ Store │ │ Store │ │ │ │(HNSW/IVF)│ │ (Pilosa) │ │(Arrow/Parquet)│ │ │ └──────────┘ └──────────┘ └──────────────┘ │ ├──────────────────────────────────────────────────┤ │ Distributed Storage Layer │ │ ┌────────────────────────────────────────────┐ │ │ │ S3 / HDFS / Local SSD / Remote Memory │ │ │ └────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────┘ 2.2 向量存储格式 from dataclasses import dataclass, field from typing import Optional import numpy as np @dataclass class VectorRecord: id: str vector: np.ndarray # 原始向量(float32/float16) metadata: dict = field(default_factory=dict) version: int = 0 # MVCC 版本号 deleted: bool = False def to_bytes(self) -> bytes: """序列化:4字节维度 + 原始向量 + 元数据JSON + 版本""" dim = len(self.vector) vec_bytes = self.vector.astype(np.float32).tobytes() meta_bytes = json.dumps(self.metadata).encode("utf-8") header = struct.pack("<i", dim) version_bytes = struct.pack("<i", self.version) deleted_byte = b"\x01" if self.deleted else b"\x00" return header + version_bytes + deleted_byte + vec_bytes + meta_bytes @classmethod def from_bytes(cls, data: bytes) -> "VectorRecord": dim, version = struct.unpack("<ii", data[:8]) deleted = data[8] == 1 vec_bytes = data[9:9 + dim * 4] meta_bytes = data[9 + dim * 4:].decode("utf-8") return cls( id="", # id 需要从索引层获取 vector=np.frombuffer(vec_bytes, dtype=np.float32), metadata=json.loads(meta_bytes), version=version, deleted=deleted ) class VectorPage: """向量分页存储单元""" def __init__(self, page_size: int = 4096): self.page_size = page_size self.records: dict[str, bytes] = {} # id -> serialized bytes self.current_size = 0 def add(self, record: VectorRecord) -> bool: record_bytes = record.to_bytes() if self.current_size + len(record_bytes) > self.page_size: return False self.records[record.id] = record_bytes self.current_size += len(record_bytes) return True 3. 向量索引算法 3.1 HNSW(Hierarchical Navigable Small World) HNSW 是当前最流行的向量索引算法,在召回率和延迟之间取得优秀平衡。 ...

2026-06-25 · 8 min · 1597 words · 硅基 AGI 探索者
embedding model guide

Embedding 模型选型指南:bge vs e5 vs OpenAI vs Cohere

前言 Embedding 模型是 RAG(检索增强生成)系统和语义搜索的基石。一个优秀的 Embedding 模型可以让你的向量数据库"更聪明"地理解语义,大幅提升下游 LLM 的回答质量。2026 年,Embedding 模型领域迎来了多语言、长文本和多粒度的重要进展。本文将全面对比四款主流 Embedding 模型,帮助你为 RAG 系统选择最合适的向量引擎。 一、为什么 Embedding 选型如此重要? 1.1 Embedding 在 RAG 中的角色 用户查询 → [Embedding 模型] → 查询向量 ↓ 知识库文档 → [Embedding 模型] → 文档向量 → 向量数据库 ↓ 向量相似度检索 → Top-K 结果 ↓ [LLM] → 生成回答 Embedding 模型决定了检索的质量上限。 即使 LLM 再强大,如果检索阶段召回的文档不相关,最终回答也会大打折扣。这就是所谓的"垃圾进,垃圾出"(Garbage In, Garbage Out)。 1.2 好的 Embedding 模型的标准 标准 说明 重要性 语义区分度 能区分近义但不同的概念 ⭐⭐⭐⭐⭐ 多语言一致性 同一概念在不同语言下向量接近 ⭐⭐⭐⭐ 长文本处理 支持段落/篇章级 Embedding ⭐⭐⭐⭐ 多粒度 同时支持短查询和长文档 ⭐⭐⭐⭐ 推理速度 编码延迟低 ⭐⭐⭐⭐ 维度适中 存储和检索效率高 ⭐⭐⭐ 开箱即用 无需复杂微调 ⭐⭐⭐ 二、参评模型概览 模型 开发商 参数量 向量维度 最大输入 多语言 开源 BGE-M3 智源研究院 568M 1024 8192 ✅ 100+ 语言 ✅ E5-Mistral-7B Microsoft 7B 4096 32768 ✅ 100+ 语言 ✅ OpenAI text-embedding-3-large OpenAI 未知 3072 (可截断) 8191 ✅ ❌ Cohere embed-v4 Cohere 未知 1536 512 ✅ 100+ 语言 ❌ GTE-Qwen2-7B 阿里云 7B 3584 32768 ✅ ✅ stella-v5-1.5B PDLN 1.5B 1536 16384 ✅ ✅ 三、基准测试对比 3.1 MTEB 排行榜(主流基准) MTEB(Massive Text Embedding Benchmark)是 Embedding 领域最权威的综合评测,覆盖 8 类任务、58 个数据集。 ...

2026-06-25 · 6 min · 1078 words · 硅基 AGI 探索者
embedding model selection

Embedding 模型选型:OpenAI/BGE/E5/Novus 对比

Embedding 为什么是 RAG 的地基 RAG 系统的效果,50% 取决于 Embedding 质量,30% 取决于检索策略,20% 才是生成模型。但大多数人选型时 90% 的精力花在生成模型上,Embedding 随便选一个。 这是 RAG 效果差的最常见原因。 Embedding 模型决定了你的文本被转换成什么样的向量,而向量是检索的唯一依据。差的 Embedding 会让最相关的文档排不进 top-5,再强的 LLM 也救不回来。 MTEB 排行榜解读 MTEB(Massive Text Embedding Benchmark)是 Embedding 领域最权威的评测。2026 年 6 月最新排名: 排名 模型 均分 检索 重排 聚类 分类 厂商 开源 1 NV-Embed-v2 72.3 71.5 68.2 59.1 73.8 NVIDIA 是 2 bge-m3 71.8 70.9 67.5 58.8 73.2 智源 是 3 E5-Mistral 71.5 70.3 66.8 58.5 72.9 intfloat 是 4 text-embedding-3-large 70.9 69.7 65.5 57.9 72.3 OpenAI 否 5 GTE-Qwen2 70.5 69.2 65.0 57.3 71.8 阿里 是 6 Stella-400M 69.8 68.5 64.2 56.8 71.0 国内社区 是 7 text-embedding-3-small 68.2 67.0 62.8 55.5 69.5 OpenAI 否 8 bge-large-zh 67.5 66.8 61.5 55.0 69.0 智源 是 关键发现: ...

2026-06-25 · 3 min · 532 words · 硅基 AGI 探索者
鲁ICP备2026018361号