亚马逊AWS官方博客
升级了来自 Anthropic 的 Claude 3.5 Sonnet(现已推出)、计算机使用(公测版)Amazon Bedrock 中的 Claude 3.5 Haiku(即将推出)
四个月前,我们在 Amazon Bedrock 中推出了 Anthropic 的 Claude 3.5,这不仅提高了 AI 模型智能的行业标准,同时保持了 Claude 3 Sonnet 的速度和成本效益。
今天,我很高兴地宣布 Amazon Bedrock 中 Claude 3.5 模型系列的三项新功能:
升级版 Claude 3.5 Sonnet – 您现在可以体验升级版的 Claude 3.5 Sonnet 模型,它在前代基础上进一步强化,以相同的成本为您带来更丰富的智能功能。Claude 3.5 Sonnet 进一步提升了解决现实世界中软件工程任务的能力,并且能够更好地遵循复杂的代理式工作流程。升级后的 Claude 3.5 Sonnet 能够在软件开发的整个生命周期中提供支持,涵盖从最初的设计阶段到错误修复、维护和性能优化的各个环节。利用这些新功能,升级后的 Claude 3.5 Sonnet 模型现在可以帮助构建更高级的聊天机器人,让它们拥有温暖且人性化的语气。升级后的模型在多种应用场景中都表现出色,不仅可以用于知识问答平台,还能从图表、图解等视觉元素中提取数据,以及实现重复性任务和操作的自动化。
计算机使用 – Claude 3.5 Sonnet 目前在 Amazon Bedrock 中提供计算机使用功能(公测版),这使得 Claude 能够感知并与计算机界面进行交互。开发人员可以指示 Claude 像人类一样使用计算机:查看屏幕、移动鼠标、点击按钮以及输入文本。工作原理是让模型能够访问一些集成工具,这些工具能够执行计算机操作,比如模拟按键和鼠标点击、编辑文本文件,以及执行 shell 命令。软件开发人员可以通过搭建一个动作执行层,并赋予 Claude 3.5 Sonnet 访问屏幕的权限,将计算机操作功能集成到解决方案。通过这种方法,软件开发人员可以开发出能够执行计算机操作、完成多个步骤并核查结果的应用程序。计算机使用功能为人工智能驱动的应用程序提供了新的可能性。比如,这一功能可以协助自动化软件测试和后台任务,还能实现更高级的软件助手,与应用程序进行交互。由于这项技术还处在早期阶段,我们鼓励开发人员先从风险较小的任务着手,并在沙盒环境中进行测试。
Claude 3.5 Haiku – 即将推出的全新 Claude 3.5 Haiku 集合了快速响应和增强推理能力于一身,非常适合那些既要求速度又要求智能的任务。Claude 3.5 Haiku 在前一代的基础上做了改进,其性能可与 Claude 3 Opus(之前 Claude 最大的型号)媲美,而速度和成本却与 Claude 3 Haiku 相当。Claude 3.5 Haiku 能够适用于多种使用场景,比如提供快速而准确的代码建议、打造需要迅速响应客户服务的高互动性聊天机器人、实现电子商务解决方案,以及支持教育平台等。对于那些需要处理金融、医疗保健、研究等领域大量非结构化数据的客户,Claude 3.5 Haiku 能够助他们一臂之力,高效地处理和分类这些信息。
按照 Anthropic 的说法,升级后的 Claude 3.5 Sonnet 相较于前代有了全方位的提升,在编码这一强项上更是进步显著。升级后的 Claude 3.5 Sonnet 在多个行业基准方面都展现出全面的改进。在编码方面,Claude 3.5 Sonnet 将 SWE-Bench Verified 的性能从 33% 提高到 49%,超过了所有公开模型的得分。它还将代理工具使用任务 TAU-Bench 的性能从 62.6% 提高到 69.2%,在航空领域的性能从 36.0% 提高到 46.0%。下表包括 Anthropic 提供的模型评估。
计算机使用,人工智能交互的新前沿
Claude 没有限制模型使用 API,而是接受了通用计算机技能的训练,使其能够使用各种标准工具和软件程序。通过这种方式,应用程序就能利用 Claude 来感知计算机界面并与之交互。软件开发人员可以集成此 API,让 Claude 能够把提示(比如“在罗马找家酒店”)转换成具体的计算机操作(比如打开浏览器、访问某个网站等)。
具体来说,调用这个模型时,软件开发人员现在可以利用三种新的集成工具,这些工具就好比操作计算机的虚拟双手:
- 计算机工具 – 此工具可以接受屏幕截图和目标作为输入,然后返回为了实现目标应该执行的鼠标和键盘操作的说明。例如,此工具可以要求将光标移动到特定位置,单击、输入并截取屏幕截图。
- 文本编辑器工具 – 使用此工具,模型可以要求执行诸如查看文件内容、创建新文件、替换文本和撤消编辑等操作。
- Bash 工具 – 此工具返回的指令可以在计算机系统上执行,方便用户在终端输入内容时进行更低层次的交互。
从数据分析、软件测试到内容创作、系统管理,这些工具为自动执行复杂任务提供了无限的可能性。想象一下,一个由 Claude 3.5 Sonnet 驱动的应用程序能够像人类一样与计算机互动,自如操作包括终端、文本编辑器、网页浏览器在内的多种桌面应用,不仅能填写表格,还能调试代码。
我们很高兴能帮助软件开发人员通过 Amazon Bedrock 探索这些新功能。我们预计这些功能在未来几个月里会迅速提升,不过目前 Claude 使用计算机的能力还比较有限。某些操作,比如滚动、拖动或缩放,对 Claude 来说可能是个挑战,我们鼓励您先从风险较低的任务开始尝试。
从真实的计算机环境多模态代理基准 OSWorld 的评分来看,升级后的 Claude 3.5 Sonnet 目前的得分为 14.9%。虽然人类的表现遥遥领先,得分大约在 70-75%,但这个结果已经比同类中排名第二的模型的 7.7% 好很多了。
在 Amazon Bedrock 控制台中使用升级后的 Claude 3.5 Sonnet
要开始使用升级后的 Claude 3.5 Sonnet,需要导航到 Amazon Bedrock 控制台,然后在导航窗格中选择模型访问。在那里,我请求访问新的 Claude 3.5 Sonnet V2 模型。
为了测试新的视觉功能,我打开了另一个浏览器选项卡,并从我们的数据世界网站下载了一张 PNG 格式的风力发电图。
回到 Amazon Bedrock 控制台,在导航窗格中选择 Playgrounds 下的聊天/文本。对于模型,我选择 Anthropic 作为模型提供商,然后选择 Claude 3.5 Sonnet V2。
我使用聊天输入部分的三个竖点从计算机上传图片文件。然后输入提示:
风力发电排名靠前的国家有哪些? 只能以 JSON 格式回答。
结果按照我的指示,返回了从图像中提取信息的列表。
将升级后的 Claude 3.5 Sonnet 与 AWS CLI 和 SDK 结合使用
以下是使用 Amazon Bedrock Converse API 的 AWS 命令行界面(AWS CLI)示例。我通过 CLI 的 --query
参数来筛选结果,仅显示输出消息的文本内容:
在输出结果中,我得到了这段文本作为响应。
一个锚! 如果您想用锚来停船,那就把锚抛出去;但如果想移动船只不再使用锚时,就把锚收回来(拉上来)。
AWS SDK 实现了类似的接口。例如,您可以使用 适用于 Python 的 Amazon SDK (Boto3)来分析与控制台示例中相同的图像:
import boto3
MODEL_ID = "anthropic.claude-3-5-sonnet-20241022-v2:0"
IMAGE_NAME = "wind-generation.png"
bedrock_runtime = boto3.client("bedrock-runtime")
with open(IMAGE_NAME, "rb") as f:
image = f.read()
user_message = "Which are the top countries for wind power generation? Answer only in JSON."
messages = [
{
"role": "user",
"content": [
{"image": {"format": "png", "source": {"bytes": image}}},
{"text": user_message},
],
}
]
response = bedrock_runtime.converse(
modelId=MODEL_ID,
messages=messages,
)
response_text = response["output"]["message"]["content"][0]["text"]
print(response_text)
将计算机使用与您的应用程序集成
让我们看看计算机使用在实际操作中是怎么运行的。首先,我截取 Ubuntu 系统的桌面屏幕截图:
此屏幕截图是将通过计算机使用实现的步骤的起点。为了解其工作原理,我运行了一个 Python 脚本,向模型输入屏幕截图和以下提示:
在罗马给家酒店
该脚本使用计算机使用所需的新语法调用 Amazon Bedrock 中升级后的 Claude 3.5 Sonnet:
import base64
import json
import boto3
MODEL_ID = "anthropic.claude-3-5-sonnet-20241022-v2:0"
IMAGE_NAME = "ubuntu-screenshot.png"
bedrock_runtime = boto3.client(
"bedrock-runtime",
region_name="us-east-1",
)
with open(IMAGE_NAME, "rb") as f:
image = f.read()
image_base64 = base64.b64encode(image).decode("utf-8")
prompt = "Find me a hotel in Rome."
body = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 512,
"temperature": 0.5,
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": prompt},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": image_base64,
},
},
],
}
],
"tools": [
{ # new
"type": "computer_20241022", # literal / constant
"name": "computer", # literal / constant
"display_height_px": 1280, # min=1, no max
"display_width_px": 800, # min=1, no max
"display_number": 0 # min=0, max=N, default=None
},
{ # new
"type": "bash_20241022", # literal / constant
"name": "bash", # literal / constant
},
{ # new
"type": "text_editor_20241022", # literal / constant
"name": "str_replace_editor", # literal / constant
}
],
"anthropic_beta": ["computer-use-2024-10-22"],
}
# Convert the native request to JSON.
request = json.dumps(body)
try:
# Invoke the model with the request.
response = bedrock_runtime.invoke_model(modelId=MODEL_ID, body=request)
except Exception as e:
print(f"ERROR: {e}")
exit(1)
# Decode the response body.
model_response = json.loads(response["body"].read())
print(model_response)
请求正文包含新选项:
anthropic_beta
的值为["computer-use-2024-10-22"]
,用于支持计算机使用。工具
部分支持新的类型
选项(为您配置的工具设置为自定义
)。请注意,计算机工具需要知道屏幕的分辨率(
display_height_px 和 display_width_px
)。
为了根据我的指示来使用计算机,该模型提供了屏幕截图所描述的桌面操作。
模型响应包括提供第一步操作的计算机工具
的 tool_use
部分。该模型在屏幕截图中找到了 Firefox 浏览器图标和鼠标箭头的位置。因此,它现在需要将鼠标移动到特定的坐标位置,以启动浏览器。
{
"id": "msg_bdrk_01WjPCKnd2LCvVeiV6wJ4mm3",
"type": "message",
"role": "assistant",
"model": "claude-3-5-sonnet-20241022",
"content": [
{
"type": "text",
"text": "I'll help you search for a hotel in Rome.I see Firefox browser on the desktop, so I'll use that to access a travel website.",
},
{
"type": "tool_use",
"id": "toolu_bdrk_01CgfQ2bmQsPFMaqxXtYuyiJ",
"name": "computer",
"input": {"action": "mouse_move", "coordinate": [35, 65]},
},
],
"stop_reason": "tool_use",
"stop_sequence": None,
"usage": {"input_tokens": 3443, "output_tokens": 106},
}
这只是第一步。跟通常的工具使用请求一样,脚本应该回复使用该工具的结果(在本例中是移动鼠标)。根据最初的预订酒店的请求,会有一个使用工具的交互循环,包括点击图标、在浏览器中输入网址等操作,直到酒店预订成功为止。
Anthropic 共享的存储库提供了更完整的示例。
注意事项
升级版 Claude 3.5 Sonnet 现已在美国西部(俄勒冈州)AWS 区域的 Amazon Bedrock 推出,售价与原来的 Claude 3.5 Sonnet. 相同。有关区域可用性的最新信息,请参阅 Amazon Bedrock 文档。有关每个 Claude 模型的详细成本信息,请访问 Amazon Bedrock 定价页面。
除了升级后的模型更加智能之外,软件开发人员现在还能在应用程序中整合计算机使用功能(目前处于公测阶段),从而自动化复杂的桌面工作流程,加强软件测试流程,以及创建更加高级的人工智能驱动的应用程序。
Claude 3.5 Haiku 将在未来几周内发布,最初为纯文本模式,随后将增加图像输入功能。
在 Anthropic 开发人员关系主管 Alex Albert 的这段视频中,您可以看到计算机使用功能是如何帮助编码工作的。
另一段视频描述了计算机使用在自动化操作中的应用。
要了解有关这些新功能的更多信息,请访问 Amazon Bedrock 文档的 Claude 模型部分。立即在 Amazon Bedrock 控制台中试用 Claude 3.5 Sonnet,并将反馈发送至 AWS re:Post for Amazon Bedrock。您可以在 community.aws 上找到深入的技术内容,了解我们的构建者社区如何使用 Amazon Bedrock。欢迎与我们分享您使用这些新功能构建了什么!
– Danilo
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。