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) 语音适配器训练
该论文中的图示说明了这一过程。
https://i-blog.csdnimg.cn/direct/70bc641a22684387957801c789de1f67.png
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% 的最高分!
https://i-blog.csdnimg.cn/direct/831ea1cb181d4ab4b07635032a51f95c.png
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_image
disp_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 模型的第一张图像。这是一张举世糖尿病病患分布趋势的图像。颜色的深浅表示地点天下国家或地域的糖尿病患者在该地区占比的程度。颜色越深,病患情况就越严重。如下图所示:
https://i-blog.csdnimg.cn/direct/be070b2ebf794ab78d853b367ee4db14.png
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"]["text"]
print(response_text)
我自己得到的模型测试相应文本如下,供各人参考:
According to the chart, the top 10 countries with the highest prevalence of diabetes are:
[*]**Saudi Arabia**: 17.5%
[*]**Egypt**: 17.5%
[*]**United Arab Emirates**: 17.5%
[*]**Bahrain**: 17.5%
[*]**Kuwait**: 17.5%
[*]**Qatar**: 17.5%
[*]**Oman**: 17.5%
[*]**Yemen**: 17.5%
[*]**Libya**: 17.5%
[*]**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 模型举行进一步分析。如下图所示:
https://i-blog.csdnimg.cn/direct/ca9347811b12413c8a86e63e3764c064.png
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 上运行该模型,还可以或许更高效地处置惩罚数据并生成准确的洞见。
通过这个实际案例,我们展示了将先进的大模型与多模态数据相联合,来办理医疗分析等领域复杂实际题目的潜力。随着大模型多模态能力的不断发展,从各种数据源中获取更深入的洞见,为各行业带来影响深远的全新办理方案,将孕育出更多新的市场机遇。
参考文献
[*]The Llama 3 Herd of Models
https://ai.meta.com/research/publications/the-llama-3-herd-of-models/?trk=cndc-detail
[*]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
[*]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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]