1.概念
自2018年GPT-2的问世以来,大语言模型(LLM)如GPT系列逐渐发展壮大,尤其是GPT-3及其后续版本的推出,性能方面显著提升。这些模型的强大能力催生了众多应用,如客户服务的聊天机器人、多语言翻译服务和辅助写作编程的工具等。面对LLM在实际应用中的独特挑战,业界发展出了新的工具和最佳实践,以更有效地管理这些模型的整个应用生命周期,这一进程的集合即为“LLMOps”。
LLMOps(Large Language Model Operations)定义为大语言模型运维,其缩写LLMOps的意思是面向LLM的MLOps,涵盖了大语言模型(如GPT系列)开发、部署、维护和优化的一整套流程。其目标是确保高效、可扩展和安全地使用这些强大的 AI 模型来构建和运行实际应用程序。它涉及到模型训练、部署、监控、更新、安全性和合规性等方面。
要理解LLMOps,关键在于掌握大语言模型(LLMs)作为服务的运作流程。这包括用户输入(绿色部分),在输入到模型之前会经历一些处理步骤;模型输出(红色部分),在展示给用户之前也会经历几轮转换。可以看出,提示在传递给模型之前需经过多个阶段,这些步骤虽有差异,但基本的目的相同:确保输入被正确理解,并且模型的输出与上下文相匹配。
2.LLMOps Cookbook
LLMOp配置中应该使用哪种模型,市面上有各种类型的模型可供选择,每种模型都针对特定的用例进行了优化,且有不同的大小选项等,选择合适的模型主要取决于应用和可用资源。
LLM模型和提供商可以分为以下几类:
专有模型:这一类别包括像OpenAI(GPT模型)、Google(PaLM模型)和Anthropic(Claude模型)这样的公司,它们训练专有的LLM,并通过Web界面或API端点将它们作为服务提供。
开源模型:这一类别由社区、学术界或像Eleuther AI和Big Science这样的组织开发的免费模型。理想情况下,我们可以采用一个开源模型,并自行构建服务,包括LLMOps基础设施。
提供基础设施的公司:这些公司为开源LLM提供LLMOps基础设施,他们通过提供部署服务来实现盈利,如Together AI这样的公司,提供了轻松定制LLMOps基础设施的机会。
专有模型是由拥有大型专家团队和大量预算的公司拥有的闭源基础模型,通常比开源模型更大,因此具有更好的性能,由于是现成的模型,因此很容易使用。专有模型的主要缺点是API费用昂贵。此外,闭源基础模型为开发人员提供的灵活性很少或者根本没有灵活性。
开源模型通常在Hugging Face、魔搭上以社区形式组织和托管,通常比专有模型功能更少。但从好的方面来看,比专有模型更具成本效益,并为开发人员提供了更大的灵活性。
大语言模型(LLM)无论是专有还是开源,通常都需要经过微调才能适应特定的应用场景。市面上已有针对特定任务预微调的LLM,如聊天机器人、文本摘要和情感分析模型。此外,针对长文本处理的需求,一些模型提供了能够处理更多上下文(如GPT 3.5的16k上下文大小变体)的长上下文版本。
如果现有的模型无法满足特定需求,可以选择对模型进行微调或从头开始训练,而选择合适的数据集对于后者尤为关键,它决定了模型对目标任务的理解和适应能力。
如果我们的应用程序需要对现有模型进行微调,相关步骤也应成为LLMOps设置的一部分,现在将这个定制步骤添加到原始的图表中:
LLMOps工作流程将模型定制步骤(橙色部分)纳入通用工作流程中。拥有一个一致的微调流程可以帮助开发者随着更多数据的可用性,扩展模型的知识,允许轻松升级LLM版本或进行其他修改。当依赖第三方模型时,要注意这些模型可能在可用性到成本方面发生变化,这可能会迫使我们切换到不同的基础模型。一个健壮的LLMOps配置支持,将使我们能够通过简单地用不同的LLM替换“模型”框来顺利处理这种关键情况。
然后为了确保在LLMOps基础设施中有效地进行训练、微调和模型优化,保持训练数据与后续推理数据格式的一致性至关重要。通常,采用JSON Lines(.jsonl)格式来组织训练数据,这种格式得益于其结构特点,非常适合用于LLM的微调,并且能够高效地处理大规模数据集。
典型的用于微调的.jsonl文件像这样:
{"prompt": "问题:法国的首都是什么?", "completion": "法国的首都是巴黎。"}{"prompt": "问题:谁写了《麦克白》?", "completion": "《麦克白》是由威廉·莎士比亚写的。"}
文件中的每一行都是一个独立的JSON对象,代表一个单一的训练示例,其中prompt和completion键分别指示输入文本和预期的模型响应。此外,这种格式便于向模型的知识库中增量添加或导出新数据。
最后,在设置LLMOps基础设施时,模型参数也很重要,因为它们会影响模型大小和资源消耗等特性。
关于训练参数,优化训练参数以平衡模型的复杂性与部署的限制(如内存使用)至关重要。这种优化对于在资源容量不同的多样化环境中部署模型非常重要,确保模型不仅先进,而且适用于现实世界的应用。
关于推理参数,调整最大token参数可以控制响应的长度和随机性。这些设置作为LLMOps过程的一部分进行管理,以使模型的输出与特定应用要求和用户意图保持一致。
在经典MLOps中,ML模型在保留的验证集上进行验证,并基于模型性能度量进行评估。但是如何评价LLM的表现呢?如何判断回应是好是坏?目前,相关组织正在对模型进行A/B测试,为了帮助评估LLM,出现了HoneyHive、HumanLoop等工具。
当基础模型训练或微调完成,并且对成果满意后,接下来就是部署模型的阶段。在LLMOps中,部署意味着将语言模型从训练状态转移到生产环境,使其能够在实际工作中发挥作用。
部署还包括设置我们与生产中的模型通信的接口。通常,接口取决于处理模式:
在不同版本更新或切换模型,需要监控LLM驱动的应用程序对应底层API模型的变化。目前已经出现了监控LLM的工具,如Whylabs、HumanLoop等。
4.总结与展望
使用LLMOps(Large Language Model Operations)可以显著提升开发和运维大语言模型(LLM)应用的效率和效果。但是仍然面临着以下的挑战:
综上所述,LMMOps面临的挑战涵盖了技术、安全、资源、团队协作等多个方面。为了克服这些挑战,需要综合考虑技术创新、团队协作、数据安全和隐私保护等多个因素。
自OpenAI的ChatGPT发布以来,LLM是目前AI领域的热门话题。这些深度学习模型可以生成人类语言输出,使其成为会话AI、写作助手和编程助手等任务的强大工具。随着LLM在AI行业的普及,我们认为:
总体而言,LLM和LLMOps的兴起代表了构建和维护AI产品的重大转变。
参考文献
[1].
[2].
[3].
[4].
[5].
[6].
[7].
[8].
[9].
[10].
[11].
[12].
[13].
[14].
[15].ModelScope:
[16].
[17].
[18].
本文转载自,作者: