LLM-Model / kaydet.py
YigitCahit's picture
Upload folder using huggingface_hub
ee0cacc verified
# file name 'kaydet.py'
def modeli_kaydet(ag, kelime_sayi, sayi_kelime, dosya_adi="model.json"):
import json
veri = {
"sozluk_boyutu": ag.sozluk_boyutu,
"model_boyutu": ag.model_boyutu,
"ff_boyutu": ag.ff_boyutu,
"kafa_sayisi": ag.kafa_sayisi,
"katman_sayisi": ag.katman_sayisi,
"kelime_sayi": kelime_sayi,
"sayi_kelime": {str(k): v for k, v in sayi_kelime.items()},
"embedding": ag.embedding,
"cikti_W": ag.cikti_W,
"cikti_b": ag.cikti_b,
"katmanlar": []
}
for katman in ag.katmanlar:
katman_veri = {
"gamma1": katman.gamma1,
"beta1": katman.beta1,
"gamma2": katman.gamma2,
"beta2": katman.beta2,
"ff": {
"W1": katman.ff.W1,
"b1": katman.ff.b1,
"W2": katman.ff.W2,
"b2": katman.ff.b2,
},
"attention": {
"WO": katman.attention.WO,
"bO": katman.attention.bO,
"kafalar": [
{
"WQ": kafa.WQ,
"WK": kafa.WK,
"WV": kafa.WV,
}
for kafa in katman.attention.kafalar
]
}
}
veri["katmanlar"].append(katman_veri)
with open(dosya_adi, "w", encoding="utf-8") as f:
json.dump(veri, f, ensure_ascii=False)
print(f"Model kaydedildi: {dosya_adi}")
def modeli_yukle(dosya_adi="model.json"):
import json
from sinir_agi import SinirAgi, KatmanAgirliklari, FFAgirliklari, AttentionAgirliklari, KafaAgirliklari
with open(dosya_adi, "r", encoding="utf-8") as f:
veri = json.load(f)
ag = SinirAgi(
sozluk_boyutu=veri["sozluk_boyutu"],
model_boyutu=veri["model_boyutu"],
ff_boyutu=veri["ff_boyutu"],
kafa_sayisi=veri["kafa_sayisi"],
katman_sayisi=veri["katman_sayisi"]
)
ag.embedding = veri["embedding"]
ag.cikti_W = veri["cikti_W"]
ag.cikti_b = veri["cikti_b"]
for i, katman_veri in enumerate(veri["katmanlar"]):
ag.katmanlar[i].gamma1 = katman_veri["gamma1"]
ag.katmanlar[i].beta1 = katman_veri["beta1"]
ag.katmanlar[i].gamma2 = katman_veri["gamma2"]
ag.katmanlar[i].beta2 = katman_veri["beta2"]
ag.katmanlar[i].ff.W1 = katman_veri["ff"]["W1"]
ag.katmanlar[i].ff.b1 = katman_veri["ff"]["b1"]
ag.katmanlar[i].ff.W2 = katman_veri["ff"]["W2"]
ag.katmanlar[i].ff.b2 = katman_veri["ff"]["b2"]
for j, kafa_veri in enumerate(katman_veri["attention"]["kafalar"]):
ag.katmanlar[i].attention.kafalar[j].WQ = kafa_veri["WQ"]
ag.katmanlar[i].attention.kafalar[j].WK = kafa_veri["WK"]
ag.katmanlar[i].attention.kafalar[j].WV = kafa_veri["WV"]
ag.katmanlar[i].attention.WO = katman_veri["attention"]["WO"]
ag.katmanlar[i].attention.bO = katman_veri["attention"]["bO"]
kelime_sayi = veri["kelime_sayi"]
sayi_kelime = {int(k): v for k, v in veri["sayi_kelime"].items()}
print(f"Model yüklendi: {dosya_adi}")
return ag, kelime_sayi, sayi_kelime