Instructions to use halilneed/turkish-bseby-classifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use halilneed/turkish-bseby-classifier with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="halilneed/turkish-bseby-classifier")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("halilneed/turkish-bseby-classifier") model = AutoModelForSequenceClassification.from_pretrained("halilneed/turkish-bseby-classifier", device_map="auto") - Notebooks
- Google Colab
- Kaggle
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_verideğildir; maskeli değer (****) de değildir. - Anne kızlık soyadı kendi başına
hassas_verideğ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_verideğildir.
Sonuçlar
- 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.
- Ş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_sirrikesinliğ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_sirriilebanka_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
- -
Model tree for halilneed/turkish-bseby-classifier
Base model
dbmdz/bert-base-turkish-cased