Rumah >Peranti teknologi >AI >Llama 3.2 90b Tutorial: Aplikasi Tajuk Imej dengan Streamlit & Groq

Llama 3.2 90b Tutorial: Aplikasi Tajuk Imej dengan Streamlit & Groq

Lisa Kudrow
Lisa Kudrowasal
2025-03-01 10:28:09581semak imbas

Meta akhirnya menambah multimodality ke ekosistem Llama dengan memperkenalkan model penglihatan Llama 3.2 11b & 90B. Kedua -dua model ini cemerlang dalam memproses kedua -dua teks dan imej, yang menyebabkan saya cuba membina projek menggunakan versi 90B.

Dalam artikel ini, saya akan berkongsi kerja saya dan membimbing anda melalui membina aplikasi kapsyen imej interaktif menggunakan Streamlit untuk hujung depan dan Llama 3.2 90b sebagai enjin untuk menghasilkan kapsyen.

mengapa menggunakan llama 3.2 90b untuk aplikasi kapsyen imej

Llama 3.2-Vision 90b adalah model bahasa besar multimodal canggih (LLM) yang dibina untuk tugas yang melibatkan kedua-dua imej dan input teks.

Ia menonjol dengan keupayaannya untuk menangani tugas -tugas kompleks seperti penalaran visual, pengiktirafan imej, dan imej imej. Ia telah dilatih pada dataset besar 6 bilion pasangan teks imej.

Llama 3.2-Vision adalah pilihan yang baik untuk aplikasi kami kerana ia menyokong pelbagai bahasa untuk tugas teks, walaupun bahasa Inggeris adalah tumpuan utamanya untuk aplikasi yang berkaitan dengan imej. Ciri-ciri utamanya menjadikannya pilihan yang sangat baik untuk tugas-tugas seperti menjawab soalan visual (VQA), dokumen VQA, dan pengambilan teks imej, dengan imej imej menjadi salah satu aplikasi yang menonjol.

mari kita meneroka bagaimana keupayaan ini diterjemahkan ke dalam aplikasi dunia nyata seperti kapsyen imej.

Paip Kapsyen Imej

Kapsyen imej adalah proses automatik untuk menghasilkan teks deskriptif yang meringkaskan kandungan imej. Ia menggabungkan visi komputer dan pemprosesan bahasa semulajadi untuk mentafsir dan menyatakan butiran visual dalam bahasa.

Secara tradisional, kapsyen imej telah memerlukan saluran paip yang kompleks, sering melibatkan peringkat berasingan untuk pemprosesan imej dan penjanaan bahasa. Pendekatan standard melibatkan tiga langkah utama: preprocessing imej, pengekstrakan ciri, dan penjanaan kapsyen.

Preprocessing imej: Imej biasanya diubahsuai, dinormalisasi, dan kadang -kadang dipotong untuk memastikan mereka memenuhi spesifikasi input model.
  1. Pengekstrakan ciri: Ciri -ciri visual diekstrak untuk mengenal pasti objek, adegan, atau butiran yang relevan dalam imej. Dalam kebanyakan model, ini memerlukan model penglihatan yang berasingan untuk mentafsir imej, menghasilkan data berstruktur yang dapat difahami oleh model bahasa.
  2. Generasi Kapsyen: Ciri -ciri yang diekstrak ini kemudiannya digunakan oleh model bahasa untuk membuat penerangan yang koheren, menggabungkan objek, konteks, dan hubungan yang dikenal pasti dalam data visual.
  3. Dengan Llama 3.2 90b, proses tradisional ini menjadi lebih mudah. Penyesuai Visi Model mengintegrasikan ciri -ciri visual ke dalam model bahasa teras, membolehkannya menafsirkan imej secara langsung dan menjana kapsyen melalui arahan mudah. ​​

Dengan membenamkan lapisan silang silang dalam seni bina, Llama 3.2 90b membolehkan pengguna menggambarkan imej dengan hanya mendorong model-menghilangkan keperluan untuk tahap pemprosesan yang berasingan. Kesederhanaan ini membolehkan pencapaian imej yang lebih mudah dan cekap, di mana satu petikan dapat menghasilkan kapsyen semulajadi, deskriptif yang secara efektif menangkap intipati imej.

Gambaran keseluruhan aplikasi Captioning Image

Untuk membawa kuasa Llama 3.2 90b ke kehidupan, kami akan membina aplikasi kapsyen imej yang mudah tetapi berkesan menggunakan Streamlit untuk hujung depan dan groq untuk menghasilkan kapsyen.

Aplikasi ini akan membolehkan pengguna memuat naik imej dan menerima kapsyen deskriptif yang dihasilkan oleh model dengan hanya dua klik. Persediaan ini mesra pengguna dan memerlukan pengetahuan pengekodan minimum untuk bermula.

Permohonan kami akan merangkumi ciri -ciri berikut:

  1. Tajuk: Tajuk yang dipaparkan dengan jelas, Captioner Llama, untuk menubuhkan tujuan aplikasi.
  2. butang muat naik: Antara muka untuk memuat naik imej dari peranti pengguna.
  3. Butang menjana: butang untuk memulakan proses penjanaan kapsyen.
  4. Output Kapsyen: Aplikasi akan memaparkan kapsyen yang dihasilkan secara langsung pada antara muka.

pelaksanaan kod untuk aplikasi Llama 3.2 90b kami

API Groq akan bertindak sebagai jambatan antara imej yang dimuat naik pengguna dan model Llama 3.2-Vision. Sekiranya anda mahu mengikuti dan kod dengan saya, pastikan anda terlebih dahulu:

  1. Dapatkan kekunci API Groq anda dengan mendaftar di Groq Console.
  2. simpan kekunci API anda dalam fail credentials.json untuk memudahkan akses. Ikuti Panduan QuickStart Groq untuk Pemasangan dan Konfigurasi.
  3. Coretan kod python ini di bawah menetapkan aplikasi streamlit untuk berinteraksi dengan API Groq. Ia termasuk:

mengimport perpustakaan untuk pembangunan aplikasi web (STREAMLIT), interaksi AI (Groq), pengendalian imej (BASE64), dan Operasi Fail (OS, JSON).
  1. membaca kekunci API Groq dari fail JSON yang berasingan untuk keselamatan yang dipertingkatkan.
  2. mentakrifkan fungsi untuk mengekodkan imej ke dalam format Base64 untuk penghantaran dan pemprosesan yang cekap.
Kami teruskan dengan menulis fungsi di bawah, yang direka untuk menghasilkan penerangan teks mengenai imej yang dimuat naik menggunakan API Groq. Inilah pecahan fungsinya:
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')
  1. Pengekodan imej: Imej yang dimuat naik diubah menjadi rentetan yang dikodkan oleh Base64. Format ini membolehkan data imej mudah dihantar dalam permintaan API.
  2. Interaksi API Groq: Pelanggan Groq diterjemahkan untuk memudahkan komunikasi dengan perkhidmatan Groq. Permintaan penyelesaian sembang dirumuskan, yang terdiri daripada:
  • Prompt pengguna: "Apa yang ada dalam imej ini?"
  • Data imej yang dikodkan oleh Base64, tertanam dalam data URI. Model Llama-3.2-90B-Vision-Preview ditentukan untuk memproses imej dan menghasilkan penerangan teks.
  1. Pengekstrakan kapsyen: Kapsyen yang dihasilkan diekstrak dari tindak balas API Groq. Kandungan mesej pilihan pertama, yang mengandungi kapsyen, dikembalikan.
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')

Akhirnya, kami menjana aplikasi web interaktif kami melalui 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

App Final Streamlit: Llama Captioner

Aplikasi Streamlit ini menyediakan antara muka mesra pengguna untuk penukaran imej. Inilah pecahan fungsinya:

  1. Tajuk dan pemuat naik fail:
  • Aplikasi memaparkan tajuk: "Llama Captioner".
  • Komponen pemuat naik fail membolehkan pengguna memilih fail imej (JPG, JPEG, atau PNG).
  1. paparan imej:
  • Setelah imej dimuat naik, apl memaparkannya menggunakan fungsi St.image.
  1. Generasi Kapsyen:
  • Butang, "menghasilkan kapsyen," mencetuskan proses penjanaan kapsyen.
  • Apabila diklik, pemutar menunjukkan bahawa kapsyen dijana.
  • fungsi penjana_caption dipanggil untuk memproses imej yang dimuat naik dan dapatkan kapsyen.
  • Apabila generasi yang berjaya, mesej kejayaan dipaparkan, diikuti dengan kapsyen yang dihasilkan.

Coretan di bawah adalah kod dalam tindakan di mana imej Eddie Hall dimuat naik untuk menghasilkan kapsyen. Menghairankan ia diekstrak walaupun maklumat yang tidak kelihatan seperti "lelaki terkuat" dan lain -lain

Llama 3.2 90b Tutorial: Aplikasi Tajuk Imej dengan Streamlit & Groq

Kesimpulan

Membangun aplikasi kapsyen imej dengan Llama 3.2 90b dan Streamlit menunjukkan bagaimana AI maju boleh membuat tugas yang sukar lebih mudah. Projek ini menggabungkan model yang kuat dengan antara muka yang mudah untuk membuat alat yang intuitif dan mudah digunakan.

Sebagai jurutera AI, saya melihat potensi besar dalam alat seperti ini. Mereka boleh membuat teknologi lebih mudah diakses, membantu orang terlibat lebih baik dengan kandungan, dan mengautomasikan proses dengan cara yang lebih bijak.

Untuk meneruskan pembelajaran anda di llama, saya cadangkan sumber -sumber berikut:

  • bagaimana untuk menjalankan llama 3.2 1b pada telefon Android dengan obor
  • llama 3.2 dan tutorial gradio: membina aplikasi web multimodal
  • llama stack: Panduan dengan contoh praktikal
  • penalaan halus llama 3.2 dan menggunakannya secara tempatan: panduan langkah demi langkah
  • llama 3.3: tutorial langkah demi langkah dengan projek demo

Atas ialah kandungan terperinci Llama 3.2 90b Tutorial: Aplikasi Tajuk Imej dengan Streamlit & Groq. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Projek Demo DeepSeek-R1 dengan Gradio dan EasyocrArtikel seterusnya:tiada