赞
踩
前面文章都是介绍如何使用大模型,本文将从另外一个角度来学习 Spring AI,如何评估大模型的性能。 并看下Spring AI 框架如何实现评估测试的。
随着大模型技术的推进,评测其性能和能力的需求也日益增长,这不仅仅是技术层面的需求,更关系到商业决策和公众认知。 为什么需要大模型评估测试?主要原因如下;
大模型的评估需要一套标准,所有按照一套标准进行评估,比较才会有公平性,就以 SuperCLUE 为例。
SuperCLUE是一个综合性大模型评测基准,评测主要聚焦于大模型的四个能力象限,包括语言理解与生成、专业技能与知识、Agent智能体和安全性,进而细化为12项基础能力。
根据评测我们可以从大范围内选择适合我们的模型,在此基础上我们可能对模型进行微调等,在微调后我们就需要对微调的模型,使用一些测试数据,对模型进行评估测试。
Spring AI 主要测试 AI 应用程序需要评估生成的内容,以确保 AI 模型没有产生幻觉反应。
用于评估响应的 Spring AI 接口定义为 Evaluator
:
@FunctionalInterface
public interface Evaluator {
EvaluationResponse evaluate(EvaluationRequest evaluationRequest)
}
评估的输入 EvaluationRequest
定义为
public class EvaluationRequest { private final String userText; private final List<Content> dataList; private final String responseContent; public EvaluationRequest(String userText, List<Content> dataList, String responseContent) { this.userText = userText; this.dataList = dataList; this.responseContent = responseContent; } ... }
它使用 AI 模型进行评估。未来版本中将提供更多实现。 RelevancyEvaluator
使用输入 ( userText
) 和 AI 模型的输出 ( chatResponse
) 来提出问题:
Your task is to evaluate if the response for the query is in line with the context information provided.\n
You have two options to answer. Either YES/ NO.\n Answer - YES, if the response for the query is in line with context information otherwise NO.\n
Query: \n {query}\n
Response: \n {response}\n
Context: \n {context}\n
Answer: "
例如:该测试对加载到 Vector Store 中的 PDF 文档执行 RAG 查询,然后评估响应是否与用户文本相关。
@Test void testEvaluation() { dataController.delete(); dataController.load(); // 用户的提问 String userText = "What is the purpose of Carina?"; // 大模型影响 String responseContent = ChatClient.builder(chatModel) .build().prompt() .advisors(new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults())) .user(userText) .call() .content(); // 定义一个相关性评估器 var relevancyEvaluator = new RelevancyEvaluator(ChatClient.builder(chatModel)); // 将 用户提问 + 模型的响应,一并发给大模型进行评估 EvaluationRequest evaluationRequest = new EvaluationRequest(userText, (List<Content>) response.getMetadata().get(QuestionAnswerAdvisor.RETRIEVED_DOCUMENTS), responseContent); // 返回评估结果 EvaluationResponse evaluationResponse = relevancyEvaluator.evaluate(evaluationRequest); // 断言是否大模型是否满足性能需求 assertTrue(evaluationResponse.isPass(), "Response is not relevant to the question"); }
大模型的评估也是相当重要的,是用好大模型的关键步骤。就像测试一样保障程序尽量少出bug。这个也是一个值得研究的专题,后续也会持续研究,并实践。本文也仅是做一个引入并记录一下。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。