Garfield
YZF Admin
“Yapay zekâ yapmak” için önce ne üretmek istediğinizi belirleyin: hazır bir modeli kullanmak, kendi verinizle küçük bir model eğitmek veya sıfırdan büyük bir dil modeli geliştirmek birbirinden çok farklı işlerdir. Başlangıç için en uygulanabilir yol, Python ile küçük bir sınıflandırma modeli kurup veriyi hazırlamak, modeli eğitmek ve daha önce görmediği bir girdide sonucunu test etmektir. Böylece yapay zekânın yalnızca koddan değil, veri, amaç ve ölçümden oluştuğunu görebilirsiniz.
Bir modelin görevi açık tanımlanmalıdır. Örneğin “mesajın spam olup olmadığını tahmin etsin”, “fotoğraftaki nesneyi tanısın” veya “sorulara metinle yanıt versin” farklı veri ve yöntemler gerektirir. Seçiminizi aşağıdaki ayrım kolaylaştırır.
Başlangıçta “her şeyi bilen bir yapay zekâ” yapmaya çalışmak yerine tek bir görevi iyi tanımlayın. Bir modelin başarılı olması, her konuda doğru yanıt vereceği anlamına gelmez; yalnızca eğitildiği veya tasarlandığı görevde belirli bir performans gösterebilir.
Aşağıdaki varsayımsal örnek, kısa metinleri “spam” veya “normal” olarak sınıflandırır. Gerçek bir uygulamada birkaç örnek yerine çok daha fazla, dengeli ve hataları düzeltilmiş veri kullanmanız gerekir. Modelin verdiği sonuç, gerçekliğin kesin kanıtı değil, eğitim verisine dayanarak üretilmiş bir tahmindir.
Bilgisayarınızda Python kurulu olmalı ve komut satırında şu paketi yüklemelisiniz:
Ardından
Eğitimde kullandığınız aynı örneklerle test yapmak yanıltıcıdır; model ezberlemiş olabilir. Veriyi eğitim ve test kümelerine ayırarak daha önce görmediği örneklerde ölçüm yapın. Doğru tahmin oranı tek başına yeterli olmayabilir. Spam tespitinde yanlışlıkla normal mesajı spam saymak ile spam mesajı kaçırmak farklı sonuçlar doğurur; bu nedenle yanlış pozitif ve yanlış negatif sonuçları ayrı inceleyin.
Veri azsa sonuçlar değişken olabilir. Daha fazla ve farklı biçimde yazılmış örnek toplayın, yanlış etiketleri düzeltin ve modeli yeniden eğitin. Kişisel mesajları kullanıyorsanız gereksiz kişisel bilgileri veri kümesinden çıkarın; eğitim verisi içinde parola, kimlik bilgisi veya özel yazışma bırakmayın.
Kendi yapay zekâ projenizi büyütmek için sırasıyla görevi daraltın, temsil eden verileri toplayın, etiketleri denetleyin, eğitim ve test verilerini ayırın, uygun modeli seçin ve hatalı sonuçları kaydedin. Sohbet robotu, görüntü tanıma veya ses işleme gibi daha karmaşık bir hedef seçerseniz aynı temel döngü devam eder; değişen şey veri türü, model mimarisi ve başarı ölçütüdür.
Sıfırdan büyük bir dil modeli yapmak ise yalnızca birkaç Python dosyası yazmak değildir. Büyük veri kümeleri, model tasarımı, uzun eğitim süreçleri, güçlü donanım, değerlendirme ve güvenlik çalışmaları gerektirir. Öğrenme amacıyla küçük bir görev modeli kurmak veya hazır bir modeli kendi uygulamanıza bağlamak, çoğu kişi için daha gerçekçi ve ölçülebilir ilk adımdır.
Hangi tür yapay zekâ yapmak istiyorsunuz?
Bir modelin görevi açık tanımlanmalıdır. Örneğin “mesajın spam olup olmadığını tahmin etsin”, “fotoğraftaki nesneyi tanısın” veya “sorulara metinle yanıt versin” farklı veri ve yöntemler gerektirir. Seçiminizi aşağıdaki ayrım kolaylaştırır.
| Yaklaşım | Ne yapılır? | Başlangıç için uygunluk |
|---|---|---|
| Hazır yapay zekâ kullanmak | Bir API veya hazır model, uygulamanıza bağlanır. | En kolay ve hızlı yöntem |
| Kendi modelini eğitmek | Etiketlenmiş verilerle belirli bir görevi öğrenen model oluşturulur. | Öğrenmek için en uygun yöntem |
| Sıfırdan büyük model geliştirmek | Model mimarisi, büyük veri kümesi ve yüksek hesaplama gücü hazırlanır. | İleri düzey çalışma |
En küçük çalışan örnek: mesaj sınıflandırma
Aşağıdaki varsayımsal örnek, kısa metinleri “spam” veya “normal” olarak sınıflandırır. Gerçek bir uygulamada birkaç örnek yerine çok daha fazla, dengeli ve hataları düzeltilmiş veri kullanmanız gerekir. Modelin verdiği sonuç, gerçekliğin kesin kanıtı değil, eğitim verisine dayanarak üretilmiş bir tahmindir.
Ön koşullar
Bilgisayarınızda Python kurulu olmalı ve komut satırında şu paketi yüklemelisiniz:
Kod:
pip install scikit-learn
Ardından
spam_model.py adlı bir dosya oluşturup aşağıdaki kodu içine koyun:
Python:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
mesajlar = [
"Tebrikler, ödül kazandınız",
"Hemen tıklayın ve hediye alın",
"Toplantı yarın saat onda",
"Akşam markete uğrayabilir misin?",
"Ücretsiz kampanya için bağlantıyı açın",
"Belgeleri e-posta ile gönderdim"
]
etiketler = [
"spam",
"spam",
"normal",
"normal",
"spam",
"normal"
]
vektorleyici = CountVectorizer()
x = vektorleyici.fit_transform(mesajlar)
model = MultinomialNB()
model.fit(x, etiketler)
yeni_mesaj = ["Ücretsiz ödülünüzü almak için şimdi tıklayın"]
yeni_x = vektorleyici.transform(yeni_mesaj)
print(model.predict(yeni_x)[0])
- Veriyi tanımlayın.
mesajlarlistesine örnek metinleri,etiketlerlistesine de her metnin doğru sınıfını yazın. İki listenin uzunluğu ve sırası aynı olmalıdır. - Metni sayısal verilere dönüştürün.
CountVectorizer, kelimelerin görülme sayılarını modelin işleyebileceği sayısal değerlere çevirir. Model metnin anlamını insan gibi kavramaz; oluşturulan özellikler arasındaki örüntülerden yararlanır. - Modeli eğitin.
fitişlemi, örnek metinlerle etiketler arasındaki ilişkiyi öğrenir. Bu aşamada model yalnızca verdiğiniz örneklere dayanır. - Yeni bir girdi verin.
yeni_mesajiçindeki metin, eğitim sırasında kullanılmayan bir örnek olmalıdır. Aynı vektörleştiriciyi kullanarak bu metni sayısal biçime dönüştürün. - Sonucu çalıştırarak kontrol edin. Dosyayı komut satırında
python spam_model.pykomutuyla çalıştırın. Ekrandaspamyazması, modelin bu örneği spam olarak tahmin ettiğini gösterir; bu, mesajın kesin olarak spam olduğunu kanıtlamaz.
Modelin gerçekten işe yarayıp yaramadığını ölçme
Eğitimde kullandığınız aynı örneklerle test yapmak yanıltıcıdır; model ezberlemiş olabilir. Veriyi eğitim ve test kümelerine ayırarak daha önce görmediği örneklerde ölçüm yapın. Doğru tahmin oranı tek başına yeterli olmayabilir. Spam tespitinde yanlışlıkla normal mesajı spam saymak ile spam mesajı kaçırmak farklı sonuçlar doğurur; bu nedenle yanlış pozitif ve yanlış negatif sonuçları ayrı inceleyin.
Veri azsa sonuçlar değişken olabilir. Daha fazla ve farklı biçimde yazılmış örnek toplayın, yanlış etiketleri düzeltin ve modeli yeniden eğitin. Kişisel mesajları kullanıyorsanız gereksiz kişisel bilgileri veri kümesinden çıkarın; eğitim verisi içinde parola, kimlik bilgisi veya özel yazışma bırakmayın.
Bu örnekten sonra ne yapılır?
Kendi yapay zekâ projenizi büyütmek için sırasıyla görevi daraltın, temsil eden verileri toplayın, etiketleri denetleyin, eğitim ve test verilerini ayırın, uygun modeli seçin ve hatalı sonuçları kaydedin. Sohbet robotu, görüntü tanıma veya ses işleme gibi daha karmaşık bir hedef seçerseniz aynı temel döngü devam eder; değişen şey veri türü, model mimarisi ve başarı ölçütüdür.
Sıfırdan büyük bir dil modeli yapmak ise yalnızca birkaç Python dosyası yazmak değildir. Büyük veri kümeleri, model tasarımı, uzun eğitim süreçleri, güçlü donanım, değerlendirme ve güvenlik çalışmaları gerektirir. Öğrenme amacıyla küçük bir görev modeli kurmak veya hazır bir modeli kendi uygulamanıza bağlamak, çoğu kişi için daha gerçekçi ve ölçülebilir ilk adımdır.