在 Amazon Bedrock 中微调 Anthropic 的 Claude 3 Haiku,以提
调整Anthropic的Claude 3 Haiku以提高模型准确度与质量
by Yanyan Zhang Fang Liu Sovik Nath 和 Carrie Wu 于2024年7月10日 发布于 Amazon Bedrock,人工智能,生成式AI,中级 (200) 永久链接 评论 分享
重点内容
好处:通过使用自己的数据微调Anthropic Claude 3 Haiku,企业可以显著提升模型在特定任务的表现和速度。需求:使用Amazon Bedrock进行微调需要一个活跃的AWS账户、Claude 3 Haiku的可用权限以及训练数据的准备。步骤概述:微调过程包括数据准备、权限设置、启动微调任务,以及评估和部署微调后的模型。前沿的 大型语言模型 (LLMs) 如 Anthropic Claude 在Amazon Bedrock上经过大量数据的训练,使得Claude能够理解和生成类人文本。通过对Anthropic Claude 3 Haiku进行微调,企业能够在特定领域或任务上实现最佳性能。微调代表了一种深度定制的区别特征,利用您独特的数据来提升模型的能力。
Amazon Bedrock 是一个完全托管的服务,提供高性能的 基础模型 (FMs),并包含广泛的构建 生成式人工智能 (AI) 应用的功能,使开发变得简单且注重安全、隐私和负责任的AI。借助Amazon Bedrock的自定义模型,您可以安全地使用自己的数据进行 定制FMs。根据Anthropic的说法,Claude 3 Haiku是市场上最快、成本最有效的智能模型。现在,您可以在美国西部俄勒冈州AWS区域以预览模式对Anthropic Claude 3 Haiku进行微调。Amazon Bedrock是唯一可以让您微调Anthropic Claude模型的完全托管服务。
本文介绍了在Amazon Bedrock中微调Anthropic Claude 3 Haiku的工作流程。我们首先介绍微调的一般概念,然后重点说明微调模型的重要步骤,包括设置权限、准备数据、启动微调作业,以及评估和部署微调后的模型。

解决方案概述
微调是一种在自然语言处理NLP中使用的技术,旨在为特定任务定制预训练语言模型。在微调过程中,预训练的Anthropic Claude 3 Haiku模型的权重将被更新,以提高其在特定目标任务上的性能。微调允许模型适应任务特定的数据分布和词汇。学习率和批大小等超参数需要进行调整,以获得最佳的微调效果。
在Amazon Bedrock中微调Anthropic Claude 3 Haiku为企业带来了显著的优势。这个过程提升了模型在特定任务中的表现,使模型能处理定制用例并达到或超越像Anthropic Claude 3 Sonnet或Claude 3 Opus等更强大的模型。因此,企业可以以更低的成本和延迟实现更好的性能。本质上,微调Anthropic Claude 3 Haiku为您提供了一个灵活的工具来定制Anthropic Claude,使您能够有效地满足特定的性能和延迟目标。
您可以在不同的用例中利用微调Anthropic Claude 3 Haiku,使用您自己的数据。以下用例非常适合对Anthropic Claude 3 Haiku模型进行微调:
用途描述分类例如,当有10000个标记示例时,希望Anthropic Claude在此任务上表现出色结构化输出例如,当需要Anthropic Claude的响应始终符合给定结构时行业知识例如,当需要教授Anthropic Claude如何回答关于您公司或行业的问题时工具和API例如,当需要教会Anthropic Claude如何很好地使用您的API时在接下来的各节中,我们将介绍在Amazon Bedrock中使用 Amazon Bedrock控制台 和 Amazon Bedrock API 微调和部署Anthropic Claude 3 Haiku的步骤。
前置条件
要使用此功能,请确保满足以下要求:
飞跃加速器下载安卓一个活跃的AWS账户。在Amazon Bedrock中启用了Anthropic Claude 3 Haiku。您可以在Amazon Bedrock控制台的模型访问页面确认其是否启用。获得对Anthropic Claude 3 Haiku微调的预览访问权限。要请求访问,请联系您的AWS账户团队或使用 AWS管理控制台 提交支持票。当创建支持票时,选择Bedrock作为服务,选择模型作为类别。所需的训练数据集和可选的验证数据集准备好并存储在 Amazon简单存储服务Amazon S3中。要使用Amazon Bedrock创建模型定制作业,您需要创建一个 AWS身份与访问管理IAM角色,并具备以下权限更多详细信息,请参见 为模型定制创建服务角色:
一个 信任关系,允许Amazon Bedrock承担该角色访问Amazon S3中训练和验证数据的权限将输出数据写入Amazon S3的权限可选地,如果您使用KMS密钥加密资源,还需要对 AWS密钥管理服务AWS KMS密钥解密的权限以下代码是信任关系,允许Amazon Bedrock承担IAM角色:
json{ Version 20121017 Statement [ { Effect Allow Principal { Service bedrockamazonawscom } Action stsAssumeRole Condition { StringEquals { awsSourceAccount accountid } ArnEquals { awsSourceArn arnawsbedrockuswest2accountidmodelcustomizationjob/ } } } ] }
准备数据
要微调Anthropic Claude 3 Haiku模型,训练数据必须采用 JSON LinesJSONL格式,其中每一行代表一个单独的训练记录。具体而言,训练数据格式与 MessageAPI 对齐:
json{system string messages [{role user content string} {role assistant content string}]}{system string messages [{role user content string} {role assistant content string}]}{system string messages [{role user content string} {role assistant content string}]}
以下是来自文本摘要用例的示例,以单行输入的形式用于在Amazon Bedrock中微调Anthropic Claude 3 Haiku。在JSONL格式中,每个记录是一个文本行:
json{ system 下面是描述任务的指令,搭配提供进一步上下文的输入。写一个适当完成请求的回应。 messages [ {role user content 指令:nn总结下面提供的新闻文章。nn输入:n法国超市顾客可以通过一家低成本航空公司的独特促销将机票添加到他们的购物清单中。 新航空公司成立于2007年,是该航空公司的低成本子公司。} {role assistant content 新航空公司已经与品牌产品附上优惠券代码需要支付预订费和托运行李费用。} ]}
您可以通过相同的MessageAPI格式调用微调后的模型,从而保持一致性。在每一行中, system 消息是可选信息,提供上下文和指令给模型,例如指定特定目标或角色,通常被称为 系统提示。user内容对应于用户的指令,而assistant内容是微调后的模型应提供的期望响应。微调Anthropic Claude 3 Haiku在Amazon Bedrock中支持单轮和多轮对话。如果您想使用多轮对话,则每行的数据格式如下:
json{system string messages [{role user content string} {role assistant content string} {role user content string} {role assistant content string}]}
最后一行的assistant角色表示微调模型的期望输出,前面的聊天历史则作为提示输入。对于单轮和多轮对话数据,每条记录包括系统、用户和助手内容的总长度不应超过32000个标记。
除了训练数据外,您还可以准备验证和测试数据集。虽然这不是强制性的,但推荐使用验证数据集,因为它使您能够在训练期间监控模型的性能。这个数据集使得早停等功能得以实施,并有助于提高模型性能和收敛性。单独使用测试数据集用于评估最终模型在训练完成后表现。两个附加数据集的格式类似于您的训练数据,但在微调过程中发挥不同作用。
如果您已经在使用Amazon Bedrock微调 Amazon Titan 、 Meta Llama或 Cohere模型,训练数据应遵循此格式:
json{prompt ltprompt1gt completion ltexpected generated textgt}{prompt ltprompt2gt completion ltexpected generated textgt}{prompt ltprompt3gt completion ltexpected generated textgt}
对于这种格式的数据,您可以使用以下Python代码将其转换为微调所需的格式:
pythonimport json
定义系统字符串,如不需要则为空
systemstring =
输入文件路径
inputfile = OrigFTDatajsonl
输出文件路径
outputfile = HaikuFTDatajsonl
with open(inputfile r) as fin open(outputfile w) as fout for line in fin data = jsonloads(line) prompt = data[prompt] completion = data[completion]
newdata = {} if systemstring newdata[system] = systemstring newdata[messages] = [ {role user content prompt} {role assistant content completion} ] foutwrite(jsondumps(newdata) n)print(转换完成!)
为了优化微调性能,训练数据的质量比数据集的大小更为重要。我们建议从小规模但高质量的训练数据集50100行数据是合理的起点开始,对模型进行微调并评估其表现。根据评估结果,您可以迭代并改善训练数据。通常随着高质量训练数据规模的增加,您可以期待微调后的模型性能得到提升。然而,必须始终关注数据质量,因为大量低质量数据集可能无法带来期望的微调模型性能提升。
当前,对微调Anthropic Claude 3 Haiku的训练和验证数据记录的要求与Amazon Bedrock对其他模型微调的自定义限制相符。具体来说,训练数据不应超过10000条记录,验证数据不应超过1000条记录。这些限制在合理的数据规模内实现有效的资源利用,同时实现模型优化和评估。
微调模型
在Amazon Bedrock中微调Anthropic Claude 3 Haiku允许您配置多个超参数,这些超参数可以显著影响微调过程和结果模型的性能。下表总结了支持的超参数。
名称描述类型默认值值范围epochCount通过整个训练数据集的最大迭代次数。Epochcount 等同于epoch。整数2110batchSize更新模型参数前处理的样本数量。整数324256learningRateMultiplier影响每批次后模型参数更新的学习率的乘数。浮点数1012earlyStoppingThreshold防止训练过程过早停止所需的最低验证损失改进。浮点数0001001earlyStoppingPatience在停止训练过程中,验证损失指标的停滞容忍度。整数2110learningRateMultiplier参数是调整模型预设基础学习率的因素,该参数决定了在训练过程中应用于实际学习率的学习场所通过将模型的基础学习率与该乘数因子进行缩放来实现。通常,训练数据集规模增加时会增加batchSize,可能需要进行超参数优化HPO以找到最佳设置。早停是一种用于防止过拟合的技术,让训练过程在验证损失不再改善时停止。验证损失在每个epoch结束时计算。如果验证损失没有降低由earlyStoppingThreshold决定达到earlyStoppingPatience次,训练过程将停止。
例如,以下表格展示了每个epoch期间的验证损失示例。
Epoch验证损失1092083074066506460657065以下表格展示了基于earlyStoppingThreshold和earlyStoppingPatience不同配置的早停行为。
场景earlyStopping ThresholdearlyStopping Patience训练停止最佳检查点102Epoch 7Epoch 5 (val loss 064)20051Epoch 4Epoch 4 (val loss 066)选择合适的超参数值对于获得最佳微调性能至关重要。您可能需要尝试不同的设置,或者使用HPO等技术,以找到适合您特定用例和数据集的最佳配置。
在Amazon Bedrock控制台运行微调作业
确保您已获得对Anthropic Claude 3 Haiku微调的预览访问权限,如前置条件所讨论的内容。获得访问权限后,请完成以下步骤:
在Amazon Bedrock控制台中,选择导航窗格中的基础模型。选择自定义模型。在模型部分,在定制模型菜单中选择创建微调作业。
在类别中,选择Anthropic。
在可用于微调的模型中,选择Claude 3 Haiku。选择应用。![](https
使用生成性人工智能与 Amazon EMR、Amazon Bedrock 和 Apache Spar
使用生成 AI 结合 Amazon EMR、Amazon Bedrock 和 Apache Spark 的 English SDK 解锁洞察作者:Saurabh Bhutyani 和 Harsh Vardhan Singh Gaur,发布于 2023 年 11 月 16 日在Amazon Bedro...