简而言之

本文介绍了 LLMOps,这是一个融合了 DevOps 和 MLOps 的专业分支,旨在应对大型语言模型(LLMs)带来的挑战。大型语言模型(如 OpenAI 的 GPT)利用海量的文本数据来完成文本生成和语言翻译等任务。 LLMOps通过LangSmith、TruLens和W&B Prompts等工具,解决定制化、API变更、数据漂移、模型评估及监控等问题。它确保了LLMs在实际应用场景中的适应性、评估和监控能力,为利用这些先进语言模型的企业提供了全面的解决方案。

为了引导大家深入探讨这一话题,我们将首先回顾 DevOps 和 MLOps 的基本原则,随后重点探讨 LLMOps,首先简要介绍大型语言模型(LLMs)及其在企业中的应用。接下来,我们将深入探讨大型语言模型技术带来的主要运营挑战,以及 LLMOps 如何有效应对这些挑战。

LLMOps 的基础原则:DevOps 与 MLOps

DevOps 是“开发(Development)”和“运维(Operations)”的缩写,是一套旨在实现软件交付流程自动化的实践方法,旨在提高其效率、可靠性和可扩展性。DevOps 的核心原则包括:协作、自动化、持续测试、监控以及部署协调。

MLOps(即机器学习运维)是 DevOps 实践的延伸,专门针对机器学习模型的生命周期管理而设计。它旨在解决机器学习开发过程中因迭代和实验性特征而带来的独特挑战,并引入了数据版本控制与管理、实验以及模型训练等额外任务。

LLMOps:大型语言模型的部署与运维管理

LLMOps(全称 Large Language Model Operations)是 MLOps 的一个专门分支,旨在专门应对管理大型语言模型(LLMs)所面临的独特挑战和需求。

但首先,大型语言模型(LLMs)究竟是什么?

大型语言模型(LLM)是一种深度学习模型,它利用海量的文本数据来估计数十亿个参数。这些参数使大型语言模型能够理解并生成具有人类水准的文本、进行语言翻译、总结复杂信息,并执行各种自然语言处理任务。

组织如何使用大型语言模型

由于从头开始训练大型语言模型(LLM)成本极高且耗时巨大,企业通常选择预训练的基础模型(如 OpenAI 的 GPT 或 Google AI 的 LaMDA)作为起点。这些模型已在海量数据上经过训练,拥有广泛的知识储备,能够执行多种任务,包括生成文本、语言翻译以及撰写各类创意内容。 为了进一步将大语言模型的输出定制化以适应特定任务或领域,企业会采用提示工程、检索增强生成(RAG)和微调等技术。提示工程涉及编写清晰简洁的指令,引导大语言模型达成预期结果;而RAG则通过引入外部数据源的补充信息来强化模型,从而提升其性能和相关性。 另一方面,微调则是利用符合组织特定需求的数据来调整 LLM 的参数。下图概述了 LLMOps 工作流,展示了这些技术如何与整体流程相融合。

class="lazyload

为什么我们需要 LLMOps

大语言模型(LLM)技术的飞速发展,暴露出若干运营挑战,这些挑战需要采取专门的应对措施。

这些挑战包括:

  • 定制化的必要性:尽管大型语言模型(LLMs)是在海量数据上预训练的,但为了在特定任务中实现最佳性能,定制化至关重要。这促使了一系列新的定制化技术的发展,例如提示工程、检索增强生成(RAG和微调。 RAG通过提供外部知识库,帮助模型基于最准确的信息进行推理;而微调则更适用于需要模型执行特定任务,或遵循特定响应格式(如JSON或SQL)的情况。选择RAG还是微调,取决于我们的目标是增强模型的知识储备,还是提升其在特定任务中的表现。

  • API 变更:与传统机器学习模型不同,大型语言模型通常是通过第三方 API 访问的,这些 API 可能会被修改甚至废弃,因此需要持续监控和调整。例如,OpenAI 的文档中明确指出,其模型会定期更新,这可能要求用户更新软件,或迁移到更新的模型或端点。

  • 数据漂移是指输入数据的统计特性发生变化,这种情况在生产环境中经常发生,即实际遇到数据与大型语言模型(LLMs)训练时所用的数据存在偏差。这可能会导致生成不准确或过时的信息。 例如,GPT-3.5模型在截止日期延长至2022年1月之前,其信息仅涵盖至2021年9月。因此,它无法回答关于近期事件的问题,导致用户感到沮丧。

  • 模型评估:在传统的机器学习中,我们通常依靠准确率、精确率和召回率等指标来评估模型。然而,评估大型语言模型(LLMs)要复杂得多,尤其是在缺乏真实数据的情况下,以及当处理自然语言输出而非数值时。

  • 监控:对大型语言模型(LLM)及其相关应用程序进行持续监控至关重要。这一过程也更为复杂,因为它涉及多个方面,需要综合考量以确保这些语言模型的整体有效性和可靠性。我们将在下一节中更详细地探讨这些方面。

LLMOps 如何应对这些挑战

LLMOps 在 MLOps 的基础上,引入了专为大型语言模型(LLMs)量身定制的专用组件:

  • 提示词工程与微调管理:LLMOps 提供了诸如提示词版本控制系统等工具,用于跟踪和管理不同版本的提示词。它还与微调框架集成,以实现微调过程的自动化和优化。 这些工具的一个典型代表是 LangSmith,这是一个专门用于管理 LLM 工作流的框架。其全面的功能涵盖提示词版本控制,从而支持可控的实验和结果可复现性。此外,LangSmith 还能利用经过过滤和增强的运行数据对 LLM进行微调,以提升模型性能。

  • API变更管理:LLMOps 建立了用于监控API 变更、向运维人员发出潜在中断警报,并在必要时支持回滚的流程。

  • 模型对数据变化的适应:LLMOps 有助于将大型语言模型(LLM)适应不断演变的数据环境,确保模型在数据模式发生变化时仍能保持相关性和高性能。这可以通过监控数据分布,并在检测到显著变化时触发适应流程来实现。这些流程可能包括:
    ->重新训练或微调:根据数据漂移的程度和可用资源,可以采用重新训练或微调来减轻其影响。
    ->领域适配:针对目标领域的数据集对大语言模型(LLM)进行微调。
    ->知识蒸馏:利用更大、更强大且更及时的模型所拥有的知识和专业能力,来训练一个较小的模型。

  • 针对大语言模型(LLM)的评估:LLMOps 采用了适用于大语言模型的新型评估工具。其中包括:
    ->基于文本的指标,例如困惑度(perplexity);这是一种统计指标,用于衡量模型预测序列中下一个单词的能力。此外还有 BLEU 和 ROUGE 指标,它们将机器生成的文本与人类编写的一个或多个参考文本进行比较。这些指标常用于翻译和摘要任务。
    ->分析嵌入向量(词汇或短语的向量表示),以评估模型理解特定语境词汇及捕捉语义相似性的能力。可视化和聚类技术也能帮助我们检测偏见。
    ->评估者大语言模型:利用其他大语言模型来评估我们的模型。例如,可以通过基于预定义指标(如流畅度、连贯性、相关性和事实准确性)对被评估模型的输出进行打分来实现。
    ->人类反馈整合:LLMOps 整合了收集人类反馈并将其纳入机器学习生命周期的机制,从而提升大语言模型的性能并解决偏见问题。
    TruLens是一款工具,它通过一种称为“反馈函数”(Feedback Functions)的编程方法,将这些评估整合到 LLM 应用中。

  • 针对大型语言模型(LLM)的监控:LLMOps 集成了持续监控功能,用于追踪 LLM 性能指标、识别潜在问题,并检测概念漂移或偏见。这包括:
    ->功能监控;通过追踪请求数量、响应时间、令牌使用量、错误率和成本。
    ->提示词监控;确保可读性,并检测有毒内容及其他形式的滥用。W&B Prompts是一套专为监控基于 LLM 的应用程序而设计的工具。它可用于分析 LLM 的输入和输出,查看中间结果,并安全地存储和管理您的提示词。
    ->响应监控;旨在保证模型的关联性和一致性。这包括防止生成虚构或不真实的内容,以及确保排除有害或不当的内容。透明度有助于我们更好地理解模型的响应。可通过揭示答案来源(在 RAG 中)或提示模型说明其推理过程(思维链)来实现。

这些监控数据可用于提升运营效率。我们可以通过设置令牌使用提醒,并采用缓存先前响应等策略来优化成本管理。这样,在处理类似查询时,我们无需再次调用大型语言模型(LLM),即可复用这些响应。此外,我们还可以在可行的情况下选择更小的模型,并限制生成的令牌数量,从而最大限度地降低延迟。

结论

在本文中,我们探讨了LLMOps的兴起——作为DevOps和MLOps的衍生概念,它专门针对大型语言模型带来的运维挑战而设计。最后,让我们通过这三种方法论的直观对比,展示它们在大型语言模型用户企业中的应用范围。这些企业利用这些模型来开发产品并解决业务问题。

class="lazyload

尽管这三种方法论在持续集成/持续交付(CI/CD)、版本控制和评估等方面有着共同的实践,但它们各自侧重的领域却各不相同。DevOps 涵盖了从开发到部署及维护的整个软件开发生命周期。MLOps 则在 DevOps 的基础上进一步扩展,以应对机器学习模型的特定挑战,包括自动化模型训练、部署和监控。 作为这些方法论的最新演进,LLMOps 专门针对大型语言模型(LLMs)。尽管使用大型语言模型的企业无需自行开发模型,但它们仍面临运营挑战,包括管理 API 变更,以及通过提示工程和微调等技术对模型进行定制。

class="lazyload

Artefact 的 Medium 博客。

本文最初发表于Medium.com。
欢迎关注我们的Medium博客!