发现和比较不同类型的 LLMs

上一章《生成式人工智能Generative AI和LLMs介绍》介绍了生成式人工智能如何影响技术发展、LLMs 的运作方式,以及企业(比如"Our startup")如何利用它们来适应自己的应用场景并取得进步!本章我们将对比不同种类的大型语言模型,了解它们各自的优劣。

我们初创公司的技术之旅接下来要探索 LLMs 的前景,看看哪些模型适合我们的需求。

了解不同的 LLMs

大型语言模型 (LLM) 可以按照它们的架构、训练数据和用途进行多种划分。了解这些差别有助于"Our startup"根据情况选择合适的模型,并知道如何测试、改进和提升性能。

LLM 模型有很多不同类型,你选择的模型取决于你的目的、你的数据、你愿意付出的代价等等。

根据你是否想用模型来生成文本、音频、视频、图像等,你可能会选择不同类型的模型。

音频和语音识别。 这方面,Whisper 模型是一个好选择,因为它们通常用于语音识别。它们经过不同的音频数据训练,可以做多语言的语音识别。比如,你可以使用所有的模型,从价格便宜但功能强大的模型(如 Curry)到更贵但性能更高的达芬奇(Davinci)模型。

图像生成。 对于图像生成,DALL-E 和 Midjourney 是两个最好的选择。DALL-E 由 Azure OpenAI 提供。

文本生成。 大部分模型都经过文本生成训练,你有从 GPT-3.5 到 GPT-4 的多种选择。它们的成本不同,其中 GPT-4 是最贵的。

选择模型意味着你可以得到一些基本的功能,但这可能还不够。通常,你有一些特定于公司的数据,你需要以某种方式告诉 LLMs。关于如何解决这个问题,有几种不同的方法,下面的部分会详细说明。

了解基础模型和 LLMs

"基础模型"是由斯坦福大学的研究人员创造的,定义为遵循一些标准的人工智能模型,比如:

它们使用无监督学习或自监督学习进行训练, 这意味着它们接受未标注的多模态数据的训练,而且它们的训练过程不需要人工标注或数据标记。

它们是非常大的模型, 基于经过数十亿参数训练的深度神经网络。

它们通常被设计成其他模型的"基础", 这意味着它们可以作为构建其他模型的起点,可以通过微调来完成。

为了进一步说明这种区别,我们以 ChatGPT 为例。为了构建 ChatGPT 的第一个版本,名为 GPT-3.5 的模型作为基础模型。这意味着 OpenAI 使用一些特定于聊天的数据来创建 GPT-3.5 的调整版本,专门用于在对话场景(比如聊天机器人)中让它有更好的表现。

了解开源模型和专有模型

对 LLM 进行分类的另一种方式是它们是开源的还是专有的。

开源模型是向公众开放的,任何人都可以使用的模型。它们通常由创建它们的公司或研究团队提供。这些模型可以针对 LLMs 的各种用途进行检查、修改和定制。然而,它们并不总是针对生产用途进行优化,而且可能不如专有模型具有高性能。此外,开源模型的资金可能有限,而且它们可能无法长期维护或可能无法根据最新的研究进行更新。流行的开源模型的例子包括 Alpaca、Bloom 和 LLaMA。

专有模型是公司拥有的模型,不向公众提供的。这些模型通常针对生产用途进行了优化。但是,它们不允许针对特定的使用场景进行检查、修改或定制。另外,它们并不总是免费提供的,可能需要订阅或付费才能使用。此外,用户无法控制用于训练模型的数据,这意味着他们应该信任模型所有者对数据隐私和负责任地使用人工智能的承诺。流行的专有模型的例子包括 OpenAI 模型、Google Bard 或 Claude 2。

了解嵌入、图像生成、文本或代码生成

LLMs 还可以根据它们产生的输出进行分类。

嵌入是一类可以把文本转换成数字形式的模型,叫做嵌入,它是输入文本的数字表示。嵌入让机器更容易理解单词或句子之间的关系,并且可以作为其他模型的输入,比如分类模型或对数值数据有更好性能的聚类模型。嵌入模型通常用于迁移学习,其中为有大量数据的代理任务构建模型,然后把模型权重(嵌入)重新用于其他下游任务。这个类别的一个例子是 OpenAI 嵌入。

图像生成模型主要是用来生成图像的。这些模型通常用于图像编辑、图像合成和图像转换。图像生成模型通常在大型图像数据集上进行训练,比如 LAION-5B,并且可以用于生成新图像或编辑现有图像,比如修复、超分辨率和上色技术。比如 DALL-E-3 和 StableDiffusion。

文本或代码生成模型主要是用来生成文本或代码的。这些模型通常用于文本摘要、翻译和问答等任务。文本生成模型通常在大型文本数据集上进行训练,比如 BookCorpus,可以用来生成新的文本或回答问题。代码生成模型,比如 CodeParrot,通常在大型代码数据集上进行训练,比如 GitHub,可以用来生成新的代码或修复现有代码中的错误。

了解编码器-解码器和单独的解码器

为了讨论 LLMs 的不同类型的架构,我们来打个比方。

想象一下,你的经理让你为学生编写测验题目。你有两个同事,一个负责创建内容,一个负责审查内容。

创建内容的同事就像一个单独的解码器模型,他们可以看到主题和你已经写的内容,然后根据这些内容来编写测验。他们非常擅长写出有趣且丰富的内容,但不太擅长理解主题和学习目标。单独的解码器模型的例子有 GPT 系列模型,比如 GPT-3。

审查内容的同事就像一个单独的编码器模型,他们可以看到你写的测验和答案,注意它们之间的关系并通过上下文进行理解,但他们不擅长生成内容。单独的编码器模型的例子有 BERT。

想象一下,我们也可以有一个人既能创建又能审查测验,这就像一个编码器-解码器模型,比如 BART 和 T5。

了解服务和模型

现在,我们来谈谈服务和模型之间的区别。服务是云服务提供商提供的产品,通常是模型、数据和其他组件的组合。模型是服务的核心组件,通常是基础模型,比如各种 LLM。

服务通常针对生产环境进行了优化,并且通常比模型更容易让用户通过图形界面使用。但服务并不总是免费提供的,可能需要订阅或付费才能使用,以换取服务所有者的设备和相关资源,降低成本并方便扩展。服务的一个例子是 Azure OpenAI 服务,它提供按需付费计划,意味着用户只需根据服务使用量付费。此外,Azure OpenAI 服务在模型功能上还提供了企业级的安全性和负责任的 AI 框架。

模型是带有参数、权重等的神经网络。允许公司在本地运行的话,需要购买设备、构建并购买许可证或使用开源模型。像 LLaMA 这样的模型运行起来就需要额外的计算能力。

如何使用不同的模型进行测试和迭代,了解 Azure 上的运行性能

一旦我们的团队探索了当前的 LLMs 前景,并为他们的场景确定了一些好的候选模型,下一步就是根据他们的数据和工作负载进行测试。这是一个迭代的过程,通过实验和量化来完成。我们在前面的段落中提到的大多数模型(OpenAI 模型、Llama2 等开源模型和 Hugging Face 变换器)都可以在 Azure 机器学习工作室 中的目录中找到 基础模型 。

Azure 机器学习 是一个云服务,专为数据科学家和机器学习工程师设计,用于管理整个机器学习生命周期(训练、测试、部署和 MLOps 相关的工作)在一个平台上。机器学习工作室为这个服务提供了图形用户界面,使用户能够:

在目录中查找感兴趣的基础模型,按任务、许可证或名称进行过滤。也可以导入新的模型,如果它们还没有包含在目录中。 查看模型卡片(包括详细描述和代码示例,并通过提供示例提示来测试结果),使用示例推理小部件对它们进行测试。

使用特定工作负载和输入中提供的特定数据集的评估指标来评估模型性能。

利用 Azure 机器学习的实验和跟踪功能,根据自定义训练数据微调模型,以提高特定工作负载中的模型性能。

将原始预训练模型或微调版本模型部署到远程实时推理或批处理端点,以使应用程序能够直接使用。

提升 LLM 的输出结果准确度

我们和 "Our startup" 团队一起探索了不同类型的 LLMs 和云平台(Azure 机器学习),使我们能够比较不同的模型,根据测试数据对它们进行评估,提高性能并将它们部署在推理端点上。

但是他们什么时候应该考虑微调模型而不是使用预训练的模型呢?是否有其他方法可以提高模型在特定工作负载上的性能?

企业可以使用多种方法从 LLMs 获得所需的结果,你可以选择具有不同训练程度的不同类型的模型

在生产中部署 LLMs ,有不同程度的复杂性、成本和质量。以下是一些不同的方法:

根据上下文的提示工程。 这个想法是在提示时提供足够的背景信息,以确保获得所需的结果。

检索增强生成,RAG。 比如,你的数据可能存在于向量数据库或 Web 端点中,为了确保在提示时包含这些数据或它们的子集,你可以获取相关数据并对用户进行提示。

微调模型。 在这里,你根据你自己的数据进一步训练模型,这使得模型更加准确并且能够响应你的需求,但可能成本高昂。

通过上下文的提示工程

预先训练的 LLMs 在广义自然语言任务上表现得非常好,甚至可以用简短的提示来调用它们,比如要完成的句子或问题------即所谓的"零样本"学习。

用户能够通过详细的请求和示例(上下文)来构造他们的查询,就越能得到最精确、最符合用户期待的答案。在这种情况下,如果提示只有一个示例,我们称之为"单样本"学习;如果提示有多个示例,我们称之为"少样本"学习。

根据上下文进行快速工程设计是最具成本效益的启动方式。

检索增强生成 (RAG)

LLMs 的一个限制是,它们只能使用训练时用过的数据来生成答案。这意味着它们对训练过程之后发生的事情一无所知,也无法访问非公开的信息(比如公司的数据)。这个问题可以通过 RAG 来解决,RAG 是一种考虑到提示长度限制的技术,它可以用外部数据的文档块来增强提示。向量数据库工具(比如 Azure 向量搜索)支持这个功能,可以检索来自各种预定义数据源的块的有用信息,并把它们加到提示的上下文中。

当企业没有足够的数据、时间或资源来微调 LLMs,但仍然希望提高特定工作负载的性能并降低幻觉的风险(即对现实的误解或伤害的风险)时,这个技术非常有用。

微调模型

微调是一个利用迁移学习让模型"适应"下游任务或解决特定问题的过程。与少样本学习和 RAG 不同,它会生成一个新的模型,并更新权重和偏置。它需要一组训练示例,包括单个输入(提示)和它对应的输出(完成)。

如果出现以下情况,这将是首选方法:

使用微调模型。 企业希望使用经过微调的能力较弱的模型(比如嵌入模型)而不是高性能的模型,以获得更经济和快速的解决方案。

考虑延迟。 延迟对于特定的用例很重要,因此不能使用太长的提示,或者应该从模型中学习的示例数量超过了提示长度的限制。

保持最新。 企业拥有大量的高质量数据和真实的标签,以及随着时间的推移保持这些数据更新的资源。

训练垂直行业模型

从零开始训练 LLMs 无疑是最困难、最复杂的方法,需要大量的数据、专业的资源和合适的计算能力。只有当企业有特定领域的用例和大量的以特定领域为中心的数据时,才应该考虑这个选项。

相关推荐
吃个糖糖几秒前
35 Opencv 亚像素角点检测
人工智能·opencv·计算机视觉
IT古董1 小时前
【漫话机器学习系列】017.大O算法(Big-O Notation)
人工智能·机器学习
凯哥是个大帅比1 小时前
人工智能ACA(五)--深度学习基础
人工智能·深度学习
m0_748232921 小时前
DALL-M:基于大语言模型的上下文感知临床数据增强方法 ,补充
人工智能·语言模型·自然语言处理
szxinmai主板定制专家1 小时前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
海棠AI实验室1 小时前
AI的进阶之路:从机器学习到深度学习的演变(三)
人工智能·深度学习·机器学习
机器懒得学习2 小时前
基于YOLOv5的智能水域监测系统:从目标检测到自动报告生成
人工智能·yolo·目标检测
QQ同步助手2 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
AIGC大时代2 小时前
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
人工智能·深度学习·chatgpt·prompt·aigc
流浪的小新2 小时前
【AI】人工智能、LLM学习资源汇总
人工智能·学习