首页 > 其他分享 >Kernel Memory: 强大的AI驱动记忆系统

Kernel Memory: 强大的AI驱动记忆系统

时间:2025-01-16 14:59:40浏览次数:1  
标签:Kernel 自定义 AI KM 记忆系统 Memory Azure

Kernel Memory简介

Kernel Memory(简称KM)是由微软开发的一个强大的多模态AI服务,专门用于高效索引和处理大规模数据集。它支持检索增强生成(RAG)、合成记忆、提示工程和自定义语义记忆处理等先进功能,为构建智能应用提供了强大的基础设施。

Kernel Memory架构图

 

KM可以作为Web服务、Docker容器、ChatGPT/Copilot/Semantic Kernel的插件,以及嵌入式.NET库等多种形式使用。它利用先进的嵌入和大型语言模型(LLM)技术,使用自然语言查询从索引数据中获取答案,并提供引用和原始来源链接。

Kernel Memory的主要特性

  1. 多模态数据处理:支持网页、PDF、图像、Word、PowerPoint、Excel、Markdown、文本、JSON、HTML等多种数据格式。

  2. 高级搜索能力:支持余弦相似度搜索和带过滤条件的混合搜索(AND/OR条件)。

  3. 广泛的语言支持:可以从任何编程语言、命令行工具、浏览器扩展、低代码/无代码应用、聊天机器人、助手等调用。

  4. 多种存储引擎:支持Azure AI Search、Elasticsearch、MongoDB Atlas、Postgres+pgvector、Qdrant、Redis、SQL Server等多种向量数据库。

  5. 灵活的文件存储:支持磁盘、Azure Blobs、AWS S3、MongoDB Atlas以及内存(易失性)存储。

  6. RAG和摘要生成:内置检索增强生成和文档摘要功能。

  7. OCR能力:通过Azure Document Intelligence支持光学字符识别。

  8. 安全过滤:提供内置的安全过滤机制。

  9. 大文档处理:支持异步处理大型文档,使用队列(如Azure Queues、RabbitMQ等)进行任务调度。

  10. 自定义存储模式:部分数据库支持自定义存储模式。

  11. 多向量数据库并发写入:支持同时写入多个向量数据库。

  12. 多种LLM支持:集成了Azure OpenAI、OpenAI、Anthropic、LLamaSharp(via llama.cpp)、LM Studio等多种大语言模型。

Kernel Memory的工作模式

KM提供了两种主要的工作模式:

1. 同步内存API(无服务器模式)

在这种模式下,KM可以嵌入到.NET后端/控制台/桌面应用程序中,以同步方式运行。这种方法也适用于ASP.NET Web API和Azure Functions。每个请求都会立即处理,但调用客户端需要负责处理瞬态错误。

同步内存API架构

2. 内存即服务 - 异步API

在这种模式下,KM作为一个异步的、可扩展的Web服务运行。这种模式特别适合以下场景:

  • 需要一个Web服务来导入数据并发送查询以获取答案
  • 应用程序使用TypeScript、Java、Rust或其他语言编写
  • 导入大型文档可能需要几分钟来处理,不希望阻塞用户界面
  • 需要内存导入独立运行,支持故障和重试逻辑
  • 想要定义混合多种语言(如Python、TypeScript等)的自定义管道

异步API架构

Kernel Memory与Semantic Memory的比较

Kernel Memory(KM)和Semantic Memory(SM)都是微软开发的内存系统,但它们有一些关键区别:

  1. KM是一个服务,而SM是一个库。
  2. KM支持多种数据格式,SM仅支持文本。
  3. KM提供更高级的搜索功能。
  4. KM可以从任何语言和平台使用,SM仅支持C#、Python和Java。
  5. KM支持更多的存储引擎和文件存储选项。
  6. KM提供RAG、摘要生成、OCR等额外功能。

快速开始使用Kernel Memory

要快速测试KM服务,可以使用以下Docker命令启动:

docker run -e OPENAI_API_KEY="..." -it --rm -p 9001:9001 kernelmemory/service

如果需要使用自定义设置和服务(如Azure OpenAI、Azure Document Intelligence等),可以创建一个appsettings.Development.json文件覆盖默认值,或使用包含的配置向导:

cd service/Service
dotnet run setup

然后使用以下命令启动Docker镜像:

docker run --volume ./appsettings.Development.json:/app/appsettings.Production.json -it --rm -p 9001:9001 kernelmemory/service

使用Kernel Memory的Web服务

使用MemoryWebClient可以轻松地与KM Web服务交互:

var memory = new MemoryWebClient("http://127.0.0.1:9001");

// 导入文件
await memory.ImportDocumentAsync("meeting-transcript.docx");

// 导入文件并指定文档ID、用户和标签
await memory.ImportDocumentAsync("business-plan.docx",
    new DocumentDetails("user@some.email", "file001")
        .AddTag("collection", "business")
        .AddTag("collection", "plans")
        .AddTag("fiscalYear", "2023"));

自定义内存摄取管道

KM允许自定义数据处理管道:

var memoryBuilder = new KernelMemoryBuilder()
    .WithoutDefaultHandlers()
    .WithOpenAIDefaults(Environment.GetEnvironmentVariable("OPENAI_API_KEY"));

var memory = memoryBuilder.Build();

// 插入自定义.NET处理程序
memory.Orchestrator.AddHandler<MyHandler1>("step1");
memory.Orchestrator.AddHandler<MyHandler2>("step2");
memory.Orchestrator.AddHandler<MyHandler3>("step3");

// 使用自定义处理程序导入文档
await memory.ImportDocumentAsync(
    new Document("mytest001")
        .AddFile("file1.docx")
        .AddFile("file2.pdf"),
    steps: new[] { "step1", "step2", "step3" });

Kernel Memory的应用场景

KM可以应用于多种AI驱动的应用场景,包括但不限于:

  1. 智能文档检索系统
  2. 自动问答系统
  3. 知识管理平台
  4. 智能客户服务
  5. 个性化推荐系统
  6. 数据分析和洞察生成
  7. 自动摘要生成
  8. 多语言内容处理
  9. 法律和合规文档分析
  10. 研究和学术文献管理

结论

Kernel Memory为构建智能、高效的AI应用提供了强大的基础设施。它的灵活性、可扩展性和丰富的功能使其成为各种应用场景的理想选择。无论是构建简单的问答系统,还是复杂的知识管理平台,KM都能提供所需的工具和能力。

随着AI技术的不断发展,像Kernel Memory这样的系统将在未来的智能应用中扮演越来越重要的角色。开发者和企业可以利用KM的强大功能,创建更智能、更高效的应用,为用户提供更好的体验。

标签:Kernel,自定义,AI,KM,记忆系统,Memory,Azure
From: https://www.cnblogs.com/yongwei/p/18674987

相关文章

  • GaussDB企业级AI-Native分布式数据库
    华为GaussDB是一个企业级AI-Native分布式数据库。GaussDB采用MPP(MassiveParallelProcessing)架构,支持行存储与列存储,提供PB(Petabyte,2的50次方字节)级别数据量的处理能力。华为Gauss数据库是全球首款AI-Native数据库,能够同时支持X86、ARM、GPU、NPU等异构计算。数......
  • 智能关键技术二:库内AI引擎
    GaussDB库内AI引擎架构如下图:图4DB4AI架构图用户接口层在用户接口层,实现SQL-like语法,提供CreateModel、Predict等关键字,支持AI算法训练和预测。当前支持的AI算法包括:GD(梯度下降法)、KMeans(聚类)、XGBoost、决策树等。查询优化层查询优化层提供AI训练执行计划和AI预测执行计划......
  • TAITherm - 专业热管理工具
    概述      TAITherm是ThermoAnalytics公司开发的专业三维热仿真分析工具,广泛应用于国内外汽车、摩托车、工业自动化、重型机械等行业的热仿真设计中。同系列的CoTherm耦合优化模块可支持稳态/准瞬态/瞬态热流耦合、一三维耦合、FMU集成、设计优化、敏感性分析、代理模型训......
  • 开箱你的 AI 语音女友「GitHub 热点速览」
    随着大模型API服务的不断丰富,开发者无需再依赖昂贵的硬件,也能轻松开发出拥有强大AI能力的应用。这不仅降低了技术门槛,也激发了极客们的创造力。就比如上周飙升1.5kStar的开源项目xiaozhi-esp32,仅用低成本的ESP32开发板和LLMAPI服务,就能制作出一个聪明有趣、......
  • 扎克伯格知晓 Meta 使用盗版图书馆数据训练 AI
    近日,随着Meta公司在一场关于版权的集体诉讼中披露的文件浮出水面,该公司利用一个名为LibraryGenesis(LibGen)的盗版电子书图书馆来训练其最新的AI聊天机器人Llama3的消息引发了广泛关注。这些文件显示,Meta的工程师曾讨论过利用LibGen这一“影子图书馆”的潜在风险,......
  • 【好书推荐:一本书读懂AI Agent】4种革新性AI Agent工作流设计模式全解析
    目录4种革新性AIAgent工作流设计模式全解析1.反思2.工具使用3.规划4.多Agent协作总结4种革新性AIAgent工作流设计模式全解析**导读:**AIAgent是指能够在特定环境中自主执行任务的人工智能系统,不仅接收任务,还自主制定和执行工作计划,并在过程中不断自我评估和......
  • 职场人如何学好AI?探星AI研习社提供全面内容
    探星AI研习社:职场人学习人工智能的黄金之路一、探星AI研习社简介探星AI研习社,是由探潜学堂联合各行业专家共同发起的平台。该平台致力于为职场人提供全面、系统的人工智能(AI)学习资源与培训服务。通过专业的培养计划,我们旨在帮助职场人提升在人工智能领域的专业知识和技能水平......
  • 从零开始打造AI知识库:使用爬虫自动化采集网页内容的完整教程
    言简意赅的讲解crawler爬虫解决的痛点童鞋们在实现私有化大语言模型和实现精准参数归纳与程序执行之后还是不满足AI相关的能力。在AI驱动的知识管理时代,快速搭建属于自己的知识库已成为很多开发者和团队的核心需求。本文将带你一步步创建一个基于网页爬取的知识库,并将其......
  • 【2025大模型最新版】AI大模型全解析:零基础入门到精通,一文搞定!
    近年来,随着深度学习技术的飞速发展,AI大模型作为人工智能领域的重要研究对象,正逐步成为学术界和产业界广泛关注的热点议题。AI大模型,作为一类具备庞大参数规模与卓越学习能力的神经网络模型,如BERT、GPT等,已在自然语言处理、计算机视觉等多个领域展现出卓越成效,极大地推动了......
  • 从目前AI的发展趋势来看,AI编程能力肯定会比人提升的越来越快,学习编程语言是否已经不再
    随着AI技术的发展,特别是像ChatGPT这样的生成式AI的出现,AI确实在编程方面展现了强大的能力。但学习编程语言和编程思维依然是一个人从事开发工作的核心能力,原因在于以下几个方面:1.编程语言依然重要的原因1.1理解AI的结果AI是工具而非替代品:AI可以帮助生成代码,但......