CoolFace
Modelpublic

mrcuren/FinLM-8B-TR

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes63downloads
Model Card

FinLM-8B-TR

Qwen3-8B tabanlı, Türkçe finansal tablo (KAP / BIST bilanço) analizi için LoRA ile fine-tune edilmiş 8B parametreli bir dil modeli.

Model; cari oran, asit-test, ROE, ROIC, FCF, kaldıraç gibi finansal oranları verilen bilanço kalemlerinden hesaplar, sonucu eşik değerlerle karşılaştırır ve Türkçe yorum üretir.

Eğitim verisi 89 BIST şirketinin gerçek KAP finansal tablolarından (52.332 kayıt, 6 dönem) türetilmiştir.

Base modelunsloth/Qwen3-8B-bnb-4bit (Qwen3-8B)
YöntemLoRA (PEFT) + SFT, Unsloth
DilTürkçe
AlanFinansal tablo analizi
Veri seti`mrcuren/slm-bilanco-financial-qa-tr`

⚠️ Sorumluluk Reddi

Bu model yatırım tavsiyesi vermez ve yatırım kararlarında kullanılamaz.
  • —Modelin ürettiği analizler, yorumlar ve değerlendirmeler hiçbir koşulda yatırım tavsiyesi, finansal danışmanlık veya alım-satım önerisi niteliğinde değildir. Yatırım kararları için SPK lisanslı yetkili kuruluşlara ve finansal danışmanlara başvurunuz.
  • —Model halüsinasyon üretir. Verilmeyen bilanço kalemlerini uydurabilir, hesaplama hatası yapabilir, yanlış oran formülü uygulayabilir. Ürettiği her sayısal değer bağımsız olarak doğrulanmalıdır.
  • —Eğitim verisindeki finansal değerler gerçek KAP bildirimlerinden alınmıştır; ancak yorum metinleri LLM ile üretilmiştir ve hatalı çıkarım içerebilir. Modelin ürettiği hiçbir analiz resmî KAP bildirimlerinin yerine geçmez — kaynak tablolar doğrudan kap.org.tr üzerinden teyit edilmelidir.
  • —Model, eğitim verisinin kapsadığı dönemle sınırlıdır. Güncel piyasa koşullarını, enflasyon muhasebesini (TMS 29), sektör dinamiklerini veya şirkete özgü olayları bilmez.
  • —Fine-tuning sonucunda modelde ciddi catastrophic forgetting oluşmuştur (bkz. Karşılaştırmalı Değerlendirme). Model genel amaçlı bir asistan değildir; finansal analiz alanı dışında kullanılmamalıdır.
  • —Model ve çıktıları "olduğu gibi" (as-is) sunulmaktadır. Kullanımdan doğacak her türlü sorumluluk kullanıcıya aittir. Geliştirici hiçbir garanti vermez.
  • —Bu model bir araştırma ve eğitim çıktısıdır; üretim ortamında insan denetimi olmadan kullanılmamalıdır.

Eğitim Ayrıntıları

Yöntem

Base model 4-bit (bnb NF4) yüklenmiş, üzerine LoRA adapter eğitilmiş, ardından adapter merge edilmiştir. train_on_responses_only ile loss yalnızca asistan cevaplarında hesaplanmıştır.

LoRA konfigürasyonu

ParametreDeğer
r (rank)16
lora_alpha16
lora_dropout0.05
biasnone
target_modulesq_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
use_gradient_checkpointingunsloth
Eğitilen parametre43.646.976 / 8.234.382.336 (%0,53)

Eğitim hiperparametreleri

ParametreDeğer
max_seq_length2048
packingTrue (4.968 örnek → 2.994 paketlenmiş sekans)
per_device_train_batch_size2
gradient_accumulation_steps4
Efektif batch size8
learning_rate1e-4
lr_scheduler_typecosine
warmup_steps25
optimadamw_8bit
weight_decay0.05
Toplam adım500 (≈ 1,34 epoch)
eval_strategysteps (her 50 adım)
early_stopping_patience3
load_best_model_at_endTrue (eval_loss)
seed3407

Donanım ve süre

GPU1 × NVIDIA T4 (Google Colab)
Eğitim süresi3 saat 45 dakika
FrameworkUnsloth + TRL SFTTrainer + PEFT

Loss eğrisi

AdımTraining LossValidation Loss
500,57970,5373
1000,47650,4557
1500,42550,4263
2000,40810,4083
2500,39070,3942
3000,36690,3852
3500,36340,3757
4000,36600,3724
4500,32350,3699
5000,34500,3694

Doğrulama kaybı 350. adımdan sonra platoya girmiştir (son 150 adımda yalnızca −0,006 iyileşme); eğitim yakınsamıştır.


Eğitim Verisi

Veri seti: `mrcuren/slm-bilanco-financial-qa-tr`

Kayıt
Train4.968 (%90)
Validation552 (%10)
Toplam5.520

Kaynak veri — gerçek KAP bildirimleri

Veri setinin sayısal temeli gerçek finansal tablolardan gelir; sentetik veya uydurulmuş bilanço değeri kullanılmamıştır.

KaynakKAP (Kamuyu Aydınlatma Platformu) finansal tabloları
Şirket sayısı89 BIST şirketi
Toplam kayıt52.332 finansal tablo satırı
TablolarBilanço, Gelir Tablosu, Nakit Akım Tablosu, Dipnotlar
Kalem çeşidi131
Dönemler2024/12, 2025/3, 2025/6, 2025/9, 2025/12, 2026/3 (6 dönem)

Üretim hattı

KAP finansal tabloları  →  30 finansal oran hesaplama  →  seed instruction (24 tip)
   52.332 kayıt / 89 şirket     (deterministik Python)              ↓
   [GERÇEK VERİ]                 [GERÇEK HESAPLAMA]      LLM augmentasyonu (Gemini + Groq)
                                                          [yalnizca dogal dil ifadesi]
                                                                   ↓
                                                        Alpaca formatı (instruction/input/output)

Sorumluluk dağılımı:

  • —Gerçek ve deterministik: input alanındaki tüm bilanço kalemleri (KAP), finansal oranlar (Python ile hesaplanmış), referans cevaplardaki sayısal değerler ve dönem trendleri.
  • —LLM ile üretilen: instruction alanının ifade çeşitliliği ve output alanının doğal dil yorumu.

Bu ayrım, modelin sayısal tam eşleşme skorunun neden anlamlı olduğunu açıklar: referans değerler uydurulmamış, gerçek tablolardan hesaplanmıştır.

Kaynak dağılımı

KaynakKayıt
Groq augmented4.500
Seed generated550
Gemini augmented470

Kategoriler

likidite · karlılık · kaldıraç · borçluluk · nakit_akışı · verimlilik · trend · varlık_yapısı · sektör_karşılaştırma · yönetici_özeti

Kapsanan oranlar: Cari Oran, Asit-Test, Nakit Oranı, Stok Bağımlılık, Borç/Özkaynak, Net Borç/Özkaynak, Faiz Karşılama (ICR), Brüt/Faaliyet/Net Kâr Marjı, ROA, ROE, ROIC, Varlık/Stok/Alacak Devir Hızı, FCF, FCF/Net Kâr, Nakit Üretimi Oranı, Yatırım/Amortisman.

Format

json
{
  "instruction": "Şirketin cari oranını analiz et ve likidite riskini değerlendir.",
  "input": "Dönen Varlıklar: 41,550,520,065 TL\nKısa Vadeli Yükümlülükler: 17,527,567,147 TL",
  "output": "Adım 1: Cari Oran = 41,550,520,065 / 17,527,567,147 = 2.37 ...",
  "category": "likidite",
  "source": "groq"
}

Veri kısıtları

  • —Veri seti 24 benzersiz instruction tipinden türetilmiştir; talimat çeşitliliği sınırlıdır.
  • —Augmentasyon dağılımı dengesizdir; augmented kayıtların büyük çoğunluğu tek bir seed tipini temel alır.
  • —Veri seti %100 finansal analiz içeriğinden oluşur; genel yetenekleri koruyacak replay/anchor verisi içermez. Bu, aşağıda raporlanan catastrophic forgetting'in başlıca nedenidir.

Kullanım Alanları

✅ Amaçlanan kullanım

  • —Verilen bilanço/gelir tablosu kalemlerinden finansal oran hesaplama ve Türkçe yorumlama
  • —Likidite, kârlılık, borçluluk, nakit akışı ve verimlilik analizlerinin taslak metinlerini üretme
  • —Finansal analiz eğitim materyali ve örnek çözüm üretimi
  • —Türkçe finansal NLP araştırmaları, domain-adaptation çalışmaları için baseline
  • —Yapılandırılmış finansal tablo verisinden rapor taslağı oluşturma (insan denetimiyle)

❌ Amaçlanmayan / yasak kullanım

  • —Yatırım kararı alma, portföy yönetimi, alım-satım sinyali üretme
  • —Müşteriye doğrudan sunulan finansal danışmanlık
  • —Kredi değerlendirme, risk skorlama, sigorta veya istihdam kararları
  • —Denetim, vergi beyanı veya resmî finansal raporlama
  • —Genel amaçlı sohbet asistanı — model bu yetkinliğini büyük ölçüde kaybetmiştir
  • —Matematik, fen, kodlama veya alan dışı soru-cevap
  • —İnsan denetimi olmadan otomatik karar verme

Hedef kullanıcı

Finansal analistler, veri bilimciler ve araştırmacılar — çıktıyı doğrulayacak alan bilgisine sahip kullanıcılar. Son kullanıcıya doğrudan sunulmak üzere tasarlanmamıştır.


Karşılaştırmalı Değerlendirme

İki bağımsız benchmark yapılmıştır: (A) alan içi performans, (B) genel yeteneklerde regresyon (catastrophic forgetting).

A. Alan içi benchmark — Finansal analiz

Kurulum: 151 örneklik held-out test seti (veri üretiminde kullanılmayan dönem), 7 kategori. Karşılaştırma: Qwen3-8B (base, fine-tune edilmemiş) vs FinLM-8B-TR.

MetrikQwen3-8B (base)**FinLM-8B-TR**Değişim
ROUGE-L0,19730,3085+56,3%
BLEU-40,01860,0897+383%
BERTScore F10,56690,6888+21,5%
Sayısal Tam Eşleşme0,25640,5633+120%

Sayısal Tam Eşleşme metriği, referans cevaptaki sayısal değerlerin model çıktısında birebir yer alma oranıdır — modelin yalnızca üslubu değil, hesaplamayı da öğrendiğini gösterir.

Kategori bazında
KategorinROUGE-L (base → FT)BLEU-4 (base → FT)Sayısal EM (base → FT)
likidite220,225 → 0,4090,029 → 0,1970,301 → 0,691
borçluluk220,196 → 0,3520,025 → 0,1320,214 → 0,657
verimlilik210,203 → 0,3030,031 → 0,1070,252 → 0,581
nakit_akışı220,227 → 0,2980,034 → 0,1120,362 → 0,622
kârlılık210,186 → 0,2700,011 → 0,0670,270 → 0,473
trend220,167 → 0,2700,004 → 0,0360,218 → 0,472
genel_özet210,175 → 0,2540,005 → 0,0370,176 → 0,438

7/7 kategoride iyileşme vardır. En güçlü kazanım tek-oranlı, deterministik görevlerde (likidite, borçluluk); en zayıf kazanım çok adımlı sentez gerektiren görevlerde (trend, yönetici özeti).

B. Catastrophic forgetting — MMLU-TR

Kurulum: `malhajar/mmlu_tr-v0.2`, 17 alt alan, 3.956 soru, 5-shot, greedy decoding (temperature=0), max_new_tokens=16.

Qwen3-8B (base)**FinLM-8B-TR**Değişim
Doğruluk (tüm sorular)57,20%5,86%−51,34 puan
Cevapsız oranı0,00%77,05%+77,05 puan
Cevaplanan soru3.956 / 3.956908 / 3.956—
Doğruluk (yalnızca cevaplananlar)57,20%25,55%rastgele seviye (%25)

Sonuç iki katmanlı okunmalıdır:

  1. 1.Format kilitlenmesi (%77): Model, çok uzun ve yapılandırılmış finansal analiz formatına kilitlenmiş; 16 token içinde tek harflik cevap üretmeyi bırakmıştır.
  2. 2.Gerçek bilgi kaybı: Cevap verdiği sorularda dahi doğruluk %25,5 — 4 şıklı testte rastgele tahmin seviyesi. Kayıp yalnızca bir format sorunu değildir.
Alan bazında (seçilmiş)
Alt alanBaseFinLM-8B-TRCevapsız (FT)
highschoolmicroeconomics69,20%11,81%37,6%
marketing70,51%17,05%28,6%
management58,59%14,14%69,7%
professional_accounting35,13%10,04%68,1%
philosophy61,87%8,36%68,2%
miscellaneous62,40%2,35%94,0%
elementary_mathematics63,00%0,00%99,7%
econometrics43,86%0,00%97,4%
highschoolstatistics54,63%0,46%98,6%

Kayıp alan-seçicidir: finans/işletme ile örtüşen alanlar (mikroekonomi, pazarlama) en az; matematik ve istatistik en çok etkilenmiştir.

Değerlendirmenin özeti

FinLM-8B-TR, dar bir alanda uzmanlaşmış bir modeldir. Alan içinde base modeli belirgin biçimde geçer; alan dışında base modelin çok gerisindedir. Genel amaçlı kullanım için base Qwen3-8B tercih edilmelidir.

Bilinen nedenler ve iyileştirme yolu

Forgetting'in başlıca nedenleri: (1) veri setinde replay/anchor örneği bulunmaması, (2) 24 instruction tipiyle sınırlı talimat çeşitliliği, (3) tüm örneklerde sabit sistem promptu, (4) LoRA'nın MLP modüllerini (gate/up/down_proj) 1e-4 öğrenme oranıyla kapsaması.

Planlanan iyileştirmeler: %20-30 genel Türkçe instruction replay verisi eklenmesi, LoRA hedeflerinin yalnızca attention modüllerine daraltılması, öğrenme oranının düşürülmesi ve sistem promptu rotasyonu.


Kullanım

Repo içeriği

FormatDosyaBoyutKullanım
FP16 (bfloat16)model-0000X-of-00004.safetensors16,4 GBTransformers, Unsloth, vLLM
GGUF Q4_K_M*.Q4_K_M.gguf5,0 GBllama.cpp, Ollama, LM Studio, Jan

Transformers

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "mrcuren/FinLM-8B-TR"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    device_map="auto",
)

SYSTEM_PROMPT = (
    "Sen bir Turkce finansal analiz asistanisin. Sirket bilanco verilerini "
    "analiz edip detayli Turkce yorumlar sunarsin. /no_think"
)

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {"role": "user", "content": (
        "AEFES sirketinin borc/ozkaynak dengesini degerlendir.\n"
        "Kisa Vadeli Yukumlulukler: 115,470,359,000 TL\n"
        "Uzun Vadeli Yukumlulukler: 84,314,227,000 TL\n"
        "Ozsermaye: 212,651,768,000 TL"
    )},
]

inputs = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True,
    tokenize=True, return_dict=True, return_tensors="pt",
).to(model.device)

out = model.generate(**inputs, max_new_tokens=512, temperature=0.3, top_p=0.9)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Unsloth

python
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="mrcuren/FinLM-8B-TR",
    max_seq_length=2048,
    load_in_4bit=True,
)
FastLanguageModel.for_inference(model)

Ollama / llama.cpp (GGUF)

bash
# llama.cpp
llama-cli -hf mrcuren/FinLM-8B-TR --jinja

# Ollama
ollama run hf.co/mrcuren/FinLM-8B-TR:Q4_K_M

Önerilen inference ayarları

ParametreDeğerNot
temperature0,3Finansal analizde determinizme yakın çıktı için
top_p0,9
max_new_tokens512–1024Analiz çıktıları uzundur
Sistem promptuYukarıdaki SYSTEM_PROMPTEğitimdekiyle aynı olmalıdır
Chat templateQwen2.5 tarzı (repoda gömülü)Eğitimde qwen25 template kullanılmıştır

/no_think direktifi sistem promptunda korunmalıdır; model bu direktifle eğitilmiştir.


Kısıtlar ve Riskler

  • —Halüsinasyon: Eksik veri verildiğinde model kalem uydurabilir. Prompt'ta gerekli tüm bilanço kalemlerini açıkça verin.
  • —Aritmetik güvenilmezliği: Sayısal tam eşleşme %56,3'tür — çıktıların yaklaşık yarısında en az bir sayısal sapma bulunur. Hesaplamalar mutlaka doğrulanmalıdır.
  • —Alan dışı kullanım: MMLU doğruluğu rastgele seviyededir; model alan dışında kullanılmamalıdır.
  • —Augmentasyon yanlılığı: Sayısal veriler gerçek olsa da, eğitim verisindeki yorum metinleri Gemini/Groq ile üretilmiştir; model bu üretici modellerin yorumlama yanlılıklarını ve hatalarını devralmış olabilir.
  • —Sabit format eğilimi: Model uzun, yapılandırılmış analiz formatına eğilimlidir; kısa/serbest formatlı cevap üretmekte zorlanır.
  • —Enflasyon muhasebesi: Model TMS 29 (yüksek enflasyonlu ekonomilerde raporlama) düzeltmelerini kavramaz; nominal değerler üzerinden yorum yapar.
  • —Bağlam sınırı: Eğitim 2048 token ile yapılmıştır; çok uzun finansal tablolarda performans düşer.
  • —Kuantizasyon: GGUF Q4KM sürümünde ek doğruluk kaybı beklenmelidir.

Lisans

Apache 2.0 — base model Qwen3-8B lisansı devralınmıştır. Kullanım, Qwen3 lisans koşullarına tabidir.

Atıf

bibtex
@misc{finlm8btr2026,
  title  = {FinLM-8B-TR: Türkçe Finansal Tablo Analizi için Fine-tuned Qwen3-8B},
  author = {mrcuren},
  year   = {2026},
  url    = {https://huggingface.co/mrcuren/FinLM-8B-TR}
}

Teşekkür

Unsloth ile eğitilmiş ve GGUF'a dönüştürülmüştür.

<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>