
使用 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail),你可以访问来自领先人工智能公司的一系列高性能基础模型(FMs),这些模型可以更轻松地构建和扩展生成式 AI 应用程序。其中一些模型提供可公开获取的权重,可以针对特定用例进行微调和定制。但是,以安全和可扩展的方式部署定制的 FMs 并非易事。
如今 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 增加了预览版功能,可以为受支持的模型架构(如 Meta Llama 2、Llama 3 和 Mistral)导入自定义权重,并使用 On-Demand 模式提供自定义模型。你可以从 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 和 [Amazon Simple Storage Service](https://aws.amazon.com/cn/s3/?trk=cndc-detail) ([Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail)) 导入 Hugging Face safetensors 格式的模型权重。
通过这种方式,你可以在 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 中使用现有的定制模型,如 Code Llama,它是一个针对代码专门版本的 Llama 2,通过在代码特定数据集上进一步训练 Llama 2 而创建,或者使用你自己的数据对模型进行微调以满足你独特的业务需求,并将生成的模型导入 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail)。
让我们看看实践中是如何工作的。
### 将自定义模型导入 Amazon Bedrock
在 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 控制台中,我从导航窗格的“基础模型”部分选择“导入的模型”。现在,我可以通过从 [Amazon Simple Storage Service](https://aws.amazon.com/cn/s3/?trk=cndc-detail) ([Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail)) 存储桶或 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 模型导入模型权重来创建自定义模型。
我选择从 S3 存储桶导入模型权重。在另一个浏览器标签页中,我使用这个拉取请求(PR)从 Hugging Face 网站下载 MistralLite 模型,该拉取请求提供了 safetensors 格式的权重。拉取请求目前处于“准备合并”状态,所以当你阅读本文时它可能已经是主分支的一部分。MistralLite 是经过微调的 Mistral-7B-v0.1 语言模型,具有处理最长 32K 个令牌上下文的增强能力。
当下载完成后,我将文件上传到与将导入模型的亚马逊云科技区域相同的 S3 存储桶中。以下是 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 控制台中的 MistralLite 模型文件:

回到 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 控制台,我为模型输入一个名称并保留建议的导入作业名称。

我选择“模型导入设置”中的“模型权重”,并在 S3 中浏览选择我上传模型权重的位置。

为了授权 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 访问 S3 存储桶上的文件,我选择创建并使用新的 Amazon Identity and Access Management (IAM) 服务角色的选项。我使用“查看权限详情”链接来检查角色将包含什么内容。然后,我提交作业。
大约十分钟后,导入作业就完成了。

现在,我在控制台中看到了导入的模型。列表还显示了模型亚马逊资源名称(ARN)和创建日期。

我选择该模型以获取更多信息,如模型文件的 S3 位置。

在模型详情页面中,我选择“在 Playground 中打开”以在控制台中测试该模型。在文本 Playground 中,我使用模型的提示模板输入一个问题:
<|prompter|>支持LLM长上下文有哪些主要挑战?<|assistant|>
导入的 MistralLite 模型很快就做出了回应,并描述了一些挑战。

在 Playground 中,我可以使用温度、最大长度等配置来调整响应以适应我的用例,或者添加特定于导入模型的停止序列。
要查看 API 请求的语法,我选择 Playground 右上角的三个小垂直点。

我选择“查看API语法”,并使用 Amazon Command Line Interface (Amazon CLI) 运行命令:
```js
Amazon Web Services bedrock-runtime invoke-model \\
–model-id arn:亚马逊云科技:bedrock:us-east-1:123412341234:imported-model/a82bkefgp20f \\
–body “{"prompt":"<|prompter|>支持LLM长上下文有哪些主要挑战?<|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 SDK 调用导入的模型。
**需要了解的事项**
你可以为 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 支持的模型架构在美国东部(弗吉尼亚州北部)亚马逊云科技区域中引入自己的权重。模型导入功能目前处于预览阶段。
使用自定义权重时,[Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 以 On-Demand 模式提供该模型,你只需为所使用的部分付费,无需承诺基于时间的任何期限。有关详细信息,请参阅 [Amazon Bedrock 定价](https://aws.amazon.com/bedrock/pricing/)。
导入模型的能力由 Amazon Identity and Access Management (IAM) 管理,你可以仅允许你组织中需要此功能的角色使用它。
通过这次发布,使用内置安全性和隐私性的自定义模型构建和扩展生成式 AI 应用程序变得更加容易。
了解更多信息:
- 参阅 [Amazon Bedrock用户指南](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html)
- 访问我们的[开发者社区站点](https://community.aws/generative-ai?trk=e8665609-785f-4bbe-86e8-750a3d3e9e61&sc_channel=el),找到深入的技术内容,并了解其他人如何在他们的解决方案中使用[Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail):
