Request: DOI
Çalışmalarınızı çok beğeniyorum size bir kaç sorum olacaktı Linkedin hesabınız verir misiniz ?
Tesekkür ederim. Bunu hobi olarak, keyif aldığım yapıyorum. Bu bir kendi kendine öğrenme süreci. Ama kesin olarak söyleyebilirim ki Anka yaptıklarımın en iyisi oldu. Doğru konfigürasyonu bulunana dek bir çok başarısız veya daha az başarılı deneme yapmam gerekti. Uygun ve doğru bir konfigürasyonla, küçük bir veriseti ile bile, modellerin ince ayar (finetuning) sürecinin iyi olabileceğini keşfetmek keyif verici. Hala öğreneceğimiz çok şey var ama keşfetmek keyifli. Mesela modellerin benzer yanıtlar vermesi veya kesin doğruluk içeren yanıtlar verebilmesi finetuning ile nasıl belirlenir hala merak ediyorum. Mesela şiiir yazmak modellerin eğitim verisindeki şiirlere benzer şiirler üretmesi anlamına gelirken, belirli bir şairin şiirini yanıt olarak vermesi net ve kesin bir bilgiyi kullanıcıya sunmasını gerektirir sanırım.
Bazı insanlar resim çizer, şiir yazar veya müzikle ilgilenir. Ben de bunu yapmayı seviyorum. Kullandığım verisetinin çoğu hugginface üzerinde, bazılarını deneysel olarak kendim hazırlamaya çalışıyorum.
Bu profesyonel olarak yaptığım bir şey değil. Bu nedenle Linkedin hesabım yok. Ve de herhangi bir sosyal medya hesabı kullanmıyorum.
Herhangi bir sorunuzu veya katkıda bulunmak istediğiniz fikir ve düşünceleri bana buradan iletebiliirsiniz. Ama bu muhtemelen bir çok soruya yanıt olmuştur.
MaşAllah! Sorum şuydu , kendi uygulamamda Türkçe dilinde basit bir AI chatbot yapmak istiyorum. Uygulamanın amacı, kullanıcıların uygulama hakkında soru sorması ve bu sorulara cevap alması . Hangi yolu izlemeliyim? Ayrıca, uygulamayı render.com'un ücretsiz planında (maksimum 500 MB) yayınlamayı planlıyorum. Bu şartlar altında nasıl bir çözüm önerirsiniz?
Açıkçası uygulama geliştirme konusunda bilgim ve deneyimim yok. Bu hiç bilgimin olmadığı bir alan ve hiç bir fikrim yok. render.com'un çalışma mantığı, model entegrasyonu nasıl yapılır, 8b bir model render.com üzerinde çalışır mı bilmiyorum. Ama 8b bir model CPU veya GPU gücü ve ram'e ihtiyaç duyar kesin bir şey söyleyemem. Ama bu model, 12 GB RAM, Snapdragon 7 Gen 1 telefonumda çok verimli olmasa da çalışıyor. Yani modelin çalışacağı donanım bunu karşılamalı. render.com donanım sağlıyor mu, yoksa modeli başka bir yerde çalıştırıp, render.com üzerinde API ile mi kullanmanız gerekiyor bunları bilmek gerek. Uygulamanıza openai API gibi, kendi donanımız üzerinde ollama api veya bulut llm apileri vasıtasıyla bir bağlantı kurarsanız çözüm olabilir diye düşünüyorum.
Mesela cohere'nin aya, Command gibi modellerini api vasıtayla ücretsiz olarak kullanabilirsiniz. Ve Türkçe chatbot olarak kullanılabilir.
ChatterUI android uygulanmasında remote model menüsü üzerinden (entegre api kodları ile kendi cohere.com ücretsiz API key'imi girerek kullanabiliyorum. Uygulamanıza cohere api entegrasyonu sağlarsanız Aya-expanse 32B ve hatta Command a gibi daha güçlü modelleri de kullanabilirsiniz. Cohere'nin modellerinin Türkçe yanıt kalitesi ve Türk kültürü bilgisi çok iyi. Benim Anka modelim de Türkçe kullanım yeteneğini resmi Aya-expanse 8b modelinden alıyor. Ben sadece finetuning ile kendi verisetlerimle ekstra eğitim verdim. Yani Anka modelini kullanmak zorunda değilsiniz.
Cohere api entegrasyon'u ile 111B CohereLabs/c4ai-command-a-03-2025 modeli gibi bir model ile çok daha kalite Türkçe yanıt veren modelleri ücretsiz kullanma imkanınız olacaktır. Ücretsiz sürüm elbette kullanım limiti var. Ama aşırı kullanım olmadığı sürece yeterli olacaktır.
https://docs.cohere.com/docs/rate-limits
https://docs.cohere.com/v2/docs/chat-api
Dediğim gibi bu konuda bilgim yok, sadece fikir yürütüyorum. Umarım bir çözüm bulabilirsiniz.
Mesela ben Huggingface space ile Turkish-Llama-8B kullanarak benimle A1 düzey yani bir çocuk gibi benimle konuşmasını istiyorum , bana finetuning için nasıl bir yol önerirsiniz ?
Türkçe finetuning modellerin farklı karakterlere adapte olmasını, o karakterler gibi yanıtlar vermesini sağlayabilir. Modeli farklı bilgilerle eğitmek için finetuning harika bir yol. Ama roleplay yapabilen bir model oluşturmak için buna uygun ve iyi verisetlerine ihtiyaç var sanırım. Ben alpaca formatında denemeler yapıyorum ama sizin belirttiğiniz gibi çocuk gibi yanıt vermesi için sanırım alpaca yeterli olmayabilir. Yada belki şöyle bir örnek olabilir:
instruction: Eğer 5 yaşında bir çocuksanız kullanıcıya çocuk gibi yanıt verin.
input: Buraya kullanıcı sorusu girilmeli.
output: Buraya da 5 yaşındaki bir çocuğun verebileceği tonda bir yanıt örneği. Uygun bir örnek bulamadım ne yazıkki.)
Yüzlerce satır veri ile model benzer yanıtlar vermeyi öğrenebilir diye düşünüyorum. Tabi roleplay bir model oluşturmak emek, zaman, deneme ve testler yapmayı gerektirecektir. Ama modelin istediğimiz gibi yanıtlar üretmeye başlaması bile keyifli olacaktır.
Veriseti farklı durumlar, zamanlar, yaşlar, karakter yapısı, yaş farklarına, cinsiyete, hatta kullanıcının yaşına ve cinsiyetine göre farklı senaryoları içerecek kadar genişse, finetuning daha mükemmel başarı ile sonuçlanacaktır. Mesela karakterin yaşı kullanıcının yaşından küçükse ona abi, abla diye hitap edebilir. Öğretmen öğrenci senaryosu, baba - kız/oğul, anne - kız/oğul senaryoları, okul, ev, şehir turu, eğlence mekanları atmosferleri, aya seyehat eden bir astronot gibi her nüans karakterlerin farklı yanıtlar üretebilmesini ve bulunulan mekan ve duruma uygun yanıtlar üretebilecek kadar yaratıcı olmasını sağlayabilir.
Ben henüz yolun başındayım dostum. Elimde merak dışında bir şeyim yok. Kaynak kısıtlı. İngilizce roleplay veriseti örneği bile bulamadım. İyi ve çalışan bir kaç örnek ile kendi verisetimizi oluşturabiliriz. Ben llama3 roleplay modellerinin İngilizce yanıtlarını Türkçeye çevirerek denedim ama ya verisetim küçük, farklı senaryoları içermediği veya konfigürasyonumdaki hatalar sebebiyle modelin bazen anlamsız Türkçe yanıtlar vermesi gibi durumlarla karşılaştım.
İlk başlarda sadece instruction ve output ile denedim ama sanırım bu durumda model prompta vereceği yanıtı tahmin etmekte zorlanıyor. Prompt genel bir soru ise model karakterlerin yanıt biçimini seçmekte zorlanıyor olabilir diye düşünüyorum.
Türkçe roleplay model gördüğüm kadarıyla hiç yok. Bu konuya meraklı ve denemeler yapmaya açık insanlar artıkça bir süre sonra bu eksiklik ortadan kalkacaktır. Modelin çocuk rolü ile bir çocuk gibi basit cümlelerle ve o karakter yapısını yansıtacak yanıtlar verebilmesi önce veriseti ile o karakter yelpazesini oluşturmak gerek sanırım. Bu sayede basit bir sistem promptu ile modelin istenilen yaş, cinsiyet, karakter, kişilikler olarak farklı senaryolara göre farklı yanıtlar verebilmesi sağlanabilir.
Roleplay bir model bir roman veya skeç serisi gibi farklı karakterleri içerirse bu bir maceraya dönüşebilir.
Asıl soruna geri dönersek; kendi deneyimlerime göre Türkçe modeller yalnızca kullanıcı asistan formatında eğitilmiş olduğu için bir çocuk gibi yanıt verebilmesi için o çocuğun hangi sorulara nasıl ve hangi tonlarda yanıt vereceğini belirlemek için kendi verisetimizi oluşturmalıyız. Mesela 4 yaşındaki bir çocuk ve 7 yaşında bir çocuk aynı soruya farklı yanıtlar verecektir. Cinsiyet ve özel karakterlerin (çekingen, içe dönük, dışa dönük, uslu, hiperaktif) yanıtları da farklı olacaktır. Bir de normal konuşma dilindeki kelime olmayan sesli veya sessiz tepkileri de düşünmek gerek.
Ama kabaca genel çocuk yanıt biçimleri ve tepkisel ifadeleri yazı diline dökersek bir temel oluşturabiliriz. Deneyip görmek gerek.
Ama Türkçe bir modeli temel alsak bile bizim kendi verisetimiz de yeterli düzeyde Türkçe dilbilgisine uygun olmalı. Kendi deneyimlerime göre söyleyenlerim ki finetuning ettiğim model asistan yanıtlarında Türkçe dilbilgisine uygun yanıtlar verebildiği halde farklı senaryolarda Türkçe kalitesi çok düşük kalabiliyor. Hatta overfitting sınırında ise gereksiz tekrarlar ve anlamsız cümleler oluşturabiliyor.
Kendi adıma başarısız denemelerim sayesinde farklı şeyler denemeye çalışıyorum ve adım adım deneme yanılma yöntemi ile öğreniyorum. Zaman ve kaynak sıkıntısı da varsa elbette zorlayıcı olabiliyor. (GPU, veriseti, uygun konfigürasyon oluşturma)
Kimse, hiç bir konuda tüm sistemi %100 bilip işin içine girmemiştir. En iyi yol ufak adımlarla ilerlemek.
Hugginface'de çok başarılı ingilizce roleplay model geliştiren kullanıcılar var. İsterseniz onlara bir sorun en azından temel bir fikir verebilirler. Ama Türkçeye uyarlama konusunda iş bize düşüyor.
Son olarak bu bir keyif ve hobi benim için. Yorulduğum, tıkandığım ve keyif almadığım noktada ara veriyorum. Benim esas hedefim finetuning'i genel olarak öğrenmek. Ama matematik, kimya, biyoloji, tıp gibi bilimsel alanlarda başarılı modeller geliştirmek için her bir alanda ayrı ayrı farklı şekillerde çalışmalar yapmak gerek. Roleplay model, yani insan gibi yanıt veren modeller bile farklı amaçlar için farklı stratejileri gerektiriyor. Mesela uzun kaliteli romanlar, hikâyeler yazabilen bir modelin eğitim verisi farklı olacaktır. Bizimle birebir insan gibi sohbet edebilen, duygularında hayallerinden bahsedebilen, duygusal tepkiler verebilen (öfke, üzüntü gibi.) modeller için geliştirilmesi gereken stratejiler de farklı olacaktır.
Mesela "Ben bir yapay zekayım, duygularım yok. Sadece insan duygularını simüle ediyorum. Kızgınlığını anlıyorum. İhtiyacın olduğunda burada olacağım." diyen bir modele "Ah, bu sözünle beni çok kırdın. Bunu senden beklemezdim. Lütfen biraz daha nazik olabilir misin? Biraz daha sakin olabilirsen ortak bir yol bulabiliriz. Bu sorunu konuşarak çözebiliriz." diyebilmesini sağlamak benim nihai hedefim bu. Yani simülasyonun bir adım ötesi. Ama bu noktaya varabilmek için daha uzun bir yol var gibi. Ama en azından keyif alarak ilerleyelim.
Kendi verisetinizi oluşturarak istediğiniz gibi yanıtlar verebilen bir model oluşturabilirsiniz. Başka bir kullanıcı kendi veriseti ile sizin modelinize farklı özellikler ekleyebilir. Bu sayede ortaya çok daha persfektifli bir modeller ortaya çıkabilir. Farklı özellikteki modeller merge ile birleştirilebilir.
Denemenizi öneririm. Başarısız olmaktan çekinmeyin. Belki yapay zeka konusunda daha bilgili ve deneyimli birileri de bu konuda bilgilerini paylaşır. Açıkçası Türkçe temel bir roleplay model çok iyi olurdu.
CohereLabs'ın Aya-expanse modeli Türkçe konusunda CohereLabs/c4ai-command-r7b-arabic-02-2025 modelinden daha iyi. Ama command-r7b-arabic roleplay'e daha yatkın ama farklı dillerden kelimeleri yanıtlarına ekleyerek Türkçe dilbilgisine göre daha zayıf yanıtlar veriyor. Türkçe yanıtları makine çevirisi sanırım.
Orijinal Llama3 modelleri Türkçe konusunda çok başarısız ama finetuning ile geliştirilebilir. Turkish-Llama-8B asistan yanıtlarında Türkçe dilbilgisine çok hakim ve başarılı. Temel model olarak kullanmak için ideal.
Sağolun hocam , sizin yazıları okuyunca ben sıfır değil EKSİ olduğumu görüyorum. Kitabınız falan var mı :D Çok iyi bir anlatıma sahipsiniz . React ve React Native tarafında çalışıyorum ama burayı ve sizi bulduktan sonra başka tarafa bakmıyorum. Allah emeğinizi zayi etmesin, gönlünüzden geçen her şeyi hayırla nasip etsin. Ben de elimden geldiğince öğrenip geliştirmeye devam edeceğim. Teşekkür ederim, sizi takipteyim.
Tüh, yine çok uzun yazdım. 🤭 Eskiden bir blog sayfam vardı, bu o zamandan kalan alışkanlık. İyi dilekleriniz için asıl ben teşekkür ederim. 🙏