Amazon Bedrock 实践 - 利用 Llama 3.2 模型分析全球糖尿病趋势

黄浩文

资深开发者布道师

亚马逊云科技

拥有电信、互联网以及云计算等行业超过 20 年的丰富经验,曾任职于微软、Sun 和中国电信。他目前专注于生成式 AI、大型语言模型 (LLM)、机器学习和数据科学等领域的技术内容创作和实践分享,致力于赋能全球开发者。

本博客内容原文来自于作者在亚马逊云科技开发者社区发表的技术博客:

“Leveraging Llama 3.2 90B Instruct model for Multimodal Diabetes Prevalence Analysis on Amazon Bedrock”:

https://community.aws/content/2p6VvdzzeBfpOzSBXEzZdmJEyaE/?trk=cndc-detail

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

概述

在大型语言模型领域,多模态模型的强大能力已经开始为解决复杂问题开辟了新的可能性。本文探讨的问题是分析全球糖尿病患病率趋势,这是一个关系到全球数亿人的重大健康问题。在本文中,我将探讨如何在 Amazon Bedrock 上,使用 Meta Llama 3.2 90B Instruct 模型来分析全球不同国家或地区的糖尿病患者的患病率分布数据。 

Meta 开发的 Llama 3.2 90B Instruct 模型,是一种先进的具有多模态能力的大模型,它能够处理和分析文本和图像,这使它成为我们分析全球糖尿病患者的患病率数据的理想选择之一。 

我们将采用运行在 Amazon Bedrock 的 Llama 3.2 90B Instruct 模型来进行分析,Amazon Bedrock 与流行的先进大型语言模型无缝集成,可以帮助开发者更高效专业地创建自己的生成式 AI 应用程序。

多模态能力和基准

Meta 在其对外发布的论文 “The Llama 3 Herd of Models” 之中,详细阐释了将多模态能力添加到 Llama 3 系列模型的研究组合方法,该方法会经过五个阶段来训练多模态模型,分别是:

(1) 语言模型预训练 

(2) 多模态编码器预训练 

(3) 视觉适配器训练 

(4) 模型微调 

(5) 语音适配器训练 

该论文中的图示说明了这一过程。

Source:

https://ai.meta.com/research/publications/the-llama-3-herd-of-models/?trk=cndc-detail

来自 llama.com 网站公开的测试数据,比较了不同 AI 模型在各种基准测试和任务上的表现。下表分为“大学水平问题和数学推理”和“图表和图解理解”两大部分,每个部分下又有几个子类别。

在大多数基准测试中,Llama 3.2 90B 模型的表现普遍优于其他模型,在“AI2 Diagram”基准测试中,Llama 3.2 90B 模型获得了 92.3% 的最高分!

Source:

https://www.llama.com/?trk=cndc-detail

接下来,我们将使用一个具体的案例研究,演示如何在 Amazon Bedrock 上方便高效地利用 Llama 3.2 90B Instruct 模型的多模态能力。我们将使用这个模型分析全球不同国家和地区的糖尿病患病率趋势。

前期准备

我们的分析数据集是一个包含糖尿病流行率信息的数据集,其包括相关的图像等。在我们可以利用 Meta Llama 3.2 90B Instruct 模型进行推理之前,我们还需要确保我们的图像数据与其要求兼容。 

为了解决这个问题,我开发了一个实用的 Python 程序函数(可在 https://github.com/hanyun2019/bedrock-in-practice/blob/main/utils.py?trk=cndc-detail 获得),用于调整图像大小并确保符合 Meta Llama 3.2 90B Instruct 模型规范。

分析中采用的两张关于糖尿病病患数据及趋势的图像来网站如下所示。该网站汇编了世界银行(2024 年)从多个来源收集的相关数据:

https://ourworldindata.org/grapher/diabetes-prevalence?trk=cndc-detail

设置

首先,让我们导入必要的库并打印 boto3 版本。以下代码将导入了 boto3 库,这是亚马逊云科技服务的 Python SDK,然后打印 boto3 的版本以确保它是最新的:

import boto3
print('boto3 version')
print(boto3.__version__)!pip install --upgrade boto3

接下来,我们定义模型 ID 并加载需要分析的图像:

(1) MODEL_ID 被设置为在 Amazon Bedrock 上 Llama 3.2 90B Instruct 模型的特定模型 ID

(2) ORIGIN_IMAGE 被设置为原始图像文件的路径

MODEL_ID = "us.meta.llama3-2-90b-instruct-v1:0"
ORIGIN_IMAGE = "images/diabetes-prevalence.png"

以下代码从我编写的自定义 utils 模块导入两个函数:disp_image 和 resize_image。需要调整图像大小是因为:Meta Llama 90B Instruct 模型对输入图像的大小有一定限制。

from utils import disp_image
from utils import resize_imagedisp_image(ORIGIN_IMAGE)# Image processing
from PIL import Image
img1 = Image.open(ORIGIN_IMAGE)
img1.size
RESIZED_IMG = resize_image(img1)# Open the JPG image
jpg_image = Image.open("images/resized_image.jpg")# Convert the image to PNG format
png_image = jpg_image.convert("RGB")# Save the converted PNG image
png_image.save("images/resized_image.png")
RESIZED_IMAGE = "images/resized_image.png"
disp_image(RESIZED_IMAGE)

图像处理完成后,我使用自己定义的图像显示函数 disp_image() ,来显示将输入到 Llama 模型的第一张图像。这是一张全球糖尿病病患分布趋势的图像。颜色的深浅表示所在世界国家或地区的糖尿病患者在该区域占比的程度。颜色越深,病患情况就越严重。如下图所示:

Source:

https://ourworldindata.org/grapher/diabetes-prevalence?trk=cndc-detail

与模型互动

一切准备就绪,现在可以使用调整后的图像作为输入,提供给 Llama 3.2 90B Instruct 模型了。

我们先使用 boto3 为 Amazon Bedrock Runtime 服务创建一个客户端对象:

bedrock_runtime = boto3.client("bedrock-runtime")

然后,以二进制读取模式 ("rb") 打开调整后的图像文件,文件内容被读入 image 变量:

with open(RESIZED_IMAGE, "rb") as f:   image = f.read()

 接着定义一个用户消息,要求模型识别出全球糖尿病患病率最高的 10 个国家:

user_message = "According to this chart, which are the top 10 countries with the highest prevalence of diabetes?"

创建一个消息列表,其中包含一条消息。消息中包括用户的角色、图像和用户的消息内容:

messages = [   {      "role": "user",       "content": [         {"image": {"format": "png", "source": {"bytes": image}}},        {"text": user_message},     ],  }
]

调用 Amazon Bedrock Runtime 客户端的 converse 函数,传入 MODEL_ID 和以上消息列表。模型的响应消息将存储在 response 变量中:

response = bedrock_runtime.converse( modelId=MODEL_ID,   messages=messages,
)

从响应对象中提取响应文本,并将其存储在 response_text 变量中。之后,将响应文本打印显示出来:

response_text = response["output"]["message"]["content"][0]["text"]
print(response_text)

我自己获得的模型测试响应文本如下,供大家参考:

According to the chart, the top 10 countries with the highest prevalence of diabetes are:

  1. **Saudi Arabia**: 17.5%
  2. **Egypt**: 17.5%
  3. **United Arab Emirates**: 17.5%
  4. **Bahrain**: 17.5%
  5. **Kuwait**: 17.5%
  6. **Qatar**: 17.5%
  7. **Oman**: 17.5%
  8. **Yemen**: 17.5%
  9. **Libya**: 17.5%
  10. **Papua New Guinea**: 17.5%

These countries have the highest percentage of their population aged 20-79 with diabetes, according to the chart.

如果你从以上示例中得到启发,并希望进一步探索,可参考以下 GitHub 代码库查看我的完整代码:

https://github.com/hanyun2019/bedrock-in-practice/blob/main/llama32-multimodal-diabetes-1.ipynb?trk=cndc-detail

在以上完整代码中,我还上传测试了第二张输入的图像:亚洲糖尿病患病率分布情况图,供 Meta Llama 3.2 90B Instruct 模型进行进一步分析。如下图所示:

Source:

https://ourworldindata.org/grapher/diabetes-prevalence?trk=cndc-detail

细心的开发者也可以找到你坐在的洲际数据图表,以进一步探索这个话题。

总结

在这篇文章中,我们演示了如何利用 Amazon Bedrock 上 Meta Llama 3.2 90B Instruct 模型的多模态能力,来洞察全球糖尿病患病率。通过利用这种先进的大型多模态模型,我们能够同时分析文本数据和可视化数据,根据提供的图表来确定全球糖尿病患病率最高的前 10 个国家或地区。

Meta Llama 3.2 90B Instruct 模型在各种基准测试中表现卓越,尤其在图表理解等领域,非常适合这种多模态分析任务。在 Amazon Bedrock 上运行该模型,还能够更高效地处理数据并生成准确的洞见。

通过这个实际案例,我们展示了将先进的大模型与多模态数据相结合,来解决医疗分析等领域复杂现实问题的潜力。随着大模型多模态能力的不断发展,从各种数据源中获取更深入的洞见,为各行业带来影响深远的全新解决方案,将孕育出更多新的市场机遇。

参考文献

  1. The Llama 3 Herd of Models

https://ai.meta.com/research/publications/the-llama-3-herd-of-models/?trk=cndc-detail

  1. Introducing Llama 3.2 models from Meta in Amazon Bedrock

https://aws.amazon.com/blogs/aws/introducing-llama-3-2-models-from-meta-in-amazon-bedrock-a-new-generation-of-multimodal-vision-and-lightweight-models/?trk=cndc-detail

  1. Vision use cases with Llama 3.2 11B and 90B models from Meta

https://aws.amazon.com/blogs/machine-learning/vision-use-cases-with-llama-3-2-11b-and-90b-models-from-meta/?trk=cndc-detail

说明

本文的封面图片由 Amazon Bedrock 上的 SDXL 1.0 模型生成。给定的输入提示词是:

“A developer with a laptop and a diabetes scientist, sitting in a café, developer with a laptop, excitedly discussing Leveraging generative AI for diabetes prevalence analysis, comic, graphic illustration, comic art, graphic novel art, vibrant, highly detailed, colored, 2d”

*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

文章来源:https://dev.amazoncloud.cn/column/article/676e9ac457ce58339e3dc995?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

期权懂|如何计算期权卖方平仓后的盈利?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 如何计算期权卖方平仓后的盈利? 期权卖方平仓后的盈利计算涉及多个因素,包括期权的交易价格、平仓价格以及权利金的变动等。 交易价格:期权卖…

【连续学习之VCL算法】2017年论文:Variational continual learning

1 介绍 年份:2017 期刊: arXiv preprint Nguyen C V, Li Y, Bui T D, et al. Variational continual learning[J]. arXiv preprint arXiv:1710.10628, 2017. 本文提出的算法是变分连续学习(Variational Continual Learning, VCL&#xf…

多视图 (Multi-view) 与多模态 (Multi-modal)

多视图 (Multi-view) 与多模态 (Multi-modal) 是两种不同的数据处理方式,它们在机器学习和数据分析中有着重要的应用。尽管这两者有一些相似之处,但它们关注的角度和处理方法有所不同。 多视图 (Multi-view) 定义:多视图指的是同一数据对象…

【Transformer】深入浅出自注意力机制

写在前面:博主本人也是刚接触计算机视觉领域不久,本篇文章是为了记录自己的学习,大家一起学习,有问题欢迎大家指出。(博主本人的习惯是看文章看到不懂的有立马去看不懂的那块,所以博文可能内容比较杂&#…

HarmonyOS NEXT 实战之元服务:静态案例效果---教育培训服务

背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图1完整代码案例如下: import { authentication } …

互联网视频云平台EasyDSS无人机推流直播技术如何助力野生动植物保护工作?

在当今社会,随着科技的飞速发展,无人机技术已经广泛应用于各个领域,为我们的生活带来了诸多便利。而在动植物保护工作中,无人机的应用更是为这一领域注入了新的活力。EasyDSS,作为一款集视频处理、分发、存储于一体的综…

51c视觉~YOLO~合集8

我自己的原文哦~ https://blog.51cto.com/whaosoft/12897680 1、Yolo9 1.1、YOLOv9SAM实现动态目标检测和分割 主要介绍基于YOLOv9SAM实现动态目标检测和分割 背景介绍 在本文中,我们使用YOLOv9SAM在RF100 Construction-Safety-2 数据集上实现自定义对象检测模…

Docker Container 可观测性最佳实践

Docker Container 介绍 Docker Container( Docker 容器)是一种轻量级、可移植的、自给自足的软件运行环境,它在 Docker 引擎的宿主机上运行。容器在许多方面类似于虚拟机,但它们更轻量,因为它们不需要模拟整个操作系统…

气相色谱-质谱联用分析方法中的常用部件,分流平板更换

分流平板,是气相色谱-质谱联用分析方法中的一个常用部件,它可以实现气相色谱柱流与MS检测器流的分离和分流。常见的气质联用仪分流平板有很多种,如单层T型分流平板、双层T型分流平板、螺旋分流平板等等。 操作视频http://www.spcctech.com/v…

易基因: BS+ChIP-seq揭示DNA甲基化调控非编码RNA(VIM-AS1)抑制肿瘤侵袭性|Exp Mol Med

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 肝细胞癌(hepatocellular carcinoma,HCC)早期复发仍然是一个具有挑战性的领域,其中涉及的机制尚未完全被理解。尽管微血管侵犯&#xff08…

鸿蒙系统文件管理基础服务的设计背景和设计目标

有一定经验的开发者通常对文件管理相关的api应用或者底层逻辑都比较熟悉,但是关于文件管理服务的设计背景和设计目标可能了解得不那么清楚,本文旨在分享文件管理服务的设计背景及目标,方便广大开发者更好地理解鸿蒙系统文件管理服务。 1 鸿蒙…

Doris 数据库外部表-JDBC 外表,Oracle to Doris

简介 提供了 Doris 通过数据库访问的标准接口 (JDBC) 来访问外部表,外部表省去了繁琐的数据导入工作,让 Doris 可以具有了访问各式数据库的能力,并借助 Doris 本身的 OLAP 的能力来解决外部表的数据分析问题: 支持各种数据源接入…

分布式 IO 模块助力冲压机械臂产线实现智能控制

在当今制造业蓬勃发展的浪潮中,冲压机械臂产线的智能化控制已然成为提升生产效率、保障产品质量以及增强企业竞争力的关键所在。而分布式 IO 模块的应用,正如同为这条产线注入了一股强大的智能动力,开启了全新的高效生产篇章。 传统挑战 冲压…

深度学习中的并行策略概述:4 Tensor Parallelism

深度学习中的并行策略概述:4 Tensor Parallelism 使用 PyTorch 实现 Tensor Parallelism 。首先定义了一个简单的模型 SimpleModel,它包含两个全连接层。然后,本文使用 torch.distributed.device_mesh 初始化了一个设备网格,这代…

企业销售人员培训系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…

自然语言处理与知识图谱的融合与应用

目录 前言1. 知识图谱与自然语言处理的关系1.1 知识图谱的定义与特点1.2 自然语言处理的核心任务1.3 二者的互补性 2. NLP在知识图谱构建中的应用2.1 信息抽取2.1.1 实体识别2.1.2 关系抽取2.1.3 属性抽取 2.2 知识融合2.3 知识推理 3. NLP与知识图谱融合的实际应用3.1 智能问答…

CSS(三)盒子模型

目录 Content Padding Border Margin 盒子模型计算方式 使用 box-sizing 属性控制盒子模型的计算 所有的HTML元素都可以看作像下图这样一个矩形盒子: 这个模型包括了四个区域:content(内容区域)、padding(内边距…

基于NodeMCU的物联网窗帘控制系统设计

最终效果 基于NodeMCU的物联网窗帘控制系统设计 项目介绍 该项目是“物联网实验室监测控制系统设计(仿智能家居)”项目中的“家电控制设计”中的“窗帘控制”子项目,最前者还包括“物联网设计”、“环境监测设计”、“门禁系统设计计”和“小…

有没有免费提取音频的软件?音频编辑软件介绍!

出于工作和生活娱乐等原因,有时候我们需要把音频单独提取出来(比如歌曲伴奏、人声清唱等、乐器独奏等)。要提取音频必须借助音频处理软件,那么有没有免费提取音频的软件呢?下面我们将为大家介绍几款免费软件&#xff0…

【保姆式】python调用api通过机器人发送文件到飞书指定群聊

当前飞书webhook机器人还不支持发送文件类型的群消息,它目前仅支持文本,富文本,卡片等文字类型的数据。 我们可以申请创建一个机器人应用来实现群发送文件消息。 创建飞书应用 创建飞书应用、配置权限、添加机器人 来到飞书开发者后台 创建…