LlamaIndex 中的索引结构是处理大型语言模型 (LLM) 时高效组织和检索数据的基础层。其主要作用是将非结构化或半结构化数据(例如文本文档、PDF 或数据库)转换为一种针对快速查询进行优化的格式。通过将数据组织到索引中,LlamaIndex 减少了在与 LLM 交互期间重复处理原始数据的计算开销。例如,索引不是在用户每次提问时重新读取整个文档,而是将数据预处理成更小、可搜索的块(如段落或章节),并存储它们的嵌入(含义的数值表示),从而实现更快的查找。
索引的一个关键功能是支持语义搜索,它允许查询根据含义而不是精确的关键词匹配数据。例如,如果你问“太阳能有哪些环境效益?”,索引可能会检索到一段讨论“可再生能源减少碳排放”的段落,即使没有使用确切的术语“太阳能”。这是通过将查询和索引数据都嵌入到向量空间中来实现的,在该空间中,相似性是数学上度量的。LlamaIndex 支持多种索引类型——例如用于语义搜索的向量存储、用于术语匹配的关键词索引或混合方法——这为开发人员提供了根据其用例平衡速度和准确性的灵活性。
索引结构还提高了可扩展性和成本效益。如果没有索引,LLM 需要对每次查询处理整个数据集,这对于大型数据集或频繁的请求来说是不切实际的。通过预计算嵌入并按层级组织数据(例如,总结章节或聚类相关内容),LlamaIndex 最大限度地减少了冗余计算。例如,一个包含数千页的文档仓库可以一次性建立索引,后续查询只需搜索预处理的元数据或嵌入。这降低了延迟,减少了 API 成本(使用基于云的 LLM 时),并允许应用程序处理实时交互。简而言之,索引充当原始数据和 LLM 之间的桥梁,使检索更快且更具上下文相关性。