image

更智能的电子邮件,更高效的业务。自动标记、解析并即时响应询价、报价、订单等。

查看演示

矢量数据库。解锁航空业的非结构化智能。

七月 12, 2025
图像

向量数据库索引高维嵌入向量,以支持对非结构化数据的语义搜索,这与使用关键字精确匹配的传统关系或文档存储不同。向量存储管理表示文本或图像语义的密集数字向量(通常为 768-3072 维),而不是表格或文档。在查询时,数据库使用近似最近邻 (ANN) 搜索算法找到查询向量的最近邻。例如,基于图的索引(如分层可导航小世界 (HNSW))构建分层邻近图:较小的顶层用于粗略搜索,较大的底层用于细化(见下图)。搜索“跳”到这些层 - 快速定位到一个集群,然后再详尽地搜索本地邻居。这在召回率(找到真正的最近邻)和延迟之间进行了权衡:提高 HNSW 搜索参数 (efSearch) 会增加召回率,但会增加查询时间。

Image

图:HNSW ANN 搜索图 - 向量按层组织以加快最近邻查询(改编自 Devmy 的 Redis 向量集解释)。

与关系表中的精确搜索不同,向量搜索可以捕捉含义:查询会找到语义相似的项目,而不仅仅是精确的关键字匹配。对于航空数据(例如手册或维修日志),这意味着即使措辞不同,工程师也可以检索相关内容。向量距离(余弦、点积或欧几里得)量化相似性。当嵌入被归一化时,余弦相似度和点积会产生等效的排名。在实践中,人们通常会对向量进行归一化并使用余弦相似度作为相关性指标。关键的权衡包括召回率与延迟:更大的索引和更高的搜索参数可以提高召回率,但会增加延迟。向量数据库提供可调索引(HNSW、IVF、平面扫描)以平衡速度和准确性。

嵌入模型

现代嵌入模型将文本(或其他数据)转换为向量。领先的模型包括 OpenAI 的 text-embedding-3-large、Cohere 的 embed-multilingual-v3、Google 的 Gemini/BGE 模型、Meta 的 E5 和 GTE 系列以及许多 HuggingFace 模型(例如 Sentence-BERT 变体)。这些模型在维度、数据覆盖范围和推理成本方面有所不同。例如,OpenAI 的 text-embedding-3-large 生成 3072 维向量,明显大于早期的 Ada-002 (1536D)。Cohere 的 v3 模型通常输出 1024D(英语或多语言)或更小(例如 384D“精简”版本)。Meta 的 E5-large 和 GTE-large 也产生 1024D 嵌入,而它们的基本或“小型”变体则产生 768D 或 384D。 Google 的 Vertex-AI 嵌入包括 768D 文本模型和 3072D 的“gemini-embedding-001”大型模型。一般而言,更高的维度通常可以提高语义保真度,但需要更多的存储空间和计算能力:在一项基准测试中,e5-base(768D)对数据集进行索引的速度比 ada-002(1536D)快 2 倍以上。

嵌入模型也因训练数据和多语言性而异。OpenAI 和 Cohere 的嵌入 API 是专有的(具有相关成本和使用限制),而 Meta 的 E5/GTE 和许多 HuggingFace 模型都是开源的(Apache 许可)。E5 和 GTE 模型支持 50 多种语言,Cohere 的多语言 v3 模型也是如此。这种多语言覆盖对于国际航空文献非常有价值。领域自适应对于专业词汇(例如 ATA 章节语言、零件命名法)至关重要。这些开箱即用的模型是在网络文本和常用语料库上进行训练的;它们可能无法完美地捕捉航空术语。团队应该考虑在维护日志或手册上进行微调或使用适配器。在实践中,企业系统通常从强大的通用嵌入(如 OpenAI 或 E5)开始,然后对特定领域的文本进行微调。

从性能角度来看,不同模型的延迟各不相同。较小的模型(例如 E5-base-768)推理速度更快,而大型专有模型(OpenAI 的 3072D)速度较慢,并且可能一次只允许一个请求。如果本地硬件有限,可以使用较小或量化的模型。许可至关重要:OpenAI 和 Cohere 按请求收费并有使用政策,而像 E5/GTE 或 Google 的 BGE(通过 VertexAI 开放,但有配额限制)这样的开放模型则避免了 API 成本。总而言之,任何向量数据库都可以从这些模型中提取嵌入,但架构师在为航空数据选择模型时,应权衡嵌入维度、成本、多语言支持和领域契合度。

矢量数据库的类型

存在一系列矢量数据库系统,从轻量级库到成熟的平台:

  • Redis(向量集)——Redis 是一个带有向量索引模块的内存中键值存储。它支持 FLAT(精确暴力)和 HNSW 索引。Redis 向量集独特地允许动态更新:HNSW 图是双向维护的,因此可以即时添加或删除向量。Redis 支持量化(8 位或二进制)以减少内存(最多 4×–32×),同时将准确度损失降至最低。它还提供混合过滤:向量可以与文本标签或数字字段一起存储,并在同一查询中进行过滤(例如 .year > 2020)。作为内存引擎,Redis 以 RAM 使用为代价提供超低延迟。它通过集群水平扩展,尽管集群大小通常小于专用向量平台。Redis 可以作为开源软件使用,也可通过 Redis Enterprise Cloud 获取。
  • Pinecone – 一项完全托管的向量搜索云服务。Pinecone 抽象了所有基础设施:它将存储与计算分离,并可扩展到数十亿个向量,同时保持快速的查询速度。它自动管理底层索引(混合使用 HNSW、IVF、PQ 等),以实现最佳性能。其代价是成本和不透明性:Pinecone 易于使用(无需运维),但比 OSS 更昂贵。它擅长高吞吐量和受 SLA 约束的工作负载,支持混合(关键字 + 向量)查询和企业级功能。Pinecone 非常适合那些需要企业级可扩展性和可靠性,且无需管理服务器的团队。
  • Weaviate – 一个开源的以图为中心的向量数据库(也作为托管服务提供)。Weaviate 允许与向量一起构建丰富的模式和知识图谱结构。它提供了一个 GraphQL API,将语义向量搜索与传统查询相结合(混合检索)。Weaviate 主要使用 HNSW 索引(并且可以对小型数据集使用平面索引)。它会自动调整搜索参数或允许异步索引以提高吞吐量。借助深度学习模块,Weaviate 甚至可以生成向量(例如通过 HuggingFace 模型)。它可以通过 Kubernetes 和云或本地集群进行扩展。Weaviate 的优势在于混合语义+符号搜索和数据建模的灵活性;当关系(例如零件到飞机的层次结构)与向量相似性同样重要时,它是适用的。
  • Qdrant – 一款基于 Rust 的开源矢量搜索引擎。Qdrant 提供高性能 ANN 索引和丰富的元数据过滤功能。它支持具有动态自动扩展功能的 HNSW 索引,并提供 HTTP API。值得注意的是,Qdrant 注重严格的过滤和可靠性——它支持分布式部署、ACID 事务和 GPU 加速。它在大型数据集上表现优异,并具有很高的召回率。Qdrant Cloud 简化了部署,但其自托管功能同样强大。这使得 Qdrant 在需要结合矢量相似度和结构化过滤器(例如,仅在特定飞机型号或日期范围内搜索)时成为理想的选择。
  • Vespa – 一款最初来自雅虎的开源搜索和分析引擎。Vespa 独特地将向量搜索与经典的倒排索引搜索相结合。它可以处理数十亿个向量,并具有极高的吞吐量:该平台宣称支持在海量数据上以小于 100 毫秒的延迟实现数千次每秒查询 (QPS)。Vespa 支持单文档多向量和混合搜索(语义 + 关键词)。其 ANN 索引包括 HNSW(以及结合倒排文件过滤的 HNSW-IF 等新变体)。作为一款功能齐全的应用服务器,Vespa 还支持自定义排名模型和机器学习推理流程。因此,它非常适合需要规模化和混合相关性的大规模关键任务搜索应用程序(例如,覆盖整个航空公司的搜索门户)。Vespa 可以自行管理,也可以通过 Vespa Cloud 使用。
  • FAISS – Meta 开发的用于相似性搜索的研究级库。FAISS 不是一个独立的数据库,而是一系列在 CPU/GPU 上运行的高度优化的索引(Flat、IVF、PQ、HNSW 等)。它实现了非凡的速度(尤其是在使用 GPU 时)和灵活性:几乎可以使用任何距离度量或索引方法。但是,FAISS 不包含存储/查询引擎或元数据过滤 – 您必须将其集成到您自己的系统中。当需要最大性能和对索引算法的控制时,它最为合适。例如,FAISS 广泛用于计算机视觉和 ML 研究,其中召回率和速度至关重要,而数据大小是固定的。在航空领域,FAISS 可能支持用于超高维嵌入(例如基于图像的零件识别)的自定义搜索工具,但它需要一个周围的架构。
  • Milvus – 一款专为大规模工作负载而设计的热门开源向量数据库。Milvus 提供独立运行和分布式两种模式,支持数十亿向量,并具备强一致性。它提供多种索引类型(HNSW、IVF、Annoy 等)和指标(余弦、L2 等),以及基于标量过滤的混合搜索功能。Milvus 采用 GPU 加速,并基于云原生(与 Kubernetes 集成)。它包含快照和加密等企业级功能,并由 Zilliz 积极开发。Milvus 的架构专为规模和性能而构建,使其成为数据密集型应用的理想选择,例如分析海量手册或传感器日志档案。Zilliz 还提供 Milvus Cloud 托管服务。

这些系统处理向量和过滤器的方式各不相同,但都支持 L2、内积(点)和余弦距离(通常通过存储归一化向量来实现)。Weaviate 的论坛指出,它甚至可以存储高达 65535 维的向量,远高于典型的嵌入大小,这展现了现代引擎的灵活性。总结如下:

Image

航空业用例

语义搜索:飞机维护涉及大量手册、服务公告和规章文件。向量搜索系统允许工程师提出自然语言查询(甚至语音查询),并从语义上检索相关段落或文档。例如,与“发动机漏油”相关的关键词搜索不同,嵌入搜索可以找到描述“液压油泄漏”的公告段落(如果上下文相似)。正如 Infosys/AWS 所展示的那样,将每个技术文档存储为向量,允许 LLM 驱动的代理通过从存储库中检索最相关的文档来回答维护查询。

模糊零件匹配:航空零件通常具有隐秘的标识符(NSN 或零件编号)和描述性名称,这些标识符和名称因供应商而异。零件描述甚至零件编号(视为文本)的向量嵌入可以揭示基于规则的匹配遗漏的近似重复项。在其他领域,词嵌入已用于语义模糊匹配名称;类似地,即使拼写或代码不同,零件描述符的嵌入也可以将零件与其在供应商目录中最接近的描述进行匹配。这可以统一来自多个来源的库存。

日志分类与聚类:维修和故障日志通常是自由格式的文本。嵌入模型可以将日志条目转换为向量,而对这些向量进行聚类可以自动将相似的故障模式分组。例如,“HELP”框架根据流式系统日志的嵌入对其进行聚类,以发现重复出现的日志模板。在航空领域,类似的聚类可以识别常见的故障模式,或对没有预定义标签的非计划维护条目进行分类,从而实现对常见问题的分析(例如,将“异常振动”事件聚类在一起)。这种无监督的语义分组有助于趋势分析和工作负载预测。

对话检索 (RAG):嵌入是检索增强生成 (RAG) 系统的基础,该系统支持基于文档的聊天机器人。一个 PDF 聊天机器人示例展示了其架构:从手册中提取文本,对其进行分块,嵌入每个块,然后存储在向量存储(例如 FAISS)中。在运行时,每个用户查询都会被嵌入,并通过向量索引检索前 k 个相关块。这些块构成了 LLM 回答问题的上下文。对于航空领域,RAG 流程允许技术人员与飞机的数字孪生“聊天”:例如,询问“更换皮托管加热开关的程序是什么?”,并从 OEM 手册中获得精确的答案。

预测性故障索引:历史维护记录描述了故障和修复过程。可以将故障描述索引为向量,以便将新事件的描述与过去类似的案例进行匹配。预测性维护研究发现,使用变换器嵌入(采用余弦或皮尔逊相似度)计算故障文本的语义相似度,可以成功地将相关故障分组。在实践中,当机械师记录新的故障描述时,系统可以检索具有高嵌入相似度的过去事件,以建议可能的根本原因或检查措施,从而根据嵌入空间中的接近度进行有效的“预测”。

实际设计考虑

嵌入维度:更高维度的嵌入可以捕捉到更多细微差别,但在存储和计算上会花费更多成本。常见的选择是 768、1024、1536 或 3072 维度。例如,OpenAI 的较大模型使用 1536-3072 维,而 Meta 的基础 E5/GTE 使用 768 或 1024 维。在一项初步实验中,使用 1536D 嵌入对同一语料库进行索引所花的时间比使用 768D 嵌入所花的时间长 2.4 倍。因此,如果吞吐量和延迟至关重要(例如,设备上每秒过滤数百个查询),则 768D 或 1024D 可能就足够了。如果目标是最大召回率(并且硬件允许),则可以接受更大的维度。对于航空业,可以从 1024D(平衡)开始,并在领域数据中的检索任务上测试较小模型与较大模型。

距离度量:选择余弦(或归一化点积)还是原始欧几里得取决于嵌入。大多数现代文本嵌入都是通过余弦相似度进行比较的。例如,Tekgöz 等人发现余弦/皮尔逊度量为故障描述提供了最佳的相似度。Redis 和其他系统支持明确指定“余弦”(在后台对向量进行归一化),而许多系统在预归一化的向量上使用内积。实际上,如果嵌入是归一化的,则余弦和内积是等效的。欧几里得距离在文本中不太常见,但当向量位于球体上时,概念上相似。建议:对基于文本的嵌入使用余弦。

元数据和混合结构:将向量嵌入与结构化元数据(飞机型号、ATA 章节、日期、零件编号等)一起存储对于精确搜索非常重要。所有现代向量存储都允许将元数据附加到每个向量。例如,Redis 向量集允许您在同一查询中按 JSON 属性进行过滤(例如 WHERE airline_model = 'A320' AND ATA = '21')。Qdrant 提供强大的布尔过滤功能,可通过元数据缩小向量结果范围。在设计模式时,定义元数据字段(例如 model、ata、date、part_no)并正常索引它们,同时将文本字段标记为 VECTOR。在混合查询中,系统首先应用元数据过滤器(或通过分数惩罚将其组合起来),然后仅在子集中搜索最近邻居,从而提高精度。确保关键过滤器(例如飞机尾号或时间范围)位于索引标量字段上以利用 DB 过滤。

延迟和吞吐量调整:ANN 索引参数应根据目标延迟进行调整。对于 HNSW,提高 efSearch 参数可提高召回率,但会线性增加查询时间。一种实用方法是在保留集上对召回率与延迟进行基准测试:从较低的 ef 开始提高速度,然后逐渐增加,直到召回率达到稳定水平。Weaviate 甚至支持“动态 ef”,可根据所需的结果数量缩放 ef。对于批量工作负载,可以使用 FLAT 索引(精确)来最大化准确率,而对于实时的几十毫秒查询,使用调整参数的 HNSW 或 IVF 会更好。量化(8 位,乘积量化)是另一个杠杆:例如,Redis 的 Q8 与 BIN 设置可显著减少内存并加快搜索速度,但准确率会略有下降。

索引更新:如果您的数据频繁更改(新的日志条目或手动更新),请选择支持动态索引的系统。Redis 的 HNSW 实现允许即时插入和删除,而无需重建索引。Weaviate 可以异步更新 HNSW(因此写入不会阻塞读取)。其他系统(例如 FAISS)通常需要重新索引,因此请将它们用于大多数静态语料库。如果有新的手册或必须添加每日日志,请计划重新索引。在许多航空系统中,手册变化缓慢,但每日日志/调度条目都会到达,因此可以采用混合方法(将新的向量写入“热”索引,并在白天进行合并,然后在夜间进行合并)。

概括

矢量数据库和嵌入模型相结合,可实现对航空数据的丰富语义智能。高质量的嵌入(例如 768–3072D 模型)将手册、日志和零件描述转换为可搜索的向量,而专用的向量存储(Redis、Pinecone、Weaviate、Qdrant、Vespa、FAISS、Milvus)则提供大规模所需的 ANN 索引和过滤功能。上表比较了关键特性:Redis 和 Qdrant 在低延迟过滤方面表现出色;Pinecone 和 Milvus 在大规模处理方面表现出色;Weaviate 和 Vespa 支持混合(图+向量)查询;FAISS 为自定义流程提供极致性能。嵌入选择(模型、维度、规范化)和索引调整(HNSW 参数、量化)必须在召回率和速度之间取得平衡。这些技术相结合,使航空机器学习团队能够构建高级工具(语义搜索 UI、维护聊天机器人、预测分析),将非结构化日志和手册转化为可操作的洞察。

0comments
Latest Articles
More Articles
Ask AeroGenie