Promptify-Yapay Zeka Problemlerini Büyük Dil Modelleriyle Konuşarak Çözmek

Eren Akbulut
Geeks-of-Data
Published in
4 min readMar 9, 2023

Yazıya başlamadan önce “Geeks of Data” Discord kanalımızdan bahsetmek istiyorum, katılıp selam verebilir, veri bilimi, mühendisliği veya analizi alanlarında fikir alışverişi yapabilirsiniz. Link

LLM’ler (Large Language Model) yani büyük dil modelleri transformer mimarisinin “Attention is all you need” isimli makale ile hayatımıza girdi ve bütün dünyayı etkisi altına aldı. Bunun en gözle görülür sebeplerinden birisi insan benzeri dil anlama ve üretme yeteneklerine sahip olması ve/veya bize böyle hissettirmesidir. Arkasında yatan sebep her ne olursa olsun, bu dahiyane yaklaşım önümüzdeki on yıllarda dönüp baktığımız zaman teknolojinin evrimindeki en büyük kırılmalardan birisi olarak anılacak.

Herkesin gözünün önünde büyüyen bütün büyük teknolojiler gibi LLM’ler de firmaların en iyisini üretme konusunda çok büyük bir yarışa girmesine sebep oldu, özellikle kamuoyunda yarattığı etki ve erişilebilirliği ile OpenAI firmasına ait modeller bu alanda en çok bilinen ürünlerdir. 175 milyar parametreye sahip GPT-3.5 OpenAI’ın çeşitli versiyonlarını programlama bilen herkesin rahatlıkla kullanabileceği şekilde sunduğu modellerden birisi, okuduğunuz yazı da bu modellerle ilgili olacak.

Bahsedilen LLM’ler ile etkileşimde bulunmanın en temel yolu “prompting” yani bir yazı girdisi verip modelin verilen yazıyı en mantıklı şekilde tamamlamasına izin vermekten ibaret, bu tür modellerin gelişimine başlangıçtan beri tanıklık etmiş kişiler için bu süreç daha kolay ve doğalken ilk kez uğraşan insanlar için yorucu olabilir, ben her iki durumda da https://learnprompting.org/ adresinden modern LLM’ler için prompting nasıl yapılır öğrenmek gerektiğine inanıyorum. Yazının kalanında belirtmeden kullanacağımız “chain-of-thought” veya “knowledge base” gibi bazı tekniklerin neden ve nasıl kullanıldığını anlamanızı kolaylaştıracaktır.

Promptify Logo

Bugün üzerinde durup örneklerini paylaşacağımız LLM kullanım yöntemi, normalde çeşitli yapay zeka modelleri ve daha geniş eğitim verisi kullanarak çözdüğümüz problemleri doğal dil modeline basit örnekler vererek tek seferde çözdürme denemeleri üzerinden ilerleyecek, bunları yaparken de açık kaynak olarak geliştirilen Promptify kütüphanesinden yararlanacağız.

Promptify, Prompt Mühendisliği, LLM’lerle NLP Problemlerini Çözmek için çeşitli prompting şablonları, örnekler ve büyük modellerin wrapper’larını yapısında bulunduran bir kütüphane ve açık kaynak olarak bu Github adresinde mevcut.

binary classification, futuristic, LLM — ar 4:2 (midjourney)

İlk örneğimiz, her veri bilimcisinin çokça karşılaşıp çözdüğü tarzda bir binary classification problemi, her ne kadar birçok senaryoda artık çözülmesi oldukça kolay bir problem türü olsa da LLM kullanarak konuşarak istediğimiz tarzda yapısal çözüm üretebilmek başka bir sürü farklı olasılığın kapısını aralıyor.

Notebook Giriş

Bu linkten kütüphaneyi kurup repository’yi de kopyaladıktan sonra, classification.ipynb dosyası ile başlayabiliriz, 2. hücrede istenen anahtar OpenAI API erişim anahtarınız, bu şekilde erişebilirsiniz.

Örnek Çiftler

Örnek verileri incelediğimizde bunların temelde birer hedef cümle ve bu cümlelerle eşleşen birer etiketten ibaret olduğunu görüyoruz. Promptify bu örnekleri düzgün bir komut kombinasyonu ile modele iletmemizi sağlayan altyapıyı bize sağlıyor. Bunu jinja yazı sablonlarıyla sağlıyoruz.

Jinja Şablonu

Yukaridaki prompt şablonu sırasıyla LLM’in amacını tanımlıyor, ardından çıktı için olabilecek etiketleri belirtiyor, çıktının ne formatta olması gerektiğini kesinleştirip örnek-etiket çiftlerini de sunduktan sonra verilen girdiyi yollayıp bütün bunlara göre bir çıktı istediğimizi anlatıyor. Bunu Promptify’ın prompter methodunu kullanarak yapıyoruz, ve sonuç aşağıdaki gibi oluyor.

Prompter

Son olarak fit methodunu kullarak oluşturduğumuz promptu OpenAI’ya gönderip yanıt bekliyoruz.

Model fit etme ve sonuclar

Görüldüğü üzere hedef metnimiz olan “Amazing customer service” için umulduğu üzere positive çıktısı aldık üstelik bunu Promtify’ın diğer yaklaşımlardan ayrıştığı nokta olan yapısal sonuç verme özelliklerini kullarak yapabildik.

Aynı dosyadaki bir başka örnek aynı problemi daha geniş bir etiket yelpazesi arasından seçim yapmamıza olanak sağlayan bir multiclass classification örneği içeriyor.

Multiclass örneklerin yüklenmesi

Yine örnek verileri yükleyip sonra etiketlerimizi inceliyoruz. Örnekler dosyasından başka bir bilgiye ihtiyacımız yok bu sefer ön konuşma kısmını çok daha kısa tutacağız.

LLM’e gidecek prompt hazırlanıyor

Örneklerimizi modelin anlayacağı tarzda bir promta çevirdikten sonra fit methodu ile LLM’e gönderiyoruz.

Sonuçlar

Aynı prompt için bu sefer sonuç “joy” olarak karşımıza çıkıyor, kaldı ki bunun da doğru olduğu ortada ve yine sonuçlar istediğimiz yapısal formatta çıkıyor.

Buraya kadar okuduğunuz için çok teşekkürler arkadaşlar, bu projeye “Geeks of Data” Discord kanalımızda da ilgilenen arkadaşlarla aktif bir şekilde katkıda bulunuyoruz(proje bize ait olmasa da). İlgilendiyseniz gelip geliştirmeye hep birlikte devam edebilirsiniz. 🚀 Link

--

--