这是关于在实践中使用大型语言模型(LLMs)系列文章的第一篇。在这里,我将介绍LLMs并提出三个使用它们的级别。未来的文章将探讨LLMs的实际方面,例如如何使用OpenAI的公共API、Hugging Face Transformers Python库、如何微调LLMs以及如何从头构建LLMs
有趣的是,这是许多(非大型)语言模型过去被训练的方式(例如GPT-1)[3]。然而,由于某种原因,当语言模型超过一定大小(例如~10B个参数)时,这些(新生的)能力,例如零-shot学习,开始出现[1]。
尽管目前还没有明确的答案,解释为什么会发生这种情况(只有推测),但明显LLM是一种强大的技术,具有无数的潜在用例。
使用LLM的3个层次现在我们来看看如何在实践中使用这种强大的技术。虽然有无数的LLM用例,但在这里,我将它们按所需的技术知识和计算资源排序为3个层次。我们从最容易使用的开始。
一级:提示工程使用LLM的第一级别是“提示工程”,我将其定义为“任何使用LLM的开箱即用方式”,即不更改任何模型参数。虽然许多技术倾向的个人似乎对提示工程的想法不屑一顾,但这是实际中使用LLM(在技术和经济上)最可访问的方法。
有两种主要的提示工程方式: 简单方式 和 较不简单方式。
简单方式:ChatGPT(或其他方便的LLM UI) - 这种方法的关键好处是方便。像ChatGPT这样的工具提供了一种直观,免费且无代码的使用LLM的方法(没有比这更容易的方法了)。
然而,方便通常是有代价的。在这种情况下,这种方法有两个主要缺点。第一个是缺乏功能。例如,ChatGPT不容易使用户自定义模型输入参数(例如温度或最大响应长度),这些值调节LLM输出。第二,与ChatGPT UI的交互不能轻松地自动化,因此无法应用于大规模使用情况。
虽然这些缺点可能是某些用例的杀手级应用,但如果我们将提示工程向前推进一步,这两个缺点都可以得到改善。
较不简单方式:直接与LLM交互 - 我们可以通过编程接口直接与LLM进行交互来克服ChatGPT的一些缺点。这可以通过公共API(例如OpenAI的API)或在本地运行LLM(使用像Transformers这样的库)来实现。
虽然这种提示工程方式不太方便(因为它需要编程知识和潜在的API成本),但它提供了一种可定制,灵活和可扩展的使用LLM的方法。本系列文章将讨论付费和免费的方法来进行此类提示工程。
尽管提示工程(如此定义)可以处理大多数潜在的LLM应用程序,但依赖通用模型可能会导致特定用例的次优性能。对于这些情况,我们可以进入使用LLM的下一个级别。
等级 2:模型微调使用 LLM 的第二个等级是模型微调,我定义为对现有 LLM 进行微调以用于特定用例,通过改变至少一个(内部)模型参数,即权重和偏差。在此类别中,我还将在此处将迁移学习即使用现有 LLM 的某些部分来开发另一个模型。
微调通常包括两个步骤。步骤 1:获得预先训练的 LLM。步骤 2:基于给定的特定任务更新模型参数(通常是数千个)高质量标记的示例。
模型参数是定义 LLM 对输入文本的内部表示的。因此,通过针对特定任务调整这些参数,内部表示变得针对微调任务进行了优化(或者至少是这样的想法)。
这是一种强大的模型开发方法,因为相对较少的示例和计算资源可以产生出色的模型性能。
然而,缺点是它需要比提示工程更多的技术专业知识和计算资源。在未来的一篇文章中,我将尝试通过审查微调技术并共享示例 Python 代码来缓解这种缺点。
虽然提示工程和模型微调可能可以处理 LLM 应用程序的 99%,但有时必须走得更远。
等级 3:构建自己的 LLM在实践中使用 LLM 的第三种最终方法是构建自己的。在模型参数方面,这是您从头开始制定所有模型参数的地方。
LLM 主要是其训练数据的产物。因此,对于某些应用程序,可能需要策划自定义的高质量文本语料库进行模型训练,例如医学研究语料库,用于开发临床应用程序。
这种方法最大的优点是您可以完全自定义 LLM 以适用于您的特定用例。这是终极的灵活性。但是,通常情况下,灵活性的代价是方便性。
由于LLM 性能的关键是规模,因此从头开始构建 LLM 需要巨大的计算资源和技术专业知识。换句话说,这不会是一个个人周末项目,而是一个完整的团队工作数月甚至数年,预算达到 7-8F。
尽管如此,在我未来文章中,我希望探讨从头开始开发 LLM 的流行技术。
最后让我们来总结一下:
虽然LLM现在被吹得足够大,但它们是AI领域的一项强大创新。在这里,我提供了有关LLMs是什么以及如何在实践中使用它们的入门指南。日后我希望写一些文章提供初学者指南,帮助大家启动下一个LLM用例。
资源链接:「个人博客」
社交:「推特」|「微博」| 「领英」|「油管」
之后我会出一些AI相关的具体视频教程,目前还未找到合适的平台托管,敬请期待。关注我,我会第一时间通知到家。
在我的号内的文章大部分是免费阅读的(除非有实际成本支出),如果您觉得对您有帮助,可以给我赞赏一下以表支持。
引用[1] 大型语言模型调查。 arXiv:2303.18223 [cs.CL]
[2] GPT-3论文。 arXiv:2005.14165 [cs.CL]
[3] Radford,A.,& Narasimhan,K。(2018)。通过生成式预训练改善语言理解。 (GPT-1论文)
花粉社群VIP加油站
猜你喜欢