迁移学习和大语言模型
大型语言模型(LLMs)如ChatGPT已经引起了公众的关注,许多公司正在寻找机会将类似的功能整合到其产品中,但可能会加入更多的领域专业知识和关注点。
这可以通过迁移学习实现,即通过使用领域特定数据来对现有的最先进模型(如GPT-3)进行优化,以使其适用于您的特定用例。例如,您的用例可能具有期望的输出风格和格式(例如医疗记录)。通过迁移学习,您可以使用专有数据集来优化LLM的能力,以生成符合要求的内容。
迁移学习并不是什么新鲜事物,但最近大型语言模型(LLMs)的广泛流行引发了关于如何训练和部署LLMs的讨论,因此出现了LLMOps。
什么是LLMOps?
附注:一个更好的术语可以包括其他类型的基础模型和生成模型。LMOps?FOMO?或者也许我们应该坚持使用MLOps,但针对不同的用例。
LLMOps关注的是微调现有基础模型和将这些优化模型部署为产品的操作能力和基础架构。对于大多数关注MLOps运动的观察者来说,LLMOps并不是什么新鲜事物(除了作为一个术语),而是MLOps的一个子类别。然而,更狭义的定义可能有助于深入探讨微调和部署这些类型的模型所需的更具体要求。
基础模型庞大(GPT-3有1750亿个参数),因此需要大量的数据来进行训练,以及匹配的计算时间。根据Lambda Labs的说法,要在单个NVIDIA Tesla V100 GPU上训练GPT-3需要355年的时间。尽管微调这些模型不需要同样数量的数据或计算量,但它绝不是一个轻量级的任务。能够并行使用GPU计算机并处理大规模数据集的基础架构至关重要。
关于运行ChatGPT的成本,Twitter上有大量的估算(非常高昂)。虽然OpenAI尚未公开发布任何声明,但这些讨论突显了这些庞大模型的推断部分需要与更常见的传统ML模型不同级别的计算。此外,推断可能不仅仅是单个模型,还可能是一系列模型和其他保障措施,以为最终用户产生尽可能好的输出。
LLMOps领域概览
如上所提到的,对于熟悉MLOps的人来说,LLMOps并不是什么新鲜事物,因此其领域与MLOps相似。然而,许多为特定用例设计的MLOps工具可能不适用于微调和部署LLMs。例如,像Databricks这样的Spark环境适用于传统的ML,但对于微调LLMs,可能不太适用。
总的来说,今天的LLMOps领域包括以下方面:
-
大型语言模型(LLMs)
- LLM作为服务(LLM-as-a-Service)是指供应商将LLM作为API提供在其基础设施上。这是主要用于提供闭源模型的方式。
-
自定义LLM堆栈(Custom LLM stack)
- 这是一个更广泛的工具类别,用于微调和部署构建在开源模型之上的专有解决方案。
-
提示工程工具(Prompt Engineering tools)
- 允许在上下文中进行学习,而无需使用敏感数据,从而降低成本,而不是在更低的成本下进行微调。
-
矢量数据库(Vector Databases)
- 为某些提示检索上下文相关的信息。
-
提示执行(Prompt Execution)
- 允许优化和改进模型输出,基于管理提示模板以构建一系列相关提示。
-
提示日志记录、测试和分析(Prompt Logging, Testing, and Analytics)
- 这可以说是一个新兴的领域,目前还没有明确定义的分类。a16z已经提供了进一步阅读的内容,如果您有兴趣的话。