← 返回 2026-01-01

Valori:AI系统的确定性内存基底 Valori: A Deterministic Memory Substrate for AI Systems

Varshith Gudur 📅 2025-12-25 👍 5 2026-07-13 08:35
可重现计算 向量数据库 定点算术 确定性系统 系统设计

用定点算术和状态机架构实现跨平台完全确定的AI向量内存系统

前置知识

IEEE 754浮点标准

IEEE 754是计算机浮点运算的工业标准,定义了浮点数的格式和运算规则。然而该标准在某些操作上允许实现定义的行为,例如融合乘加(FMA)指令可以用一次舍入或两次舍入来计算 $a \times b + c$,浮点加法不满足结合律 $(a+b)+c \neq a+(b+c)$,导致并行归约时操作顺序改变会影响结果。编译器和硬件架构(如x86的AVX vs ARM的NEON)会以不同方式优化这些操作,引入硬件相关的差异。

本文揭示的核心问题就源于IEEE 754的非确定性特性,这是理解Valori为什么要放弃浮点算术而改用定点算术的前提。

Q16.16定点数格式

Q16.16是一种32位有符号整数定点格式,其中低16位表示小数部分,高16位表示整数部分。数值范围是 $[-32768, 32767]$,分辨率约为 $0.000015$(即 $2^{-16}$)。定点算术的优势在于它只使用整数ALU指令,这些指令在所有主流架构(x86、ARM、RISC-V、WASM)上的行为完全一致,因此可以保证位级完全相同的计算结果。Valori在点积求和时使用i64或更宽的中间累加器来防止溢出,最后再缩回存储的Q16.16格式。

Q16.16是Valori实现跨平台确定性的数学基础,替代了传统向量数据库使用的f32/f64浮点格式。

HNSW(分层可导航小世界图)

HNSW是一种高效的近似最近邻搜索索引结构,通过构建多层图来实现快速检索。传统HNSW在构建过程中包含随机决策,例如随机选择图的入口点和邻居选择策略,这导致即使是相同的数据集,每次构建的图拓扑结构也可能不同。Valori通过固定插入顺序(按ID排序)、固定入口点为第一个插入节点(ID=0)、以及使用确定性距离度量,将HNSW改造为完全确定的结构。

Valori证明即使是HNSW这种本质上随机的索引结构,也可以被改造为确定性的,这对理解Valori的工程实现很重要。

状态机形式化

Valori将内存系统建模为一个确定性状态机,其中 $S_t$ 是时刻 $t$ 的内存状态,$C_t$ 是应用于内存的命令(如插入向量、删除ID、链接两个节点),$F$ 是状态转换函数。确定性内存要求对于任何初始状态 $S_0$ 和命令序列 $\{C_1, \ldots, C_N\}$,最终状态 $S_N$ 在所有计算环境(CPU架构、操作系统、编译器版本)下都必须完全相同:$\forall Env_A, Env_B: Apply(S_0, \{C_i\})|_A \equiv Apply(S_0, \{C_i\})|_B$。使用f32的传统向量数据库违反了这个性质,因为转换函数 $F$ 依赖于硬件特定的浮点行为。

这是Valori的数学基础,用来形式化定义什么是"确定性内存"以及如何验证它的正确性。

研究动机

现代AI系统(如RAG检索增强生成、Agent工作流)严重依赖向量嵌入作为长期内存。然而,这种内存系统存在一个根本性的非确定性问题:相同的模型、输入和代码在不同硬件架构上会产生完全不同的内存状态和检索结果。论文通过一个控制实验证明了这一点:在x86 Windows PC和ARM64 MacBook Pro上运行完全相同的Python代码,使用sentence-transformers v2.6.1对相同的文本列表进行编码,结果生成的嵌入向量在每个维度的位级表示都不同。例如,第一个向量的第0维度在x86上是0xbd8276f8,在ARM上是0xbd8276fc;第1维度分别是0x3d6bb481和0x3d6bb470;所有5个检查的维度都存在差异。这些差异虽然使得余弦相似度仍然很高(>0.9999),但破坏了状态可重现性保证。在安全关键应用(如机器人、国防、金融审计)中,位级可重现性是正确性要求而非可选特性。

本文的目标是本文的目标是设计一个数学上严谨、硬件无关的AI状态基础,确保向量内存层具有完全的确定性。Valori不试图让神经网络推理本身变得确定性(这是更广泛领域的开放问题),而是在向量进入内存系统的边界处定义严格的确定性边界,将非确定性的模型输出规范化为确定性的内存状态。具体来说,Valori保证跨平台的位级完全相同的内存状态、快照和搜索结果,使得相同的命令序列在x86、ARM、RISC-V和WASM上产生完全相同的结果。

与已有工作不同的是,现有向量数据库(如FAISS、Milvus、Qdrant)优先考虑最大召回率和吞吐量,使用硬件加速(AVX-512、GPU)来优化性能,但接受浮点非确定性作为速度的权衡。这些系统将浮点非确定性视为可忽略的误差,但在需要严格可审计性的监管领域,这实际上是一个关键失败模式。Valori的独特切入角度是将确定性行为视为不可妥协的系统原语,通过在内存边界处强制转换定点算术并采用状态机架构,证明"近似"最近邻搜索也可以完全确定地实现,而非必须接受非确定性。

核心方法

Valori的整体设计思路是在向量进入内存系统的边界处建立一个严格的确定性边界。系统逻辑上分为两层:内核层(no_std)和节点层(std)。内核层是核心逻辑,负责输入验证、在边界处立即将浮点数转换为定点数、以及执行所有索引数学运算。节点层提供HTTP API、持久化和网络功能,但包装内核时不改变其逻辑。Valori的直觉是:如果内存层保证状态机转换函数 $F$ 只使用硬件无关的整数运算,那么相同命令序列必然产生相同状态。Valori实现为no_std Rust内核,可以运行在裸机、WASM或标准操作系统上,进一步扩大了硬件无关性保证的范围。

Valori的核心创新点是将定点算术(Q16.16)作为内存层的默认数值表示,并将内存系统建模为纯状态机。与已有方法的本质区别在于:传统向量数据库将浮点非确定性视为可接受的工程妥协,而Valori将其视为必须消除的根本缺陷。另一个关键创新是将精度作为可配置的内存契约:系统架构师可以根据操作约束选择Q16.16(用于无人机/嵌入式系统)、Q32.32(用于企业级AI代理)或Q64.64/Q128(用于科学计算/国防系统),而无论精度如何选择,确定性都保持不变,因为数学运算保持整数结合性,因此硬件无关。这种设计将Valori从使用简单的"定点技巧"提升为作为一个健壮的内存操作系统。

方法步骤详情

Valori的完整工作流程包括以下步骤。首先,外部输入(无论是来自Python FFI、HTTP客户端还是分布式节点)在进入内核之前必须被序列化和规范化。在内核边界处,所有浮点向量立即被转换为Q16.16定点格式,这建立了确定性边界。转换后的向量通过纯状态机转换函数 $F$ 被插入到内存中,该函数封装所有向量数据、图选择和元数据。索引构建(如HNSW图)遵循确定性原则:批量插入时按ID排序处理以防止竞争条件或插入顺序依赖;使用数据相关的排序函数替换随机决策;HNSW入口点固定为第一个插入节点(ID=0);邻居选择算法使用定点距离度量。因为状态是确定性的,整个内存可以被序列化为快照文件。在另一台机器上恢复快照时,保证得到内存状态的完全相同的副本,直到最后一位。查询时,使用相同的定点距离度量进行k-NN搜索,返回排序完全一致的结果。

技术新颖性

Valori的技术新颖性体现在多个方面。首先,它首次将向量数据库的确定性行为从理论可能性转化为工程实现,证明即使HNSW这种本质上随机的索引结构也可以被改造为完全确定的形式。其次,Valori引入了"精度作为内存契约"的概念,允许在不牺牲确定性的前提下根据应用场景灵活选择数值表示。第三,Valori的no_std Rust内核设计使其能够在WASM等受限环境中运行,扩大了确定性保证的范围。最后,Valori通过严格的实验测量了定点量化的语义保真度影响,证明了在广泛使用的配置下Recall@10达到99.8%,建立了确定性与语义检索质量可以共处的存在性证明。

Valori Architecture: The Kernel operates as a pure deterministic core, wrapped by interface layers (Python FFI or Node HTTP) handling I/O.
Figure 1: Valori Architecture: The Kernel operates as a pure deterministic core, wrapped by interface layers (Python FFI or Node HTTP) handling I/O.

实验结果

论文通过三个主要实验验证了Valori的正确性和性能。首先,跨平台一致性实验(Snapshot Transfer测试)证明:在Machine A(x86)上初始化内核并插入10,000个向量,将状态快照到文件得到哈希 $H_A$,然后传输到Machine B(ARM)并加载快照,验证内部哈希 $H_B$。结果是 $H_A \equiv H_B$,内存状态被完美保存,且恢复后跨平台的k-NN结果排序保持完全一致。标准f32向量存储通常因为序列化差异或内部精度漂移而无法通过此测试。其次,性能测试显示,在本地基准测试中,原始检索延迟低于500µs(MacBook Pro M3),足以满足实时代理应用的需求。第三,语义保真度测试测量了标准浮点ANN索引与Valori Q16.16确定性索引之间的召回重叠。使用sentence-transformers/all-MiniLM-L6-v2模型生成嵌入,构建两个参数和插入顺序完全相同的索引:一个使用标准f32算术,一个使用Valori的定点内核。Recall@10定义为浮动基线和定点索引返回的Top-10最近邻居的重叠比例。Valori达到平均Recall@10为99.8%,表明确定性定点归一化以可忽略的检索影响保留了嵌入空间的语义结构。作者不声称在所有嵌入模型或数据集分布上保持普遍召回保留,而是证明在实际广泛使用的配置中,定点确定性可以保留实用的语义保真度。

Bit-Level Divergence of Identical Embeddings (First 5 Dimensions)
Table 1: Bit-Level Divergence of Identical Embeddings (First 5 Dimensions)
Precision Layers as Configurable Contracts
Table 2: Precision Layers as Configurable Contracts
Recall@10 Comparison Between Floating-Point and Q16.16 Indices
Table 3: Recall@10 Comparison Between Floating-Point and Q16.16 Indices
查看结构化数据
任务指标本文基线提升
跨平台状态一致性 快照哈希匹配率 100%($H_A \equiv H_B$) 标准f32向量存储(通常失败) 从无法保证到完全保证
k-NN检索延迟 原始延迟(µs) < 500µs(MacBook Pro M3) 未提供具体基线对比 满足实时代理应用需求
语义检索保真度 Recall@10 0.998(Q16.16 HNSW) 1.000(Float32 HNSW) 仅损失0.2%召回率但获得完全确定性
嵌入生成跨平台差异 位级差异比例 100%(检查的所有5个维度都不同) 目标为0% 问题暴露,Valori提供解决方案

局限与改进

作者明确承认了几个局限性。首先,Q16.16的动态范围相比f32有限,极小或极大的向量分量可能遭受量化误差。然而,对于归一化的嵌入向量(通常在$[-1,1]$范围内),精度是足够的。其次,基于软件的定点算术比硬件加速的浮点运算慢,未来工作涉及在安全的情况下使用SIMD整数指令。第三,Valori确保向量进入内核后的确定性,但嵌入模型本身(神经网络)的非确定性仍然是更广泛领域的开放问题。未来工作可能探索确定性推理或模型侧量化,但这与Valori提供的内存保证正交。此外,Recall@10 0.998的结果不意味着在所有嵌入模型或数据集分布上保持普遍召回保留,这只表明定点确定性可以在一个广泛使用的现实配置中保留实用的语义保真度,建立的是存在性证明而非一般性能定理。

独立分析的弱点

从独立分析的角度,Valori存在几个潜在弱点。首先,Q16.16格式对于某些需要高动态范围的应用可能不够,例如某些预训练模型产生的嵌入向量可能有超出$[-32768, 32767]$范围的分量,或者需要更高的小数精度来区分细微的语义差异。改进方向是实现Q32.32或更高精度的格式作为可配置选项,作者已经提到这是未来工作的一部分。其次,软件模拟的定点算术相比硬件加速的SIMD浮点运算可能有显著的性能损失,特别是在大规模向量检索场景下。改进方向是充分利用现代CPU的SIMD整数指令(如AVX2、AVX-512的整数版本),或者探索GPU上的定点运算优化。第三,Valori不解决神经网络推理本身的非确定性问题,这意味着即使内存层是确定性的,相同的输入文本在不同硬件上仍可能产生不同的嵌入向量。改进方向可能是探索确定性推理框架或与模型侧的量化技术结合。第四,Recall@10的测试只在一个嵌入模型(all-MiniLM-L6-v2)和一个数据集配置上进行,缺乏更广泛的泛化验证。改进方向是在更多模型(如BERT、GPT类模型)和更多样化的数据集上评估定点量化的语义保真度。

未来方向

作者提出的未来工作方向包括:实现更高精度的定点格式(如Q32.32用于企业级AI代理,Q64.64/Q128用于科学计算和国防系统)作为可配置的内存契约;利用SIMD整数指令在安全的情况下优化性能;探索确定性推理或模型侧量化来解决嵌入生成阶段的非确定性问题。基于Valori的成果,可以延伸的研究方向包括:将确定性内存与区块链技术结合,为去中心化AI网络提供状态共识基础;在分布式系统中使用状态哈希验证实现轻量级的一致性检查;将确定性概念扩展到其他类型的AI内存(如图谱内存、时间序列记忆);研究在极端数值稳定性要求下的定点格式选择和动态调整策略;以及探索确定性内存在法律取证、医疗诊断审计等高合规性场景中的实际部署案例。

复现评估

Valori的复现性较好。参考实现是开源的,可在GitHub(https://github.com/varshith-Git/Valori-Kernel)获取,并在Zenodo上存档(https://zenodo.org/records/18022660)。论文提供了完整的复现脚本,包括嵌入生成脚本(embed.py)和位级检查脚本(inspect.py),这些脚本可以用于复现论文中展示的跨平台嵌入差异实验(Table 1)。作者在x86 Windows PC和ARM64 MacBook Pro上进行了实验,使用了Python和sentence-transformers库。对于Recall@10实验,作者描述了实验设置但未提供完整的数据集和代码。Valori内核使用Rust编写(no_std),可以在标准开发环境中编译。由于主要实验只需要两台不同架构的机器和一个sentence-transformers模型,复现难度较低。然而,更大规模的性能和语义保真度实验可能需要更多的计算资源和多样化的测试数据集。总的来说,Valori提供了足够的开源代码和实验描述,使得其他研究者可以复现核心结果并在此基础上进行扩展。