Amazon Bedrock 工作坊:入门指南与实践教程
Amazon Bedrock 是 AWS 推出的一项全新服务,旨在为开发者提供便捷的基础模型(Foundation Models)访问能力。本文将为您详细介绍 Amazon Bedrock 工作坊的内容、环境设置步骤以及实践教程,帮助您快速掌握这一强大工具的使用方法。
工作坊简介
Amazon Bedrock 工作坊是一个面向开发者和解决方案构建者的实践性指南,旨在介绍如何通过 Amazon Bedrock 服务来利用基础模型。Amazon Bedrock 是一个完全托管的服务,通过 API 提供来自第三方提供商和亚马逊的基础模型访问。使用 Bedrock,您可以从多种模型中选择最适合您的用例的一种。
在这一系列实验中,您将探索我们客户在生成式 AI 方面最常见的一些使用模式。我们将展示生成文本和图像的技术,通过提高生产力为组织创造价值。这是通过利用基础模型来帮助撰写电子邮件、总结文本、回答问题、构建聊天机器人和创建图像来实现的。
工作坊内容
工作坊包含以下几个主要实验:
-
文本生成 [预计完成时间 - 45 分钟]
- 使用 Bedrock 进行文本生成
- 使用 Titan 和 Claude 进行文本摘要
- 使用 Titan 进行问答
- 实体提取
-
知识库和 RAG [预计完成时间 - 45 分钟]
- 托管 RAG 检索和生成示例
- Langchain RAG 检索和生成示例
-
模型定制 [预计完成时间 - 30 分钟]
- 即将推出
-
图像和多模态 [预计完成时间 - 30 分钟]
- Bedrock Titan 图像生成器
- Bedrock Stable Diffusion XL
- Bedrock Titan 多模态嵌入
-
代理 [预计完成时间 - 30 分钟]
- 客户服务代理
- 保险理赔代理
-
开源示例(可选) [预计完成时间 - 30 分钟]
- Langchain 文本生成示例
- Langchain KB RAG 示例
- Langchain 聊天机器人示例
- NVIDIA NeMo Guardrails 示例
- NodeJS Bedrock 示例
环境设置
在开始实践之前,我们需要先进行环境设置。以下是详细的步骤:
-
选择笔记本环境
本工作坊以一系列 Python 笔记本的形式呈现,您可以选择以下环境之一运行:
-
对于功能丰富的 AI/ML 完全托管环境,我们推荐使用 SageMaker Studio。您可以参考域快速设置说明快速入门。
-
对于更基础的完全托管体验,您可以选择创建 SageMaker Notebook 实例。
-
如果您更喜欢使用现有的(本地或其他)笔记本环境,请确保它具有调用 AWS 的凭证。
-
-
启用 AWS IAM 权限
您从笔记本环境中使用的 AWS 身份(对于 SageMaker 来说是 Studio/notebook 执行角色,对于自管理笔记本来说可能是角色或 IAM 用户)必须具有足够的 AWS IAM 权限来调用 Amazon Bedrock 服务。
要授予 Bedrock 访问权限,您可以:
- 打开 AWS IAM 控制台
- 查找您的 角色(如果使用 SageMaker 或以其他方式假定 IAM 角色),或者 用户
- 选择 "添加权限 > 创建内联策略" 以附加新的内联权限,打开 JSON 编辑器并粘贴以下示例策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockFullAccess", "Effect": "Allow", "Action": ["bedrock:*"], "Resource": "*" } ] }
⚠️ 注意: 使用 Amazon SageMaker 时,您的笔记本执行角色通常与您登录 AWS 控制台的用户或角色是分开的。如果您想探索 Amazon Bedrock 的 AWS 控制台,您还需要授予控制台用户/角色权限。
-
克隆并使用笔记本
一旦设置好笔记本环境,请克隆此工作坊存储库:
sudo yum install -y unzip git clone https://github.com/aws-samples/amazon-bedrock-workshop.git cd amazon-bedrock-workshop
现在您已经准备好探索实验笔记本了!从 00_Prerequisites/bedrock_basics.ipynb 开始,了解如何安装 Bedrock SDK、创建客户端以及开始从 Python 调用 API。
实践教程
接下来,让我们通过一个简单的文本生成示例来快速上手 Amazon Bedrock。
-
导入必要的库
首先,我们需要导入 boto3 库来与 Amazon Bedrock 进行交互:
import boto3 import json
-
创建 Bedrock 客户端
接下来,创建一个 Bedrock 客户端:
bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-east-1' )
-
准备模型输入
我们将使用 Anthropic 的 Claude 模型进行文本生成。准备模型输入:
prompt = "Write a short story about a robot learning to love." body = json.dumps({ "prompt": f"\n\nHuman: {prompt}\n\nAssistant:", "max_tokens_to_sample": 500, "temperature": 0.8, "top_p": 0.8, })
-
调用模型
现在,让我们调用模型并获取响应:
response = bedrock_runtime.invoke_model( body=body, modelId="anthropic.claude-v2" ) response_body = json.loads(response.get('body').read()) story = response_body.get('completion') print(story)
这个简单的示例展示了如何使用 Amazon Bedrock 生成一个短篇故事。您可以根据需要调整提示、模型参数和选择不同的模型来探索更多可能性。
结语
Amazon Bedrock 工作坊为开发者提供了一个全面的实践平台,帮助他们快速掌握这一强大的基础模型服务。通过本文介绍的环境设置步骤和实践教程,您现在应该已经对 Amazon Bedrock 有了初步的了解,并能够开始探索其丰富的功能。
随着生成式 AI 技术的不断发展,Amazon Bedrock 将为开发者提供更多创新的可能性。我们鼓励您继续深入探索工作坊中的其他实验,以充分发挥 Amazon Bedrock 的潜力,为您的项目和组织创造更多价值。
记住,实践是掌握新技术的最佳方式。祝您在 Amazon Bedrock 的学习之旅中收获满满,创意无限! 🚀🌟