alicangonullu tarafından 2023-04-29 01:24:42 tarihinde yazıldı. Tahmini okunma süresi 2 dakika, 15 saniye. 192 kere görüntülendi.
Disclaimer
Merhabalar,
Bu yazımda sizlere GPT, NLP, celebrasGPT ve GPT-2'den bu yana değişiklikleri örnek kod üzerinden anlatacağım. Şimdiden hepinize iyi okumalar dilerim.
NLP açılımıyla Natural Language Processing, makine öğrenmesi yazılımlarının dil bilen versiyonlarına denir.
Bu modeller,
ve buna benzer bir veya birçok işi amacına göre yapabilir. Bu modellere örnek olarak GPT2, GPT3, GPT4, GPT3.5, celebrasGPT örnekleri verilebilir.
GPT açılımyla Generative Pre-trained Transformer, NLP modellerin en üst düzeyidir. Veri o kadar çoktur ki yaşayan bir birey gibi,
gibi özelliklerin bir ve/veya bir kaçına ve hatta çok daha fazlasına sahip olabilir. ChatGPT ve Bing AI buna en büyük örnektir. Kendileri aslen bir NLP olsa da bir insan gibi yorumlama yeteneğine sahiptirler.
CelebrasGPT, burada da anlatıldığı üzere GPT-2 ve GPT-3 tabanını paylaşan ChatGPT benzeri bir NLP modelidir. Andromeda AI adlı bir süper bilgisayar tarafından devamlı olarak eğitilmektedir ve sadece Free (Bedava) versiyonunda 13 milyonluk bir kelime dağarcığı bulunmaktadır.
Şimdi bu altyapı ile kodlamaya başlıyoruz. Öncelikle IPython / Jupyter ile paketlerimizi yüklüyoruz.
%pip install transformers torch datasets
Ardından modellerimizi yüklüyoruz (buradan farklı modeller seçebilirsiniz. Ben Colab RAM ve Disk sıkıntısı nedeniyle orta bir paket seçtim. GitHub linki ise buradadır.)
#@title CelebrasGPT 1.3B Modeli
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
tokenizer = AutoTokenizer.from_pretrained("cerebras/Cerebras-GPT-1.3B")
model = AutoModelForCausalLM.from_pretrained("cerebras/Cerebras-GPT-1.3B")
Ardından ise asıl eğlenceli kısmı yani modellerimizi yorumlayıp sonuç üreten ML kısmına geliyoruz. Öncelikle verilerimizi tokenize edip ardından input output frekans ayarlarını yapacağız.
#@title Text Generator
text = "How are you today?"
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, num_beams=5, max_new_tokens=50, early_stopping=True, no_repeat_ngram_size=2)
text_output = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(text_output[0])
Bu işlemlerin ardından bize şuna benzer bir dönüş yapacaktır.
Bu kadar :) hepinize kolaylıklar diliyorum umarım anlatabilmişimdir.