什么是LLMOps?

发布于 2024-6-26 15:49
浏览
0收藏

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


什么是LLMOps?-AI.x社区

  • LLMOps的关键组成部分

    LLMOp配置中应该使用哪种模型,市面上有各种类型的模型可供选择,每种模型都针对特定的用例进行了优化,且有不同的大小选项等,选择合适的模型主要取决于应用和可用资源。

  • 选择合适的基础模型

LLM模型和提供商可以分为以下几类:

专有模型:这一类别包括像OpenAI(GPT模型)、Google(PaLM模型)和Anthropic(Claude模型)这样的公司,它们训练专有的LLM,并通过Web界面或API端点将它们作为服务提供。

开源模型:这一类别由社区、学术界或像Eleuther AI和Big Science这样的组织开发的免费模型。理想情况下,我们可以采用一个开源模型,并自行构建服务,包括LLMOps基础设施。

提供基础设施的公司:这些公司为开源LLM提供LLMOps基础设施,他们通过提供部署服务来实现盈利,如Together AI这样的公司,提供了轻松定制LLMOps基础设施的机会。

什么是LLMOps?-AI.x社区

专有模型是由拥有大型专家团队和大量预算的公司拥有的闭源基础模型,通常比开源模型更大,因此具有更好的性能,由于是现成的模型,因此很容易使用。专有模型的主要缺点是API费用昂贵。此外,闭源基础模型为开发人员提供的灵活性很少或者根本没有灵活性。

开源模型通常在Hugging Face、魔搭上以社区形式组织和托管,通常比专有模型功能更少。但从好的方面来看,比专有模型更具成本效益,并为开发人员提供了更大的灵活性。

  • 选择合适的微调策略

大语言模型(LLM)无论是专有还是开源,通常都需要经过微调才能适应特定的应用场景。市面上已有针对特定任务预微调的LLM,如聊天机器人、文本摘要和情感分析模型。此外,针对长文本处理的需求,一些模型提供了能够处理更多上下文(如GPT 3.5的16k上下文大小变体)的长上下文版本。

如果现有的模型无法满足特定需求,可以选择对模型进行微调或从头开始训练,而选择合适的数据集对于后者尤为关键,它决定了模型对目标任务的理解和适应能力。

如果我们的应用程序需要对现有模型进行微调,相关步骤也应成为LLMOps设置的一部分,现在将这个定制步骤添加到原始的图表中:

什么是LLMOps?-AI.x社区

LLMOps工作流程将模型定制步骤(橙色部分)纳入通用工作流程中。拥有一个一致的微调流程可以帮助开发者随着更多数据的可用性,扩展模型的知识,允许轻松升级LLM版本或进行其他修改。当依赖第三方模型时,要注意这些模型可能在可用性到成本方面发生变化,这可能会迫使我们切换到不同的基础模型。一个健壮的LLMOps配置支持,将使我们能够通过简单地用不同的LLM替换“模型”框来顺利处理这种关键情况。

然后为了确保在LLMOps基础设施中有效地进行训练、微调和模型优化,保持训练数据与后续推理数据格式的一致性至关重要。通常,采用JSON Lines(.jsonl)格式来组织训练数据,这种格式得益于其结构特点,非常适合用于LLM的微调,并且能够高效地处理大规模数据集。

典型的用于微调的.jsonl文件像这样:

{"prompt": "问题:法国的首都是什么?", "completion": "法国的首都是巴黎。"}
{"prompt": "问题:谁写了《麦克白》?", "completion": "《麦克白》是由威廉·莎士比亚写的。"}

文件中的每一行都是一个独立的JSON对象,代表一个单一的训练示例,其中prompt和completion键分别指示输入文本和预期的模型响应。此外,这种格式便于向模型的知识库中增量添加或导出新数据。

什么是LLMOps?-AI.x社区

最后,在设置LLMOps基础设施时,模型参数也很重要,因为它们会影响模型大小和资源消耗等特性。

关于训练参数,优化训练参数以平衡模型的复杂性与部署的限制(如内存使用)至关重要。这种优化对于在资源容量不同的多样化环境中部署模型非常重要,确保模型不仅先进,而且适用于现实世界的应用。

关于推理参数,调整最大token参数可以控制响应的长度和随机性。这些设置作为LLMOps过程的一部分进行管理,以使模型的输出与特定应用要求和用户意图保持一致。

  • 如何进行模型的评估

在经典MLOps中,ML模型在保留的验证集上进行验证,并基于模型性能度量进行评估。但是如何评价LLM的表现呢?如何判断回应是好是坏?目前,相关组织正在对模型进行A/B测试,为了帮助评估LLM,出现了HoneyHive、HumanLoop等工具。

  • 如何进行模型部署和监控

当基础模型训练或微调完成,并且对成果满意后,接下来就是部署模型的阶段。在LLMOps中,部署意味着将语言模型从训练状态转移到生产环境,使其能够在实际工作中发挥作用。

什么是LLMOps?-AI.x社区

    部署还包括设置我们与生产中的模型通信的接口。通常,接口取决于处理模式:

  • 实时处理:对于需要实时交互的应用,如聊天应用,部署模型的方式必须允许立即处理数据并生成输出。这通常通过创建与模型接口的应用程序编程接口(API)来实现。如今,有许多库,如Flask,允许我们通过简单的步骤创建API接口。 API可以部署在Web服务器或云平台上,确保用户或需要与模型交互的系统可以访问它们。我们的LLMOps设置应确保API能够处理预期的负载,并考虑扩展性、负载均衡和故障转移机制。

什么是LLMOps?-AI.x社区

  • 批量预测:在许多用例中,实时预测并不必要。例如,如果有一批客户评论,需要每周分类一次,我们可以使用训练好的模型批量处理这些评论。这种方法对于时间不敏感的任务来说是高效且资源友好的。对于批量用例,可以使用cron(在类Unix系统)或基于云的任务调度服务等工具来安排批量作业。这些作业将在指定的时间间隔内运行模型处理新数据,处理数据并存储结果。
  • 模型打包:包括将模型及其依赖项包装成可以轻松部署和在生产环境中使用的格式。这可能涉及容器化技术,如Docker,它封装了模型及其环境,以确保在不同平台间的一致性。
  • 模型版本控制:跟踪模型的不同版本至关重要,特别是当您更新或重新训练模型时。版本控制有助于保持模型迭代、训练数据和提示模板的清晰记录。

    在不同版本更新或切换模型,需要监控LLM驱动的应用程序对应底层API模型的变化。目前已经出现了监控LLM的工具,如Whylabs、HumanLoop等。

什么是LLMOps?-AI.x社区

 

4.总结与展望

使用LLMOps(Large Language Model Operations)可以显著提升开发和运维大语言模型(LLM)应用的效率和效果。但是仍然面临着以下的挑战:

  • 模型大小与计算资源挑战:大规模预训练模型通常体积庞大,需要大量的参数以达到优秀的性能,这给模型的部署和使用带来了挑战。模型的训练和推理要求巨大的计算资源,对企业和研究机构造成了压力。
  • 数据隐私和安全挑战:大规模预训练模型需要使用海量数据进行无监督学习,可能引发数据隐私和安全问题。在特定领域如医疗领域应用时,敏感数据的暴露可能造成隐私泄露的风险。同时,预训练过程中存在恶意注入攻击的风险,可能导致模型被篡改和损坏。
  • 特定领域知识与迁移学习的挑战:预训练模型在无标注数据上训练,其特征具有一定的通用性,但在特定领域应用中可能缺乏相关知识,导致性能下降。将预训练模型迁移到具体任务上需要额外的标注数据,增加了应用的成本和困难。
  • 技术更新和持续学习的挑战:随着技术的不断进步,LMMOps需要不断跟进最新的技术趋势,以保持模型的竞争力和性能。持续学习对于模型的优化和改进至关重要,但这也需要相应的资源和策略支持。
  • 软件依赖和兼容性的挑战:LMMOps可能依赖于特定的软件库或框架,而这些依赖可能会随着时间的推移而发生变化,导致兼容性问题。不同的系统和环境可能对模型的部署和运行产生影响,需要确保在各种环境下的稳定性和性能。
  • 团队协作和沟通的挑战:LMMOps往往涉及多个团队和成员的协作,如何有效沟通和协调各个团队的工作是一个重要挑战。团队成员可能具有不同的专业背景和技能水平,需要找到一种有效的方式来共享知识和经验。

    综上所述,LMMOps面临的挑战涵盖了技术、安全、资源、团队协作等多个方面。为了克服这些挑战,需要综合考虑技术创新、团队协作、数据安全和隐私保护等多个因素。

    自OpenAI的ChatGPT发布以来,LLM是目前AI领域的热门话题。这些深度学习模型可以生成人类语言输出,使其成为会话AI、写作助手和编程助手等任务的强大工具。随着LLM在AI行业的普及,我们认为:

  • 内置LLM关键技术栈,包括对开源社区模型的支持、直观的 Prompt编排界面、高质量的RAG引擎、灵活的Agent框架,并同时提供支持应用构建、提示词、发布的易用界面和API等。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
  • 更多理念融合,如后端即服务(Backend as Service)和 LLMOps的大语言模型应用开发平台,使开发者可以快速搭建生产级的生成式AI应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
  • 大语言模型与已有小模型工具的有机结合,是大模型应用落地的值得尝试的方向。
  • AI Agent,基于智能体编排多个工具完成复杂任务,将彻底改变人类使用计算机的方式,智能体有可能成为 LLM 应用程序架构的核心部分,甚至接管整个技术栈。


总体而言,LLM和LLMOps的兴起代表了构建和维护AI产品的重大转变。


参考文献


[1].​​​https://zhuanlan.zhihu.com/p/682932255​

[2].​​​https://zhuanlan.zhihu.com/p/629589593​

[3].​​​https://mp.weixin.qq.com/s/-VUoKU3lKGi1TkV1c_-rxg​

[4].​​​https://zhuanlan.zhihu.com/p/645327750​

[5].​​​https://www.cnblogs.com/charlieroro/p/18051187​

[6].​​​https://blog.csdn.net/csdn1561168266/article/details/137406086​

[7].​​​https://cloud.tencent.com/developer/article/2301085​

[8].​​​https://zhuanlan.zhihu.com/p/631630717​

[9].​​​https://zhuanlan.zhihu.com/p/640725385​

[10].​​​https://dify.ai/zh​

[11].​​​https://python.langchain.com/docs/get_started/introduction/​

[12].​​​https://docs.flowiseai.com/​

[13].​​​https://docs.vllm.ai/en/latest/dev/kernel/paged_attention.html​

[14].​​​https://www.hugging-face.org/models/​

[15].ModelScope:​​https://modelscope.cn/home​

[16].​​​https://www.honeyhive.ai/evaluation​

[17].​​​https://humanloop.com/​

[18].​​​https://arxiv.org/abs/2307.03109​

 

本文转载自​AI遇见云​,作者: 王钦 ​​

收藏
回复
举报
回复
相关推荐