Bu eğitim müfredatında yer alan tüm başlıkları, dakika
ve saniye bilgilerini tamamen çıkararak tek tek ele alıyoruz.
"Öğrenecekleriniz" kısmından başlayarak, listedeki her konuyu en
detaylı ve anlaşılır şekilde, günlük hayattan örneklerle ve uygulama
adımlarıyla açıklıyoruz.
Bölüm 1:
"Öğrenecekleriniz" Paragrafının Açıklaması
Bu giriş bölümü, kurs bittiğinde kazanacağınız
ana becerileri özetlemektedir. Dört temel hedefi şunlardır:
1. Yapay
Zekaya Doğru ve Yapılandırılmış Komutlar Vermek
- Açıklama: Yapay
zekaya (örneğin ChatGPT'ye) sadece rastgele
sorular sormayacaksınız. Ona bir bilgisayar mühendisi gibi
yapılandırılmış, örnekler içeren ve adım adım düşümesini
sağlayan özel komut şablonları hazırlamayı öğreneceksiniz.
- Örnek: Yapay
zekaya sadece "Bana bir yemek tarifi yaz" demek yerine,
"Sen 20 yıllık bir şefsin. Elindeki malzemeler şunlar. Adım 1, Adım 2
şeklinde, bütçe dostu bir tarif hazırla" diyerek onu bir uzman moduna
sokmaktır.
2. Python ve HuggingFace ile Sıfırdan Yapay Zeka
Uygulamaları Geliştirmek
- Açıklama: Hazır
yapay zeka sitelerini kullanmak yerine, Python
dilini ve dünyanın en büyük yapay zeka kütüphanesi olan HuggingFace'i kullanarak kendi bilgisayarınızda
çalışan akıllı programlar yazacaksınız.
- Örnek:
Şirketinizdeki müşteri yorumlarını otomatik okuyan ve hangilerinin öfkeli,
hangilerinin mutlu olduğunu bulan bir programı kodlamak.
3. Bilgi
Tabanlı Arama ve Cevaplama (RAG) Sistemleri Kurmak
- Açıklama: Yapay
zekalar bazen bilmedikleri konularda uydurabilirler. RAG adı verilen bu
sistemle, yapay zekaya kendi şirket belgelerinizi veya kitaplarınızı
okutacaksınız. Yapay zeka sadece bu belgelere
bakarak doğru cevaplar verecek. Verileri hızlıca bulmak için FAISS, Chroma veya Pinecone gibi
özel veri tabanlarını kullanacaksınız.
- Örnek: Bir
bankanın 500 sayfalık kredi kuralları kitabını sisteme yükleyip,
"Ahmet Bey 50 bin TL kredi alabilir mi?" diye sorduğunuzda,
sistemin kitabı tarayıp tam doğru maddeyi bularak cevap vermesi.
4. Hazırlanan
Yapay Zekayı Gerçek Dünyada Kullanıma Sunmak (MLOps)
- Açıklama:
Yazdığınız yapay zeka kodunun sadece kendi
bilgisayarınızda değil, tüm dünyanın internet üzerinden kullanabileceği
güvenli ve hızlı bir internet sitesi ya da servisi haline getirilmesini
öğreneceksiniz.
Bölüm 2: Tüm
Konuların Detaylı Açıklaması, Örnekleri ve Uygulamaları
TEMEL
KAVRAMLAR VE KOMUT MÜHENDİSLİĞİ (PROMPT ENGINEERING)
1. Komut (Prompt) Nedir?
- Açıklama: Bir
yapay zeka modeline, ondan ne yapmasını
istediğimizi söyleyen her türlü yazı, soru veya talimattır. Yapay zekanın
girdisidir.
- Örnek:
"Güneş sistemini 8 yaşındaki bir çocuğa anlat" yazısı bir prompt'tur.
- Uygulama: Bilgisayarı
açın. Yapay zeka ekranına "Bana bir fıkra
anlat" yazın. Çıkan sonucu inceleyin. Girdiğiniz o ilk cümle sizin
ilk prompt uygulamanızdır.
2. Komut
Mühendisliğine (Prompt Engineering)
Giriş
- Açıklama: Yapay
zekadan en kaliteli, en doğru ve en az hatalı cevabı almak için doğru
kelimeleri seçme, yapıyı kurma ve strateji geliştirme sanatıdır.
- Örnek:
"Bana kod yaz" demek yerine, "Sen tecrübeli bir Python
yazılımcısısın. Sadece çalışabilir kod blokları ver, açıklama yapma"
demek komut mühendisliğidir.
- Uygulama: Yapay
zekaya şu komutu verin: "Bir İngilizce öğretmenisin. Bana 'get' kelimesinin 3 farklı kullanımını tablo halinde
göster." Sonucun ne kadar düzenli geldiğini gözlemleyin.
3. Komut
Mühendisliğinde İki Pratik Yaklaşım
- Açıklama: Yapay
zekayı kullanırken ya doğrudan ne istediğimizi söyleriz (Doğrudan Talimat)
ya da ona bir rol vererek bir senaryo içine sokarız (Rol Tabanlı Talimat).
- Örnek: 1.
Yaklaşım: "Bu metni özetle." 2. Yaklaşım: "Sen bir
editörsün. Bu metni gazete manşeti olacak şekilde özetle."
- Uygulama: Aynı
metni önce "Özetle" diyerek, sonra "Bir rap sanatçısı gibi
özetle" diyerek yapay zekaya test ettirin. İki yaklaşım arasındaki
farkı görün.
4. Neden
Sadece Komut Mühendisliği Yetmez?
- Açıklama: Yapay
zekaya sadece güzel cümleler yazarak her problemi çözemeyiz. Bazen yapay
zekanın hafızası yetmez, bazen güncel internet bilgilerine erişemez. Bu
yüzden işin içine kodlama (Python) ve veri tabanları girmelidir.
- Örnek: Yapay
zekaya "Şirketimin dünkü satış cirosu ne kadar?" diye sorarsanız
bilemez, çünkü sizin şirketin muhasebe sistemine bağlı değildir.
- Uygulama: Yapay
zekaya bugünün güncel dolar kurunu sorun. Eğer internete bağlı değilse
veya sistemi güncel değilse size eski bilgi verecektir. Bu durum, kodlama
ve dış sistem bağlantılarının neden zorunlu olduğunu kanıtlar.
PYTHON
PROGRAMLAMA DİLİNE GİRİŞ
1. Python
Kurulumu ve Ortam Kurulumu
- Açıklama: Python
kodlarımızı yazıp çalıştırabilmek için bilgisayarımıza Python yazılımını
ve kodları rahatça yazacağımız VS Code veya Jupyter Notebook gibi editörleri yükleme sürecidir.
- Örnek:
Bilgisayara yeni bir oyun oynamak için önce oyunun motorunu ve ekran kartı
sürücülerini kurmaya benzer.
- Uygulama:
python.org sitesine gidin. Bilgisayarınıza uygun en son sürümü indirin ve
kurun. Terminali (komut satırını) açıp python --version yazarak kurulumu doğrulayın.
2. Python'da
Değişkenler ve Veri Tipleri
- Açıklama: Bilgisayarın
hafızasında bilgi saklamak için kullandığımız kutulardır. Yazılar (String), tam sayılar (Integer)
ve ondalıklı sayılar (Float) gibi türleri
vardır.
- Örnek: Bir
kutunun üzerine "yas" yazıp içine 25 sayısını koymak gibidir.
- Uygulama:
·
isim = "Ahmet" # Yazı veri tipi (String)
·
yas = 30 # Tam sayı veri tipi (Integer)
·
boy = 1.75 # Ondalıklı sayı (Float)
·
print(isim, yas, boy)
3. Python
Operatörleri: Aritmetik, Mantıksal ve Karşılaştırma
- Açıklama:
Matematiksel işlemler yapmak (+, -, *, /) veya
durumları karşılaştırmak (büyük mü, eşit mi, ve, veya) için kullanılan
sembollerdir.
- Örnek: İki
fiyatı karşılaştırıp hangisinin ucuz olduğunu bulmak.
- Uygulama:
·
fiyat1 = 100
·
fiyat2 = 150
·
ucuz_mu = fiyat1 < fiyat2
# Karşılaştırma (True yani Doğru
döner)
·
toplam = fiyat1 + fiyat2
# Aritmetik işlem
·
print("Ucuz
mu?:", ucuz_mu, "Toplam:", toplam)
4. if ve else ile Şartlı
Durumlar
- Açıklama: Kodun
önüne bir yol ayrımı koymaktır. Belirli bir şart doğruysa bir kodu,
yanlışsa başka bir kodu çalıştırır.
- Örnek: Hava
yağmurluysa şemsiye al, değilse şemsiye alma.
- Uygulama:
·
notunuz = 75
·
if notunuz >=
50:
·
print("Sınavı geçtiniz!")
·
else:
·
print("Maalesef kaldınız.")
5. Python'da
Döngüler: for ve while
- Açıklama: Belirli
bir işlemi bilgisayara tekrar tekrar otomatik olarak yaptırma yöntemidir.
- Örnek:
Listemizdeki 100 müşteriye tek tek e-posta göndermek için döngü
kullanırız.
- Uygulama:
·
for sayi in range(1, 6):
·
print("Sayı:", sayi)
6. break ve continue İfadeleri
- Açıklama: Döngü
devam ederken aniden döngüyü durdurmak (break) veya o
adımı pas geçip bir sonraki adıma atlamak (continue) için
kullanılır.
- Örnek: Bir
listede hatalı bir ürün bulduğumuzda aramayı durdurmak (break).
- Uygulama:
·
for i in range(1, 10):
·
if i == 5:
·
break # 5'e gelince döngü tamamen durur
·
print(i)
7. Python'da
Listeler (Lists)
- Açıklama:
İçerisinde birden fazla veriyi sırayla saklayabildiğimiz, elemanları
değiştirilebilir alışveriş sepeti gibidir. Köşeli parantez [] ile
gösterilir.
- Örnek:
Alışveriş listesi: Elma, Armut, Süt.
- Uygulama:
·
meyveler = ["Elma", "Armut", "Muz"]
·
meyveler.append("Çilek") # Yeni eleman
ekleme
·
print(meyveler[0]) # İlk elemanı
(Elma) ekrana basar
8. Python'da
Demetler (Tuples)
- Açıklama:
Listelere benzerler ancak içindeki veriler bir kez yazıldıktan sonra asla
değiştirilemez. Normal parantez () ile
gösterilir. Güvenlidir.
- Örnek: Bir
ülkenin plaka kodları veya coğrafi koordinatları sabittir,
değiştirilmemelidir.
- Uygulama:
·
koordinat = (41.0082, 28.9784) # İstanbul
koordinatı
·
# koordinat[0] = 42.00 yazdığınızda hata verir,
değiştirilemez.
·
print(koordinat)
9. Python'da
Kümeler (Sets)
- Açıklama:
İçerisinde bir elemandan sadece bir tane barındırabilen, sırasız veri
topluluklarıdır. Süslü parantez {} ile
gösterilir. Tekrar eden verileri silmek için mükemmeldir.
- Örnek: Bir
partiye gelen davetlilerin isim listesinde, aynı isimdeki kişileri teke
indirmek.
- Uygulama:
·
sayilar = {1, 2, 2, 3, 3, 3}
·
print(sayilar) # Ekrana
sadece {1, 2, 3} basar, tekrarları siler.
10. Python'da
Sözlükler (Dictionaries)
- Açıklama: Anahtar
ve değer (Key-Value) mantığıyla çalışan veri
yapılardır. Gerçek bir sözlükte kelime ve anlamı nasıl eşleşiyorsa, burada
da öyledir.
- Örnek: Kişi
sözlüğü: "Adı": "Ahmet", "Yaşı": 30.
- Uygulama:
·
sozluk = {"araba": "car", "kalem": "pen"}
·
print(sozluk["araba"]) # Ekrana
"car" yazar.
FONKSİYONLAR
VE MODÜLLER
1. Python'da
Fonksiyon Tanımlama ve Kullanma
- Açıklama: Sürekli
tekrar edeceğimiz kod bloklarını bir isim altında toplayıp, ihtiyaç
duyduğumuzda o isimle çağırmaktır. def
kelimesiyle tanımlanır.
- Örnek: Kahve
makinesinin düğmesine basınca arka planda su ısıtma, kahve öğütme
işlemlerinin hep beraber çalışması.
- Uygulama:
·
def karsilama(isim):
·
print("Merhaba " + isim + "! Hoş
geldin.")
·
·
karsilama("Selin") # Fonksiyonu
çağırma
2. Fonksiyon
Argümanları ve Lambda Fonksiyonları
- Açıklama:
Fonksiyonlara dışarıdan gönderilen ekstra bilgiler argümandır. Lambda ise
tek satırda yazılabilen, ismi olmayan hızlı ve küçük fonksiyonlardır.
- Örnek: Kısa bir
matematiksel formülü hızlıca hesaplamak.
- Uygulama:
·
karesi = lambda x: x * x
·
print(karesi(5)) # Ekrana 25
basar.
3. Python
Modülleri ve Paketlerini Anlamak
- Açıklama: Başka
yazılımcıların yazdığı ya da bizim daha önce hazırladığımız hazır kod
dosyalarını kendi projemize dahil etmektir.
- Örnek: Ev
yaparken tuğlayı sıfırdan üretmek yerine fabrikadan hazır almak.
- Uygulama:
Bilgisayarın saat bilgisini kullanmak için hazır time modülünü
projemize çağırırız.
4. Python
Kütüphanelerini İçe Aktarma (Import) ve Kullanma
- Açıklama: import komutunu
kullanarak hazır kütüphaneleri aktif etme işlemidir.
- Örnek: Rastgele
sayı üretmek için matematik kütüphanesini kullanmak.
- Uygulama:
·
import random
·
rastgele_sayi = random.randint(1, 100) # 1 ile 100 arası rastgele sayı
·
print(rastgele_sayi)
NESNE
YÖNELİMLİ PROGRAMLAMA (OOP)
1. Sınıf
(Class) ve Nesne (Object) Kavramı
- Açıklama: Sınıf,
bir nesnenin taslak planıdır (mimari çizim). Nesne ise o plandan üretilmiş
gerçek yapıdır (bina).
- Örnek:
"Araba" bir sınıftır. Sizin kapınızın önündeki "Kırmızı
Renault" ise o sınıftan üretilmiş bir nesnedir.
- Uygulama:
·
class Araba:
·
pass
·
·
benim_arabam = Araba() # Nesne
üretildi
2. OOP'ta Öznitelikler (Attributes)
ve Metotlar (Methods)
- Açıklama:
Öznitelik, nesnenin özellikleridir (rengi, hızı). Metot ise nesnenin
yapabildiği işlerdir (hızlanmak, fren yapmak).
- Örnek: Bir
köpeğin rengi öznitelik, havlaması ise metottur.
- Uygulama:
·
class Kedi:
·
def __init__(self, ad):
·
self.ad = ad # Öznitelik
·
def miyavla(self): # Metot
·
print(self.ad + ": Miyav dedi!")
·
·
pisi = Kedi("Pamuk")
·
pisi.miyavla()
3. Kalıtım (Inheritance) ve Çok Biçimlilik (Polymorphism)
- Açıklama: Kalıtım,
bir sınıfın özelliklerini başka bir sınıfa miras bırakmasıdır. Çok
biçimlilik ise farklı nesnelerin aynı işi kendilerine has yöntemlerle
yapabilmesidir.
- Örnek:
"Hayvan" sınıfından türeyen "Kuş" uçarken,
"Balık" sınıfının yüzmesi. İkisi de hareket eder ama yöntemleri
farklıdır.
- Uygulama:
·
class Hayvan:
·
def ses_cikar(self):
·
pass
·
·
class Kopek(Hayvan): # Kalıtım
·
def ses_cikar(self):
·
print("Hav Hav") # Çok
biçimlilik
·
·
karabas = Kopek()
·
karabas.ses_cikar()
4. Kapsülleme
(Encapsulation) ve Soyutlama (Abstraction)
- Açıklama:
Kapsülleme, nesnenin bazı hassas bilgilerini dış dünyadan gizlemektir.
Soyutlama ise kullanıcının detayı bilmesine gerek kalmadan sadece ana
işlevi kullanmasını sağlamaktır.
- Örnek: Arabanın
motorunun nasıl çalıştığını bilmeden sadece gaza basıp sürmek
soyutlamadır.
- Uygulama:
Değişkenlerin başına çift alt çizgi __ koyarak
(örneğin self.__gizli_sifre) o veriyi dışarıdan erişilemez hale
getirebiliriz (Kapsülleme).
DOSYA YÖNETİMİ
VE API ÇAĞRILARI
1. Metin
Dosyaları (.txt) Okuma ve Yazma
- Açıklama:
Bilgisayardaki düz metin belgelerine Python ile veri kaydetme veya oradaki
yazıları okuma işlemidir.
- Örnek: Bir
uygulamanın günlük log kayıtlarını bir metin dosyasına yazması.
- Uygulama:
·
with open("gunluk.txt", "w") as dosya:
·
dosya.write("Bugün yapay zeka öğrendim.")
2. CSV
Dosyaları Okuma ve Yazma
- Açıklama: Excel
tablolarına benzeyen, verilerin virgüllerle ayrıldığı dosya formatıdır.
Veri analizinde çok kullanılır.
- Örnek: Müşteri
listesi tablosunu okumak.
- Uygulama:
Python'daki yerleşik csv
kütüphanesini içe aktarıp csv.reader() ile
Excel benzeri tablolar satır satır okunur.
3. JSON
Dosyaları Okuma ve Yazma
- Açıklama: Web
uygulamaları arasında veri taşımak için kullanılan, Python sözlük yapısına
çok benzeyen popüler bir dosya formatıdır.
- Örnek: Bir
kullanıcının ayarlarını { "tema":
"karanlik", "dil":
"tr" } şeklinde saklamak.
- Uygulama: import json diyerek bir Python sözlüğünü json.dump() ile
dosyaya kaydedebiliriz.
4. API
Çağrıları Yapmak (GET İsteği)
- Açıklama: Başka
bir web sitesinden veya sunucudan canlı veri çekme isteğidir.
- Örnek: Bir hava
durumu sitesinden o anki sıcaklık bilgisini çekmek.
- Uygulama: requests
kütüphanesi kullanılarak requests.get("https://hava.com") şeklinde
veri istenir.
5. API
Çağrıları Yapmak (POST İsteği)
- Açıklama: Karşı
taraftaki sunucuya veri göndermek veya orada yeni bir şey oluşturmak için
yapılan istektir.
- Örnek: Bir web
sitesine kullanıcı adı ve şifrenizi göndererek üye olmak.
- Uygulama: requests.post(url,
data=kullanici_bilgileri) koduyla
sunucuya yeni veri paketleri gönderilir.
YAPAY ZEKA DESTEKLİ PYTHON KODLAMA
1. Kod Üretmek
İçin Komut Kullanımı
- Açıklama: Yapay
zekaya ne yapmak istediğimizi Türkçe söyleyip, onun bize hatasız Python
kodu yazmasını sağlamaktır.
- Örnek:
"Bana bir sayının asal olup olmadığını bulan Python kodu yaz"
demek.
- Uygulama: Yapay
zekaya bu cümleyi yazın ve verdiği kodu kopyalayıp bilgisayarınızda
çalıştırın.
2. Hata
Ayıklama (Debugging) İçin Komut Kullanımı
- Açıklama: Yazdığımız
kod hata verdiğinde, hatayı ve kodumuzu yapay zekaya verip sorunun nerede
olduğunu bulmasını istemektir.
- Örnek: Bozuk
bir oyuncağı tamirciye götürüp "Bunun neresi kırık?" demek.
- Uygulama: Kasıtlı
olarak parantezini unuttuğunuz bir kodu yapay zekaya yapıştırıp "Bu
kod neden çalışmıyor?" diye sorun. Size hatayı açıklayacaktır.
3.
Dokümantasyon Yazmak İçin Komut Kullanımı
- Açıklama:
Yazdığımız karmaşık kodların ne işe yaradığını başkaları da anlasın diye
açıklama satırları kılavuzu hazırlatmaktır.
- Örnek: Yeni
alınan bir televizyonun içinden çıkan kullanım kılavuzu gibi.
- Uygulama:
Yazdığınız bir fonksiyonu yapay zekaya verip "Buna profesyonel docstring (açıklama) yazar mısın?" deyin.
VERİ TEMİZLEME
PROJESİ
1. Veri
Temizlemeyi Anlamak ve Projeye Genel Bakış
- Açıklama: Yapay
zekaya verilecek olan ham verilerin içindeki eksik, hatalı, bozuk veya
saçma kısımları ayıklama sürecidir. Kötü veriyle iyi yapay zeka eğitilemez.
- Örnek: Çürük
domateslerle güzel bir salata yapılamayacağı için önce çürükleri ayıklamak
gerekir.
- Uygulama: Bir
Excel listesinde yaş kısmında "-5" yazıyorsa veya boş
bırakılmışsa bu satırları bulup silme planı yapılır.
2. Veri
Temizleme ve Komut Destekli Otomasyon İçin Python Betiği
- Açıklama: Bu
temizlik işini elle tek tek yapmak yerine Python koduyla otomatik ve yapay
zeka yardımıyla saniyeler içinde yapan program
yazmaktır.
- Uygulama: Python
kodu yazılır, yapay zekadan "Bu listedeki boş isimleri otomatik
bul ve temizle" algoritması istenir ve dosya temizlenir.
VERİ BİLİMİ VE
GÖRSELLEŞTİRME (NUMPY, PANDAS, MATPLOTLIB, SEABORN)
1. NumPy Dizileri ve İşlemleri
- Açıklama: Normal
Python listelerine göre binlerce kat daha hızlı çalışan, matematiksel
hesaplamalar için özelleştirilmiş sayı listeleridir.
- Örnek:
Milyonlarca pikselden oluşan bir fotoğrafın renk değerlerini hızlıca
değiştirmek.
- Uygulama: import numpy as np yazıp np.array([1, 2,
3]) ile süper hızlı bir dizi oluşturulur.
2. Yayın Yapma
(Broadcasting) ve Vektörleştirme
- Açıklama: Döngü
kullanmadan, koca bir sayı listesinin tamamına tek bir hamlede
matematiksel işlem uygulama yeteneğidir.
- Örnek: Bir
sınıftaki tüm öğrencilerin notuna tek seferde +10 puan eklemek.
- Uygulama: NumPy dizisini direkt 2 ile çarptığınızda (dizi * 2),
içerideki tüm sayılar otomatik olarak ikiyle çarpılır.
3. Pandas: Veri Çerçeveleri (DataFrames)
ve İndeksleme
- Açıklama: Python
içerisindeki gelişmiş Excel tablolarıdır. Satırlar ve sütunlardan oluşur.
Veriyi organize tutar.
- Örnek: Şirketin
tüm satış verilerini içeren devasa bir tabloyu hafızaya yüklemek.
- Uygulama: import pandas as pd yazıp pd.read_csv("veri.csv") ile
tabloyu Python ortamına yükleriz.
4. Pandas: Filtreleme, Toplulaştırma ve Gruplama
- Açıklama: Tablo
içinden sadece istediğimiz verileri seçmek ve onları özetlemektir.
- Örnek: Sadece
"İstanbul"da yaşayan müşterileri
seçmek (Filtreleme) ve onların harcama ortalamasını bulmak (Gruplama).
- Uygulama: df[df['sehir'] == 'Istanbul'].groupby('kategori')['harcama'].mean() koduyla bu analiz tek satırda yapılır.
5. Eksik
Verilerle Başa Çıkma
- Açıklama:
Tablomuzda girilmesi unutulmuş boş hücreleri (NaN)
doldurma veya silme yöntemleridir.
- Örnek: Ankette
yaşını yazmayan kişilerin yerine tüm anketin yaş ortalamasını yazmak.
- Uygulama: Pandas'taki df.fillna(ortalam_deger) fonksiyonu ile boşluklar otomatik
doldurulur.
6. Matplotlib Temelleri
- Açıklama:
Python'da sayıları çizgilere, grafiklere ve görsel şemalar dönüştüren en
temel çizim kütüphanesidir.
- Örnek: Şirketin
5 yıllık büyümesini gösteren bir çizgi grafik çizmek.
- Uygulama: import matplotlib.pyplot as plt kütüphanesi yüklenerek ilk grafik alt
yapısı kurulur.
7. Çizgi
Grafikleri ve Sütun Grafikleri (Matplotlib)
- Açıklama: Zaman
içindeki değişimi görmek için çizgi, kategorileri karşılaştırmak için ise
dik sütun grafikleri çizme işlemidir.
- Örnek: Aylara
göre hava sıcaklığı değişimi (Çizgi), markaların telefon satış adetleri
(Sütun).
- Uygulama: plt.plot(aylar, sicaklik) ile çizgi, plt.bar(markalar,
satislar) ile sütun grafiği ekrana basılır.
8.
Histogramlar ve Serpme (Scatter) Grafikleri
- Açıklama:
Histogram, verilerin hangi aralıklarda yoğunlaştığını gösterir. Scatter ise iki farklı özelliğin birbiriyle ilişkisini
noktasal gösterir.
- Örnek: Okuldaki
boy dağılımı (Histogram), Evin büyüklüğü arttıkça fiyatının nasıl arttığı
noktalarla görmek (Scatter).
- Uygulama: plt.scatter(ev_boyutu, ev_fiyati) koduyla
noktalar düzleme yerleştirilir.
9. Gelişmiş
Görselleştirmeler İçin Seaborn
- Açıklama: Matplotlib kütüphanesinin üzerine kurulmuş, çok daha
modern, renkli ve profesyonel istatistiksel grafikler sunan kütüphanedir.
- Örnek: Şirket
verilerinin birbiriyle olan ilişkisini renkli bir sıcaklık haritası (Heatmap) ile görmek.
- Uygulama: import seaborn as sns yazarak
göz alıcı analiz grafikleri tek komutla çizilir.
10. Komut
Destekli Veri Temizleme ve Görselleştirme
- Açıklama: Grafiği
çizmek için uzun kodlar yazmak yerine yapay zekaya "Bana bu tablonun
sütun grafiğini çizecek kodu ver" diyerek süreci hızlandırmaktır.
- Uygulama: Yapay
zekaya tablo yapısını anlatıp grafik kodunu ürettirmek.
YAPAY ZEKA DESTEKLİ VERİ ANALİZİ
1. Komutlar
Kullanarak Bir Veri Kümesini Keşfetmek (EDA)
- Açıklama:
Elimizdeki yabancı bir veri dosyasını yapay zekaya inceletip "Burada
ne tür bilgiler var, sence önemli olan yerler neresi?" diye sorarak
keşif yapmaktır.
- Örnek: Bir
dedektifin olay yeri inceleme raporunu yapay zekaya özetletmesi.
- Uygulama: Yapay
zekaya veri özetini verip "Bana bu verideki en ilginç 3 trendi
söyle" talimatı verilir.
2. Komutlar
Kullanarak Bir Veri Kümesini Görselleştirmek
- Açıklama:
Keşfedilen önemli noktaların grafik kodlarını yapay zekaya yazdırıp
ekranda görmek.
- Uygulama: Yapay
zekanın yazdığı Seaborn kodlarını çalıştırarak
veri haritası çıkarılır.
MAKİNE
ÖĞRENMESİNE (MACHINE LEARNING) GİRİŞ
1. ML Genel
Bakış: Gözetimli (Supervised) ve Gözetimsiz (Unsupervised) Öğrenme
- Açıklama:
Gözetimli öğrenmede bilgisayara veriyi verirken cevabını da söyleriz (Örn: Bu ev 3 odalı fiyatı 5 Milyon). Gözetimsiz
öğrenmede ise bilgisayar cevapsız verileri kendi kendine gruplar.
- Örnek:
Gözetimli: Sorulu cevaplı test çözmek. Gözetimsiz: Karışık oyuncakları
benzerliklerine göre gruplamak.
- Uygulama: Ev
fiyatı tahmini için gözetimli öğrenme modelleri seçilir.
2. Eğitim-Test
Ayrımı (Train-Test Split) ve Çapraz Doğrulama
- Açıklama:
Elimizdeki verilerin bir kısmını (örneğin %80)
bilgisayara öğretmek için kullanırız (Eğitim), kalan %20'yi ise bilgisayar
gerçekten öğrenmiş mi diye sınav yapmak için saklarız (Test).
- Örnek: Derste
çözülen sorularla (Eğitim), sınavda çıkan benzer ama farklı sorular
(Test).
- Uygulama: train_test_split
fonksiyonu ile veriler ikiye bölünür.
3.
Değerlendirme Metrikleri (Accuracy, F1-Score)
- Açıklama: Yapay
zekanın sınavdan kaç aldığını ölçen başarı ölçüleridir. Accuracy genel başarıyı, F1-Score ise dengesiz
durumlardaki hassas başarıyı ölçer.
- Örnek: Bir
doktorun 100 kişiden kaçına doğru teşhis koyduğu.
- Uygulama: Model
tahminleri bittikten sonra başarı puanı hesaplanır (Örn:
%92 başarı).
4.
Değerlendirme Metrikleri (RMSE)
- Açıklama: Sayısal
tahminlerde (fiyat, sıcaklık gibi) yapay zekanın ne kadar büyük bir hata
payıyla yanıldığını gösteren ölçüdür (Hata Kareler Ortalamasının
Karekökü).
- Örnek: 5
Milyonluk eve yapay zekanın 5 Milyon 100 bin TL demesi (100 bin TL hata
vardır).
- Uygulama: RMSE
değeri ne kadar sıfıra yakınsa ev fiyatı tahmin eden yapay zekamız o kadar iyidir.
5. Yetersiz
Öğrenme (Underfitting) Nedir?
- Açıklama: Yapay
zekanın veriyi çok az incelemesi ve konuyu hiç anlayamaması durumudur. Hem
eğitimde hem testte başarısız olur.
- Örnek: Sınava
sadece 5 dakika çalışıp kalan öğrencidir.
- Uygulama: Çok
basit bir model seçildiğinde veya az veri verildiğinde bu sorun yaşanır.
6. Aşırı
Öğrenme (Overfitting) Nedir?
- Açıklama: Yapay
zekanın veriyi ezberlemesidir. Eğitim sorularını mükemmel yapar ama
karşısına ilk defa çıkan test sorularında çuvallar.
- Örnek:
Kitaptaki soruları şıklarına kadar ezberleyip sınavda sorular hafif
değişince sıfır alan öğrenci.
- Uygulama: Model
çok uzun süre eğitildiğinde oluşur; durdurulması gerekir.
7.
Yanlılık-Varyans Dengesi (Bias-Variance Tradeoff)
- Açıklama: Yetersiz
öğrenme (yüksek yanlılık) ile aşırı öğrenme (yüksek varyans) arasındaki o
hassas altın dengeyi bulma sanatıdır.
- Örnek: Ne hiç
çalışmamak ne de ezberlemek; konunun mantığını kavramak.
8. Nitelik
Mühendisliği (Feature Engineering)
Temelleri
- Açıklama: Yapay
zekanın daha iyi öğrenmesi için eldeki ham verilerden yeni ve anlamlı
özellikler türetmektir.
- Örnek: Evin
"yapım yılı" verisinden, günümüz tarihini çıkararak "Evin
Yaşı" diye daha anlamlı yeni bir bilgi üretmek.
- Uygulama: Pandas kullanılarak iki sütun birleştirilip yeni bir
sütun oluşturulur.
9. Pratik
Demo: Nitelik Mühendisliği
- Açıklama: Kod
üzerinde verileri dönüştürme ve yapay zekanın anlayacağı sıfırlar ve
birler (0 ve 1) haline getirme uygulamasıdır.
- Uygulama:
"Erkek/Kadın" yazan sütunu bilgisayar anlasın diye "1 ve
0" sayılarına dönüştürmek (One-Hot Encoding).
10. Komut
Kullanımı: Özellikleri Otomatik Oluşturma, Veri Setlerini Temizleme, EDA
Özetleri
- Açıklama: Tüm bu
zorlu nitelik mühendisliği ve temizlik süreçlerini yapay zekaya tarif edip
gerekli kodları ona hazırlatmaktır.
EV FİYATI
TAHMİN EDİCİSİ YAPMAK (PROJE)
- Açıklama: Kursun
bu pratik projesinde, geçmiş ev satış verilerini (oda sayısı, konum, yaş
vb.) bilgisayara yükleyip, gelecekte satılacak yeni bir evin fiyatını
tahmin eden çalışan bir sistem inşa edilir.
MAKİNE
ÖĞRENMESİ ALGORİTMALARI
1. Doğrusal
Regresyon (Linear Regression)
- Açıklama:
Verilerin arasından düz bir çizgi çizerek gelecekteki sayısal değerleri
tahmin etme yöntemidir.
- Örnek: Reklam
harcaması arttıkça satışların ne kadar artacağını düz bir çizgi grafiğiyle
tahmin etmek.
- Uygulama: LinearRegression() modeli
çağrılarak ev fiyatı çizgisi bulunur.
2. Lojistik
Regresyon (Logistic Regression)
- Açıklama: İsminin
regresyon olduğuna bakmayın, bu bir sınıflandırma algoritmasıdır. Bir
şeyin olma ihtimalini (Evet/Hayır, Başarılı/Başarısız) tahmin eder.
- Örnek: Gelen
e-posta spam mi, değil mi?
- Uygulama: LogisticRegression() ile
e-posta kelimeleri analiz edilip 0 veya 1 tahmini yapılır.
3. Karar
Ağaçları (Decision Trees)
- Açıklama: Tıpkı
bir akış şeması gibi, verilere sürekli "Evet/Hayır" soruları
sorarak sonuca ulaşan ağaç yapılı sistemdir.
- Örnek: Ev
bahçeli mi? -> Evet -> Garajı var mı? ->
Evet -> O zaman fiyatı yüksektir.
- Uygulama: DecisionTreeClassifier() modeli
kurulur.
4. Rastgele
Ormanlar (Random Forests)
- Açıklama: Tek bir
karar ağacına güvenmek yerine, yüzlerce farklı karar ağacı kurup hepsinin
verdiği ortak karara (oy çokluğuna) göre tahmin yapmaktır.
- Örnek: Tek bir
doktorun kararı yerine 20 doktordan oluşan bir kurulun ortak kararına
güvenmek.
- Uygulama: RandomForestClassifier()
kullanılarak yüksek başarı elde edilir.
5. Destek
Vektör Makineleri (SVM)
- Açıklama: Farklı
sınıflara ait verileri (örneğin kediler ve köpekler) birbirlerinden en
uzak olacak şekilde kalın bir sınır çizgisiyle ayıran algoritmadır.
- Örnek: İki
düşman ordunun arasına en geniş güvenli bölge sınır çizgisini çekmek.
6 & 7. K-Means Kümeleme (Teori ve Pratik)
- Açıklama: Etiketsiz
verileri, birbirlerine olan yakınlıklarına (benzerliklerine) göre otomatik
olarak K tane gruba ayırma yöntemidir.
- Örnek:
Mağazadaki müşterileri harcama alışkanlıklarına göre
"Zenginler", "Tasarruflular" ve "Normaler" diye 3 gruba (kümeye) ayırmak.
- Uygulama: KMeans(n_clusters=3) yazılarak veri noktaları kümelenir.
8 & 9.
Temel Bileşen Analizi (PCA) (Teori ve Pratik)
- Açıklama: Elimizde
yüzlerce özellik (sütun) varsa ve bilgisayar bunu işlerken yoruluyorsa,
verinin özünü kaybetmeden sütun sayısını azaltma tekniğidir.
- Örnek: 3
boyutlu bir heykelin gölgesini 2 boyutlu duvara düşürerek onun şeklini
anlamak.
- Uygulama: PCA(n_components=2) ile 50 sütunlu veri 2 sütuna düşürülür.
10. Makine
Öğrenmesi İş Hatları (Pipelines) Uygulaması
- Açıklama: Veri
temizleme, ölçekleme ve model eğitme adımlarını tek bir otomatik zincir
yapıya bağlamaktır.
- Örnek:
Fabrikadaki montaj bandı gibi; ham madde girer, işlemlerden geçer ve araba
olarak çıkar.
11. Komut
Destekli Model Değerlendirmesi
- Açıklama: Çıkan
model sonuç raporlarını yapay zekaya okutup "Modelim nerede hata
yapıyor, nasıl geliştirebilirim?" tavsiyeleri almaktır.
DERİN ÖĞRENME
(DEEP LEARNING) VE SİNİR AĞLARI
1 & 2.
Yapay Sinir Ağları: Kavram, Mimari, Nöronlar ve Katmanlar
- Açıklama: İnsan
beynindeki biyolojik nöronların çalışma şeklini taklit eden, katmanlardan
oluşan çok gelişmiş yazılımsal ağlardır. Giriş, gizli ve çıkış katmanları
vardır.
- Örnek:
Gözümüzden giren ışığın (giriş) beyindeki nöronlardan geçip (gizli katman)
nesneyi tanıması (çıkış).
3. Aktivasyon
Fonksiyonları
- Açıklama:
Nöronlardan gelen bilginin bir sonraki katmana aktarılıp
aktarılmayacağına, aktarılacaksa ne kadar güçlü aktarılacağına karar veren
kapıcılardır (ReLU, Sigmoid vb.).
- Örnek: Bir
tehlike anında beynin aniden alarm moduna geçmesi (tetiklenme).
4. İleri
Yayılım (Forward Propagation)
- Açıklama: Verinin
giriş katmanından girip, sırayla katmanları geçerek en son çıkış
katmanında bir tahmine dönüşmesi yolculuğudur.
- Örnek: Soru
kağıdını okuyup ilk saniyede bir cevap üretmek.
5. Geri
Yayılım (Backward Propagation)
- Açıklama: Yapay
zekanın yaptığı tahmin yanlış çıktığında, çıkıştan girişe doğru geri
yürüyerek tüm nöronların hatalarını düzeltmesi ve ders çıkarması
sürecidir. Öğrenmenin gerçekleştiği andır.
- Örnek: Sınavda
yanlış yaptığın sorunun çözümüne bakıp "Haa,
formülü yanlış uygulamışım" diyerek hatayı düzeltmek.
6. Kayıp
Fonksiyonları (Loss Functions)
- Açıklama: Yapay
zekanın yaptığı tahminin gerçek cevaptan ne kadar uzakta olduğunu
(hatasının büyüklüğünü) hesaplayan matematiksel formüldür.
- Örnek:
Okçulukta hedefin tam ortasından kaç santim uzağa atış yaptığını ölçmek.
7. Optimize
Ediciler (SGD, Adam)
- Açıklama: Kayıp
fonksiyonundan gelen hata payını azaltmak için nöronların ayarlarını
(ağırlıklarını) en hızlı ve doğru şekilde değiştiren akıllı
algoritmalardır.
- Örnek: Arabanın
rot balans ayarını en mükemmel seviyeye getiren usta tamirci.
8. Komut
Kullanımı: Matematik Kavramlarını Açıklama ve Hataları Ayıklama
- Açıklama: Derin
öğrenmedeki bu ağır matematiksel formülleri (türev, matris çarpımları)
yapay zekaya basit dille açıklatmak.
DERİN ÖĞRENME
KÜTÜPHANELERİ (PYTORCH VE TENSORFLOW)
1 & 2. PyTorch ve TensorFlow Temelleri
- Açıklama: Dünyanın
en büyük teknoloji devleri (Meta ve Google) tarafından geliştirilen, derin
öğrenme modellerini kodlamamızı sağlayan iki dev kütüphanedir.
3 & 4. İlk
Sinir Ağını Kurmak (Sınıflandırma ve Regresyon)
- Açıklama: Bu
kütüphaneleri kullanarak hem resim/yazı ayırt eden (Sınıflandırma) hem de
sayı tahmin eden (Regresyon) ilk çalışan yapay zeka
beynini kodlama uygulamasıdır.
5 & 6. CNN
Temelleri ve MNIST Rakam Sınıflandırıcı Uygulaması
- Açıklama: Evrişimli Sinir Ağları (CNN), resimleri incelemek için
tasarlanmış özel bir derin öğrenme türüdür. MNIST ise el yazısıyla
yazılmış 0-9 arası rakamların resimleridir.
- Uygulama:
Bilgisayara el yazısıyla yazılmış "5" resmini gösterip onun 5
olduğunu bildiren yapay zeka yazılır.
7 & 8. Fashion-MNIST Sınıflandırıcı Projesi (Bölüm 1 ve 2)
- Açıklama: Rakamlar
yerine tişört, pantolon, ayakkabı gibi kıyafet resimlerini birbirinden
ayırt eden daha gelişmiş bir görsel yapay zeka
projesidir.
9. Komut
Entegrasyonu: Katmanları Hata Ayıklama ve Görselleştirme
- Açıklama:
Kurduğumuz bu karmaşık yapay zeka katmanlarının
iç yapısını yapay zekaya çizdirmek ve hata varsa buldurmak.
BİLGİSAYARLI
GÖRÜ (COMPUTER VISION) VE TRANSFER ÖĞRENME
1 & 2. Evrişim (Convolution) İşlemi,
Havuzlama (Pooling) ve Öznitelik Haritaları
- Açıklama: Evrişim, resmin üzerindeki kenarları, çizgileri
yakalamak için bir filtrenin resim üstünde gezdirilmesidir. Havuzlama ise
resmin kalitesini çok bozmadan boyutunu küçültüp önemli yerleri
özetlemektir.
- Örnek:
Gözlerimizi kısarak baktığımızda detayların kaybolup sadece ana şekillerin
kalması.
3. Transfer
Öğrenme (Transfer Learning) Kavramları
- Açıklama: Dünyanın
en büyük bilgisayarlarıyla günlerce eğitilmiş hazır bir yapay zekayı alıp,
kendi küçük problemimiz için yeniden kullanmaktır. Sıfırdan eğitmeye gerek
kalmaz.
- Örnek: Araba
sürmeyi bilen birinin, kamyon sürmeyi çok daha hızlı öğrenmesi.
4, 5 & 6.
Hazır Mimariler: VGG, ResNet, MobileNet
- Açıklama: Dünyaca
ünlü yapay zeka şampiyonu hazır model
mimarileridir. MobileNet cep telefonlarında bile
çalışacak kadar hafiftir.
7. Veri
Çoğaltma (Data Augmentation) Teknikleri
- Açıklama: Elimizde
az sayıda resim varsa, o resimleri döndürerek, kırparak veya renklerini
değiştirerek yapay zekaya yeniymiş gibi sunup veriyi çoğaltmaktır.
- Örnek: Bir kedi
resmini ters çevirip yapay zekaya göstermek; böylece ters duran kedileri
de tanıyabilir.
8. Komut
Destekli Resim Etiketleme ve Çoğaltma
- Açıklama: Resim
çoğaltma kodlarını yapay zekaya otomatik yazdırdığımız adımdır.
DOĞAL DİL
İŞLEME (NLP) VE ARDIL MODELLER
1 & 2.
Metin Ön İşleme ve Simgeleştirme (Tokenization)
- Açıklama:
Bilgisayarlar yazıları doğrudan okuyamaz. Cümleleri kelimelerine veya
hecelerine ayırıp (Tokenization) her kelimeye
bir sayı verme sürecidir.
- Örnek:
"Yapay zekayı seviyorum" -> ["Yapay",
"zekayı", "seviyorum"] -> [12, 45,
89]
3 & 4. Stopwords, Lemmatization, Stemming (Teori ve Pratik)
- Açıklama: Stopwords; "ve, veya,
da" gibi anlamsız bağlaçları silmektir. Stemming
ve Lemmatization ise kelimeleri eklerinden
kurtarıp köküne indirmektir.
- Örnek:
"Koşucular" kelimesini "Koş" köküne indirmek.
- Uygulama:
Python'daki NLTK veya Spacy kütüphaneleriyle
metinler temizlenir.
5. Bag of Words ve TF-IDF
- Açıklama: Bir
metindeki kelimelerin frekansını (kaç kere geçtiğini) sayarak metni
sayısal bir tabloya dönüştürme yöntemleridir. TF-IDF, nadir ve önemli
kelimelere daha yüksek puan verir.
- Örnek: Bir
belgede sürekli "yapay zeka" geçiyorsa
o belge teknolojiyle ilgilidir.
6 & 7.
Kelime Gömme (Word Embeddings - Word2Vec, GloVe)
- Açıklama:
Kelimeleri anlamlarına göre bir uzay düzlemine yerleştirmektir. Anlamca
birbirine yakın kelimeler yan yana durur.
- Örnek:
Matematiksel olarak: Kral - Erkek +
Kadın = Kraliçe sonucunu verir.
8, 9 & 10.
Ardıl Modeller: RNN, LSTM, GRU
- Açıklama: Sıralı
verileri (cümleler, sesler veya borsa grafikleri gibi) işlemek için
geçmişi hatırlayan eski nesil yapay zeka
ağlarıdır. LSTM uzun vadeli hafızaya sahiptir.
- Örnek: Bir
cümlenin sonundaki kelimeyi tahmin etmek için cümlenin başını hatırlamak
zorunludur.
11. AI NLP İş
Akışı: Veri Kümesinden Duygu Analizine
- Açıklama: Tüm
adımları birleştirip, ham tweet verilerini okuyarak insanların bir marka
hakkında olumlu mu olumsuz mu konuştuğunu bulan uçtan uca proje
uygulamasıdır.
TRANSFORMATÖRLER
(TRANSFORMERS) VE BÜYÜK DİL MODELLERİ (LLM)
1. Dikkat
Mekanizması (Attention Mechanism - Multi-Head Attention)
- Açıklama: Modern
yapay zekanın (ChatGPT'nin) kalbidir. Yapay
zekanın bir cümleyi okurken, o anki kelimeyle ilgili olan diğer kelimelere
"odaklanmasını" (dikkat etmesini) sağlar.
- Örnek:
"Banka oturup nehre baktım" cümlesindeki "bank"
kelimesinin para bankası değil oturak olduğunu "oturmak"
kelimesine dikkat ederek anlar.
2. Kodlayıcı
(Encoder) ve Kod Çözücü (Decoder)
- Açıklama:
Transformatör mimarisinin iki ana parçasıdır. Encoder girdi metnini anlar
ve özetler, Decoder ise bu özete bakarak yeni
yazılar ve cevaplar üretir.
3, 4, 5 &
6. HuggingFace Transformers
ile Hazır Modeller (Metin Üretimi, Özetleme, Soru-Cevap)
- Açıklama:
İnternetten indireceğimiz hazır devasa modelleri (BERT, GPT vb.) birkaç
satır Python koduyla kendi bilgisayarımızda çalıştırarak metin özetleme ve
sorulara cevap verme uygulamaları yapmaktır.
- Uygulama: pipeline("summarization")
komutuyla uzun makaleler saniyeler içinde özetlenir.
7. Komut
Kullanımı: Düşünce Zinciri (Chain-of-Thought) ve Çıktı Biçimlendirme
- Açıklama: Yapay
zekaya "Adım adım düşün" diyerek mantık hatalarını engelleme ve
çıktıları zorunlu olarak JSON veya Tablo formatında alma teknikleridir.
8. MAMBA
Mimarisi ve LLM'lerde Kullanımı
- Açıklama: Klasik
transformatör mimarilerine rakip olarak çıkan, çok daha uzun metinleri çok
daha az bilgisayar gücüyle (State-Space Models kullanarak) işleyebilen yepyevi
ve süper hızlı bir yapay zeka mimarisidir.
9. Difüzyon
Modelleri (Diffusion Models)
- Açıklama: Midjourney veya DALL-E gibi yazıdan resim üreten yapay
zekaların arkasındaki teknolojidir. Rastgele bir kum fırtınasını
(paraziti) adım adım temizleyerek net bir resme dönüştürür.
GELİŞMİŞ KOMUT
MÜHENDİSLİĞİ VE YAPILANDIRILMIŞ ÇIKTILAR
1 & 2.
Yapılandırılmış Komutlar, Few-Shot ve Çok Adımlı
Komutlar
- Açıklama: Few-Shot, yapay
zekaya ne istediğimizi anlatırken araya 2-3 tane örnek soru-cevap
koymaktır. Örnekleri gören yapay zeka hatasız
çalışır.
- Örnek: "Elma -> Meyve", "Ispanak ->
Sebze", "Pırasa -> ?" (Yapay zeka
örneklerden dolayı direkt 'Sebze' der).
3. Komut
Zincirleri ve Öz Yansıtma (Self-Reflection)
- Açıklama: Yapay
zekaya verdiği cevabı teslim etmeden önce "Kendi yazdığın cevabı
kontrol et, hata varsa düzelt ve öyle teslim et" talimatı vermektir.
4. Fonksiyon
Çağırma (Function Calling)
ve Yapılandırılmış Çıktılar
- Açıklama: Yapay
zekanın kafasına göre takılmasını engellemek için, onun sadece bizim
belirlediğimiz katı kod kalıpları (JSON) veya fonksiyon isimleri
üretmesini sağlamaktır. Python kodlarımızla tam entegrasyon sağlar.
5. Mini Proje:
Bir Komut Kütüphanesi Oluşturmak
- Açıklama: Günlük
hayatta işimize yarayacak en kaliteli komut kalıplarını sakladığımız ve
kod üzerinden çağırabildiğimiz bir kütüphane yazılımı projesidir.
MODEL İNCE
AYARI (FINE-TUNING)
1 & 2.
İnce Ayar Temelleri, Tam İnce Ayar vs LoRA & QLoRA
- Açıklama: Hazır
bir yapay zekayı alıp, kendi şirketimizin özel verileriyle eğiterek ona
yeni bir uzmanlık kazandırmaktır. LoRA ve QLoRA tüm modeli eğitmek yerine sadece küçük bir
kısmını eğiterek bilgisayarı yormayan cep dostu yöntemlerdir.
- Örnek: Genel
bir tıp doktoru yapay zekasını, sadece göz hastalıkları raporlarıyla
eğiterek "Göz Uzmanı" haline getirmek.
3 & 4.
Transformatör Modelini Alana Özel Görev İçin İnce Ayarlamak
- Açıklama: HuggingFace kullanarak Python üzerinde kendi
verilerimizle bir dil modeline ince ayar çekme kodlama sürecidir.
RAG SİSTEMLERİ
VE VEKTÖR VERİ TABANLARI
1. Gömme (Embeddings) ve Benzerlik Araması
- Açıklama: Tüm dökümanlarımızı sayılara (vektörlere) çevirip bir
uzaya fırlatırız. Kullanıcı bir soru sorduğunda, sorunun anlamına en yakın
olan döküman parçalarını matematiksel yakınlık
hesabı (Cosice Similarity)
ile buluruz.
2. Vektör Veri
Tabanları: FAISS, Chroma, Pinecone
- Açıklama:
Milyonlarca yazının sayısal haritasını saklayan ve anlam bazlı aramaları
milisaniyeler içinde yapan özel yeni nesil veri tabanlarıdır.
3, 4 & 5.
RAG Sistemi Kurumu ve Mini Proje: RAG Tabanlı Asistan
- Açıklama: Tüm bu
yapıyı birleştirip, yapay zekanın uydurmasını engelleyen, tamamen sizin
yüklediğiniz PDF dosyalarına bakarak cevap üreten akıllı bir asistan
kodlama projesidir.
YAPAY ZEKA OTOMASYONLARI VE ETMENLER (AGENTS)
1. Yapay Zeka İş Akışları ve Çok Adımlı Komutlar
- Açıklama: Bir işi
tek seferde yapmak yerine, arka arkaya çalışan yapay zeka
görevlerine bölmektir. (Örn: Model 1 yazıyı
yazar, Model 2 kontrol eder, Model 3 onaylar).
2. LangChain ve LlamaIndex
- Açıklama: Büyük
dil modelleriyle (LLM) dış dünyayı (veri tabanları, internet, hesap
makineleri) birbirine bağlayan, yapay zeka
uygulamaları geliştirmeyi çocuk oyuncağı haline getiren iki büyük popüler
çerçeve (framework) kütüphanedir.
3.
Yapılandırılmış Çıktılar ve Yapay Zeka Otomasyonu
- Açıklama: Çıkan
verileri otomasyon sistemlerine (Örn: E-ticaret
paneline otomatik ürün ekleme) hatasız göndermek için yapılan
entegrasyondur.
4. Korkuluklar
(Guardrails) ve Sınırlandırmalar
- Açıklama: Yapay
zekanın küfretmesini, hackleme taktikleri
vermesini veya sistem dışına çıkmasını engelleyen yazılımsal güvenlik
duvarları kurmaktır.
- Örnek: Müşteri
asistanına siyaset sorulduğunda "Ben sadece ürünlerle
ilgileniyorum" demesini zorunlu kılmak.
YAPAY ZEKA GELİŞTİRME OPERASYONLARI (MLOPS)
1. Sürüm
Kontrolü ve Deney Takibi
- Açıklama:
Kodlarımızdaki ve yapay zeka modellerimizdeki
değişiklikleri (Git/GitHub ile) adım adım
kaydetmek ve hangi modelin daha başarılı olduğunu grafiklerle izlemek.
2. Yapay Zeka Uygulamaları İçin Docker
- Açıklama:
Yazdığımız yapay zeka kodunun, veri tabanının ve
kütüphanelerin her bilgisayarda sorunsuz ve aynı şekilde çalışabilmesi
için projeyi sanal bir kutuya (konteyner) koyma işlemidir.
- Örnek:
"Benim bilgisayarımda çalışıyordu, sunucuda neden çalışmıyor?"
derdine son verir.
3. Yapay Zeka Uygulamalarını Canlıya Alma (Deployment)
- Açıklama:
Hazırlanan projeyi AWS, Azure veya HuggingFace Spaces gibi bulut sunucularına yükleyip bir internet
linki haline getirerek tüm dünyaya açma sürecidir.
BÜYÜK BİTİRME
PROJELERİ
1. Yapay Zeka Destekli Özgeçmiş (Resume)
Analiz Edici ve İş Eşleştirici
- Açıklama: İnsan
kaynakları için geliştirilen; yüklenen PDF formatındaki yüzlerce CV'yi
okuyan, adayın yeteneklerini analiz eden ve şirketteki açık iş ilanına en
uygun kişiyi puanlayarak bulan akıllı bir projedir.
2. Yapay Zeka Tıbbi Asistanı
- Açıklama:
Doktorların veya sağlık çalışanlarının işlerini kolaylaştırmak için, tıbbi
dökümanları ve tahlil sonuçlarını (veri
güvenliği sınırları dahilinde) hızla özetleyen ve analiz süreçlerine
destek sunan gelişmiş bir yapay zeka bitirme
projesidir.
Müfredattaki tüm teorik altyapıyı bir araya
getirerek, tamamen sıfırdan başlayıp kendi belgelerinizle çalışan bir Yapay Zeka Asistanına (RAG) giden yolu adım adım kodluyoruz.
Bu rehberde hiçbir karmaşık kütüphaneyi
varsaymadan, en temel Python mantığından başlayıp en gelişmiş yapay zeka entegrasyonuna kadar her satırı birlikte yazacağız.
BÖLÜM 1:
Sıfırdan Python Uygulamaları (Altyapı Kurulumu)
Yapay zeka asistanımızın
dökümanları okuyabilmesi, temizleyebilmesi ve mantık
yürütebilmesi için önce temel Python kaslarımızı geliştirmemiz gerekiyor.
Uygulama 1:
Değişkenler, Sözlükler ve API Veri Yapısı
Yapay zekadan gelen veriler genellikle bir sözlük
(Dictionary) yapısında olur. İlk olarak bir dökümanı
ve onun bilgilerini bilgisayarın hafızasında nasıl tutacağımızı öğrenelim.
# 1. Değişkenleri ve veri tiplerini
tanımlayalım
dokuman_id = 101
# Integer
(Tam Sayı)
dokuman_baslik = "Şirket
İzin Politikası" # String (Yazı)
icerik_temiz_mi = True # Boolean (Doğru/Yanlış)
# 2. Bu bilgileri yapay zekanın en
sevdiği format olan "Sözlük" (Dictionary) içinde birleştirelim
dokuman_verisi = {
"id": dokuman_id,
"baslik": dokuman_baslik,
"icerik": "Tüm çalışanların yılda 14 gün
ücretli izin hakkı vardır. İzinler en az 3 gün önce haber verilmelidir.",
"temiz": icerik_temiz_mi
}
# 3. Veriyi ekrana yazdırıp kontrol
edelim
print("Sözlük
Yapısı:", dokuman_verisi)
print("Dokümanın
İçeriği:", dokuman_verisi["icerik"])
Uygulama 2:
Şartlı Durumlar (if-else) ve Döngüler
(for) ile Metin
Filtreleme
Gelen dökümanların
içinde arama yapmak veya belirli kurallara uymayan dökümanları
ayıklamak için döngüleri ve şartları kullanırız.
# Elimizde bir döküman
listesi (List) olsun
dokumanlar_havuzu = [
{"baslik": "Maaş Ödemeleri", "icerik": "Maaşlar her ayın 5'inde banka
hesabına yatırılır."},
{"baslik": "Yemek Kartı", "icerik": "Yemek kartı bakiyeleri her
ayın 1'inde güncellenir."},
{"baslik": "Kıyafet Kuralı", "icerik": "Ofis içinde serbest kıyafet
kuralı geçerlidir."}
]
aranan_kelime = "Maaş"
print("---
Arama Sonuçları ---")
# Liste içindeki her bir dökümanı tek tek dönüyoruz (Döngü)
for dokuman in dokumanlar_havuzu:
# Eğer
aradığımız kelime dökümanın içeriğinde geçiyorsa
(Şartlı Durum)
if aranan_kelime in dokuman["icerik"]:
print(f"BULDUM! Başlık: {dokuman['baslik']} -> İçerik: {dokuman['icerik']}")
else:
print(f"Pas geçildi: {dokuman['baslik']}")
Uygulama 3:
Fonksiyonlar ve Nesne Yönelimli Programlama (OOP) ile Temizleyici Sınıfı
Yapay zekaya göndermeden önce metinlerdeki
gereksiz boşlukları silen ve küçük harfe çeviren bir "Metin
Temizleyici" iş ortağı (Sınıf) tasarlayalım.
class MetinIsleyici:
def __init__(self):
# Sınıf
başlatıldığında gereksiz ve bağlaç olan kelimeleri (Stopwords)
tanımlayalım
self.silinecek_kelimeler
= ["ve", "veya", "da", "de"]
def temizle_ve_kucult(self, ham_metin):
# Metni küçük
harfe çevir ve başındaki/sonundaki boşlukları buda
temiz_metin = ham_metin.lower().strip()
# Kelimelere
ayırıp gereksiz bağlaçları temizleyelim
kelimeler = temiz_metin.split()
filtrelenmis_kelimeler = [kelime for kelime in kelimeler if kelime not in self.silinecek_kelimeler]
# Kelimeleri
tekrar birleştiriyoruz
return " ".join(filtrelenmis_kelimeler)
# Sınıfımızdan bir nesne (Object)
üretip test edelim
isleyici = MetinIsleyici()
kirli_metin = " Tüm izinler VE raporlar sisteme
girilmelidir "
sonuc = isleyici.temizle_ve_kucult(kirli_metin)
print("Ham
Hali:", kirli_metin)
print("Temizlenmiş
Hali:", sonuc)
BÖLÜM 2: Kendi
Belgelerinizle Çalışan RAG (Yapay Zeka Asistanı)
Sistemi Kurulumu
Şimdi öğrendiğimiz tüm Python temellerini üst
seviyeye taşıyoruz. Bilgisayarımızdaki bir dökümanı
okuyacak, onu yapay zekanın anlayacağı sayılara (vektörlere) çevirecek ve
sorduğumuz soruya sadece o dökümana bakarak cevap
üretecek uçtan uca bir RAG sistemi kuruyoruz.
Adım 1:
Gerekli Kütüphanelerin Yüklenmesi
Sistemimizin dökümanları
hafızada vektör olarak tutması (ChromaDB) ve yapay zeka ile konuşması (HuggingFace/OpenAI mantığı için en popüler araç olan langchain) için terminale şu komutu yazarak gerekli
kütüphaneleri kuruyoruz:
pip install langchain langchain-community chromadb sentence-transformers
Adım 2: Adım
Adım RAG Sistemi Kod Blokları
Projemizi sıfırdan inşa etmek için boş bir Python
dosyası açın (örneğin rag_asistan.py) ve aşağıdaki kodları yazın. Kodların her satırı
Türkçe açıklamalıdır:
import os
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import Chroma
print("🚀 RAG Sistemi Başlatılıyor...")
# --- ADIM 1: KENDİ BELGENİZİ
OLUŞTURMA VE OKUMA ---
# Önce asistanın bilmesini
istediğiniz şirket kurallarını bir metin dosyasına yazalım
sirket_bilgisi = """
ZekaTech Şirket Kuralları Kılavuzu:
1. Mesai saatleri sabah 09:00 ile
akşam 18:00 arasındadır.
2. Evden çalışma (Remote) hakkı
sadece Çarşamba ve Cuma günleri geçerlidir.
3. Şirket içi tüm resmi iletişimler
Slack uygulaması üzerinden yürütülür.
4. Sağlık raporları alındığı gün
içerisinde İnsan Kaynakları departmanına e-posta ile iletilmelidir.
5. Ofiste evcil hayvan getirme günü
her ayın ilk Perşembe günüdür.
"""
with open("sirket_kurallari.txt", "w", encoding="utf-8") as f:
f.write(sirket_bilgisi)
# Şimdi bu dosyayı kodumuza
yükleyelim
loader = TextLoader("sirket_kurallari.txt", encoding="utf-8")
ham_belge = loader.load()
print("📄 1. Belge başarıyla yüklendi.")
# --- ADIM 2: BELGEYİ PARÇALARA
BÖLME (CHUNKING) ---
# Yapay zekanın binlerce sayfayı
tek seferde okuyup karıştırmaması için metni mantıklı parçalara böleriz.
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=150, # Her parça en
fazla 150 karakter olsun
chunk_overlap=20 # Parçalar
birbirini kaçırmasın diye 20 karakter birbiri üzerine binsin
)
parcalanmis_dokumanlar = text_splitter.split_documents(ham_belge)
print(f"✂️ 2. Belge toplam {len(parcalanmis_dokumanlar)} küçük parçaya ayrıldı.")
# --- ADIM 3: METİNLERİ SAYILARA
ÇEVİRME (EMBEDDING) VE VEKTÖR VERİ TABANINA KAYDETME ---
# Kelimelerin anlamını bilgisayarın
anlayacağı matematiksel sayılara çeviren ücretsiz bir model yüklüyoruz.
print("🧠 Sayısal haritalama modeli (Embeddings)
yükleniyor (Bu işlem ilk seferde biraz sürebilir)...")
embeddings =
HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
# Bu sayısal verileri uçup gitmesin
diye ChromaDB adındaki Vektör Veri Tabanımıza
kaydediyoruz.
# Bilgisayarınızda otomatik olarak
'vektor_ustsu' adında bir klasör oluşacak ve veriler
oraya yazılacak.
vektor_veritabanı = Chroma.from_documents(
documents=parcalanmis_dokumanlar,
embedding=embeddings,
persist_directory="./vektor_ustsu"
)
print("💾 3. Belgelerin anlam haritası çıkarıldı ve Vektör Veri Tabanına
kaydedildi.")
# --- ADIM 4: AKILLI ARAMA VE
ASİSTANA SORU SORMA ---
# Şimdi sistemimizi test edelim.
Bir soru soracağız ve sistem veri tabanına gidip en alakalı cümleyi bulacak.
kullanici_sorusu = "Hangi
günler evden çalışabilirim?"
print(f"\n🔍 Kullanıcı Sorusu: {kullanici_sorusu}")
# Vektör veri tabanında anlam bazlı
arama yapıyoruz (Similarity Search)
en_yakin_belgeler = vektor_veritabanı.similarity_search(kullanici_sorusu, k=1)
# Bulunan en alakalı belge
parçasını ekrana yazdıralım
if en_yakin_belgeler:
en_alakali_icerik = en_yakin_belgeler[0].page_content
print("\n🤖 Asistanın Hafızasından Bulup Çıkardığı Bilgi Dokusu:")
print("-" * 50)
print(en_alakali_icerik)
print("-" * 50)
# --- ADIM 5:
YAPAY ZEKA FORMATINA GETİRME ---
# Gerçek bir
sistemde bu aşamada aşağıdaki şablon (Prompt) ChatGPT veya yerel bir LLM modeline gönderilir:
prompt_sablonu = f"""
Sen ZekaTech şirketinin akıllı İK asistanısın.
Sadece sana aşağıda verilen döküman bilgisine
dayanarak soruyu cevapla.
Eğer dökümanda bilgi yoksa uydurma,
'Bilmiyorum' de.
DÖKÜMAN BİLGİSİ:
{en_alakali_icerik}
SORU: {kullanici_sorusu}
CEVAP:
"""
print("\n✨ Yapay Zekaya Gönderilmeye Hazır Son Prompt Şablonu:")
print(prompt_sablonu)
else:
print("❌ Aranan soruyla ilgili dökümanlarda hiçbir bilgi
bulunamadı.")
Kod
Çalıştığında Ne Olacak?
- Kod
otomatik olarak klasörünüzde sirket_kurallari.txt adında
bir dosya üretecek.
- Bu metni
okuyup küçük cümle parçalarına bölecek.
- İnternetten
anlamlandırma modelini indirip bu cümleleri sayısal vektörlere çevirecek.
- Siz
"Hangi günler evden çalışabilirim?" diye sorduğunuzda, içinde
"evden çalışma", "Remote", "Çarşamba ve
Cuma" geçen en doğru cümleyi milyarlarca olasılık arasından
milisaniyeler içinde cımbızla çekip önünüze koyacak.