LlamaIndex(一)——LlamaIndex简介
一、LlamaIndex简介
LlamaIndex是一个用于构建上下文增强型大型语言模型(LLM)应用程序的框架。上下文增强指的是任何将大型语言模型应用到私有或特定领域数据上的用例。一些流行的用例包括:
- 问答聊天机器人(通常被称为RAG系统,代表“检索增强生成(Retrieval-Augmented Generation)”)
- 文档理解和抽取
- 能够执行研究和采取行动的自主Agent
LlamaIndex 提供了从原型到生产构建上述任何用例所需的工具。这些工具允许您不仅提取/处理数据,还实现复杂的查询工作流程,将数据访问与大型语言模型(LLM)Prompt相结合。
1.1 为什么需要上下文增强
大型语言模型(LLMs)为人类和数据之间提供了一个自然语言界面。LLM已经在大量的公开数据上进行了预训练。然而,它们并没有在私有的,或者特定领域的数据上进行训练。这些数据可能在SQL数据库中,或者在PDF文件和PPT中。
LlamaIndex提供了工具来实现上下文增强。两种比较常见的放式:一个是RAG,它在推理时将上下文与大型语言模型(LLM)结合起来。另一个是finetuning。
1.2 LlamaIndex工具和功能
LlamaIndex是用于上下文增强型大型语言模型(LLM)应用的数据框架。LlamaIndex提供了以下工具来帮助您快速搭建生产就绪的大型语言模型(LLM)应用程序:
- 数据连接器:从原生源和格式中提取您现有的数据,例如API、PDF、SQL等。
- 数据索引:将您的数据结构化为对LLM来说易于高效消费的中间表示。
- 引擎:提供对您数据的自然语言访问:
- 查询引擎:强大的问答接口,例如RAG流水线。
- 聊天引擎:用于与您的数据进行多消息、“来回”交互的对话接口。
- Agent:由工具增强的LLM驱动的知识工作者,从简单的助手函数到API集成等。
- 可观测性/评估集成:使您能够严格地实验、评估和监控您的应用程序,形成一个良性循环。
1.3 LlamaIndex主要组件
- Models: 主要用于与模型进行交互,包括LLM,Embedding,Multi-modal
- Prompts: LlamaIndex prompt模板
- Loading:数据的加载与转换
- Indexing:构建数据结构,用于快速检索与用户查询相关的上下文。
- Storing:用于存储各种各样的数据
- Querying: 大型语言模型 (LLM) 应用中最重要的部分
- Agents: LlamaIndex 中由大型语言模型 (LLM) 驱动的知识工作者,能够智能地执行各种数据任务,包括“读取”和“写入”功能。
- Evaluation: 在大型语言模型 (LLM) 开发中是至关重要的概念,为了提高 LLM 应用(如 RAG、Agent)的性能,必须有方法来衡量它。
- Observability: 类似与LangChain中的Callback,用于监控、调试之类的
- Settings: LlamaIndex 流水线/应用中索引和查询阶段使用的一组常用资源的集合。
官方资源
LlamaIndex(一)——LlamaIndex简介
https://mztchaoqun.com.cn/posts/D14_LlamaIndex/