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 model unsloth/Qwen3-8B-bnb-4bit (Qwen3-8B)
Yöntem LoRA (PEFT) + SFT, Unsloth
Dil Türkçe
Alan Finansal 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

Parametre Değer
r (rank) 16
lora_alpha 16
lora_dropout 0.05
bias none
target_modules q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
use_gradient_checkpointing unsloth
Eğitilen parametre 43.646.976 / 8.234.382.336 (%0,53)

Eğitim hiperparametreleri

Parametre Değer
max_seq_length 2048
packing True (4.968 örnek → 2.994 paketlenmiş sekans)
per_device_train_batch_size 2
gradient_accumulation_steps 4
Efektif batch size 8
learning_rate 1e-4
lr_scheduler_type cosine
warmup_steps 25
optim adamw_8bit
weight_decay 0.05
Toplam adım 500 (≈ 1,34 epoch)
eval_strategy steps (her 50 adım)
early_stopping_patience 3
load_best_model_at_end True (eval_loss)
seed 3407

Donanım ve süre

GPU 1 × NVIDIA T4 (Google Colab)
Eğitim süresi 3 saat 45 dakika
Framework Unsloth + TRL SFTTrainer + PEFT

Loss eğrisi

Adım Training Loss Validation Loss
50 0,5797 0,5373
100 0,4765 0,4557
150 0,4255 0,4263
200 0,4081 0,4083
250 0,3907 0,3942
300 0,3669 0,3852
350 0,3634 0,3757
400 0,3660 0,3724
450 0,3235 0,3699
500 0,3450 0,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
Train 4.968 (%90)
Validation 552 (%10)
Toplam 5.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.

Kaynak KAP (Kamuyu Aydınlatma Platformu) finansal tabloları
Şirket sayısı 89 BIST şirketi
Toplam kayıt 52.332 finansal tablo satırı
Tablolar Bilanço, Gelir Tablosu, Nakit Akım Tablosu, Dipnotlar
Kalem çeşidi 131
Dönemler 2024/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ı

Kaynak Kayıt
Groq augmented 4.500
Seed generated 550
Gemini augmented 470

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

{
  "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.

Metrik Qwen3-8B (base) FinLM-8B-TR Değişim
ROUGE-L 0,1973 0,3085 +56,3%
BLEU-4 0,0186 0,0897 +383%
BERTScore F1 0,5669 0,6888 +21,5%
Sayısal Tam Eşleşme 0,2564 0,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

Kategori n ROUGE-L (base → FT) BLEU-4 (base → FT) Sayısal EM (base → FT)
likidite 22 0,225 → 0,409 0,029 → 0,197 0,301 → 0,691
borçluluk 22 0,196 → 0,352 0,025 → 0,132 0,214 → 0,657
verimlilik 21 0,203 → 0,303 0,031 → 0,107 0,252 → 0,581
nakit_akışı 22 0,227 → 0,298 0,034 → 0,112 0,362 → 0,622
kârlılık 21 0,186 → 0,270 0,011 → 0,067 0,270 → 0,473
trend 22 0,167 → 0,270 0,004 → 0,036 0,218 → 0,472
genel_özet 21 0,175 → 0,254 0,005 → 0,037 0,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 soru 3.956 / 3.956 908 / 3.956
Doğruluk (yalnızca cevaplananlar) 57,20% 25,55% rastgele seviye (%25)

Sonuç iki katmanlı okunmalıdır:

  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. 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 alan Base FinLM-8B-TR Cevapsız (FT)
high_school_microeconomics 69,20% 11,81% 37,6%
marketing 70,51% 17,05% 28,6%
management 58,59% 14,14% 69,7%
professional_accounting 35,13% 10,04% 68,1%
philosophy 61,87% 8,36% 68,2%
miscellaneous 62,40% 2,35% 94,0%
elementary_mathematics 63,00% 0,00% 99,7%
econometrics 43,86% 0,00% 97,4%
high_school_statistics 54,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

Format Dosya Boyut Kullanım
FP16 (bfloat16) model-0000X-of-00004.safetensors 16,4 GB Transformers, Unsloth, vLLM
GGUF Q4_K_M *.Q4_K_M.gguf 5,0 GB llama.cpp, Ollama, LM Studio, Jan

Transformers

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

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)

# 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ı

Parametre Değer Not
temperature 0,3 Finansal analizde determinizme yakın çıktı için
top_p 0,9
max_new_tokens 512–1024 Analiz çıktıları uzundur
Sistem promptu Yukarıdaki SYSTEM_PROMPT Eğitimdekiyle aynı olmalıdır
Chat template Qwen2.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 Q4_K_M 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

@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.

Downloads last month
70
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mrcuren/FinLM-8B-TR

Finetuned
Qwen/Qwen3-8B
Adapter
(1988)
this model

Dataset used to train mrcuren/FinLM-8B-TR