为您的人工智能应用程序选择最佳基础模型

在尝试为生成式人工智能驱动的应用程序选择最佳基础模型时,您需要考虑模态、速度、定价、微调等多种因素。
发布时间:2024 年 5 月 7 日
生成式人工智能
Amazon Bedrock
基础模型
Olawale Olaleye
亚马逊云科技使用经验
100 - 初级
完成所需时间
10 分钟
所需费用
免费
受众

开发者

上次更新时间
2024 年 5 月 7 日
相关产品

为您的人工智能驱动项目选择合适的基础模型不仅仅是一个技术决策,更是要找到一个良好的战略契合。在本指南中,将带您了解在选择基础模型时,认为重要的关键标准,并通过实际案例进行讲解。

确定标准

在开始搜索之前,需要建立一套标准 —— 一份质量清单,为项目基础定义理想的基础模型。接下来逐一了解每一项:

1. 理解模态

是什么:模态是指模型处理的数据类型 —— 文本、图像(视觉)或嵌入向量。
 
为何重要:模态的选择应该与您正在处理的数据相匹配。例如,如果您的项目涉及处理自然语言,那么基于文本的模型如 Claude、Mistral、Llama 2、Titain Text G1 等就很合适。如果您只想创建嵌入向量,那么 Cohere 和 Titan Embeddings G1 等模型可能更合适。同样,对于与图像相关的任务,像 Claude(可以处理图像)、Stability AI (SDXL 1.0) 和 Titan Image Generator G1(生成图像)这样的模型则会更加适合。

2. 模型大小及其影响

是什么:这个标准指的是模型中参数的数量。如果您是机器学习新手,简单介绍一下参数及其重要性,特别是在大型语言模型的情境中。参数是模型内部的配置变量,其值在训练阶段根据给定的训练数据进行估计(训练)。参数至关重要,因为他们直接定义了模型从数据中学习的能力。大型模型通常具有超过 500 亿个参数。
 
为何重要:参数的数量是衡量模型复杂性的关键指标。更多参数意味着模型可以捕获数据中更复杂的模式和细微差别,这通常会带来更好的性能。然而,这些模型不仅训练成本高昂,而且运行时也需要更多计算资源。就像在选择汽车时,更大的发动机可能动力会更强劲,但也意味着会消耗更多燃料。
 
例如,Mixtral 8x7B Instruct 具有约 460 亿个参数,Anthropic 的模型如 Claude 3 具有数十亿个参数,该模型以其在广泛的自然语言处理任务中的出色表现而闻名,例如文本生成、问答和语言理解。同样,最新的 Llama 3 提供了 8B 和 70B 两种参数规模,可用于支持广泛的用例,在推理、代码生成和指令执行方面都有所改进。

3. 推理速度或延迟

是什么:推理速度或延迟是指模型处理输入(通常以 token 计算)并返回输出所需的时间。当模型的响应是交互式系统的一部分时,例如对于聊天机器人而言,这个处理时间至关重要。
 
为何重要:对于实时应用程序(如交互式聊天机器人或即时翻译服务)来说,快速响应时间至关重要。这些应用程序依赖于模型快速处理和响应提示的能力,以保持流畅的用户体验。尽管较大的基础模型通常可以提供更详细和准确的响应,但它们复杂的架构可能导致推理速度变慢,而这可能会让期望即时互动的用户感到失望。
 
为了应对这一挑战,作为开发人员,您可能会选择针对快速响应进行优化的模型,即使这意味着在响应的深度或准确性上做出一定程度的妥协。例如,专门为速度而设计的精简模型可以更快地处理交互,从而提高整体用户体验。
 
例如,Anthropic 的 Claude 3 Haiku 模型以其高达 200K token 的大型上下文窗口而闻名,它能够处理广泛和复杂的提示,提供高质量的输出。然而,由于其大小和可处理大量数据的能力,它的处理速度可能不如 Mistral Large 这样的小型模型那么快。后者优先考虑速度而非处理大型上下文的能力,具有更快的推理时间,但其上下文窗口较小,约为 32K token。因此,Mistral Large 可能更适合需要快速交互的场景,而 Claude 3 Haiku 则可能更适合深度理解和全面上下文至关重要的应用程序,即使响应时间稍长也无妨。
 
推理速度如此重要,以至于许多模型都针对推理进行了优化。例如,Mixtral 8x7B Instruct 利用多达 450 亿个参数,但在推理过程中只使用约 120 亿个参数,从而以更多的 vRAM 为代价提高了推理吞吐量。因此,它以与 120 亿参数模型相同的速度和成本处理输入并生成输出。

4. 最大化上下文窗口

是什么:在深入探讨为什么上下文窗口很重要之前,先了解它是什么。在大型语言模型的情境中,上下文窗口是指模型在任何给定时间内生成响应时可以考虑的文本量(以 token 计算)。可以将其视为模型在处理单个实例期间的 "记忆"。
 
例如,句子 “Hello, world!” 可能会被分解为 token [Hello, ,, world, !]。将原始文本转换为 令牌 (token) 的过程称为 分词 (tokenization)。分词的具体规则和方法可能有所不同。有些模型可能会将文本拆分为单词和标点符号,而另一些则使用子词(词的一部分)来处理更广泛的词汇,而无需为每个可能的单词分配单独的 token。
 
另一方面,上下文窗口(也被称为注意力窗口)指的是模型在进行预测时一次可以考虑的来自输入的最大 token 数量。这是一个至关重要的方面,因为它决定了模型在理解上下文和生成响应或预测时可以使用多少信息。例如,如果一个语言模型的上下文窗口为 512 个 token,那么在生成下一部分文本时,它只能考虑它看到的最后 512 个 token。基本上,它就像模型在执行任务时的短期记忆,就像一个善于交谈的人,能够记住您说过的每一句话。
 
为何重要:更大的上下文窗口使模型能够一次记住和处理更多信息。这种能力在复杂任务中特别有价值,例如理解长文档、进行详细对话或在较大的范围内生成连贯且上下文准确的文本。
 
例如,在对话中,拥有更大上下文窗口的模型能够记住更多之前的对话内容,从而提供与整个对话更相关和连贯的响应。这会带来更自然、更令人满意的用户体验,因为模型可以在不丢失上下文的情况下保持讨论主线。
 
看看 Anthropic 的 Claude,它拥有高达 200K token 的大型上下文窗口,可以轻松处理复杂、长格式的输入。但是,需要注意的是,更大的上下文窗口通常以增加计算需求和相对放缓推理时间为代价。
 
在选择基础模型时,可能需要根据应用程序的具体需求,在上下文窗口大小与其他因素(如推理速度或计算资源)之间进行权衡。

5. 定价考虑

是什么:使用基础模型的成本,受模型复杂性和模型供应商的定价结构影响。
 
为何重要:部署高性能模型通常成本很高,因为需要更多计算资源。虽然这些模型提供了先进的功能,但其运营费用可能会很高,特别是对于预算有限的初创公司或较小项目而言。
 
另一方面,较小、资源密集度较低的模型提供了一个更加经济实惠的选择,同时不会显著降低性能。权衡模型的成本与收益至关重要,以确保它符合您项目的财务约束,确保您在不超支的情况下获得最佳的投资回报。这就像在外就餐一样,有时候,精致的大餐是值得的,但其它时候,简单的晚餐就足够了。

6. 微调和持续预训练能力

是什么:微调是一种专门的训练过程,在此过程中,预先训练的模型(在大型通用数据集上训练过的模型)会在较小的特定数据集上进一步训练(或微调)。这个过程使模型适应新数据的特殊性,从而提高其在相关任务上的性能。而持续预训练则是在最初预训练阶段的基础上,使用未包含在原始训练集中的新出现的数据进行额外训练,帮助模型跟上数据的发展,从而保持相关性,这些数据通常是未标记的。
 
为何重要:通过微调,您可以通过提供属于自己的针对特定任务的标记训练数据集来提高模型的准确性,并进一步专门化您的基础模型。通过持续预训练,您可以在安全且托管的环境中使用自己的未标记数据来训练模型。持续预训练可以通过积累更强大的知识和适应性来帮助模型变得更加针对特定领域 - 超越其原始训练。
 
例如, Amazon Bedrock 支持微调和持续预训练,这为您提供了强大的工具,不仅可以个性化定制基础模型,还可以随时间推移发展您自定义的模型。但请记住,并非所有模型都支持微调或持续预训练。因此,如果您需要这些功能,您可能需要选择支持微调 / 持续预训练的合适模型。

7. 响应质量

是什么:最后,最重要的标准是响应质量。在这里,您将根据几个质量指标评估模型的输出,包括准确性、相关性、毒性、公平性以及对抗攻击的鲁棒性。
 
准确性衡量模型响应根据某些标准被判定为正确的频率。相关性评估响应与上下文或与所提出问题的相关程度。毒性检查模型输出中是否存在有害偏见或不当内容。同样,公平性评估模型的响应在不同群体之间是否无偏见。最后,鲁棒性表示模型在面对旨在混淆它的故意误导或恶意输入时的处理能力。
 
为何重要:模型输出的可靠性和安全性至关重要,尤其是对于直接与用户交互或进行可能影响人们生活的自动化决策的应用程序。高质量的响应可以确保获得用户的信任和满意度,降低误解的风险,提高整体用户体验,从而赢得客户的信任。
 
例如,在客户服务场景中,一个能够持续提供准确且相关的响应的模型可以显著提高解决时间和客户满意度。相反,如果一个模型输出有害或带有偏见的响应,可能会导致客户流失,损害公司声誉。因此,建立强有力的机制来检测和减轻毒性,并确保公平性,对于防止偏见的传播和确保公平对待所有用户群体至关重要。
 
因此,在选择基础模型时,不仅要评估其主要功能,还要评估其附加功能和响应质量。这些因素将极大地影响模型在特定环境和用例中的适用性和成功程度。

利用 Amazon Bedrock 的模型评估功能

为了简化选择过程,您可以使用 Amazon Bedrock 的模型评估功能,它允许对模型进行自动和人工评估。该功能可以帮助您根据预定义的指标和主观标准来评估模型,从而做出更明智的决策。虽然这是下一篇博客的主题,但简而言之,Amazon Bedrock 提供自动评估和人工评估两种选择。您可以使用预定义的指标(如准确性、鲁棒性、一致性等)进行自动评估,也可以创建自己的指标。作为开发人员,您现在可以利用 Amazon Bedrock 的模型评估功能来构建生成式人工智能驱动的应用程序。您可以从在 playground 环境中试验不同模型开始。为了加快迭代速度,可以添加对模型的自动评估。然后,当您准备进行初始发布或有限发布时,可以纳入人工审查,以帮助确保质量。

总结

选择合适的基础模型不仅仅是一个技术决策,更是一个战略决策,可能会对您应用程序的成功产生重大影响。通过仔细权衡利弊,并将模型的功能与您项目的要求相匹配,您可以为您的生成式人工智能工作奠定坚实的基础。

请记住,选择模型并不是数字改革的终点。随着生成式人工智能领域的快速发展,保持开放、灵活的心态并及时了解最新进展至关重要。利用 Amazon Bedrock 及其模型评估功能可以帮助简化选择过程,并根据全面评估做出明智决策。以合适的基础模型为基础,您将能够充分发挥生成式人工智能的变革潜力。因此,拥抱这段激动人心的旅程吧,让好奇心引导您找到您的生成式人工智能灵魂伴侣 —— 一个不仅满足您当前需求,而且支持您实现增长和创新愿景的模型,现在就去构建吧!