turkish-bseby-classifier

Türkçe metinde bankanın veri envanterinde ve DLP hattında sorduğu üç soruyu cevaplayan çok etiketli sınıflandırıcı: bu metinde kişisel veri, hassas veri ya da sır kapsamında veri var mı? BSEBY md. 6/6 verilerin güvenlik sınıfının bu üç ölçüte bakılarak belirlenmesini, md. 14/9 ise dış ağa akan trafikte hassas veri ve sır kapsamındaki verinin sızdırılmasının engellenmesini ister. CPU'da metin başına ~32 ms.

Girdi : Demirtepe Yapı A.Ş.'nin nakdi kredi limiti 40 milyon TL'ye çıkarıldı
Çıktı : musteri_sirri                              (tüzel kişi: kişisel veri yok)

Girdi : müşteri kemoterapi gördüğü için kredi taksitlerinin ertelenmesini istedi
Çıktı : kisisel_veri, ozel_nitelikli, musteri_sirri

Girdi : internet şubesi parolanız: Kp!7731x, kimseyle paylaşmayın
Çıktı : kisisel_veri, hassas_veri

Girdi : core banking prod DB servis hesabı: svc_cb / Xr9!mQ2
Çıktı : banka_sirri

Girdi : abonenin son üç faturası ödenmemiş, hattı kısıtlanacak
Çıktı : kisisel_veri                               (banka dışı müşteri: sır değil)

Girdi : ihtiyaç kredisi faiz oranımız 1 Ekim itibarıyla %3,49'dur
Çıktı : (yok)

Kategori düzeyinde ayrım için: halilneed/turkish-kvkk-classifier · maskeleme için: halilneed/turkish-pii-detection · değerlendirme seti: halilneed/turkish-bseby-classification-benchmark (CC0)

Etiketler

Etiket Kapsam Dayanak
kisisel_veri belirli bir gerçek kişiye ait herhangi bir bilgi KVKK md. 3; BSEBY md. 6/3
ozel_nitelikli sağlık, biyometrik, din, ceza mahkûmiyeti, sendika... KVKK md. 6
hassas_veri değeri metinde bulunan kimlik/işlem doğrulama verisi: parola, PIN, OTP, CVV, tam kart numarası, güvenlik sorusu cevabı, oturum belirteci BSEBY md. 3/1-o
musteri_sirri belirli bir gerçek ya da tüzel kişinin bir bankayla ilişkisinden doğan bilgi; müşteri olduğunu gösteren her bilgi Sır Yönetmeliği md. 4/3-4
banka_sirri bankanın kendisine ait, kamuya açıklanmamış iç bilgi: denetim bulgusu, iç limit ve politika, açıklanmamış sonuç, sistem bilgisi ve kimlik bilgileri Sır Yönetmeliği md. 5/5

Etiketsiz çıktı = kamuya açık bilgi, genel kural, duyuru, ürün anlatımı.

BSEBY: Bankaların Bilgi Sistemleri ve Elektronik Bankacılık Hizmetleri Hakkında Yönetmelik (RG 15/3/2020-31069). Sır Yönetmeliği: Sır Niteliğindeki Bilgilerin Paylaşılması Hakkında Yönetmelik (RG 4/6/2021-31501).

Yorum kararları

Yönetmelikler bu sınıfları işlevsel tanımlar; sınıflandırıcı için bir çizgi çekmek gerekti. Bankanızın varlık sınıflandırma kılavuzu (BSEBY md. 6/5) farklı çiziyorsa modeli o çizgiyle değerlendirin.

  • Hassas veride sahiplik: yönetmelik "müşteriye ait" der. Metinden parolanın müşteriye mi çalışana mı ait olduğu çoğu zaman anlaşılmadığı için, bir kişinin doğrulama verisi sahibine bakılmadan hassas_veridir. Sistem/servis hesabı parolası ve API anahtarı kişiye değil kuruma aittir: banka_sirri.
  • Değer metinde olmalı: "müşteri şifresini dolandırıcıya vermiş" hassas_veri değildir; maskeli değer (****) de değildir.
  • Anne kızlık soyadı kendi başına hassas_veri değildir (BSEBY md. 34/10 onun kimlik doğrulamada kullanılmasını yasaklar); metin onu açıkça doğrulama cevabı olarak kullanıyorsa işaretlenir.
  • Hesap tanımlayıcısı: IBAN, hesap no ve tam kart numarası, banka bağlamı açık olmasa da musteri_sirridir.
  • Banka dışı müşteri ilişkisi (e-ticaret, telekom, sigorta) kişisel veridir, müşteri sırrı değildir. Borç, taksit, icra tek başına bankacılık içeriği sayılmaz.
  • Banka sırrı: yönetmelik tanım vermez (md. 5/5: "yalnızca bankaya ait bilgiler"). Kurum açıkça banka dışıysa işaretlenmez; belirsizse banka varsayılır.
  • Tüzel kişi müşterinin bilgisi musteri_sirridir, kisisel_veri değildir.

Sonuçlar

  1. Bağımsız held-out (asıl sonuç): eğitim verisini görmeyen iki yazarın yalnızca etiket kılavuzundan yola çıkarak yazdığı 750 metin, ilk etiketleri görmeyen ikinci bir etiketleyici tarafından yeniden etiketlendi. Birebir uzlaşılan 747 metin altın set.
  2. Şablon düzeyinde ayrık test: eğitimde hiç kullanılmamış 456 şablondan 1.055 örnek.
Held-out (747) Ayrık test (1.055)
micro-F1 0.944 0.945
macro-F1 0.939 0.913
Tam eşleşme (tüm etiketler doğru) 0.892 0.902
Sır var mı — kesinlik / duyarlılık 0.970 / 0.963 0.918 / 0.961
Korunacak veri var mı — kesinlik / duyarlılık 0.985 / 0.990 0.978 / 0.973
Tüzel kişi dilimi tam doğru 0.859 (n=128) 0.804 (n=56)

Etiket bazında (held-out):

Kesinlik Duyarlılık F1 n
kisisel_veri 0.958 0.963 0.960 328
ozel_nitelikli 0.983 1.000 0.991 57
hassas_veri 0.878 0.867 0.873 83
musteri_sirri 0.973 0.928 0.950 306
banka_sirri 0.888 0.955 0.920 157

"Sır var mı" = musteri_sirri ya da banka_sirri. "Tüzel kişi dilimi" = altın etikette müşteri sırrı olup kişisel veri olmayan metinler; model ikisini de doğru vermişse doğru sayılır.

Uzlaşma oranı hakkında: iki etiketleme de aynı dil modeliyle (Claude) ve aynı kılavuzla yapıldı; %99,6 birebir uzlaşma kılavuzun tutarlı uygulanabildiğini gösterir, iki bağımsız insanın uzlaşmasını değil. İnsan etiketleyiciyle ölçülmedi.

Kullanım

Etiket başına eşikler dev setinde ayarlandı (thresholds.json); kisisel_veri dışındaki dört etikette eşik 0.5'i geçmez (duyarlılık öncelikli).

import json, torch
from huggingface_hub import hf_hub_download
from transformers import AutoModelForSequenceClassification, AutoTokenizer

MODEL = "halilneed/turkish-bseby-classifier"
tok = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForSequenceClassification.from_pretrained(MODEL).eval()
esik = json.load(open(hf_hub_download(MODEL, "thresholds.json")))

def siniflandir(metin):
    with torch.inference_mode():
        p = torch.sigmoid(model(**tok(metin, return_tensors="pt", truncation=True, max_length=320)).logits)[0]
    return [model.config.id2label[i] for i, v in enumerate(p.tolist()) if v >= esik[model.config.id2label[i]]]

print(siniflandir("Demirtepe Yapı A.Ş.'nin nakdi kredi limiti 40 milyon TL'ye çıkarıldı"))
# ['musteri_sirri']

CPU gecikmesi: Intel i5-12400F, 8 iş parçacığı, ortalama 207 karakterlik metin → batch 1: 32 ms/metin. 320 belirteçten uzun metin kesilir; uzun belgeleri parçalayıp parça etiketlerinin birleşimini alın.

Eğitim

Taban model dbmdz/bert-base-turkish-cased (BERTurk, 110M)
Yöntem çok etiketli sınıflandırma (sigmoid + BCE), 5 epoch, lr 3e-5, bf16, maks. 320 belirteç; checkpoint dev micro-F1'e göre seçildi (4. epoch)
Veri 40.000 sentetik örnek, 4.523 şablondan: KVKK sınıflandırıcısının 3.276 şablonu (kişisel veri etiketleri deterministik türetildi, bankacılık bağlamı taşıyan 1.445'i ayrıca işaretlendi) + bu model için yazılmış 1.247 şablon (gerçek ve tüzel kişi müşteri, banka içi yönetim/risk, BT/güvenlik, doğrulama verisi ve tuzakları); %16 etiketsiz
Bölme şablon düzeyinde hash ile ayrık train / dev / test

Sınırlar

  • Eğitim verisi ve değerlendirme setleri sentetiktir ve bir dil modeliyle üretilmiştir; gerçek banka metninde ölçmeden kritik bir hatta koymayın.
  • En zayıf etiket hassas_veri (F1 0.87). Held-out'ta kaçanların çoğu belirteç ve anahtar biçimleri (JWT, özel anahtar bloğu, cihaz eşleştirme anahtarı, kişisel erişim belirteci) ile JSON gövdesindeki parola; yanlış alarmların çoğu maskeli kart numarası ve "sonu 7712 ile biten kartınız" türü bildirimler. Biçimi belli değerler (kart numarası, JWT, anahtar bloğu) için kural tabanlı bir denetimle birlikte kullanın.
  • banka_sirri kesinliği 0.89. Yanlış alarmlar üç yerde toplanıyor: tüzel müşteriye ait teknik metinler (SWIFT MT mesajı, mali tahlil özeti), açıkça banka dışı kurumların iç bilgisi (fabrika üretim raporu, dökümhane servis hesabı) ve ilan edilmiş ücret tarifesi. Açıklanmış ile açıklanmamış bilgi arasındaki ayrım çoğu zaman metnin dışındaki bir olguya bağlıdır; model bunu yalnızca metindeki ipuçlarından çıkarabilir.
  • musteri_sirri ile banka_sirrinin birlikte bulunduğu 27 held-out metnin 20'sinde iki etiket de doğru; kalanında biri kaçıyor.
  • Model tek bir metin parçasına bakar; müşteri sırrı çoğu zaman alanların birleşiminden doğar (md. 4/4). Tablo ve kayıt düzeyinde sınıflandırmada alanları birlikte verin.
  • Etiketler bir sınıflandırma sinyalidir, hukuki nitelendirme değildir. BSEBY ve sır saklama yükümlülüğüne uyum kullananın sorumluluğundadır.
Downloads last month
-
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for halilneed/turkish-bseby-classifier

Finetuned
(207)
this model

Dataset used to train halilneed/turkish-bseby-classifier

Collection including halilneed/turkish-bseby-classifier