Maison >Périphériques technologiques >IA >LALAME FINAGE 3.2 Vision de l'extraction des calories à partir d'images
Ces dernières années, l'intégration de l'intelligence artificielle dans divers domaines a révolutionné la façon dont nous interagissons avec la technologie. L'une des progrès les plus prometteurs est le développement de modèles multimodaux capables de comprendre et de traiter les informations visuelles et textuelles. Parmi ceux-ci, le modèle de vision LLAMA 3.2 se distingue comme un outil puissant pour les applications qui nécessitent une analyse complexe des images. Cet article explore le processus de réglage fin du modèle de vision LLAMA 3.2 spécifiquement pour l'extraction d'informations de calories des images alimentaires, en utilisant une AI.
Objectifs d'apprentissageCet article a été publié dans le cadre du Data Science Blogathon.
Table des matières
Le modèle LLAMA 3.2 Vision Model
, développé par Meta, est un modèle de grande langue multimodal de pointe conçu pour une compréhension visuelle et un raisonnement avancées et des tâches de raisonnement avancées. Voici les détails clés du modèle:LIRE AUSSI: LLAMA 3.2 90B VS GPT 4O: comparaison d'analyse d'image
LLAMA 3.2 La vision est conçue pour diverses applications, notamment:
Unsloth IA est une plate-forme innovante conçue pour améliorer le réglage fin des modèles de grande langue (LLMS) comme LLAMA-3, Mistral, PHI-3 et Gemma. Il vise à rationaliser le processus complexe d'adaptation des modèles pré-formés pour des tâches spécifiques, ce qui le rend plus rapide et plus efficace.
UNSLOCK IA représente une progression importante dans la formation des modèles d'IA, ce qui le rend accessible aux développeurs et aux chercheurs qui cherchent à créer efficacement des modèles personnalisés de haute performance.
Les modèles de vision LLAMA 3.2 excellent dans l'interprétation des graphiques et des diagrammes.
Le modèle de 11 milliards dépasse Claude 3 haïku dans des repères visuels tels que MMMU-PRO, Vision (23.7), ChartQA (83,4), diagramme AI2 (91.1) tandis que le modèle de 90 milliards dépasse Claude 3 Haikuin tous les tass d'interprétation visuels.
En conséquence, LLAMA 3.2 est une option idéale pour les tâches qui nécessitent une compréhension des documents, une réponse visuelle et une extraction de données des graphiques.
Dans ce tutoriel, nous parcourons le processus de réglage fin du modèle de vision LLAMA 3.2 11b. En tirant parti de ses capacités avancées, nous visons à améliorer la précision du modèle dans la reconnaissance des aliments et l'estimation de leur contenu calorique en fonction de l'entrée visuelle.
Fonctionnement de ce modèle implique de la personnaliser pour mieux comprendre les nuances de l'imagerie alimentaire et des données nutritionnelles, améliorant ainsi ses performances dans les applications du monde réel. Nous nous plongerons dans les étapes clés impliquées dans ce processus de réglage fin, y compris la préparation des ensembles de données et la configuration de l'environnement de formation. Nous utiliserons également des techniques telles que LORA (adaptation de faible rang) pour optimiser les performances du modèle tout en minimisant l'utilisation des ressources.
Nous tirons parti de l'IA insuffisante pour personnaliser les capacités du modèle. L'ensemble de données que nous utiliserons consiste en images alimentaires, chacune accompagnée d'informations sur le contenu calorique des différents aliments. Cela nous permettra d'améliorer la capacité du modèle à analyser efficacement les données liées aux aliments.
Alors, commençons!
!pip install unsloth
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, )
get_peft_model: Cette méthode configure le modèle pour un réglage fin en utilisant des techniques de réglage fin (PEFT) économes par les paramètres.
from datasets import load_dataset dataset = load_dataset("aryachakraborty/Food_Calorie_Dataset", split = "train[0:100]")
Nous chargeons un ensemble de données sur les images alimentaires avec leur description calorique dans le texte.
L'ensemble de données a 3 colonnes - «image», «requête», «réponse»
def convert_to_conversation(sample): conversation = [ { "role": "user", "content": [ {"type": "text", "text": sample["Query"]}, {"type": "image", "image": sample["image"]}, ], }, { "role": "assistant", "content": [{"type": "text", "text": sample["Response"]}], }, ] return {"messages": conversation} pass converted_dataset = [convert_to_conversation(sample) for sample in dataset]
Nous convertissons l'ensemble de données en une conversation avec deux rôles impliqués - utilisateur et assistant.
L'assistant répond à la requête utilisateur sur les images fournies par l'utilisateur.
FastVisionModel.for_inference(model) # Enable for inference! image = dataset[0]["image"] messages = [ { "role": "user", "content": [ {"type": "image"}, {"type": "text", "text": "You are an expert nutritionist analyzing the image to identify food items and estimate their calorie content and calculate the total calories. Please provide a detailed report in the format: 1. Item 1 - estimated calories 2. Item 2 - estimated calories ..."}, ], } ] input_text = tokenizer.apply_chat_template( messages, add_generation_prompt=True) inputs = tokenizer(image,input_text, add_special_tokens=False,return_tensors="pt",).to("cuda") from transformers import TextStreamer text_streamer = TextStreamer(tokenizer, skip_prompt=True) _ = model.generate( **inputs, streamer=text_streamer, max_new_tokens=500, use_cache=True, temperature=1.5, min_p=0.1 )
Sortie:
Article 1: Dumplings frits - 400-600 calories
Article 2: Sauce rouge - 200-300 calories
Calories totales - 600-900 calories
Sur la base des tailles de service et des ingrédients, le nombre de calories estimé pour les deux articles est respectivement de 400-600 et 200-300 pour les boulettes frites et la sauce rouge. Lorsqu'il est consommé ensemble, le nombre combiné de calories estimées pour l'ensemble du plat est de 600 à 900 calories.
Informations nutritionnelles totales:
Conclusion: En fonction des ingrédients utilisés pour préparer le repas, les informations nutritionnelles peuvent être estimées.
La sortie est générée pour l'image d'entrée ci-dessous:
Comme le montre la sortie du modèle d'origine, les éléments mentionnés dans le texte se réfèrent aux «boulettes frites» même si l'image d'entrée d'origine contient des «momos cuites à la vapeur». De plus, les calories de la laitue présents dans l'image d'entrée ne sont pas mentionnées dans la sortie du modèle d'origine.
Sur la base des tailles de service et des ingrédients, le nombre de calories estimé pour les deux articles est respectivement de 400-600 et 200-300 pour les boulettes frites et la sauce rouge. Lorsqu'il est consommé ensemble, le nombre combiné de calories estimées pour l'ensemble du plat est de 600 à 900 calories.
Informations nutritionnelles totales:
Conclusion: Sur la base des ingrédients utilisés pour préparer le repas, les informations nutritionnelles peuvent être estimées.
!pip install unsloth
LIRE AUSSI: LALAME DE TUNING FINANT 3.2 3B pour Rag
!pip install unsloth
Comme le montre la sortie du modèle Finetuned, les trois éléments sont correctement mentionnés dans le texte avec leurs calories au format nécessaire.
Nous testons également à quel point le modèle affiné est bon sur des données invisibles. Ainsi, nous sélectionnons les lignes des données non vues par le modèle auparavant.
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, )
Nous sélectionnons cela comme image d'entrée.
from datasets import load_dataset dataset = load_dataset("aryachakraborty/Food_Calorie_Dataset", split = "train[0:100]")
Comme nous pouvons le voir à partir de la sortie du modèle affiné, tous les composants de la pizza ont été identifiés avec précision et leurs calories ont également été mentionnées.
L'intégration de modèles d'IA comme la vision LLAMA 3.2 transforme la façon dont nous analysons et interagissons avec les données visuelles, en particulier dans des domaines tels que la reconnaissance alimentaire et l'analyse nutritionnelle. En affinant ce modèle puissant avec une IA non avec un peu de l'IA, nous pouvons améliorer considérablement sa capacité à comprendre les images alimentaires et à estimer avec précision le contenu des calories.
Le processus de réglage fin, en tirant parti des techniques avancées telles que LORA et les capacités efficaces de l'IA insuffisante, assure des performances optimales tout en minimisant l'utilisation des ressources. Cette approche améliore non seulement la précision du modèle, mais ouvre également la porte pour les applications du monde réel en analyse alimentaire, surveillance de la santé et au-delà. Grâce à ce tutoriel, nous avons démontré comment adapter des modèles d'IA de pointe pour des tâches spécialisées, entraînant l'innovation dans la technologie et la nutrition.
Le média présenté dans cet article ne appartient pas à l'analyse vidhya et est utilisé à la discrétion de l'auteur.
a. Le modèle de vision LLAMA 3.2 est un modèle d'IA multimodal développé par Meta, capable de traiter à la fois du texte et des images. Il utilise une architecture de transformateur et des couches transversales pour intégrer les données d'image avec les modèles de langage, en lui permettant d'effectuer des tâches telles que la reconnaissance visuelle, le sous-titrage et la récupération de texte d'image.
Q2. Comment le réglage fin du modèle de vision LLAMA 3.2 améliore-t-il ses performances?a. Le réglage fin personnalise le modèle à des tâches spécifiques, telles que l'extraction d'informations caloriques des images alimentaires. En formant le modèle sur un ensemble de données spécialisé, il devient plus précis pour reconnaître les aliments et estimer leur contenu nutritionnel, ce qui le rend plus efficace dans les applications du monde réel.
Q3. Quel rôle joue un insuffisance IA dans le processus de réglage fin?a. L'INA-Ai améliore le processus de réglage fin en le rendant plus rapide et plus efficace. Il permet aux modèles d'être affinés jusqu'à 30 fois plus rapides tout en réduisant l'utilisation de la mémoire de 60%. La plate-forme fournit également des outils pour une configuration et une évolutivité faciles, prenant en charge les petites équipes et les applications au niveau de l'entreprise.
Q4. Qu'est-ce que LORA (adaptation de faible rang), et pourquoi est-il utilisé dans le processus de réglage fin?a. LORA est une technique utilisée pour optimiser les performances du modèle tout en réduisant l'utilisation des ressources. Il aide à affiner les grands modèles de langue plus efficacement, ce qui rend le processus de formation plus rapide et moins intensif en calcul sans compromettre la précision. LORA modifie qu'un petit sous-ensemble de paramètres en introduisant des matrices de bas rang dans l'architecture du modèle.
Q5. À quelles applications pratiques le modèle de vision LLAMA 3.2 affiné peut-il être utilisé?a. Le modèle affiné peut être utilisé dans diverses applications, notamment l'extraction des calories à partir d'images alimentaires, la réponse aux questions visuelles, la compréhension des documents et le sous-titrage de l'image. Il peut améliorer considérablement les tâches qui nécessitent une analyse visuelle et textuelle, en particulier dans des domaines comme la santé et la nutrition.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!