引言
什么是Amazon Bedrock?
Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。这些模型经过优化,适用于特定的应用场景和行业需求,为各种AI应用提供了坚实的基础。
Amazon Bedrock的独特之处在于其通过单一API访问多个模型的统一方式。这大大简化了开发流程,用户无需对代码进行大量修改即可轻松与多种基础模型进行交互。此外,该服务还提供强大的定制化功能,允许用户根据特定领域或任务对预训练模型进行微调,从而提升模型的性能和准确性。
Amazon Bedrock的另一大亮点是其对先进AI技术的支持,例如检索增强生成(Retrieval Augmented Generation,简称RAG)。通过结合基于检索和生成的模型元素,RAG在自然语言处理(NLP)任务中能够生成更具上下文相关性和准确性的回应。该服务采用无服务器架构,用户无需管理复杂的基础设施,只需专注于构建AI应用。此外,Amazon Bedrock还与其他AWS服务无缝集成,确保兼容现有的基础设施、安全特性和数据管理工具。
在安全、隐私和负责任的AI实践方面,Amazon Bedrock也做出了卓越的承诺。它为用户提供了全面的控制和保护措施,以确保敏感数据的安全,并在AI开发和部署过程中遵守道德规范。
总的来说,Amazon Bedrock为组织提供了一个全面的平台,使其能够利用生成式AI的强大功能,在推动创新的同时,严格遵守安全、隐私和道德标准。
架构图
验证Bedrock模型的访问权限
请确认您所在的区域为美国东部(弗吉尼亚北部)us-east-1区域。
进入Bedrock页面,点击顶部的服务菜单,然后选择Bedrock。
在Bedrock页面左侧菜单中,选择“模型访问”(Model Access)。
向下滚动至Stability AI模型,确认您已获得该模型的访问权限。
创建 SageMaker Notebook 实例
确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。在顶部搜索栏中搜索“Amazon SageMaker”,并进入 SageMaker 服务页面。
在 SageMaker 仪表板上,选择左侧菜单中的“Notebook”选项,然后点击“Notebook 实例”。
点击“创建 Notebook 实例”按钮。
配置 Notebook 实例:
名称:SageMakerInstance Notebook 实例类型:ml.t2.medium 平台标识符:Amazon Linux 2, Jupyter Lab 3 IAM 角色选择:SageMakerInstanceRole 其他选项保持默认设置。 点击“创建 Notebook 实例”按钮。等待状态变为“InService”,因为 Notebook 实例的创建可能需要大约 5 分钟。
在 Notebook 实例的操作部分,点击“打开 Jupyter”以进入 Jupyter 环境。
使用 Stable Diffusion 生成图像
在此步骤中,我们将生成一张狗的示例图片,以了解如何使用 Amazon Bedrock 服务生成图像。
在 JupyterLab 中点击“New”按钮,并从下拉菜单中选择 conda_python3
notebook。
点击“Files”并使用“Rename”按钮将 notebook 重命名为 Whiz_Image_generation
。
将以下代码粘贴到 Jupyter Notebook 提供的代码块中,以使用 Stable Diffusion 模型生成图像。
import base64
import os
import random
import boto3
import json
prompt_data = """
A high-red 4k HDR photo of a golden retriever puppy running on a beach.
Action shot, blue sky, white sand, and a big smile. Cinematic film quality.
"""
def main():
seed = random.randint(0, 100000)
generate_image(prompt=prompt_data, seed=seed, index=0)
def generate_image(prompt: str, seed: int, index: int):
payload = {
"text_prompts": [{"text": prompt}],
"cfg_scale": 12,
"seed": seed,
"steps": 80,
}
# Create the client and invoke the model.
bedrock = boto3.client(service_name="bedrock-runtime")
body = json.dumps(payload)
model_id = "stability.stable-diffusion-xl-v1"
response = bedrock.invoke_model(
body=body,
modelId=model_id,
accept="application/json",
contentType="application/json",
)
# Get the image from the response. It is base64 encoded.
response_body = json.loads(response.get("body").read())
artifact = response_body.get("artifacts")[0]
image_encoded = artifact.get("base64").encode("utf-8")
image_bytes = base64.b64decode(image_encoded)
# Save image to a file in the output directory.
output_dir = "output"
os.makedirs(output_dir, exist_ok=True)
file_name = f"{output_dir}/generated-{index}.png"
with open(file_name, "wb") as f:
f.write(image_bytes)
print("Image generated successfully")
if __name__ == "__main__":
main()
点击“Run”按钮运行代码。
成功执行后,您将收到“Image generated successfully.”(图像生成成功)的输出消息。
返回到根文件夹,您会看到一个名为“output”的新创建文件夹。
在“output”文件夹中,您将找到使用 Stable Diffusion 模型生成的图像。
点击图像以查看生成的图像。
总结
通过上述步骤,您已经成功使用 Amazon Bedrock 的 Stable Diffusion 模型生成了一张示例图像。这不仅展示了该服务的强大功能,也为您在未来的项目中如何运用生成式 AI 提供了实用的操作指南。无论是用于图像生成还是其他复杂的 AI 应用,Amazon Bedrock 都为开发者提供了一个灵活且易于使用的平台,助力创新。现在,您可以探索更多可能性,进一步优化和扩展您的 AI 应用。
总结
### 文章总结**Amazon Bedrock:云端生成式AI的优雅解决方案**
**引言**:
Amazon Bedrock,亚马逊云服务(AWS)新推出的旗舰服务,旨在加速生成式人工智能(AI)在行业中的广泛应用。它汇集了顶尖AI公司(如AI21 Labs、Anthropic等)及亚马逊自身的力量,提供了经过优化的多种基础模型(FMs),适合各种应用场景和行业需求。其核心亮点在于单一API接入、强大的定制化能力以及对先进AI技术(如RAG)的支持。此外,Amazon Bedrock还强调在安全、隐私和道德框架内推动AI的应用,为用户提供无忧的开发环境。
**功能亮点**:
- **单一API接入**:简化了开发流程,使得用户可以轻松与多种基础模型交互。
- **强大的定制化**:允许根据特定需求微调模型,提升性能和准确性。
- **先进技术支持**:如RAG技术,在自然语言处理中生成更具上下文相关性的回应。
- **无缝集成**:与其他AWS服务完美整合,确保与现有基础设施的兼容性。
- **安全与隐私**:提供全面的控制和保护,确保敏感数据安全和AI应用的道德合规。
**实操指南:**
文章详细指导了如何通过Amazon Bedrock的Stable Diffusion模型生成图像的过程,包括如何验证模型访问权限、创建SageMaker Notebook实例、在Jupyter Notebook中编写并执行代码以生成图像等步骤。这一实操过程不仅展示了Amazon Bedrock的具体使用方法,也为开发者提供了未来项目中应用生成式AI的实际参考。
**总结**:
Amazon Bedrock为开发者提供了一个强大而灵活的生成式AI平台,通过单一接口访问多种基础模型,简化开发流程,并支持高度定制化。结合其对于安全、隐私和道德的严格承诺,Amazon Bedrock无疑将成为各行各业AI应用的重要推动力量。未来,随着更多功能的加入和优化的持续进行,相信Amazon Bedrock将在AI领域树立新的标杆。