项目简介
Kernel Memory 是一个专注于人工智能(AI)和大型语言模型(LLMs)应用中的内存处理的项目。它提供了数据集索引的最佳实践和参考实现,虽然代码的提供主要用于演示目的,并非微软正式支持的产品。
项目功能
Kernel Memory 支持多模式的AI服务,专于通过自定义的连续数据混合管道高效地索引数据集。项目还支持检索增强生成(RAG)、合成内存、提示工程和自定义语义内存处理等功能。
项目形态
Kernel Memory 可被使用为一个Web 服务,也可以作为一个Docker 容器,一个ChatGPT/Copilot/Semantic Kernel的插件,或者.NET库——适用于嵌入式应用中。
高级功能
通过使用先进的嵌入技术和大型语言模型,Kernel Memory 系统允许用户使用自然语言查找索引数据中的答案,提供精确的引用和指向原始来源的链接。
Azure 上的 Kernel Memory 服务
Kernel Memory 可以以多种配置方式部署,包括在 Azure 上作为服务部署。项目提供了一份Azure 部署指南,用户可以参考这份指南来了解如何将 Kernel Memory 部署到 Azure 上。
数据摄取
Kernel Memory 提供了一套默认的文档摄取管道,包括:
- 文本提取:自动识别文件格式并提取信息。
- 文本分块:将文本分为适合搜索和 RAG 提示的小块。
- 嵌入提取:使用任何 LLM 嵌入生成器提取嵌入。
- 保存嵌入:存储到向量索引,例如 Azure AI Search、Qdrant 或其他数据库。
同时,还可以指定文档拥有者以保护隐私信息,并通过标签组织数据以便于搜索和分面导航。
数据直接摄取
Kernel Memory 支持直接使用嵌入式无服务器的 .NET 组件进行数据摄取,使用户可以灵活地导入和处理文档,提供自定义的标签以组织和筛选数据。
内存检索与 RAG
该项目允许用户通过简单的问答方式进行内存检索和 RAG 提示操作,可以根据用户和其他标准进行过滤,同时提供包括引文在内的准确答案以及验证其准确性所需的所有信息。
Kernel Memory Dockers 环境
Kernel Memory 能够以 Docker 映像的形式快速测试服务。用户可以通过 Docker 启动 Kernel Memory 服务,并根据需要进行相关配置。
内嵌内存组件
Kernel Memory 能够嵌入到 .NET 应用中运行,并支持异步 Web 服务模式,适合需要大量文档摄入或非阻塞操作的场景。
扩展功能
Kernel Memory 项目支持外部服务的扩展,允许根据特定要求定制文件存储、队列、向量存储和 LLMs,提供了大量集成选项。
自定义数据摄取管道
Kernel Memory 项目采用有状态的管道来逐步执行文档摄取。用户可以根据自己需求自定义摄取管道的步骤序列、添加新步骤或者用自定义“处理程序”替换现有步骤。
Kernel Memory 与 Semantic Kernel
Kernel Memory 是一个基于 Semantic Kernel 的服务,在此基础上添加了 RAG、安全性和云部署功能。同时,Kernel Memory 能够跨越语言和工具使用,进一步支持浏览器扩展和 ChatGPT 助手等应用。
示例和工具
项目中提供了一系列示例及工具用以指导用户如何使用 Kernel Memory 进行不同场景下的开发和测试,如 Jupyter 笔记本示例、合成内存使用、自定义管道操作等。
这些特性使 Kernel Memory 成为一个灵活且强大的内存管理工具,特别适合在复杂的 AI 和 LLMs 环境中有效地管理和处理大量数据。