Maison >Périphériques technologiques >IA >Tutoriel LLAMA 3.2 90B: Application de légende d'image avec rationalisation et grogne
Meta a finalement ajouté le multimodalité à l'écosystème de lama en introduisant les modèles de vision LLAMA 3.2 11b et 90b. Ces deux modèles excellent dans le traitement du texte et des images, ce qui m'a amené à essayer de construire un projet en utilisant la version 90b.
Dans cet article, je vais partager mon travail et vous guider à travers la création d'une application de sous-traitant d'image interactive en utilisant Streamlit pour le frontal et LLAMA 3.2 90b comme moteur pour générer des légendes.
LLAMA 3.2-VISION 90B est un modèle de langage multimodal à la pointe de la technologie (LLM) construit pour des tâches impliquant à la fois des entrées d'image et de texte.
Il se démarque avec sa capacité à lutter contre les tâches complexes comme le raisonnement visuel, la reconnaissance d'image et le sous-titrage de l'image. Il a été formé sur un ensemble de données massif de 6 milliards de paires de texte d'image.
LLAMA 3.2-VISION est un excellent choix pour notre application car il prend en charge plusieurs langues pour les tâches de texte, bien que l'anglais soit son objectif principal pour les applications liées à l'image. Ses caractéristiques clés en font un excellent choix pour les tâches telles que la réponse à la question visuelle (VQA), le document VQA et la récupération de texte d'image, le sous-titrage de l'image étant l'une de ses applications remarquables.
Explorons comment ces capacités se traduisent par une application réelle comme le sous-titrage de l'image.
Le sous-titrage de l'image est le processus automatisé de génération de texte descriptif qui résume le contenu d'une image. Il combine la vision informatique et le traitement du langage naturel pour interpréter et exprimer des détails visuels dans le langage.
Traditionnellement, le sous-titrage de l'image a nécessité un pipeline complexe, impliquant souvent des étapes distinctes pour le traitement d'image et la génération de langues. L'approche standard implique trois étapes principales: le prétraitement d'image, l'extraction des caractéristiques et la génération de légendes.
Avec Llama 3.2 90b, ce processus traditionnellement complexe devient plus simple. L'adaptateur de vision du modèle intègre des fonctionnalités visuelles dans le modèle de langue de base, lui permettant d'interpréter directement les images et de générer des légendes via des invites simples.
En intégrant les couches transversales au sein de son architecture, LLAMA 3.2 90B permet aux utilisateurs de décrire une image en invitant simplement le modèle - éliminant la nécessité de étapes distinctes de traitement. Cette simplicité permet un légende d'image plus accessible et efficace, où une seule invite peut produire une légende descriptive naturelle qui capture efficacement l'essence d'une image.
Pour donner vie à la puissance de LLAMA 3.2 90b, nous créerons une application de sous-titrage d'image simple mais efficace en utilisant Streamlit pour le front-end et le GROQ pour générer des légendes.
L'application permettra aux utilisateurs de télécharger une image et de recevoir une légende descriptive générée par le modèle en seulement deux clics. Cette configuration est conviviale et nécessite des connaissances de codage minimales pour commencer.
Notre application comprendra les fonctionnalités suivantes:
L'API GROQ agira comme le pont entre l'image téléchargée de l'utilisateur et le modèle LLAMA 3.2-vision. Si vous voulez suivre et coder avec moi, assurez-vous d'abord:
Cet extrait de code Python ci-dessous met en place une application Streamlit pour interagir avec l'API GROQ. Il comprend:
import streamlit as st from groq import Groq import base64 import os import json # Set up Groq API Key os.environ['GROQ_API_KEY'] = json.load(open('credentials.json', 'r'))['groq_token'] # Function to encode the image def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode('utf-8')
Nous continuons en écrivant la fonction ci-dessous, qui est conçue pour générer une description textuelle d'une image téléchargée à l'aide de l'API GROQ. Voici une ventilation de sa fonctionnalité:
import streamlit as st from groq import Groq import base64 import os import json # Set up Groq API Key os.environ['GROQ_API_KEY'] = json.load(open('credentials.json', 'r'))['groq_token'] # Function to encode the image def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode('utf-8')
Enfin, nous générons notre application Web interactive via Streamlit:
# Function to generate caption def generate_caption(uploaded_image): base64_image = base64.b64encode(uploaded_image.read()).decode('utf-8') client = Groq() chat_completion = client.chat.completions.create( messages=[ { "role": "user", "content": [ {"type": "text", "text": "What's in this image?"}, { "type": "image_url", "image_url": { "url": f"data:image/jpeg;base64,{base64_image}", }, }, ], } ], model="llama-3.2-90b-vision-preview", ) return chat_completion.choices[0].message.content
Cette application Streamlit fournit une interface conviviale pour le sous-titrage de l'image. Voici une ventilation de sa fonctionnalité:
Le extrait ci-dessous est le code en action où une image d'Eddie Hall a été téléchargée pour générer la légende. Étonnamment, il a extrait même les informations qui n'étaient pas clairement visibles comme «l'homme le plus fort», etc.
Créer une application de sous-titrage d'image avec LLAMA 3.2 90b et Streamlit montre comment une IA avancée peut faciliter les tâches difficiles. Ce projet combine un modèle puissant avec une interface simple pour créer un outil à la fois intuitif et facile à utiliser.
En tant qu'ingénieur d'IA, je vois un énorme potentiel dans des outils comme ceux-ci. Ils peuvent rendre la technologie plus accessible, aider les gens à mieux s'engager avec le contenu et automatiser les processus de manière plus intelligente.
Pour continuer votre apprentissage sur Llama, je recommande les ressources suivantes:
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!