Ana içeriğe atla

Llama 3.2 ve Gradio Eğitimi: Çok Modlu Bir Web Uygulaması Oluşturun

Llama 3.2 11B görsel modelini Gradio ile kullanarak müşteri destek asistanı olarak işlev gören çok modlu bir web uygulaması oluşturmayı öğrenin.
Güncel 3 Eki 2026  · 10 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Yalnızca metin işleyebilen büyük dil modelleri ile yetindiğimiz günler geride kaldı. Artık metin, görsel ve videoları anlayıp bunlarla etkileşime girebilen çok modlu LLM’ler talep ediyoruz.

Karşınızda Llama 3.2 11B & 90B görsel modelleri: Meta AI’nın hem metin hem de görsel girdileri işleyebilen ilk açık kaynak çok modlu modelleri.

Bu uygulamalı rehberde, Llama 3.2 ve Gradio yardımıyla çok modlu bir müşteri destek asistanı oluşturma sürecini adım adım anlatacağım. Eğitimin sonunda, metinsel açıklamaları ve yüklenen görselleri analiz ederek yararlı çözümler üretebilen, tıpkı bir destek bileti asistanı gibi çalışan, tam teşekküllü bir web uygulamanız olacak!

Başlamadan önce Llama 3.2’ye hızlı bir girişe ihtiyacınız varsa, bu Llama 3.2 rehberini öneririm.

İlk Kurulum

Bu uygulamalı demoda, Llama3.2-11B-Vision (çok modlu) modelini kullanacağız. Koda başlamadan önce, gerekli tüm bağımlılıkların olduğundan emin olalım.

Her şeyin çalışması için birkaç kütüphaneye ihtiyacımız var. Temel olanlar şunlardır:

  • Transformers: Llama 3.2 gibi modellerle çalışmak için çekirdek kütüphane.
  • Torch: Modelimizi çalıştıran derin öğrenme kütüphanesi.
  • Gradio: Kullanıcı arayüzünü oluşturmak için.

Gerekli bağımlılıkları yüklemek için aşağıdaki komutları çalıştırın:

!pip3 install -U transformers bitsandbytes accelerate peft -q
!pip3 install gradio -q

Llama 3.2 Modelini ve İşleyicisini Yükleme

Şimdi Llama 3.2 modelini ve işleyicisini yükleyelim. Modeli ve işleyiciyi yüklemek için Hugging Face’in transformers kütüphanesini kullanacağız; modelin GPU varsa GPU’da, aksi halde varsayılan olarak CPU’da çalıştığından emin olacağız. 11B parametreli bir model olduğundan, Google Colab’de A100 GPU’da iyi çalışır.

Aşağıdaki kod bloğunda:

  • Gerekli içe aktarmaları yapıyoruz.
  • Modeli ve işleyiciyi, varsa GPU desteğiyle yüklüyoruz. Bu, özellikle büyük veri miktarlarını işlerken uygulamanın verimli çalışmasını sağlar.
  • Dikkat edilmesi gereken önemli bir kod parçası tie_weight() olup, girdi ve çıktı gömme katmanlarının ağırlıklarının aynı olmasını sağlar. Bu, bellek kullanımını azaltır ve performansı iyileştirebilir.
import torch
from PIL import Image
import gradio as gr
from transformers import MllamaForConditionalGeneration, AutoProcessor

def load_model():
    model_id = "meta-llama/Llama-3.2-11B-Vision-Instruct"  
    device = "cuda" if torch.cuda.is_available() else "cpu"  # Check if GPU is available

    model = MllamaForConditionalGeneration.from_pretrained(
        model_id,
        torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,  
        device_map="auto",  # Automatically map to available device
        offload_folder="offload",  # Offload to disk if necessary
    )
    
    model.tie_weights()  # Tying weights for efficiency
    processor = AutoProcessor.from_pretrained(model_id)
    print(f"Model loaded on: {device}")
    
    return model, processor

Neden Gradio?

Gradio, web tabanlı arayüzlerle makine öğrenimi uygulamalarını hızla oluşturmamıza olanak tanıyan hafif bir Python kütüphanesidir. Karmaşık HTML veya JavaScript yazmak yerine, uygulamamızın bileşenlerini (metin kutuları, düğmeler veya görseller gibi) doğrudan Python ile tanımlayabiliriz.

Temel bir Gradio arayüzü şöyle görünür:

Gradio arayüzü UI

Gradio’nun bazı avantajları şunlardır:

  • Kurulum zahmeti yok: Gradio uygulamaları birkaç satır Python koduyla barındırılır ve paylaşılır. Dahili paylaşım, genel bir bağlantı üzerinden erişim sağlar.
  • İşbirlikçi arayüz: Modellerin canlı demolarının iş arkadaşlarıyla veya genel kullanımla paylaşılmasına olanak tanır. Birden çok kullanıcı aynı anda etkileşime girebilir.
  • Birden fazla giriş ve çıkış türünü destekler: Metin ve görsellerin ötesinde çeşitli giriş/çıkış bileşenleri sunar.
  • Bulutta barındırma için minimum yapılandırma: Hugging Face Spaces veya diğer bulut hizmetlerinde kolay dağıtım.
  • Platformlar arası entegrasyon: Arayüzler diğer web uygulamalarına, Jupyter Notebooks’a veya blog yazılarına gömülebilir.
  • Otomatik API oluşturma: Uygulama için otomatik olarak bir API üretir.
  • Yerleşik güvenlik: Kötüye kullanımı önlemek için dosya boyutu sınırları ve diğer önlemleri içerir.

Bu demo için Gradio, kullanıcıların hem metin hem de görsel girişi yapmasını ve çıktıyı (bu örnekte metin ve görsel analizi) gerçek zamanlı görmesini kolaylaştırır. Kullanıcı dostu bir ortamda Llama 3.2 gibi modellerin gücünü göstermek için idealdir.

Yapay Zeka Uygulamaları Geliştirin

OpenAI API'sını kullanarak AI uygulamaları oluşturmayı öğrenin.
Ücretsiz Olarak Beceri Geliştirmeye Başlayın

Llama 3.2 Çok Modlu Uygulamasını Oluşturma

Artık içe aktarmalarımızı ve modelimizi başarıyla kurduğumuza göre, uygulamanın ana kısmına geçelim—girdileri (metin ve görsel) işleme ve yanıt üretme.

Metinden metne üretim

Kullanıcı metnini ve isteğe bağlı olarak bir görseli alan bir işlev tanımlayarak başlıyoruz. Bu işlev daha sonra Llama 3.2 modelini kullanarak bir yanıt üretir.

def process_ticket(text, image=None):
    model, processor = load_model()
    
    try:
        if image:
            # Resize the image for consistency
            image = image.convert("RGB").resize((224, 224))
            prompt = f"<|image|><|begin_of_text|>{text}"
            # Process both the image and text input
            inputs = processor(images=[image], text=prompt, return_tensors="pt").to(model.device)
        else:
            prompt = f"<|begin_of_text|>{text}"
            # Process text-only input
            inputs = processor(text=prompt, return_tensors="pt").to(model.device)
        
        # Generate response (restrict token length for faster output)
        outputs = model.generate(**inputs, max_new_tokens=200)
        # Decode the response from tokens to text
        response = processor.decode(outputs[0], skip_special_tokens=True)
        return response
    
    except Exception as e:
        print(f"Error processing ticket: {e}")
        return "An error occurred while processing your request."

Bu işlev, döngü içinde iki tür girdiyi işler:

  • Yalnızca metin: Görsel sağlanmazsa, model metin girdisine dayalı bir yanıt üretir.
  • Metin + Görsel: Görsel sağlanırsa, model yanıt üretmeden önce hem metni hem görseli işler.

Girdi türü belirlendikten sonra, girdi işlemesi için transformer kütüphanesinden alınan bir işleyiciye iletilir. Ardından model, max_new_tokens aralığında bir çıktı üretir.

Gradio Arayüzünü Oluşturma

Gradio arayüzü her şeyi bir araya getirir ve web tabanlı formatta testler çalıştırmamızı sağlar. Bu arayüz, kullanıcıların karşılaştıkları bir sorunun metnini ve görsellerini göndermesine ve yapay zekâ tarafından üretilen çözümü görmesine olanak tanır.

Koda bir göz atalım ve ardından açıklayalım.

def create_interface():
    text_input = gr.Textbox(
        label="Describe your issue",
        placeholder="Describe the problem you're experiencing",
        lines=4,
    )
    
    image_input = gr.Image(label="Upload a Screenshot (Optional)", type="pil")
    
    # Output element
    output = gr.Textbox(label="Suggested Solution", lines=5)
    
    # Create the Gradio interface
    interface = gr.Interface(
        fn=process_ticket,  # Function to process inputs
        inputs=[text_input, image_input],  # User inputs (text and image)
        outputs=output,  # AI-generated output
        title="Multimodal Customer Support Assistant",
        description="Submit a description of your issue, along with an optional screenshot, and get AI-powered suggestions.",
    )
    
    # Launch the interface with debug mode
    interface.launch(debug=True)

Yukarıdaki kodda şunları yapıyoruz:

  • İki girdi tanımlıyoruz:
    • text_input metin için
    • image_input görsel için
  • Yanıtı göstermek için bir çıktı kutusu belirtiyoruz.
  • Arayüzü oluşturuyor ve şu parametreleri iletiyoruz:
    • Girdiler
    • Girdiyi işleme işlevi
    • Modelden üretilen çıktı
    • Arayüzün başlığı
    • Açıklama (gerekirse)
  • Temel kullanıcı arayüzünü kuruyoruz.
  • Hataları ayıklamak için arayüzü debug = True ile başlatıyoruz. Kod sorunsuz çalıştığında False olarak geri alın.

Son arayüz şöyle görünecek:

Nihai Gradio arayüzü

Çok modlu müşteri destek asistanı Gradio uygulamamız hazır! İstediğiniz yanıtı almak için max_new_tokens parametresini değiştirmeyi veya istemi biraz farklılaştırmayı deneyin.

Llama 3.2 ve Gradio için kullanım alanları

Bu eğitimde oluşturduğumuz demonun yanı sıra, az çabayla hayata geçirilebilecek birkaç kullanım alanı daha vardır. Bunlar arasında şunlar yer alır:

  • Eğitim ve özel ders: Öğrenciler, sorularının yanında grafik veya diyagram gibi görsel araçlar yükleyebilir ve model hem görsel hem metinsel bilgiyi içeren kapsamlı yanıtlar üretebilir.
  • İçerik oluşturma: Görsellere dayalı metin üreterek altyazı, blog yazısı ve sosyal medya içeriği oluşturmayı iyileştirin.
  • Gayrimenkul sanal asistanlığı: Emlak görsellerini işleyip ilgili soruları yanıtlayarak danışmanlara ve müşterilere yardımcı olun. Mülk açıklamaları üretin veya fotoğraflardaki görsel ayrıntıları analiz edin.

Llama 3.2 ve Gradio ile Geliştirme için En İyi Uygulamalar

Her kullanım alanı için, bizimkine benzer bir uygulama geliştirirken her geliştiricinin kullanabileceği bazı ipuçları vardır. İşte llama3.2 gibi modellerle çalışırken benimsenebilecek bazı en iyi uygulamalar.

Gecikme yönetimi

Çok modlu görevler kaynak yoğun olabileceğinden, gecikmeyi azaltmak kritik önemdedir. Önbellekleme, model budama veya üretilen belirteç sayısını sınırlama gibi yöntemlerle modeli daha hızlı yanıtlar için optimize etmeyi düşünün.

Hata yönetimi

Hataları yakalamak için mekanizmalar kurmak önemlidir. Modelin anlamlı bir yanıt üretemediği durumlarda (ör. düşük görsel kalitesi nedeniyle) yedek yanıtlar veya hata iletileri sağlayabiliriz. Hatta insan geri bildirimi tercih edilebilir; bu da modelin iyileştirilmesine yardımcı olur.

Performans izleme

Uygulamanın yanıt süreleri ve kullanıcı etkileşim verileri gibi performansını izlemek, arayüzü optimize etmeye ve kullanıcı deneyimini iyileştirmeye yardımcı olabilir. Performans süresini not ederek, bits and bytes gibi kütüphanelerle model gecikmesini optimize etmeyi deneyebiliriz.

Sonuç

Bu rehberde, Llama 3.2’nin çok modlu yeteneklerini Gradio’nun sezgisel arayüzüyle nasıl birleştireceğimizi öğrendik. Müşteri desteğinden eğitime ve içerik oluşturmaya kadar potansiyel uygulamalar geniş ve çeşitlidir.

Gecikme yönetimi, hata işleme ve performans izleme gibi en iyi uygulamalara bağlı kalarak, Llama 3.2 ve Gradio uygulamalarımızın sağlam, verimli ve kullanıcı dostu olmasını sağlayabiliriz.

Daha fazlasını öğrenmek için şu eğitimleri öneririm:


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

ML (Üretken Yapay Zekâ) alanında Google Developers Uzmanıyım, Kaggle 3x Expert unvanına sahibim ve 3+ yıllık teknoloji deneyimiyle Women Techmakers Elçisiyim. 2020'de bir sağlık teknolojileri girişiminin kurucu ortağı oldum ve Georgia Tech'te makine öğrenmesi alanında uzmanlaşarak bilgisayar bilimleri yüksek lisansı yapıyorum.

Konular
Yapay Zeka
Büyük Dil Modelleri

Bu kurslarla yapay zekâyı öğrenin!

Kurs

Llama 3 ile Çalışmak

2 sa
15.7K
Llama LLM'yi yerel olarak çalıştırmak ve yığınınıza entegre etmek için en son teknikleri keşfedin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör