分享

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

1.png


3.在 Amazon Bedrock主页上,单击开始。

1.png


4.要更好地了解可用模型以及每个模型的用途,请在左侧导航栏中单击基本模型。

1.png


5.仔细阅读模型描述并确定哪些模型最适合用例。


6.要请求访问权限,转到左侧导航并单击模型访问权限。然后在右侧单击管理模型访问。


1.png


7.选择想要访问的基本模型,然后单击“保存更改”。


1.png

不会因为访问该模型而付费;仅当使用该模型时才会产生费用。此外,并非所有模型都可用,有些模型(例如 Claude)将要求在授予访问权限之前提交用例。

在请求访问权限后,最多可能需要 72 小时才能获得批准,但根据使用经验,速度会快得多。


7.如何通过 亚马逊科技 控制台使用 Amazon Bedrock 模型?

Amazon Bedrock 通过 亚马逊云科技控制台提供了三个游乐场(playground),以便可以熟悉这些模型:聊天、文本和图像。可以从左侧导航访问它们。


1.png

使用聊天游乐场
聊天游乐场支持多轮对话,需要在先前的上下文基础上进行迭代和构建。还可以提供说明或角色,例如“充当软件开发专家”。


1.png

使用文本游乐场
文本游乐场比聊天游乐场稍微简单,支持诸如“写一首关于使用 亚马逊云科技的诗”之类的提示。无法在文本游乐场中提供说明或角色。


1.png


使用图像游乐场
从炭笔草图到超现实的照片,可以在图像游乐场中发挥创意,生成需要的东西。还可以在生成图像后下载该图像。


1.png

8.如何在应用程序中使用 Amazon Bedrock API
这项技术的真正力量在于能够将其合并到自己的应用程序中。这就是 API 的用武之地。可以使用 亚马逊云科技 CLI、亚马逊云科技 开发工具包或 SageMaker Notebook 访问 API。请参阅文档了解更多信息。

在这里,我们将使用 Python 来实现一个简单的提示示例。正如代码注释中所述:

  • 我们首先创建客户端对象来与 Bedrock 交互。
  • 然后我们设置“输入”,这是我们将传递给模型的内容。  提示:可以使用 Playgrounds 输入提示和参数,然后单击“查看 API 请求”以获取 JSON 代码。
  • 调用模型并返回响应。

  1. # To run this code, you first need to install the AWS SDK for Python called boto3
  2. # From the terminal, type "pip install boto3"
  3. import boto3
  4. import json
  5. # Create the client object for interacting with Amazon Bedrock
  6. # Be sure to select a region where Amazon Bedrock is available
  7. bedrock = boto3.client(
  8.     service_name='bedrock-runtime',
  9.     region_name='us-west-2'
  10. )
  11. # The input we'll send to the model
  12. # TIP: You can get this info in the playgrounds by clicking "View API request" and then updating the code below
  13. input = {
  14.   "modelId": "meta.llama2-13b-chat-v1",
  15.   "contentType": "application/json",
  16.   "accept": "*/*",
  17.   "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}"
  18. }
  19. # The response from the model
  20. response = bedrock.invoke_model(body=input["body"],
  21.                                 modelId=input["modelId"],
  22.                                 accept=input["accept"],
  23.                                 contentType=input["contentType"])
  24. response_body = json.loads(response['body'].read())
  25. # Print the response from the model
  26. print(response_body)
复制代码
要从终端运行代码,请输入python bedrock.py,应该会得到如下所示的 JSON 响应(尽管您的响应可能会略有不同):


1.png

在此示例中,我们只是将响应打印到控制台,但在现实世界中,可能会将其显示回应用程序的用户。

9.如何使用 Amazon Bedrock 微调和构建自定义模型

在生成式人工智能的早期,我们都对模型的出色表现感到震惊。但随着公司开始采用这项技术,大多数公司都意识到基本模型并不能 100% 满足他们的需要。他们缺乏特定领域或特定公司的知识。这就是微调和定制模型的用武之地。

通过微调,可以使用基本模型之一(例如 Llama 或 Titan)的一般知识,然后使用自己的数据对其进行增强。

在 Amazon Bedrock 中,可以通过单击左侧导航栏中的自定义模型,然后单击自定义模型→创建微调作业来使用此功能。  


1.png

警告:定制模型可能非常昂贵,因此我不建议您这样做,除非您真的知道自己在做什么并且有预算支持它。 我会帮助您开始,但您可以在文档中找到完整的说明。

在下一页上,您需要输入以下详细信息:

模型详细信息:选择要微调的基本模型,然后为新的微调模型命名。
  • 作业配置:输入训练作业的唯一名称。
  • 输入数据:指向要用于训练模型的训练数据(以及可选的验证数据)。此数据应位于 S3 存储桶中。
  • 超参数:调整模型的超参数(可选),或接受默认值。
  • 输出数据:输入训练作业输出数据应存放的 S3 位置。
  • 服务访问: Amazon Bedrock 需要写入 S3 的权限,因此您需要指定具有这些权限的服务角色。

单击Fine-tune model后,训练作业将开始。这可能需要一段时间,具体取决于基本模型和您传递的数据量。您需要监视作业、分析结果,然后最终使用微调的模型进行推理。

10.总结
到目前为止,希望我们已经很好地了解了如何开始使用 Amazon Bedrock 。

加微信w3aboutyun,可拉入技术爱好者群

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条