亚马逊AWS官方博客
炼石成丹:大语言模型微调实战系列(三)模型评估篇
背景
随着生成式 AI 技术的快速发展,大语言模型(LLM)在各个领域的应用日益广泛。然而,如何有效评估这些模型的质量,成为了一个重要而紧迫的问题。特别是对于经过微调的大模型,需要一套系统化、自动化的评估方案来确保模型的输出质量和性能表现。
https://arxiv.org/pdf/2307.03109, Fig. 1. Structure of this paper.
上图来自于《A Survey on Evaluation of Large Language Models》,纵观整个模型评估领域,可以看到大语言模型的评估体系已经形成了一个全面且系统化的框架。从自然语言处理的基础能力,到鲁棒性、伦理和可信度等关键特性,再到社会科学、自然科学、医疗、教育等专业领域的应用评估。特别值得注意的是,评估维度已经从单一的语言理解和生成能力,扩展到了更广泛的应用场景,包括数学推理、科学问答、医疗诊断等专业领域。
而企业在研发过程中要对模型评估,也需要有一个很好的评估机制。从评估的方式来看,目前大模型评估主要存在两种评估方式:自动评估和人工评估。
人工评估覆盖场景广泛、准确度高、反馈全面准确,但成本昂贵且效率低下。自动评估则可节省时间,减少主观因素影响,评估过程更加标准化,并能在模型迭代过程中持续评估测试,便于更好地迭代大语言模型。
大模型自动化评估解决方案
为了让企业更加便捷地对大语言模型进行自动化评估,我们设计了一个基于亚马逊云科技的评估方案。该方案通过 Promptfoo 工具与 Amazon Bedrock 服务的深度集成,实现了从数据输入到结果分析的全流程自动化,并借助 Amazon Bedrock 上广泛的模型选择,进行差异化的评估。
方案的流程
- 数据输入阶段:用户上传测试数据集到 S3 存储桶,S3 存储桶触发 Lambda 函数启动评估任务。
- 评估执行阶段:Promptfoo 评估工具从 S3 读取测试集进行推理,并通过 Amazon Bedrock 选用 Nova、Llama 以及其他模型对推理结果进行评估。
- 结果处理阶段:**评估结果自动存储并展示在评估仪表板上,支持多维度的结果分析和可视化。
方案架构图
这个自动化评估方案不仅满足了企业在模型评估过程中的多维需求,还提供了一个可扩展、可重复的评估框架,大大地提高了模型开发和优化的效率。
环境部署
1. 基础环境准备
首先通过 Amazon CloudFormation 自动创建所需的基础设施环境。这个自动化部署过程会配置必要的亚马逊云科技的服务,包括 EC2 实例、IAM 角色和安全组等。
2. 代码部署
克隆评估项目代码库:
3. 模型配置
我们将以实际用例来做一个评估比较,我们将比较两款大语言模型分别是 Claude Sonnet 3.5 和 Llama 3.2 两款大语言模型,我们将它设置为评估的对象,代码可以参考:
4. 评估数据集
接下来,我们需要创建测试用例。可以通过 CSV、JSON 或 YAML 文件定义,这里提供了一组自动的测试集,详见 https://github.com/tsaol/finetuning-on-aws/blob/main/model-evaluation/chatbot-evals/dateset/faq.yaml。
5. 评估配置
在 yaml 中,我们设置了使用大语言模型进行评估,通过 prompt 设置了评估规则和打分标准:
通过以上步骤,我们就完成了在亚马逊云科技云上大模型评估的环境配置。这个配置过程确保了我们能够利用亚马逊云科技的资源,同时使用灵活评估框架来系统地测试和比较不同的大语言模型。
运行评估:
任务将会以并行的方式进行推理,在推理结束后,我们可以再把结果做一个展示,并进行进一步的评估。
评估结果分析
评估的结果可以见下图:
通过率分析
Claude Sonnet 3.5 模型展现出了卓越的表现,通过率达到 100%,而 Llama 3.2 的通过率仅为 50%。这个差距主要体现在以下几个方面:
响应质量对比
- 响应准确性:Claude Sonnet 3.5 的回答更加准确,且始终保持高水平的一致性。
- 逻辑性:Claude Sonnet 3.5 在处理复杂问题时表现出更强的逻辑推理能力。
- 中文表达:Claude Sonnet 3.5 能够完全用中文表达,而 Llama 3.2 则略逊一筹。
性能稳定性
从柱状图可以观察到:
- Claude Sonnet 3.5 的表现更加稳定,波动较小。
- Claude Llama 3.2 在不同测试用例中表现波动较大,稳定性需要提升。
用例情况
在具体的用例场景上,大模型清晰地指出了未通过用例的问题,通过大模型评估工具的可视化界面和详细的评分机制,我们能够快速识别和定位模型在实际应用中的问题。评估工具不仅展示了模型的整体通过率差异(Claude Sonnet 3.5 为 100%,Llama 3.2 为 50%),更重要的是帮助我们发现了模型在语言规范性、专业知识应用、答案完整度等多个维度的具体表现差异。这种系统化的评估方式让我们能够直观地了解模型的优劣势,从而为模型选择和优化提供清晰的方向指导。
结论
通过本次使用自动评估工具对大语言模型进行的方案,成功地将人工评估的主观性转化为可量化的客观指标,通过预设的测试用例和评分标准,系统地评估了模型的性能表现。同时,借助亚马逊云科技广泛的生成式 AI 能力,评估工具实现了灵活性和可扩展性。这种自动化的评估方法不仅提高了评估效率,降低了人工成本,更为企业在选择和优化大语言模型时提供了可靠的决策依据。这也正是我们在开篇所强调的,在生成式 AI 快速发展的背景下,一个系统化、自动化的评估方案对确保模型质量的重要性。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。
参考链接
- https://arxiv.org/pdf/2307.03109
- https://github.com/promptfoo/promptfoo
- https://github.com/tsaol/finetuning-on-aws/tree/main/model-evaluation