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.pswp.cn/web/64206.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64206.shtml
英文地址,請注明出處:http://en.pswp.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) 定義:多視圖指的是同一數據對象…

MySQL 性能瓶頸,為什么 MySQL 表的數據量不能太大?

MySQL的性能瓶頸(為什么MySQL有幾萬的qps,怎么來的?性能分析 為什么 MySQL 表不能太大網上大部分人的說法:問題的關鍵: B樹層數對查詢性能的影響到底有多大? 是什么導致的 MySQL 查詢緩慢?如何解決: MySQL的性能瓶頸(為什么MySQL有幾萬的qps,怎么來的? 一個全表掃描的查詢…

Linux 實用命令 grep、wc

grep 命令詳解 grep [選項] ‘模式’ 文件名 grep [參數] [選項] [操作對象]grep ‘error’ -c 5 --color info.log [模式]:是要搜索的字符串或正則表達式。 [選項]:是可選的,用于定制grep的行為。 [操作對象]:是要搜索的文件…

【Transformer】深入淺出自注意力機制

寫在前面:博主本人也是剛接觸計算機視覺領域不久,本篇文章是為了記錄自己的學習,大家一起學習,有問題歡迎大家指出。(博主本人的習慣是看文章看到不懂的有立馬去看不懂的那塊,所以博文可能內容比較雜&#…

HarmonyOS NEXT 實戰之元服務:靜態案例效果---教育培訓服務

背景: 前幾篇學習了元服務,后面幾期就讓我們開發簡單的元服務吧,里面豐富的內容大家自己加,本期案例 僅供參考 先上本期效果圖 ,里面圖片自行替換 效果圖1完整代碼案例如下: import { authentication } …

3.阿里云flinkselectdb-py作業

1.概述 Python API中文文檔 本文介紹在阿里云實時計算flink中使用python作業,把oss中的數據同步數據到阿里云selectdb的過程。python簡單的語法特性更適合flink作業的開發; 先說結論: 在實際開發中遇到了很多問題,導致python作業基本基本無法…

互聯網視頻云平臺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 鴻蒙…

如何配置 Java 環境變量:設置 JAVA_HOME 和 PATH

目錄 一、什么是 Java 環境變量? 二、配置 Java 環境變量 1. 下載并安裝 JDK 2. 配置 JAVA_HOME Windows 系統 Linux / macOS 系統 3. 配置 PATH Windows 系統 Linux / macOS 系統 4. 驗證配置 三、常見問題與解決方案 1. 無法識別 java 或 javac 命令 …

Doris 數據庫外部表-JDBC 外表,Oracle to Doris

簡介 提供了 Doris 通過數據庫訪問的標準接口 (JDBC) 來訪問外部表,外部表省去了繁瑣的數據導入工作,讓 Doris 可以具有了訪問各式數據庫的能力,并借助 Doris 本身的 OLAP 的能力來解決外部表的數據分析問題: 支持各種數據源接入…

分布式 IO 模塊助力沖壓機械臂產線實現智能控制

在當今制造業蓬勃發展的浪潮中,沖壓機械臂產線的智能化控制已然成為提升生產效率、保障產品質量以及增強企業競爭力的關鍵所在。而分布式 IO 模塊的應用,正如同為這條產線注入了一股強大的智能動力,開啟了全新的高效生產篇章。 傳統挑戰 沖壓…

CSS系列(37)-- Overscroll Behavior詳解

前端技術探索系列:CSS Overscroll Behavior詳解 📱 致讀者:探索滾動交互的藝術 👋 前端開發者們, 今天我們將深入探討 CSS Overscroll Behavior,這個強大的滾動行為控制特性。 基礎概念 🚀 …

深度學習中的并行策略概述: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??數據庫…