本文介绍小型和大型语言模型,包括何时使用它们以及如何在 Azure Kubernetes 服务 (AKS) 上将其与 AI 和机器学习工作流配合使用。
语言模型是用于自然语言处理 (NLP) 任务(例如文本生成和情绪分析)的强大机器学习模型。 这些模型根据给定上下文中出现的单词或单词序列的概率来表示自然语言。
传统语言模型一直用于监控设置以便进行研究,其中,模型针对特定任务在标记良好的文本数据集上进行训练。 预先训练的语言模型提供了一种通俗易懂的方式来开始使用 AI,近年来其使用越来越广泛。 这些模型是使用深度神经网络通过 Internet 在大规模文本语料库上训练的,可以针对特定任务在小型数据集上进行微调。
语言模型的大小取决于其参数或权重的数量,这些参数或权重确定模型如何处理输入数据和生成输出。 在训练过程中,通过在模型层内调整权重来知悉参数,以最大程度地减小模型预测与实际数据之间的差异。 模型具有的参数越多,其就越复杂,表现力越强,但训练和使用方面的计算成本也越高。
一般来说,小型语言模型具有的参数数量少于 100 亿个,大型语言模型具有的参数数量超过 100 亿个。 例如,新的 Microsoft Phi-3 模型系列有三个大小不同的版本:迷你型(38 亿个参数)、小型(70 亿个参数)和中型(140 亿个参数)。
如果你想要的模型如下所述,则小型语言模型是一个不错的选择:
- 训练和运行速度更快、更加经济高效:它们需要的数据更少、计算能力更低。
- 易于部署和维护:它们的存储和内存占用空间更小。
- 不太容易过度拟合,即模型了解训练数据的干扰或特定模式,并且无法对新数据进行一般化。
- 可解释:它们需要了解和分析的参数及组件更少。
小型语言模型适用于具有以下要求的用例:
- 数据或资源有限,而且你需要一个快速、简单的解决方案。
- 任务定义明确或范围狭小,而且你在输出中不需要太多的创造力。
- 任务精准率高、召回率低,而且你重视准确度和质量,而不是覆盖率和数量。
- 任务敏感或受管控,而且你需要确保模型的透明度和问责制。
下表列出了一些常用的高性能小型语言模型:
模型系列 | 模型大小(参数数量) | 软件许可证 |
---|---|---|
Microsoft Phi-3 | Phi-3-mini(38 亿)、Phi-3-small(70 亿) | MIT 许可证 |
Microsoft Phi-2 | Phi-2(27 亿) | MIT 许可证 |
Falcon | Falcon-7B(70 亿) | Apache 2.0 许可证 |
如果你想要的模型如下所述,则大型语言模型是一个不错的选择:
- 强大且富有表现力:它们可以捕获数据中更为复杂的模式和关系。
- 常规且适应性强:它们可以处理更广泛的任务,并跨领域转移知识。
- 可靠且一致:它们可以处理干扰或不完整的输入,并避免常见的错误和偏差。
大型语言模型适用于具有以下要求的用例:
- 数据和资源丰富,而且你有构建和维护复杂解决方案方面的预算。
- 任务精准率低、召回率高,而且你重视覆盖率和数量,而不是准确度和质量。
- 任务具有挑战性或探索性,而且你想利用模型的学习和适应能力。
下表列出了一些常用的高性能大型语言模型:
模型系列 | 模型大小(参数数量) | 软件许可证 |
---|---|---|
Microsoft Phi-3 | Phi-3-medium(140 亿) | MIT 许可证 |
Falcon | Falcon-40B(400 亿) | Apache 2.0 许可证 |
Kubernetes AI 工具链操作器 (KAITO) 是一个开源操作器,可在 Kubernetes 群集中自动执行小型和大型语言模型部署。 AKS 的 KAITO 加载项简化了载入,并减少了开源模型在 AKS 群集上的推理时间。 该加载项会自动预配大小正确的 GPU 节点,并将关联的推理服务器设置为所选模型的终结点服务器。
有关详细信息,请参阅使用 AI 工具链操作器在 AKS 上部署 AI 模型。 若要开始使用推理工作流支持的一系列小型和大型语言模型,请参阅 KAITO 模型 GitHub 存储库。
若要了解有关 AKS 上的容器化 AI 和机器学习工作负载的详细信息,请参阅以下文章: