Turkish Cybersecurity Byte-Level BPE Tokenizer
Bu depo, Türkçe siber güvenlik soru-cevap metinleri üzerinde eğitilmiş küçük bir Byte-Level BPE tokenizer içerir. Eğitim ve öğretim amaçlı deneyler, alan odaklı tokenizasyon çalışmaları ve küçük dil modeli prototipleri için hazırlanmıştır.
Bu bir dil modeli değildir; tek başına metin üretmez, sınıflandırma yapmaz veya siber güvenlik önerilerinin doğruluğunu değerlendirmez.
Tokenizer ayrıntıları
| Özellik | Değer |
|---|---|
| Algoritma | Byte-Level BPE |
| Sözlük boyutu | 1.000 token |
| BPE merge sayısı | 740 |
| Ön-tokenizer | ByteLevel |
| Decoder | ByteLevel |
add_prefix_space |
False |
| Bilinmeyen token | <unk> |
| Dolgu tokenı | <pad> |
| Başlangıç tokenı | <bos> |
| Bitiş tokenı | <eos> |
Byte-level başlangıç alfabesi kullanıldığı için tokenizer, Türkçe karakterler de dahil olmak üzere UTF-8 metinleri geri dönüştürülebilir biçimde işleyebilir.
Eğitim verisi
Tokenizer,
samliumay/turkish_cyber_security_controls_dataset
veri kümesindeki kullanıcı ve asistan mesajlarının içerikleri kullanılarak
eğitilmiştir. Roller ve diğer üst veriler eğitim metnine eklenmemiş, mesajlar
yeni satırlarla birleştirilmiştir.
Yerel eğitim korpusu:
- 1.600 adet boş olmayan mesaj satırı
- 540.121 Unicode karakter
- 593.273 UTF-8 byte
Veri kümesi siber güvenlik kontrolleri, standartlar, risk yönetimi, Zero Trust, uygulama güvenliği ve benzeri teknik konulara odaklanır.
Kullanım
pip install transformers tokenizers
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"samliumay/turkish_bpe_based_on_cyber_security_texts"
)
text = "Siber güvenlik kontrolleri nasıl uygulanır?"
token_ids = tokenizer.encode(text, add_special_tokens=False)
tokens = tokenizer.convert_ids_to_tokens(token_ids)
decoded_text = tokenizer.decode(token_ids)
print(token_ids)
print(tokens)
print(decoded_text)
<bos> ve <eos> özel tokenları tanımlıdır ancak tokenizer yapılandırmasında
bunları otomatik ekleyen bir post-processor bulunmaz. Gerektiğinde açıkça
eklenmelidir:
token_ids = [tokenizer.bos_token_id]
token_ids += tokenizer.encode(text, add_special_tokens=False)
token_ids += [tokenizer.eos_token_id]
Eğitim yapılandırması
Tokenizer aşağıdaki temel ayarlarla tokenizers kütüphanesi kullanılarak
eğitilmiştir:
from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.pre_tokenizers import ByteLevel
from tokenizers.trainers import BpeTrainer
tokenizer = Tokenizer(BPE(unk_token="<unk>"))
tokenizer.pre_tokenizer = ByteLevel(add_prefix_space=False)
trainer = BpeTrainer(
vocab_size=1_000,
special_tokens=["<unk>", "<pad>", "<bos>", "<eos>"],
initial_alphabet=ByteLevel.alphabet(),
)
Doğrulama
Yerel doğrulamada Türkçe karakterler, büyük/küçük harfler ve İngilizce bir örnek
için decode(encode(text)) == text eşitliği sağlanmıştır. Tokenizer için henüz
kapsamlı parçalama kalitesi, sıkıştırma oranı veya başka tokenizerlarla
karşılaştırmalı bir değerlendirme yayımlanmamıştır.
Sınırlamalar
- Eğitim korpusu küçük ve siber güvenlik alanına özgüdür. Genel Türkçe veya farklı alanlarda en verimli parçalamayı sağlamayabilir.
- 1.000 tokenlık küçük sözlük, özellikle alan dışı metinlerde uzun token dizilerine neden olabilir.
- Tokenizer metnin anlamını veya doğruluğunu değerlendirmez; eğitim verisindeki hata ve yanlılıkları gidermez.
model_max_lengthdeğeri gerçek bir bağlam sınırı olarak yapılandırılmamıştır. Azami uzunluk, tokenizer’ı kullanan modelin bağlam penceresine göre belirlenmelidir.- Eğitim verisinin ve bu tokenizer’ın lisans koşulları yayımlanmadan önce ayrıca açıkça tanımlanmalıdır.
Amaçlanan kullanım
Uygun kullanım alanları; eğitim, tokenizasyon analizi, Türkçe siber güvenlik metinleriyle küçük ölçekli deneyler ve bir model için başlangıç tokenizer’ı oluşturmadır. Güvenlik açısından kritik kararlar veya üretim sistemleri için bağımsız bir güvenlik bileşeni olarak kullanılmamalıdır.