LLM-Model / egitim_dongusu.py
YigitCahit's picture
Upload folder using huggingface_hub
ee0cacc verified
# file name 'egitim_dongusu.py'
from sinir_agi import SinirAgi
from egitim import egitim_adimi
from veri import dosyadan_yukle, sozluk_olustur, egitim_ornekleri_olustur
from model import ileri_gecis
def egit(dosya_adi="veri.txt", epochs=10, ogrenme_hizi=0.001, pencere=4):
cumleler = dosyadan_yukle(dosya_adi)
kelime_sayi, sayi_kelime = sozluk_olustur(cumleler)
ornekler = egitim_ornekleri_olustur(cumleler, kelime_sayi, pencere)
sozluk_boyutu = len(kelime_sayi)
print(f"Sozcuk sayisi: {sozluk_boyutu}")
print(f"Egitim ornegi: {len(ornekler)}")
ag = SinirAgi(
sozluk_boyutu=sozluk_boyutu,
model_boyutu=64,
ff_boyutu=256,
kafa_sayisi=4,
katman_sayisi=2
)
for epoch in range(epochs):
toplam_kayip = 0.0
for i, (girdi, hedef) in enumerate(ornekler):
if len(girdi) == 0:
continue
kayip = egitim_adimi(ag, girdi, hedef, ogrenme_hizi)
toplam_kayip += kayip
if i % 100 == 0:
print(f"Adim {epoch+1} | Ornek {i}/{len(ornekler)} | Kayip: {kayip:.4f}")
ort_kayip = toplam_kayip / len(ornekler)
print(f"\nAdim {epoch+1} tamamlandi | Ortalama Kayip: {ort_kayip:.4f}\n")
return ag, kelime_sayi, sayi_kelime
def uret(ag, kelime_sayi, sayi_kelime, baslangic_kelime, uzunluk=10, pencere=4, temperature=0.8):
if baslangic_kelime not in kelime_sayi:
print("Kelime bulunamadı.")
return
from rastgele import rastgele, tohum_uret
indexler = [kelime_sayi[baslangic_kelime]]
for _ in range(uzunluk):
girdi = indexler[-pencere:]
olasiliklar = ileri_gecis(ag, girdi)
olasiliklar = [p ** (1 / temperature) for p in olasiliklar]
toplam = sum(olasiliklar)
olasiliklar = [p / toplam for p in olasiliklar]
r = rastgele(tohum_uret(), 1)[0]
kumulatif = 0.0
tahmin = 0
for j, p in enumerate(olasiliklar):
kumulatif += p
if r < kumulatif:
tahmin = j
break
indexler.append(tahmin)
print(" ".join(sayi_kelime[i] for i in indexler))