近年來,人工智能融入各個領域的一體化已經徹底改變了我們與技術的互動方式。最有希望的進步之一是開發能夠理解和處理視覺和文本信息的多模式模型。其中,Llama 3.2視覺模型是需要對圖像進行複雜分析的應用程序的強大工具。本文探討了對Llama 3.2視覺模型進行微調的過程,專門用於使用Unsloth AI。
學習目標
探索Llama 3.2視覺模型的體系結構和特徵。
- 被介紹給Unsploth AI及其主要功能。
>學習如何使用圖像數據集微調ai。
-
- >本文是
> > data Science Blogathon的一部分。
內容表 llama 3.2視覺模型
> llama 3.2視覺模型的應用
-
>
>
-
- 視覺
- >微調Llama 3.2 11B視覺模型使用不舒服的AI
- >步驟1。安裝必要的庫
> - 步驟2。定義模型
- 步驟3。加載數據集
步驟4。模型- >步驟6。啟動微調
- >步驟7。檢查模型的結果微調
- >>
-
在樣本數據
-
-
結論上測試
駱駝3.2視覺模型
由Meta開發的 Llama 3.2視覺模型
是一種最先進的多模式大型語言模型,旨在高級視覺理解和推理任務。以下是有關該模型的關鍵細節:
- 體系結構:Llama 3.2 Vision建立在Llama 3.1僅文本模型的基礎上,利用優化的變壓器體系結構。它結合了一個視覺適配器,該適配器由跨注意層組成,將圖像編碼器與語言模型集成在一起。
>- >可用的尺寸:該模型有兩個參數尺寸:
- 11b(110億參數)用於在消費級GPU上有效部署。
大規模應用
-
>多模式輸入: llama 3.2視覺可以同時處理文本和圖像,允許其執行諸如視覺識別,圖像推理,字幕和回答與圖像有關的問題等任務。
培訓數據: 該模型接受了大約60億張圖像文本對訓練,增強了其基於視覺輸入的理解和生成內容的能力。
-
上下文長度:它支持上下文長度高達128K令牌
>
-
也閱讀:Llama 3.2 90B vs GPT 4O:圖像分析比較
- >
Llama 3.2視覺模型的應用
Llama 3.2視覺是為各種應用而設計的,包括:
>
視覺詢問答案(VQA):基於圖像的內容回答問題。
圖像字幕:生成圖像的描述標題。
> image-Text檢索:匹配圖像與其文本說明。 -
視覺接地:
>將語言引用鏈接到圖像的特定部分。 -
什麼是不舒服的ai?
- > Unsploth AI是一個創新的平台,旨在增強大型語言模型(LLMS)(如Llama-3,Mismtral,Phi-3和Gemma)的微調。它旨在簡化針對特定任務的預訓練模型的複雜過程,從而使其更快,更有效。
> unsploth ai
的關鍵特徵
-
加速訓練: Unsploth具有將模型快速調整的能力快30倍,同時將記憶使用量減少60%。通過先進的技術,例如手動自動克,鍊式矩陣乘法和優化的GPU內核,可以實現這種顯著的改進。
- 用戶友好型:該平台是開源且易於安裝的,允許用戶在本地設置它或使用諸如Google Colab之類的雲資源。綜合文檔支持用戶導航微調過程。 >
可伸縮性:- Unsploth支持一系列硬件配置,從單個GPU到多節點設置,使其適用於小型團隊和企業級別的應用程序。
> 多功能性:該平台與各種流行的LLM兼容,可以應用於語言生成,摘要和對話ai。
- > unsploth AI代表了AI模型培訓的重大進步,這使得希望有效地創建高性能自定義模型的開發人員和研究人員可以使用。
>駱駝的性能基準3.2 Vision
駱駝3.2視覺模型在解釋圖表和圖表方面表現出色。
在視覺基準中,110億個模型在視覺基準中超過了Claude 3 Haiku,例如MMMU-PRO,Vision(23.7),ChartQA(83.4),AI2圖(91.1),而90億個模型超過了Claikuin 3 Haikuin所有視覺解釋任務。
結果,Llama 3.2是需要文檔理解,視覺詢問答案和從圖表中提取數據的任務的理想選擇。
>微調駱駝3.2 11B視覺模型,使用Unsploth ai
在本教程中,我們將仔細研究Llama 3.2 11B視覺模型的過程。通過利用其高級功能,我們旨在提高模型在識別食品和基於視覺輸入的熱量含量方面的準確性。
>微調該模型涉及對其進行自定義,以更好地了解食品圖像和營養數據的細微差別,從而改善其在現實世界應用中的性能。我們將深入研究這個微調過程中涉及的關鍵步驟,包括數據集準備以及配置培訓環境。我們還將採用諸如LORA(低級適應)之類的技術來優化模型性能,同時最大程度地減少資源使用情況。
>我們將利用不完善的AI自定義模型的功能。我們將使用的數據集由食物圖像組成,每個圖像都伴隨著有關各種食品的卡路里含量的信息。這將使我們能夠提高模型有效分析與食物相關數據的能力。
>所以,讓我們開始!
>步驟1。安裝必要的庫
!pip install unsloth
登入後複製
登入後複製
登入後複製
>步驟2。定義模型
from unsloth import FastVisionModel
import torch
model, tokenizer = FastVisionModel.from_pretrained(
"unsloth/Llama-3.2-11B-Vision-Instruct",
load_in_4bit = True,
use_gradient_checkpointing = "unsloth",
)
model = FastVisionModel.get_peft_model(
model,
finetune_vision_layers = True,
finetune_language_layers = True,
finetune_attention_modules = True,
finetune_mlp_modules = True,
r = 16,
lora_alpha = 16,
lora_dropout = 0,
bias = "none",
random_state = 3443,
use_rslora = False,
loftq_config = None,
)
登入後複製
-
>從_pretrated:此方法加載了預訓練的模型及其令牌。指定的模型是“不舒服/Llama-3.2-11b-vision-Instruct”。
>
-
load_in_4bit = true :此參數表明該模型應加載4位量化,該量化在保持性能的同時大大降低了內存使用。
>- > use_gradient_checkpointing =“ unsploth”:>啟用漸變檢查點,這可以通過保存中間激活來幫助在訓練過程中管理內存。
get_peft_model:此方法使用參數效率微調(PEFT)技術配置用於微調的模型。 >
>微調選項:
態
finetune_language_layers = true:- 啟用語言層的微調(可能負責理解文本的變壓器層)>
在
finetune_mlp_modules = true:啟用多層perceptron(MLP)模塊的微調。
-
lora參數:
- r = 16,lora_alpha = 16,lora_dropout = 0:這些參數配置低級適應性(lora),這是一種減少可訓練參數的技術,同時保持性能。
bias =“無”:這表明該層的微調過程中不包含偏差術語。> -
Random_State = 3443:這為可重複性設置了隨機種子。通過使用此種子,模型微調過程將是確定性的,如果再次使用相同的設置運行,則會給出相同的結果。
use_rslora = false:這表明未使用稱為rslora的洛拉的變體。 rslora是參數有效調整的另一種方法。
>- > loftq_config = none:>
>步驟3。加載數據集-
我們在文本中加載數據集以及其卡路里描述。
數據集有3列 - “圖像”,“查詢”,“響應”- >
>步驟4。將數據集轉換為對話
- 我們將數據集轉換為與涉及兩個角色的對話 - 用戶和助手。
助手回復用戶上的用戶查詢提供的圖像。
>步驟5。在微調模型之前推斷模型的推斷
-
輸出:
>項目1:炸餃子 - 400-600卡路里
項目2:紅色醬 - 200-300卡路里
總卡路里 - 600-900卡路里
>
基於份量和成分,這兩個項目的估計卡路里計數分別為400-600和200-300,分別針對炸餃子和紅醬,估計的卡路里計數為200-300。當一起食用時,整盤的總估計卡路里數量為600-900卡路里。
>總營養信息:
>
卡路里: 600-900卡路里
- 服務尺寸: 1盤蒸Momos
> -
>結論:>基於準備餐食的成分,可以估算營養信息。
為下面的輸入映像生成輸出:
從原始模型的輸出中可以看出,文本中提到的項目是指“油炸餃子”,即使原始輸入圖像中有“蒸Momos”。同樣,在原始模型的輸出中未提及輸入圖像中存在的萵苣的卡路里。 。
>原始模型的輸出:
項目1:炸餃子 - 400-600卡路里
>
項目2:紅色醬 - 200-300卡路里
>
總卡路里 - 600-900卡路里-
>
基於份量和成分,這兩個項目的估計卡路里計數分別為400-600和200-300,分別針對炸餃子和紅醬,估計的卡路里計數為200-300。當一起食用時,整盤的總估計卡路里數量為600-900卡路里。
- >總營養信息:
- 卡路里:600-900卡路里
服務尺寸:1盤蒸Momos>
>結論:根據準備餐食的成分,可以估算營養信息。
>步驟6。啟動微調
!pip install unsloth
登入後複製
登入後複製
登入後複製
sfttrainer參數
- > sfttrainer(…):這會初始化用於微調模型的教練。 SFTTRAINER專門設計用於監督模型的微調。
- 模型=模型:將進行微調的預載或初始化模型。
tokenizer = tokenizer:用於將文本輸入轉換為令牌ID的令牌。這樣可以確保為模型正確處理文本和圖像數據。
- >
data_collator = unslothvisiondataCollator(模型,tokenizer):
數據碰撞器負責準備數據批次(特別是視覺語言數據)。該碰撞器處理如何將圖像文本對分組在一起,以確保它們適當對齊並為模型格式化。 -
train_dataset = converted_dataset:這是將用於培訓的數據集。假定Converted_dataset是一個預處理的數據集,其中包括圖像文本對或類似的結構化數據。
- >
sftConfig類參數
>
per_device_train_batch_size = 2:這將批處理大小設置為培訓期間的每個設備(例如GPU)的批次大小。
- > gradient_accumulation_steps = 4:此參數確定在更新模型權重之前執行的正向通行(或步驟)的數量。從本質上講,它允許通過在多個較小的批次上累積梯度來模擬較大的批量大小。
- 熱身_STEPS = 5:>他的參數指定學習率逐漸從小價值提高到初始學習率的初始訓練步驟的數量。學習率熱身的步驟數量,學習率逐漸提高到目標價值。
max_steps = 30:在微調過程中執行的最大訓練步驟數(迭代)。 -
Learning_rate = 2e-4:優化器的學習率,設置為0.0002。
-
精確設置
- > fp16 =不支持IS_BF16_SUPPORTED():如果不支持BFloat16(BF16)精度(由IS_BF16_SUPPORTED()檢查,則使用16位浮點精度(FP16)。如果支持BF16,則代碼將自動使用BF16。
> bf16 = is_bf16_supported():>此檢查硬件是否支持Bfloat16精度並在支持的情況下啟用。
>
- >記錄和優化
- logging_steps = 5 :將記錄培訓進度的步驟數。 >
optim =“ adamw_8bit”:>這將以8位精度為ADAMW設置了優化器(可能用於更有效的計算和減少的內存使用情況)。
>
- > wigath_decay = 0.01:重量衰減(L2正則化),以防止過度擬合大量重量。
- lr_scheduler_type =“線性”:這將學習率調度程序設置為線性衰減,其中學習率從初始值降低到零。
種子= 3407:- 這設置了訓練中可重複性的隨機種子。
output_dir =“ outputs”:- 這指定了該目錄,其中訓練有素的模型和其他輸出(例如,日誌)將保存。 >>>>>
> report_to =“無”:
>該禁用向外部系統(例如權重和偏見)進行報告,因此培訓日誌不會發送到任何遠程跟踪服務。
-
>特定於視覺的參數
>> remove_unused_columns = false:保留數據集中的所有列,這對於視覺任務可能是必需的。
>
- > dataset_text_field =“”:指示數據集中的哪個字段包含文本數據;在這裡,它是空的,可能表明可能不需要特定的文本字段。
dataset_kwargs = {true} - :假設它已經準備好了,請跳過數據集的任何其他準備步驟。 >
:加載或處理數據集時要使用的過程數量,可以加快數據加載時要使用的進程數。通過設置thedataset_num_procparameter,您可以啟用數據集的並行處理。
- > max_seq_length = 2048:輸入數據的最大序列長度,可以處理更長的序列。 max_seq_length參數指定可以立即饋入模型的令牌數(或輸入ID)的上限。 >
>設置此參數太低可能會導致更長的輸入截斷,這可能會導致重要信息的丟失。
-
也閱讀:llama 3.2 3b for rag
>
- >步驟7。檢查模型的結果
>從微調模型輸出:
從固定模型的輸出中可以看出,文本中的所有三個項目及其卡路里都以所需的格式正確提及。
測試樣本數據
我們還測試了微調模型在看不見的數據上的良好性。因此,我們選擇了模型之前未看到的數據行。
>
我們將其選擇為輸入圖像。 !pip install unsloth
登入後複製
登入後複製
登入後複製
>從微調模型
輸出
從微型模型的輸出中可以看到
>,披薩的所有組成部分都已準確鑑定出來,並且也提到了它們的卡路里。結論
>像Llama 3.2視覺這樣的AI模型的整合正在改變我們分析和與視覺數據相互作用的方式,尤其是在食品識別和營養分析等領域。通過使用不牢房的AI微調這種強大的模型,我們可以顯著提高其理解食物圖像並準確估計卡路里含量的能力。
>
微調過程,利用諸如洛拉(Lora)等先進技術和不舒服AI的有效功能,可確保最佳性能,同時最大程度地減少資源使用情況。這種方法不僅提高了模型的準確性,而且為食品分析,健康監測以及其他地區的現實應用程序打開了大門。通過本教程,我們演示瞭如何將尖端AI模型調整為專業任務,推動技術和營養的創新。
鑰匙要點
的開發多模式模型,例如Llama 3.2 Vision,使AI能夠處理和了解視覺和文本數據,為諸如食品圖像分析等應用程序開闢了新的可能性。
Llama 3.2 Vision是涉及圖像識別,推理和視覺接地的任務的強大工具,重點是從圖像中提取詳細信息,例如食物圖像中的卡路里內容。 - >
>微調Llama 3.2視覺模型可以根據特定任務進行定制,例如食品卡路里提取,提高其識別食品的能力並準確估算營養數據。
- > unsploth AI顯著加速了微調過程,在將內存使用量減少60%的同時,使其更快地加速了30倍,從而更有效地創建了自定義模型。
-
- >本文所示的媒體不歸Analytics Vidhya擁有,並由作者酌情使用。
常見問題
> Q1。 Llama 3.2視覺模型是什麼,它如何工作? Llama 3.2視覺模型是由Meta開發的多模式AI模型,能夠處理文本和圖像。它使用變壓器體系結構和跨注意層將圖像數據與語言模型集成在一起,從而使其能夠執行視覺識別,字幕和圖像文本檢索等任務。微調Llama 3.2視覺模型如何改善其性能?微調將模型定制為特定任務,例如從食物圖像中提取卡路里信息。通過在專業數據集中訓練該模型,它在識別食品和估算其營養含量方面變得更加準確,使其在現實世界中更有效。 Q3。不舒服的AI在微調過程中扮演什麼角色? Unsploth AI通過使其更快,更有效地增強了微調過程。它允許對模型的微調快30倍,同時將內存使用量減少60%。該平台還提供了輕鬆設置和可擴展性的工具,支持小型團隊和企業級應用程序。什麼是Lora(低級適應),為什麼在微調過程中使用它?洛拉(Lora)是一種用於優化模型性能的技術,同時降低資源使用情況。它有助於更有效地調整大型語言模型,從而使訓練過程更快,計算較少,而不會損害準確性。 Lora僅通過將低級矩陣引入模型體系結構來修改一小部分參數。
Q5。可以使用哪些實際應用3.2視覺模型?微型模型可用於各種應用中,包括從食物圖像中提取卡路里,視覺詢問,文檔理解和圖像字幕。它可以顯著增強需要視覺和文本分析的任務,尤其是在健康和營養等領域。
。
以上是微調美洲駝3.2從圖像中提取卡路里的視覺的詳細內容。更多資訊請關注PHP中文網其他相關文章!