使用[Amazon Bedrock],你可以访问来自领先人工智能(AI)公司的一系列高性能基础模型(FM),这些模型可以更轻松地构建和扩展生成式AI应用程序。其中一些模型提供可公开获取的权重,可以针对特定用例进行微调和定制。但是,以安全和可扩展的方式部署定制的FM并非易事。
从今天开始,Amazon Bedrock增加了预览版功能,可以为受支持的模型架构(如[Meta Llama 2、Llama 3]和[Mistral])导入自定义权重,并使用On-Demand模式提供自定义模型。你可以从[Amazon SageMaker]和[Amazon Simple Storage Service (Amazon S3)]导入[Hugging Face safetensors]格式的模型权重。
通过这种方式,你可以在Amazon Bedrock中使用现有的定制模型,如[Code Llama],它是一个针对代码专门版本的Llama 2,通过在代码特定数据集上进一步训练Llama 2而创建,或者使用你自己的数据对模型进行微调以满足你独特的业务需求,并将生成的模型导入Amazon Bedrock。
让我们看看实践中是如何工作的。
[将自定义模型带到Amazon Bedrock]
在[Amazon Bedrock控制台]中,我从导航窗格的”基础模型”部分选择”导入的模型”。现在,我可以通过从[Amazon Simple Storage Service (Amazon S3)]存储桶或Amazon SageMaker模型导入模型权重来创建自定义模型。
我选择从S3存储桶导入模型权重。在另一个浏览器标签页中,我使用[这个拉取请求(PR)]从[Hugging Face]网站下载[MistralLite]模型,该拉取请求提供了safetensors格式的权重。[拉取请求]目前处于”准备合并”状态,所以当你阅读本文时它可能已经是主分支的一部分。MistralLite是经过微调的[Mistral-7B-v0.1]语言模型,具有处理最长32K个令牌上下文的增强能力。
当下载完成后,我将文件上传到与将导入模型的[亚马逊云科技区域]相同的S3存储桶中。以下是Amazon S3控制台中的MistralLite模型文件:
回到Amazon Bedrock控制台,我为模型输入一个名称并保留建议的导入作业名称。
我选择”模型导入设置”中的”模型权重”,并在S3中浏览选择我上传模型权重的位置。
为了授权Amazon Bedrock访问S3存储桶上的文件,我选择创建并使用新的[Amazon Identity and Access Management (IAM)]服务角色的选项。我使用”查看权限详情”链接来检查角色将包含什么内容。然后,我提交作业。
大约十分钟后,导入作业就完成了。
现在,我在控制台中看到了导入的模型。列表还显示了模型[Amazon资源名称(ARN)]和创建日期。
我选择该模型以获取更多信息,如模型文件的S3位置。
在模型详情页面中,我选择”在Playground中打开”以在控制台中测试该模型。在文本Playground中,我使用模型的提示模板输入一个问题:
<|prompter|>支持LLM长上下文有哪些主要挑战?</s><|assistant|>
导入的MistralLite模型很快就做出了回应,并描述了一些这些挑战。
在Playground中,我可以使用温度、最大长度等配置来调整响应以适应我的用例,或者添加特定于导入模型的停止序列。
要查看API请求的语法,我选择Playground右上角的三个小垂直点。
我选择”查看API语法”,并使用[Amazon Command Line Interface (Amazon CLI)]运行命令:
Amazon Web Services bedrock-runtime invoke-model \ –model-id arn:亚马逊云科技:bedrock:us-east-1:123412341234:imported-model/a82bkefgp20f \ –body “{"prompt":"<|prompter|>支持LLM长上下文有哪些主要挑战?</s><|assistant|>","max_tokens":512,"top_k":200,"top_p":0.9,"stop":[],"temperature":0.5}” \ –cli-binary-format raw-in-base64-out \ –region us-east-1 \ invoke-model-output.txt
输出与我在Playground中获得的类似。如你所见,对于导入的模型,模型ID是导入模型的ARN。我可以使用模型ID与Amazon CLI和[Amazon Web Services SDK]调用导入的模型。
[需要了解的事项]
你可以为[Amazon Bedrock]支持的模型架构在美国东部(弗吉尼亚州北部)[亚马逊云科技区域]中引入自己的权重。模型导入功能目前处于预览阶段。
使用自定义权重时,Amazon Bedrock以On-Demand模式提供该模型,你只需为所使用的部分付费,无需承诺基于时间的任何期限。有关详细信息,请参阅[Amazon Bedrock定价]。
导入模型的能力由[Amazon Identity and Access Management (IAM)]管理,你可以仅允许你组织中需要此功能的角色使用它。
通过这次发布,使用内置安全性和隐私性的自定义模型构建和扩展生成式AI应用程序变得更加容易。
了解更多信息:
- 参阅[Amazon Bedrock用户指南]。
- 访问我们的[community.aws站点],找到深入的技术内容,并了解其他人如何在他们的解决方案中使用Amazon Bedrock。
—[Danilo]
[Danilo Poccia]
Danilo与初创公司和任何规模的公司合作,以支持他们的创新。作为亚马逊网络服务(亚马逊云科技)的首席布道师(欧洲、中东和非洲地区),他利用自己的经验帮助人们实现他们的创意,专注于无服务器架构和事件驱动编程,以及机器学习和边缘计算的技术和业务影响。他是Manning出版社的《Amazon Web Services Lambda in Action》一书的作者。