AI知识库 AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


使用Kernel Memory进行RAG评估:AI助力企业知识管理新突破
发布日期:2024-06-27 19:51:24 浏览次数: 1538

        在现代企业知识管理中,随着业务的不断发展和扩展,各种文档和数据呈现爆炸式增长。为了有效且高效地管理这些知识,企业通常会导入大量文档。然而,当涉及到对文档切片质量和回答准确度的判断时,传统的人工方法显得既费时又费力。既然我们已经在使用AI技术,那么能否让AI来接管这部分工作?答案是肯定的,这正是RAG评估的用武之地。

https://github.com/explodinggradients/ragas?tab=readme-ov-file

        今天,我们将深入探讨一个名为Kernel Memory中的一个实验性项目,它还未正式发布,但已经在AI社区中引起了广泛关注。Kernel Memory中的Evaluation模块包含两部分:TestSetGenerator和TestSetEvaluator,分别用于生成测试数据集和基于数据集进行质量评估。使用这些工具,我们可以显著降低人工成本,提高文档处理的效率和准确性。


TestSetGenerator:生成测试数据集

        在进行Kernel Memory评估之前,首先需要创建一个测试集,这个测试集包含查询和预期的答案。虽然这是一个手工过程,但对于大数据集来说,可能非常繁琐。为了简化这个过程,我们提供了一个生成器,它可以从给定的Kernel Memory内存和索引中创建测试集。

以下是一个简单的示例代码:

using Microsoft.KernelMemory.Evaluation;
var testSetGenerator = new TestSetGeneratorBuilder(memoryBuilder.Services) .AddEvaluatorKernel(kernel) .Build();
var distribution = new Distribution{ Simple = .5f, Reasoning = .16f, MultiContext = .17f, Conditioning = .17f};
var testSet = testSetGenerator.GenerateTestSetsAsync(index: "default", count: 10, retryCount: 3, distribution: distribution);
await foreach (var test in testSet){ Console.WriteLine(test.Question);}

        在这个示例中,我们首先使用TestSetGeneratorBuilder来创建一个测试集生成器,并添加Evaluator内核。接下来,我们定义了一组分布参数,用于确定不同类型问题的比例。最后,我们生成测试集,并打印每个测试的问题。


TestSetEvaluator:质量评估

        一旦我们生成了测试集,下一步就是进行评估。通过TestSetEvaluator,我们可以评估Kernel Memory的性能。以下是相关代码示例:


var evaluation = new TestSetEvaluatorBuilder()                            .AddEvaluatorKernel(kernel)                            .WithMemory(memoryBuilder.Build())                            .Build();
var results = evaluation.EvaluateTestSetAsync(index: "default", await testSet.ToArrayAsync());
await foreach (var result in results){ Console.WriteLine($"Faithfulness: {result.Metrics.Faithfulness}, ContextRecall: {result.Metrics.ContextRecall}");}

        在这个示例中,我们首先创建一个TestSetEvaluator,并添加Evaluator内核和内存配置。接下来,我们评估测试集,并打印每次评估的结果,包含信实度(Faithfulness)和上下文回溯(ContextRecall)两个关键指标。


项目结构

        在Evaluation项目中,我们可以看到代码量并不大主要是提示词这里需要注意的是,Kernel Memory的提示词为英文,这里对中文的效果可能会打折扣,于是乎我把它平移翻译为中文来进行测试

例如这就是一个翻译前后的对比,由于这里大量依赖json输出,所以使用的模型必须支持json_object 否则在跑起来会有比较多的报错。



实际应用案例:AntSK项目

        在我们的AntSK项目中,我们已经集成了Evaluation模块进行质量评估。详情请参考我们的GitHub项目页面(AntSK)。

https://github.com/AIDotNet/AntSK

        通过结合Kernel Memory的Evaluation模块和AntSK项目,我们不仅可以实现高效的文档管理和评估,还能为企业带来更多的创新和提升整体效率。


总结与展望

        使用Kernel Memory进行RAG评估是一个创新和高效的解决方案,能够显著降低企业在知识管理方面的人工成本,同时提高处理效率和准确性。随着AI技术的不断发展和成熟,未来我们可以期待更多类似的工具和方法被开发和应用,为企业的智能化转型提供更强大的支持。

        如果您在企业知识管理方面遇到挑战或希望探索更多AI技术的应用,不妨试试Kernel Memory和AntSK项目,相信它们会为您的工作带来意想不到的惊喜。

        欢迎大家关注我的公众号,了解更多关于.NET和AI技术的前沿动态和实用教程,一起迎接未来技术的浪潮!


53AI,大模型落地应用首选服务商

定位:开箱即用的大模型落地应用平台

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

年轻人!来一起搞AI吗?

如果你看见AI对商业世界的变革,欢迎来和我们一起探索~

岗位:销售经理

查看详情

岗位:项目经理

查看详情

岗位:产品经理

查看详情

岗位:测试工程师

查看详情

联系我们

售前咨询
186 6662 7370
产品演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询