今天我很快乐地宣布,您现在能够在Amazon Bedrock中运用自己的数据,安全并私密地定制根底模型(FMs),按照您所在领域、企业和用例的特定要求构建应用程序。凭借定制模型,您能够创立共同的用户体验,体现企业的风格、观念和服务。
经过微调,您能够经过私有的特定使命标示练习数据集来提高模型的准确性,进一步使根底模型(FM)专业化。凭借继续预练习,您能够在安全的保管环境中运用私有未经标示的数据和客户管理密钥来练习模型。继续预练习有助于模型丰富常识,增强适应性,从而超越原始练习,提高面向特定领域的针对性。
亚马逊云科技开发者社区为开发者们供给全球的开发技能资源。这儿有技能文档、开发案例、技能专栏、练习视频、活动与竞赛等。协助中国开发者对接世界最前沿技能,观念,和项目,并将中国优异开发者或技能推荐给全球云社区。假如你还没有重视/收藏,看到这儿请一定不要匆匆划过,点这儿让它成为你的技能宝库!
下面我们来快速浏览一下这两种模型定制选项。您能够运用Amazon Bedrock 控制台或 API 创立微谐和继续预练习使命。在控制台中,导航至 Amazon Bedrock,然后挑选“定制模型”。
微调 Meta Llama 2、Cohere Command Light、以及 Amazon Titan FMs Amazon Bedrock 现在支撑微调Meta Llama 2、Cohere Command Light以及Amazon Titan 模型。要在控制台创立微调使命,挑选“自定义模型”,然后挑选“创立微调使命”。
下面是关于运用Amazon SDK for Python (Boto3)的快速演示。我们对 Cohere Command Light 进行微调,以汇总对话。由于是演示,所以我运用了揭露的dialogsum数据集,您也能够挑选您所在企业的特定数据。
为了准备在 Amazon Bedrock 上进行微调,我将数据集转换为JSON Lines格局,并将其上传到Amazon S3。每一行 JSON 都需求一个提示字段和一个完结字段。您最多能够指定 10,000 条练习数据记载,但只需几百个示例就能看到模型功用的提升。
{"completion": "Mr. Smith's getting a check-up, and Doctor Haw...", "prompt": Summarize the following conversation.nn#Pers..."}
{"completion": "Mrs Parker takes Ricky for his vaccines. Dr. P...", "prompt": "Summarize the following conversation.nn#Pers..."}
{"completion": "#Person1#'s looking for a set of keys and asks...", "prompt": "Summarize the following conversation.nn#Pers..."}
为便利起见,我编辑了提示和完结字段。
您能够运用以下指令列出支撑微调的可用根底模型:
import boto3
bedrock = boto3.client(service_name="bedrock")
bedrock_runtime = boto3.client(service_name="bedrock-runtime")
for model in bedrock.list_foundation_models(
byCustomizationType="FINE_TUNING")["modelSummaries"]:
for key, value in model.items():
print(key, ":", value)
print("-----n")
接下来,我创立了一个模型定制使命。我指定了支撑微调的 Cohere Command Light 模型 ID,将定制类型设为FINE_TUNING
,并指向练习数据的 Amazon S3 位置。如有必要,您还能够调整微调超参数。
# Select the foundation model you want to customize
base_model_id = "cohere.command-light-text-v14:7:4k"
bedrock.create_model_customization_job(
customizationType="FINE_TUNING",
jobName=job_name,
customModelName=model_name,
roleArn=role,
baseModelIdentifier=base_model_id,
hyperParameters = {
"epochCount": "1",
"batchSize": "8",
"learningRate": "0.00001",
},
trainingDataConfig={"s3Uri": "s3://path/to/train-summarization.jsonl"},
outputDataConfig={"s3Uri": "s3://path/to/output"},
)
# Check for the job status
status = bedrock.get_model_customization_job(jobIdentifier=job_name)["status"]
完结使命之后,您的自定义模型将收到一个仅有的模型 ID。Amazon Bedrock 将会安全地存储您的微调模型。要测验和布置您的模型,您需求购买Provisioned Throughput。
我们来看看结果。我从数据集中挑选一个示例,恳求微调前的根本模型和微调后的自定义模型,总结出以下对话:
prompt = """Summarize the following conversation.nn
#Person1#: Hello. My name is John Sandals, and I've got a reservation.n
#Person2#: May I see some identification, sir, please?n
#Person1#: Sure. Here you are.n
#Person2#: Thank you so much. Have you got a credit card, Mr. Sandals?n
#Person1#: I sure do. How about American Express?n
#Person2#: Unfortunately, at the present time we take only MasterCard or VISA.n
#Person1#: No American Express? Okay, here's my VISA.n
#Person2#: Thank you, sir. You'll be in room 507, nonsmoking, with a queen-size bed. Do you approve, sir?n
#Person1#: Yeah, that'll be fine.n
#Person2#: That's great. This is your key, sir. If you need anything at all, anytime, just dial zero.nn
Summary: """
下面是微调前的根本模型响应:
#Person2# 协助 John Sandals 完结预定。John 供给了他的信用卡信息,而 #Person2# 承认他们只接受万事达和 VISA 卡。John 将入住 507 号房间,假如他有任何需求,将由 #Person2# 供给服务。
下面是微调后的响应,更简短、更切题:
John Sandals 预定了一家酒店并办理了入住手续。#Person2# 拿走了他的信用卡并给了他一把钥匙。
继续预练习支撑 Amazon Titan Text (预览版)
Amazon Bedrock 的继续预练习可用于 Amazon Titan Text 模型的揭露预览版,包括 Titan Text Express 和 Titan Text Lite。要在控制台创立继续预练习使命,挑选“自定义模型”,然后挑选“创立继续预练习使命”。
下面仍是关于运用 boto3 的快速演示。假设您在一家投资公司工作,希望继续运用财政和分析师陈述对模型进行预练习,使其愈加了解金融职业术语。由于是演示,所以我挑选了一组亚马逊股东信作为练习数据。
为了准备实施预练习,我将数据集转换为 JSON Lines 格局,并将其上传到 Amazon S3。我运用的是未加标示的数据,因此每一行 JSON 仅需提示字段。您最多能够指定 100,000 条练习数据记载,通常最少需求供给 10 亿个令牌才干看到积极作用。
{"input": "Dear shareholders: As I sit down to..."}
{"input": "Over the last several months, we to..."}
{"input": "work came from optimizing the conne..."}
{"input": "of the Amazon shopping experience f..."}
为便利起见,我编辑了输入字段。
然后,创立一个模型自定义使命,将定制类型设为指向数据的CONTINUED_PRE_TRAINING
。如有必要,您还能够调整继续预练习超参数。
# Select the foundation model you want to customize
base_model_id = "amazon.titan-text-express-v1"
bedrock.create_model_customization_job(
customizationType="CONTINUED_PRE_TRAINING",
jobName=job_name,
customModelName=model_name,
roleArn=role,
baseModelIdentifier=base_model_id,
hyperParameters = {
"epochCount": "10",
"batchSize": "8",
"learningRate": "0.00001",
},
trainingDataConfig={"s3Uri": "s3://path/to/train-continued-pretraining.jsonl"},
outputDataConfig={"s3Uri": "s3://path/to/output"},
)
完结使命之后,您将收到一个仅有的模型 ID。仍是由 Amazon Bedrock 安全地存储您的自定义模型。和微调相同,要测验和布置您的模型,您需求购买Provisioned Throughput。
注意事项
下面是一些重要注意事项:
数据隐私和网络安全—— 凭借 Amazon Bedrock,您能够控制自己的数据,并且您的所有输入和自定义内容都是亚马逊云科技账户私有的。您的数据(例如提示、完结状况和微调模型)不会用于改进服务,也绝不会用来和第三方模型供给商同享。您的数据将保留在处理 API 调用的区域。所有数据在传输和静止状况中均进行了加密。您能够运用Amazon PrivateLink 在您的 VPC 和Amazon Bedrock之间创立私密衔接。
计费—— Amazon Bedrock 对模型定制、存储和推理收费。模型定制按处理的令牌数量收费,即练习数据集中的令牌数量乘以练习周期数。练习周期是指在微调过程中,对练习数据集的一次完整遍历。您需求每月为每个模型支付模型存储费用。推理是按照每个模型单位运用的预装备吞吐量按小时收费。有关详细定价信息,请参阅Amazon Bedrock 定价。
定制模型和预装备吞吐量—— Amazon Bedrock 允许您经过购买预装备吞吐量在自定义模型上运转推理。这种形式能够保证稳定的吞吐量水平,作为交换,您需求许诺运用期限。您能够指定满意应用程序功用需求所需的模型单元数量。在开始评估自定义模型时,您能够按小时购买预装备吞吐量,无需长时间许诺。假如没有许诺运用期限,则每个预装备吞吐量仅限运用 1 个模型单元。每个账户最多可创立两个预装备吞吐量。
可用性
支撑 Meta Llama 2、Cohere Command Light 和 Amazon Titan Text FM 的微调功用现已在美国东部(弗吉尼亚州北部)和美国西部(俄勒冈州)这两个亚马逊云科技区域推出。继续预练习现已在美国东部(弗吉尼亚州北部)和美国西部(俄勒冈州)这两个亚马逊云科技区域以揭露预览版供给。更多信息,请访问Amazon Bedrock开发人员体验页面,查阅《用户攻略》。