mrcuren/FinLM-8B-TR
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.
⚠️ 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
Eğitim hiperparametreleri
Donanım ve süre
Loss eğrisi
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`
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.
Ü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:
inputalanı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:
instructionalanının ifade çeşitliliği veoutputalanı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ı
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.
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
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.
Sonuç iki katmanlı okunmalıdır:
- 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.
- 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ş)
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
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ı
/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
@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.
