在这篇文章中,我们将在亚马逊SageMaker JumpStart和亚马逊Bedrock中推出Meta的Llama 32模型。Llama 32模型为多种视觉应用提供了支持,如文档视觉问答、图像中的结构化实体信息提取和图像标注。这是Meta首次以视觉功能发布Llama模型,极大拓宽了其应用领域。
今天,我们很高兴地宣布Llama 32在亚马逊SageMaker JumpStart和亚马逊Bedrock中的可用性。Llama 32模型是一系列先进的预训练和指令微调的生成式AI模型,涵盖了多种规模,从适合边缘设备的轻量级文本模型1B和3B参数到小型和中型模型11B和90B参数,能够执行复杂的推理任务,包括支持高分辨率图像的多模态功能。SageMaker JumpStart是一个机器学习ML中心,提供算法、模型和ML解决方案,让您能够快速入门ML。亚马逊Bedrock是一个全托管服务,通过单一API,提供来自领先AI公司的高性能基础模型FMs,并具备构建生成式AI应用所需的广泛功能,包括安全、隐私和负责任的AI。
在这篇文章中,我们演示了如何使用Llama 32的11B和90B模型来处理多种基于视觉的用例。这是Llama模型首次添加视觉能力,从而拓宽了其传统的文本应用范围。我们讨论的视觉用例包括文档视觉问答、从图像中提取结构化实体信息以及图像标注。
Llama 32是一系列多模态和多语言的大型语言模型LLMs,包括各种规模的预训练和指令调优生成模型。11B和90B模型是多模态的它们支持文本输入/输出,以及文本图像输入/输出。
Llama 32的11B和90B模型是第一批支持视觉任务的Llama模型,具备将图像编码表示集成到语言模型中的新架构。这些新模型旨在提高AI工作负载的效率,降低延迟并改善性能,如此它们适合广泛的应用。所有Llama 32模型支持128000的上下文长度,保持了Llama 31中引入的扩展令牌容量。此外,这些模型对包括英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语在内的八种语言提供了改进的多语言支持。
Llama 32模型现在可以在SageMaker JumpStart和亚马逊Bedrock中进行推理。在SageMaker JumpStart中,您可以在美国东部俄亥俄州AWS区域访问Llama 32模型,并支持所需实例类型。Meta的Llama 32的90B和11B模型也在亚马逊Bedrock中可用,覆盖美国西部俄勒冈州以及美国东部俄亥俄州、北弗吉尼亚州区域,还支持跨区域推理。Llama 32的1B和3B模型在美国西部俄勒冈州和欧洲法兰克福区域可用,并在美国东部俄亥俄州、北弗吉尼亚州和欧洲爱尔兰、巴黎区域通过跨区域推理提供,未来还计划扩展区域可用性。
在接下来的部分中,我们将阐述如何在亚马逊Bedrock和亚马逊SageMaker JumpStart中配置Llama 32视觉模型,专用于视觉推理。我们还将演示文档问答、实体提取和标题生成的用例。
在本文中展示的示例中,除非另有说明,否则我们使用Llama 32的90B模型。其中的时尚图像来自于Fashion Product Images Dataset。标题生成的图像来自Human Preference Synthetic Dataset。室内设计和房地产的图像来自于室内设计数据集。
实施本文所述步骤需要以下前提条件:
一个包含您所有AWS资源的AWS账号。一个AWS身份和访问管理IAM角色,以访问亚马逊SageMaker和亚马逊Bedrock。有关更多信息,请参见亚马逊SageMaker的身份和访问管理和亚马逊Bedrock的身份和访问管理。访问亚马逊SageMaker Studio或SageMaker笔记本实例,或使用PyCharm、Visual Studio Code等互动开发环境IDE进行开发。关于如何为亚马逊Bedrock设置Llama 32模型访问,请参见推出帖子。有关在SageMaker JumpStart中创建模型端点的详细信息,请参考推出帖子。

以下是使用Llama 32模型在亚马逊Bedrock中设置视觉推理任务的代码示例:
pythonimport boto3import jsonimport base64from botocoreconfig import Config
config = Config( regionname = osgetenv(BEDROCKREGION uswest2) )bedrockruntime = boto3client(bedrockruntime config=config)MODELID = usmetallama3290binstructv10
亚马逊Bedrock支持作为对话API一部分的messages对象。使用对话API,您不必将图像转换为base64格式与SageMaker JumpStart相比。
您可以使用以下代码读取图像:
python
imagepath = # 用实际图像路径替换try # 打开图像文件并读取其内容 with open(imagepath rb) as imagefile imagebytes = imagefileread() # 将图像字节编码为base64 imagedata = imagebytesexcept FileNotFoundError print(f在 {imagepath} 找不到图像文件) imagedata = None
使用以下代码创建messages对象:
python
messages = [ { role user content [ { text prompt } { image { format source { bytes imagedata } } } ] }]
调用亚马逊Bedrock对话API如下:
pythontry # 调用SageMaker端点 response = bedrockruntimeconverse( modelId=MODELID # 在开头定义的MODELID messages=[ messages ] inferenceConfig={ maxTokens 4096 temperature 0 topP 1 } )
# 读取响应 print(response[output][message][content][0][text])
except Exception as e print(f调用端点时发生错误 {str(e)})
您可以使用以下代码片段通过SageMaker端点设置视觉得推理任务请参阅Llama 32在SageMaker JumpStart博客中设置推理端点:
pythonimport boto3import jsonimport base64
sagemakerruntime = boto3client(sagemakerruntime)endpointname = # 用实际的端点名称替换
SageMaker JumpStart部署也可以采用消息API样式的messages对象作为输入类似于亚马逊Bedrock对话API。首先,需要将图像读取为base64格式,然后通过messages对象发送。
您可以使用以下代码读取图像:
python
imagepath = # 用实际图像路径替换try # 打开图像文件并读取其内容 with open(imagepath rb) as imagefile imagebytes = imagefileread() # 将图像字节编码为base64 imagedata = base64b64encode(imagebytes)decode(utf8) imagemediatype = image/jpeg # 如果使用其他图像格式请调整except FileNotFoundError print(f在 {imagepath} 找不到图像文件) imagedata = None imagemediatype = None
使用以下代码创建messages对象:
python
myurl = fdataimage/jpegbase64{imagedata}
messages = [ { role user content [ { type text text prompt } { type imageurl imageurl { url myurl } } ] }]
在前面的代码中,prompt是我们针对图像的模型推理问题。
创建messages对象后,可以将其作为有效载荷发送到SageMaker端点:
pythontry # 调用SageMaker端点 response = sagemakerruntimeinvokeendpoint( EndpointName=endpointname ContentType=application/json Body=jsondumps(payload) )
# 读取响应主体responsebody = response[Body]read()if responsebody try # 解析JSON响应 result = jsonloads(responsebodydecode(utf8)) # 打印模型的响应 print(result[choices][0][message][content]) except jsonJSONDecodeError as jsonerr print(f解析JSON失败 {jsonerr}) print(f原始响应 {responsebody[choices][0][message][content]})else print(响应主体为空)except Exception as e print(f调用端点时发生错误 {str(e)})
在本节中,我们展示文档问答的示例用例。我们专注于两个用例:其一是根据包含复杂图形信息的财务结果幻灯片回答问题,其二是通过查看图像解决数学问题。
Llama 32视觉模型可以推理并回答基于图像的问题,比如包含图表、图形和表格的复杂信息。我们将该模型用于财务分析师助手,通过分析不同类型财务信息的幻灯片来回答问题。我们使用亚马逊2024年第二季度财务结果电话会议幻灯片文档向Llama 32提出问题。
第一个问句为“过去12个月的销售趋势如何?”对应以下幻灯片。
我们得到如下回应:销售同比增长12。柱状图显示,2023年第二季度的销售额从538046美元上升到2024年第一季度的604334美元,进一步上升到2024年第二季度的604334美元。这表明销售在过去12个月内稳步增长。
接下来,我们问“请帮我理解这个幻灯片。过去12个月的运营和自由现金流的趋势如何?对自由现金流趋势的主要贡献者是什么?”我们使用以下幻灯片。
我们得到如下回应:该幻灯片展示了一个表格,主要分为两个部分:“运营现金流”和“自由现金流减去设备融资租赁和所有其他融资租赁及融资义务的本金偿还”。该表格分为五列,每列代表从2023年第二季度到2024年第二季度的季度信息。
运营现金流趋势:
2023年第二季度:61841美元
2023年第三季度:71654美元
2023年第四季度:84946美元
2024年第一季度:99147美元
2024年第二季度:107952美元
运营现金流在过去五个季度中持续增长,显示出积极的趋势。
自由现金流趋势:
2023年第二季度:6734美元
2023年第三季度:20241美元
2023年第四季度:35549美元
2024年第一季度:48778美元
飞鸟加速器免费下载2024年第二季度:51448美元
自由现金流也显示上升趋势,自2023年第二季度到2024年第二季度有显著增长。
自由现金流趋势的主要贡献者:
对自由现金流趋势的主要贡献者是“所有其他融资租赁的本金偿还”和“融资义务的本金偿还”。这两项在过去五个季度中均持续增加,推动了自由现金流的整体增长。
总之,过去12个月内,运营现金流和自由现金流均表现出积极趋势。自由现金流趋势的主要贡献者是所有其他融资租赁和融资义务本金偿还的增加。
视觉问答的另一个有趣问题是回答视觉数学和逻辑难题。Llama 32视觉模型在解决和回答视觉数学问题方面非常出色。我们在这里展示几个例子。
对于我们的第一个问句,我们使用以下图像并询问“袋鼠在几个圆圈内?”
我们得到如下回应:袋鼠在3个圆圈内。
接下来,使用以下图像问“这些图形中哪个与其他四个不同?”
我们得到如下回应:标记为E的图形是唯一一个与其他四个拥有不同形状裙子的。其他图形的裙子是三角形,而E图形的裙子是矩形。
提取产品信息对零售行业来说是一个重要的用例。在支持第三方销售者的平台上,产品图像是收集产品信息最方便的资源。因此,准确提取与产品相关的信息对产品的成功至关重要。在本节中,我们展示了一些服装产品图像,以及如何使用Llama 32提取可以支持电子商务应用的产品相关信息。
我们首先使用以下图像和提示“请提取图像中所有产品的信息?请仔细考虑,以逐步构建一个json文件来组织所有产品信息。请考虑将提取信息的json文件格式化,以便在零售电子商务应用中进一步使用。将json文件作为输出返回。”
![](https//d2908q01vomqb2cloudfrontnet/f1f836cb4ea6efb2a0b1b99f41ad