Gradio ile Jeneratif Yapay Zeka Uygulamaları Nasıl Oluşturulur?
Deeplearning.ai “Building Generative AI Applications with Gradio” kursunun Türkçe çevirisi.
NLP Görevleri Arayüzü
Küçük alan için özelleştirilmiş bir model, genel bir LLM’le o konu bazında benzer başarılar gösterebilir. Aynı zamanda daha hızlı bir şekilde daha ucuza üretilir ve çalıştırması daha ucuzdur. Şimdi 2 NLP görevini yerine getirmek için 2 farklı özelleştirilmiş modeli kullanan bir uygulama geliştireceğiz. Bu 2 görev: metin özetleme ve adlandırılmış varlık tanıma (NER [named entity recognition])
Metin özetleme görevi için DistillBert CNN kullanacağız çünkü bu LLM olmayan son teknoloji çözümdür. Hatta Transformers kod hattı fonksiyonunu bir değer vermeden kullanırsanız varsayılan model olarak bu model kullanılmaktadır.
BERT Large CNN Modeli
Distillation (damıtma) denen yöntem kullanılmaktadır.
Damıtma yöntemi büyük bir modelin tahminlerini kullanarak küçük bir modeli eğitme yöntemidir.
Biz “shleifer/distillbert-cnn-12–6”, 306 milyon parametreli Facebook’un damıtılmış modelini kullanıyoruz.
Kodumuzu basit bir şekilde HuggingFace API kullanıp modeli çağırarak çalıştırabiliyoruz ancak yazılımcı olmayanların bu sistemi kurması zor olabilir onlar için arayüzlü bir projemiz olmalıdır. Burada devreye Gradio giriyor.
Gradio veri bilimi ve makine öğrenmesi projelerinize kolayca arayüz yapmanızı sağlayan bir kütüphanedir. Streamlit kadar detaylı bir arayüz imkanı sağlamasa da kolay bir şekilde Python kullanarak arayüzler oluşturabilirsiniz.
Adlandırılmış Varlık Tanıma
Adlandırılmış varlık tanıma (NER), metinden bilgi çıkaran bir doğal dil işleme (NLP) yöntemidir. NER, adlandırılmış varlıklar olarak bilinen metindeki önemli bilgilerin algılanmasını ve kategorize edilmesini içerir.
BERT Nedir?
NLP amaçlı kullanılan transformatör tabanlı büyük bir makine öğrenmesi modelidir (LLM olamayacak kadar küçüktür).
Bir metni ayrıştırırken spesifik insan, şirket vb. isimleri ayrıt etmede (NER) başarılıdır.
NER görevinde 108M parametre ince ayarlı BART modeli olan “dslim/bert-base-NER” kullanıyoruz.
“bert-base-NER” 4 tip varlığı ayırt etmek için eğitilmiştir, bunlar : Konum (Location (LOC)), kurum( organization (ORG)), kişi(person (PER)) ve çeşitli (miscellaneous (MISC)).
NLP Görevleri Arayüzü Bölümü Kodu:
Resim Açıklama Uygulaması
Açık kaynak kodlu resimden-metne modeli kullanarak resimlere altyazı ekleme uygulaması geliştireceğiz.
Burada “Salesforce/blip-image-captioning-base” isminde 14 milyon parametreli görsel açıklama modeli için bir arayüz uç noktası kullanacağız.
Bunun için kullandığımız model milyonlarca görsel ve açıklama ile eğitilmiştir.
Resim Açıklama Uygulaması Kodu:
Görüntü Oluşturma Uygulaması
Girdi metninden görseli oluşturmak için metinden-görsel modellerini kullanıyoruz.
“runwayml/stable-diffusion-v1–5” açık kaynak kodlu modeli kullanıyoruz.
Görsel Oluşturma Uygulaması Kodu:
Görsel Tefsir (Image Paraphrasing)
Hadi önceki derslerde öğrendiklerimizin hepsini birleştirelim ve telif hakkı olan görselleri telif hakkı bulunmayan yz klonlarını oluşturalım.
Aşağıdaki örnekte görselimizi yüklüyoruz ve yz bizim için görselin bir metin açıklamasını oluşturuyor ardından bu açıklamadan başka bir model ile görsel oluşturuluyor.
Görsel Tefsir Bölümü Kodu:
LLM ile Sohbet Etme
Burada, Huggingface Open LLM Leaderboard’da en iyi sıralamaya sahip açık kaynaklı LLM’lerden biri olan “falcon-40b-instruct” için bir çıkarım uç noktası kullanacağız.
Sohbet edebilmek için botumuzun hafızaya ihtiyacı vardır.
Bir sohbet botunun sistem mesajı, “temperature” gibi değişkenleri vardır. Sistem mesajı botun uyması gereken kuralları verdiğimiz kısımdır, kullanıcı mesajı sizin onunla konuştuğunuz kısımdır ve temperature ise onun cevap verirkenki yaratıcılık seviyesidir. 0 ile 1 arasında değişen bu değer 1'e yaklaştıkça bambaşka cevaplar verebilmektedir ancak verdiği cevaplarda saçmalama ihtimali de artmaktadır.
LLM ile Sohbet Etme Bölümü Kodu:
Kaynak
Deeplearning.ai, (29 July 2023), Building Generative AI Applications with Gradio:
[https://learn.deeplearning.ai/huggingface-gradio/lesson/1/introduction]