微信扫码
与创始人交个朋友
在现代企业知识管理中,随着业务的不断发展和扩展,各种文档和数据呈现爆炸式增长。为了有效且高效地管理这些知识,企业通常会导入大量文档。然而,当涉及到对文档切片质量和回答准确度的判断时,传统的人工方法显得既费时又费力。既然我们已经在使用AI技术,那么能否让AI来接管这部分工作?答案是肯定的,这正是RAG评估的用武之地。
https://github.com/explodinggradients/ragas?tab=readme-ov-file
今天,我们将深入探讨一个名为Kernel Memory中的一个实验性项目,它还未正式发布,但已经在AI社区中引起了广泛关注。Kernel Memory中的Evaluation模块包含两部分:TestSetGenerator和TestSetEvaluator,分别用于生成测试数据集和基于数据集进行质量评估。使用这些工具,我们可以显著降低人工成本,提高文档处理的效率和准确性。
在进行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,我们可以评估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项目中,我们已经集成了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对商业世界的变革,欢迎来和我们一起探索~
2024-07-03
让企业为大模型买单,目前有四大难
2024-07-03
Laplace AI Lab打破了传统SaaS和RPA框架的局限,解决了功能繁杂、操作复杂
2024-07-03
演讲实录|如何以 AI+指标平台构建企业数智竞争力
2024-07-03
演讲实录丨智能一站式指标平台在头部企业的实践分享
2024-07-03
“指标平台”掀起数智风暴:AI 对话已达 95% 准确率、100% 可解释!
2024-07-03
不是“尝鲜”,餐饮巨头市场团队已用指标平台+AI 更高效理解业务和决策
2024-07-03
GenAI大模型成熟度模型 - Google
2024-07-02
从企业内部的聊天记录中构建一个知识库式的检索增强生成 (RAG) 应用
2024-03-11
2024-04-02
2024-03-11
2024-04-24
2024-04-01
2024-04-18
2024-04-06
2024-04-08
2024-05-15
2024-04-03
2024-07-01
2024-06-29
2024-06-28
2024-06-24
2024-06-21
2024-06-20
2024-06-20
2024-06-19