在 AWS 机器学习博客中,使用 Amazon SageMaker Clarify 和 MLOps
大规模利用亚马逊SageMaker Clarify 和 MLOps服务进行LLM评估
作者:Sokratis Kartakis、Jagdeep Singh Soni 和 Riccardo Gatti
发布日期:2023年11月29日
查看所有亚马逊SageMaker的文章
关键要点
大型语言模型LLMs的评估对于确保其质量和责任使用至关重要。亚马逊SageMaker Clarify提供了一种简易的评估工具,能够帮助用户在操作中实现自动化和可扩展性。本文介绍了如何将LLM评估集成至MLOps生命周期,包括多个场景下的实际代码示例。近几年来,大型语言模型LLMs作为强大的文本理解、生成和操控工具,已崭露头角。它们的潜在应用范围涵盖了对话助手、内容生成和信息检索,显现出对各行业的变革潜力。然而,充分利用这一潜力以及确保其负责任和有效的使用,依赖于LLM评估这一关键过程。LLM评估是一个用于衡量LLM或生成式AI服务输出质量和责任的任务。评估LLM不仅出于理解模型性能的需要,也是出于实施负责任的人工智能、减轻误导性信息或偏见内容风险的必要性,并降低生成有害、不安全、恶意和不道德内容的可能性。此外,LLM评估还可以帮助降低安全风险,尤其是在数据篡改的情况下。
亚马逊SageMaker Clarify通过简化的配置和一键式操作,提供了评估LLM的基本工具,让客户能够获取上述众多好处。在掌握这些工具后,接下来的挑战是将LLM评估集成至机器学习和运营MLOps生命周期中,以实现过程的自动化和可扩展性。本文将展示如何将亚马逊SageMaker Clarify的LLM评估与亚马逊SageMaker管道结合,实现规模化的LLM评估。此外,我们还提供了示例代码,供用户在 GitHub 仓库中使用,以进行并行多模型评估,使用包括Llama27bf、Falcon7b及微调的Llama27b模型实例。
谁需要进行LLM评估?
无论是训练、微调还是简单使用预训练LLM的用户,都需要准确评估它以评估由该LLM支持的应用程序的行为。基于这一原则,我们可以将需要LLM评估能力的生成式AI用户分为以下三类:
用户类型描述基础模型提供者训练通用的基础模型,这些模型可用于多种下游任务,例如特征提取或生成内容。微调者想要解决特定任务如情感分类、总结或问答并根据领域特定任务调整预训练模型的用户。模型消费者在生产环境中部署和监控通用或微调模型,以增强其应用程序或服务。如何进行LLM评估
有效的模型评估涉及三个基本组成部分:一个或多个基础模型或微调模型、输入数据集如提示、对话或常规输入和评估逻辑。
在选择模型进行评估时,需要考虑数据特征、问题复杂度、可用计算资源和预期结果等多种因素。输入数据存储点提供了训练、微调和测试所需的数据。值得注意的是,这一数据存储点应当结构良好、具有代表性且质量高,因为模型的性能高度依赖于其学习的数据。最后,评估逻辑定义评估模型性能所用的标准和指标。
这些组成部分共同构成了一个连贯的框架,确保对机器学习模型进行系统而严格的评估,最终得出明智的决策并提高模型效率。
在亚马逊SageMaker Clarify中进行LLM评估
亚马逊SageMaker Clarify帮助客户自动化各种指标的评估,包括但不限于准确性、稳健性、毒性及偏见等。作为一个全管理服务,SageMaker Clarify简化了在亚马逊SageMaker中使用开源评估框架的过程。客户可以根据自己的场景选择相关的评估数据集和指标,并通过自己的提示数据集和评估算法进行扩展。
魔方加速器app亚马逊SageMaker Clarify的LLM评估功能也是一个开源的基础模型评估库FMEval,旨在帮助客户轻松评估LLMs。以下部分介绍了通过亚马逊SageMaker Pipelines将SageMaker Clarify LLM评估功能集成以支持大规模LLM评估的方法。
亚马逊SageMaker MLOps生命周期
MLOps是将流程、人员和技术结合起来,以高效地将ML用例投入生产的过程。以下图展示了完整的MLOps生命周期:
这个典型的旅程从数据科学家创建概念验证笔记本开始,以证明ML可以解决业务问题。在概念验证PoC开发过程中,数据科学家需要将业务关键绩效指标KPI转化为机器学习模型指标,并利用有限的测试数据集来评估这些指标。随后,数据科学家与ML工程师合作,转移代码,从笔记本迁移到代码库,创建亚马逊SageMaker管道,连接多个处理步骤和任务,包括预处理、训练、评估和后处理,同时不断整合新的生产数据。
解决方案概述
为了加速您在大规模LLM评估方面的旅程,我们创建了一个解决方案,通过亚马逊SageMaker Clarify和新的亚马逊SageMaker Pipelines SDK来实现这些场景。代码示例,包括数据集、源笔记本和SageMaker管道步骤和ML流程,可在 GitHub 中获取。我们的主要关注点是与评估过程有关的SageMaker Pipeline解决方案的关键要素。
评估配置: 为了标准化评估程序,我们创建了一个YAML配置文件evaluationconfigyaml,其中包含评估过程的必要细节,包括数据集、模型和将在评估阶段运行的算法。以下是配置文件的示例:
yamlpipeline name llmevaluationmultimodelshybrid
dataset datasetname triviaqasampled inputdatalocation evaluationdatasettriviajsonl datasetmimetype jsonlines modelinputkey question targetoutputkey answer
models name llama27bf modelid metatextgenerationllama27bf
评估步骤: 新的SageMaker Pipeline SDK提供了灵活性,允许用户使用“@step” Python装饰器自定义ML工作流步骤。用户只需创建一个基本的Python脚本来执行评估。
pythondef evaluation(datas3path endpointname dataconfig modelconfig algorithmconfig outputdatapath)

通过上述方法,我们制定了在亚马逊SageMaker管道中评估单个基础模型的过程。所生成的管道有向无环图DAG。利用 GitHub 示例,我们可以通过将其作为“乐高”模块,开发出用于场景1和场景3的解决方案。
结论
本文着重介绍了如何通过亚马逊SageMaker Clarify LLM评估能力和亚马逊SageMaker Pipelines自动化和操作化LLM评估。除了理论架构设计外,我们还提供了示例代码,以帮助客户开发可扩展的评估机制。
未来,我们将重点开发满足基础模型从生产化全生命周期的示例,遵循FMOps/LLMOps:将生成AI投入生产并与MLOps的差异指南,包括LLM服务、监控、输出评分存储等。
关于作者
Dr Sokratis Kartakis 是亚马逊网络服务的机器学习和运营专家解决方案架构师,致力于帮助企业客户工业化ML和生成AI解决方案。
Jagdeep Singh Soni 是亚马逊网络服务的高级合作伙伴解决方案架构师,为系统集成商和技术合作伙伴提供DevOps和生成AI的解决方案。
Dr Riccardo Gatti 是亚马逊网络服务的高级初创公司解决方案架构师,帮助客户选择合适的工具和技术以快速创新和扩展业务。
欲查看评论,请访问页面。