Amazon Bedrock最全面详解
本帖最后由 nettman 于 2023-12-25 10:52 编辑如果想采用人工智能基础模型,用数据训练它们,并将它们集成到应用程序中,那么 Amazon Bedrock可能就是我们要寻找的。
1.什么是Amazon Bedrock ?
Amazon Bedrock 是一项用于构建生成式 AI 应用程序的完全托管服务。可以通过 AI 从 Amazon 或第三方 AI 公司提供的基础模型 (FM) 开始,然后从基础模型的预先训练的“bedrock”进行构建,根据需求对其进行定制。
由于它是完全托管的,因此根本不必管理基础架构,并且可以使用组织的数据私下自定义FM。
2.可以使用 Amazon Bedrock 做什么?
可以使用 Amazon Bedrock 来构建和扩展生成式 AI 模型,因此几乎可以使用 GenAI 完成一般的所有操作,例如:
1. 构建聊天机器人
可以使用 Bedrock 创建和自定义聊天机器人,然后将它们添加到网站或独立部分。
2. 文本和图像生成
生成人工智能模型的基础。可以根据语言提示生成各种原始书面或基于图像的内容。
3. 数据搜索
有一个搜索功能,可以让搜索信息,从海量数据中回答问题。
4. 文本摘要
文本摘要也是一个构建选项。此功能使可以快速轻松地获取任何基于文本的内容(例如文章、博客文章、书籍或文档)的摘要。
3.费用是多少?
定价并不是一成不变的,定价也大致分为三类:
按需:灵活的即用即付选项,无需任何基于时间的承诺。
按需定价与这些公司(例如 Anthropic、Stability 等)在自己的平台上提供的 API 成本大致相同。
预置吞吐量:
需要 1 到 6 个月的承诺,非常适合需要保证吞吐量的大型工作负载。如果工作量可预测,这可以为我们节省大量资金。
模型定制(微调):根据模型处理的令牌数量收取训练费用,再加上每个模型每月的模型存储费用。
警告:除非真正知道自己在做什么,否则不要使用自定义模型,因为这些成本可能会很高。
欲了解更多信息,请查看不同型号的定价。
4.Amazon Bedrock 和 SageMaker 之间有什么区别?
Amazon Bedrock 是一项完全托管的服务,可以使用基础模型轻松构建和扩展生成式 AI 应用程序,并允许轻度定制。相比之下,Sagemaker 是一种托管 ML 服务,允许深度定制,并且适用于更高级的用例。
更详细地说,SageMaker 是一种训练、构建和部署模型的方法,而 Amazon Bedrock则处理预先训练的模型。借助 SageMaker,可以使用任何可用的开源大型语言模型 (LLM) 并对其进行训练。相比之下,Amazon Bedrock 仅限于默认的基础语言模型,即使可以对其进行微调。
5.Amazon Bedrock支持的模型
以下举例,不包括全部:
亚马逊Titan:一款多功能工具,用于执行文本生成、分类、问答、信息提取和个性化文本嵌入等任务。
AI21 Labs Jurassic:非常适合各种语言任务,包括(但不限于)文本生成、摘要和问答。
Claude Anthropic:该模型在复杂对话、复杂推理、内容创建甚至编码等领域表现出色!
Command Cohere:该模型专为企业量身定制,擅长根据提示生成基于文本的响应。
Meta Llama 2:针对以对话为中心的应用程序进行了完美微调。
6.如何访问 Amazon Bedrock 模型?
Amazon Bedrock 可让我们利用 AI21 (“AI”21) Labs、Anthropic、Cohere、Stability AI 和 Amazon 本身(包含 Titan 模型)等知名公司的各种基础 AI 模型。但默认情况下无权使用这些模型,因此当第一次开始时,需要请求访问权限。
1.登录亚马逊云科技 控制台并选择 Bedrock 一般可用的三个区域之一:美国东部(弗吉尼亚北部)、美国西部(俄勒冈)和亚太地区(东京)。
2.导航至Amazon Bedrock
3.在 Amazon Bedrock主页上,单击开始。
4.要更好地了解可用模型以及每个模型的用途,请在左侧导航栏中单击基本模型。
5.仔细阅读模型描述并确定哪些模型最适合用例。
6.要请求访问权限,转到左侧导航并单击模型访问权限。然后在右侧单击管理模型访问。
7.选择想要访问的基本模型,然后单击“保存更改”。
不会因为访问该模型而付费;仅当使用该模型时才会产生费用。此外,并非所有模型都可用,有些模型(例如 Claude)将要求在授予访问权限之前提交用例。
在请求访问权限后,最多可能需要 72 小时才能获得批准,但根据使用经验,速度会快得多。
7.如何通过 亚马逊科技 控制台使用 Amazon Bedrock 模型?
Amazon Bedrock 通过 亚马逊云科技控制台提供了三个游乐场(playground),以便可以熟悉这些模型:聊天、文本和图像。可以从左侧导航访问它们。
使用聊天游乐场
聊天游乐场支持多轮对话,需要在先前的上下文基础上进行迭代和构建。还可以提供说明或角色,例如“充当软件开发专家”。
使用文本游乐场
文本游乐场比聊天游乐场稍微简单,支持诸如“写一首关于使用 亚马逊云科技的诗”之类的提示。无法在文本游乐场中提供说明或角色。
使用图像游乐场
从炭笔草图到超现实的照片,可以在图像游乐场中发挥创意,生成需要的东西。还可以在生成图像后下载该图像。
8.如何在应用程序中使用 Amazon Bedrock API
这项技术的真正力量在于能够将其合并到自己的应用程序中。这就是 API 的用武之地。可以使用 亚马逊云科技 CLI、亚马逊云科技 开发工具包或 SageMaker Notebook 访问 API。请参阅文档了解更多信息。
在这里,我们将使用 Python 来实现一个简单的提示示例。正如代码注释中所述:
[*]我们首先创建客户端对象来与 Bedrock 交互。
[*]然后我们设置“输入”,这是我们将传递给模型的内容。提示:可以使用 Playgrounds 输入提示和参数,然后单击“查看 API 请求”以获取 JSON 代码。
[*]调用模型并返回响应。
# To run this code, you first need to install the AWS SDK for Python called boto3
# From the terminal, type "pip install boto3"
import boto3
import json
# Create the client object for interacting with Amazon Bedrock
# Be sure to select a region where Amazon Bedrock is available
bedrock = boto3.client(
service_name='bedrock-runtime',
region_name='us-west-2'
)
# The input we'll send to the model
# TIP: You can get this info in the playgrounds by clicking "View API request" and then updating the code below
input = {
"modelId": "meta.llama2-13b-chat-v1",
"contentType": "application/json",
"accept": "*/*",
"body": "{\"prompt\":\"I need an idea for an app to build on Amazon Bedrock.\",\"max_gen_len\":512,\"temperature\":0.5,\"top_p\":0.9}"
}
# The response from the model
response = bedrock.invoke_model(body=input["body"],
modelId=input["modelId"],
accept=input["accept"],
contentType=input["contentType"])
response_body = json.loads(response['body'].read())
# Print the response from the model
print(response_body)要从终端运行代码,请输入python bedrock.py,应该会得到如下所示的 JSON 响应(尽管您的响应可能会略有不同):
在此示例中,我们只是将响应打印到控制台,但在现实世界中,可能会将其显示回应用程序的用户。
9.如何使用 Amazon Bedrock 微调和构建自定义模型
在生成式人工智能的早期,我们都对模型的出色表现感到震惊。但随着公司开始采用这项技术,大多数公司都意识到基本模型并不能 100% 满足他们的需要。他们缺乏特定领域或特定公司的知识。这就是微调和定制模型的用武之地。
通过微调,可以使用基本模型之一(例如 Llama 或 Titan)的一般知识,然后使用自己的数据对其进行增强。
在 Amazon Bedrock 中,可以通过单击左侧导航栏中的自定义模型,然后单击自定义模型→创建微调作业来使用此功能。
警告:定制模型可能非常昂贵,因此我不建议您这样做,除非您真的知道自己在做什么并且有预算支持它。 我会帮助您开始,但您可以在文档中找到完整的说明。
在下一页上,您需要输入以下详细信息:
模型详细信息:选择要微调的基本模型,然后为新的微调模型命名。
[*]作业配置:输入训练作业的唯一名称。
[*]输入数据:指向要用于训练模型的训练数据(以及可选的验证数据)。此数据应位于 S3 存储桶中。
[*]超参数:调整模型的超参数(可选),或接受默认值。
[*]输出数据:输入训练作业输出数据应存放的 S3 位置。
[*]服务访问: Amazon Bedrock 需要写入 S3 的权限,因此您需要指定具有这些权限的服务角色。
单击Fine-tune model后,训练作业将开始。这可能需要一段时间,具体取决于基本模型和您传递的数据量。您需要监视作业、分析结果,然后最终使用微调的模型进行推理。
10.总结
到目前为止,希望我们已经很好地了解了如何开始使用 Amazon Bedrock 。
页:
[1]