Instructions to use cagrigungor/pii-guard-turkish-270m-gguf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use cagrigungor/pii-guard-turkish-270m-gguf with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="cagrigungor/pii-guard-turkish-270m-gguf") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("cagrigungor/pii-guard-turkish-270m-gguf") model = AutoModelForCausalLM.from_pretrained("cagrigungor/pii-guard-turkish-270m-gguf", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use cagrigungor/pii-guard-turkish-270m-gguf with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M # Run inference directly in the terminal: llama cli -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M # Run inference directly in the terminal: llama cli -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
Use Docker
docker model run hf.co/cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use cagrigungor/pii-guard-turkish-270m-gguf with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "cagrigungor/pii-guard-turkish-270m-gguf" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cagrigungor/pii-guard-turkish-270m-gguf", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
- SGLang
How to use cagrigungor/pii-guard-turkish-270m-gguf with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "cagrigungor/pii-guard-turkish-270m-gguf" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cagrigungor/pii-guard-turkish-270m-gguf", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "cagrigungor/pii-guard-turkish-270m-gguf" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cagrigungor/pii-guard-turkish-270m-gguf", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use cagrigungor/pii-guard-turkish-270m-gguf with Ollama:
ollama run hf.co/cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
- Unsloth Desktop
- Docker Model Runner
How to use cagrigungor/pii-guard-turkish-270m-gguf with Docker Model Runner:
docker model run hf.co/cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
- Lemonade
How to use cagrigungor/pii-guard-turkish-270m-gguf with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull cagrigungor/pii-guard-turkish-270m-gguf:Q4_K_M
Run and chat with the model
lemonade run user.pii-guard-turkish-270m-gguf-Q4_K_M
List all available models
lemonade list
- Atomic Chat
PII Guard Turkish 270M (GGUF)
Mobil ve kenar cihazlar için GGUF paketlenmiş Türkçe talimat-koşullu PII maskeleme modeli. q8_0 (292MB, kalite önceliği) ve 253MB, boyut/hız önceliği) sürümleri içerir; llama.cpp, Ollama ve llama.rn ile doğrudan çalışır.q4_k_m (
Girdi : Ahmet Yıldız 0542 321 45 67 numarasından aradı, ibanı TR12 0001 2000 0034 5678 9012 34
Çıktı : [AD] [TEL] numarasından aradı, ibanı [IBAN]
Bir LLM'e veri göndermeden önceki maskeleme katmanı, log temizleme ve KVKK/GDPR veri minimizasyonu için tasarlandı. 53 PII etiketi tanır ve talimat okur: aynı metin, farklı politika altında farklı maskelenir.
Sonuçlar
Eğitim verisinden tamamen bağımsız, elle kurulmuş 1.000 örneklik benchmark üzerinde satır düzeyi tam eşleşme (çıktının beklenen metinle karakter karakter aynı olması — tek bir etiket hatası satırın tamamını yanlış sayar):
| Model | Tam Eşleşme (1000) | Şema-nötr (903) |
|---|---|---|
| cagrigungor/pii-guard-turkish-0.8b | 0.876 | 0.889 |
| cagrigungor/pii-guard-turkish-0.6b | 0.828 | 0.850 |
| cagrigungor/pii-guard-turkish-270m | 0.740 | 0.770 |
| melikegks/turkish-pii-guard-0.8b | 0.731 | 0.810 |
Şema-nötr sütun, [YAS] [CINSIYET] [UYRUK] etiketlerinin maskelenmesini gerektiren 97 satır
hariç tutularak hesaplanır (bu üç etiket her modelin şemasında bulunmadığından modeller arası
adil kıyas bu sütundur). Benchmark halka açıktır ve yeniden üretilebilir:
- Kaggle: https://www.kaggle.com/datasets/aiwithcagri/turkish-pii-masking-benchmark
- Hugging Face: https://huggingface.co/datasets/cagrigungor/turkish-pii-masking-benchmark
Benchmark bileşimi: tam maskeleme (350), beyaz liste (200), kara liste (150), kapsam dışı (100), tuzaklı negatif (200); içinde BÜYÜK HARF, Türkçe ek almış PII, sözle yazılmış numaralar, çok kişili metinler ve 300-900 karakterlik uzun girdiler işaretli dilimler halinde bulunur.
Kategori kırılımı (bu model): tam maskeleme 0.723 · beyaz liste 0.620 · kara liste 0.740 · kapsam dışı 0.730 · negatif 0.895. Zor dilimler: ekli PII 0.818 · BÜYÜK HARF 0.505 · uzun metin 0.521 · sözle yazım 0.649.
Eğitim
| Taban model | google/gemma-3-270m-it |
| Yöntem | LoRA (r=16, alfa=32), bf16, completion-only loss, Unsloth |
| Bağlam | 768 token |
| Veri | Sentetik Türkçe bankacılık/ERP metni, 53 PII etiketi, ~400.000 örnek |
| Split | Modül düzeyinde train/val ayrımı; benchmark tamamen bağımsız üretim |
Kullanım
GGUF dosyaları llama.cpp tabanlı tüm çalıştırıcılarla uyumludur. q8_0 kalite,
q4_k_m boyut/hız önceliklidir; mobilde önce q4_k_m deneyin.
llama.cpp
llama-cli -m gemma-3-270m-it.Q4_K_M.gguf --temp 0 \
-p "<start_of_turn>user\nMetindeki tüm kişisel verileri uygun etiketlerle maskele.\n\nMetin: müşteri Ayşe Yılmaz tc 12345678901<end_of_turn>\n<start_of_turn>model\n"
Ollama
Repodaki Modelfile ile: ollama create pii-guard -f Modelfile
React Native / Expo (llama.rn)
import { initLlama } from "llama.rn";
const ctx = await initLlama({ model: modelPath, n_ctx: 1024 });
const { text } = await ctx.completion({
prompt: `<start_of_turn>user\n${talimat}\n\nMetin: ${girdi}<end_of_turn>\n<start_of_turn>model\n`,
n_predict: 512, temperature: 0, stop: ["<end_of_turn>"],
});
Prompt biçimi eğitimle birebir aynı olmalıdır; temperature: 0 kullanın.
llama.cpp BOS tokenını otomatik ekler, elle eklemeyin.
Politika biçimleri
Model talimatı okur; aynı metin farklı politika altında farklı maskelenir.
| Politika | Örnek talimat |
|---|---|
| Tam maskeleme | "Metindeki tüm kişisel verileri uygun etiketlerle maskele." |
| Beyaz liste | "Sadece IBAN ve telefon numarasını maskele. Gerisi aynen kalsın." |
| Kara liste | "Ad soyad hariç bütün hassas alanları etiketle." |
| Kategori | "Yalnızca özel nitelikli kişisel veriler maskelenecek." |
| Kapsam dışı | Talimatta istenen etiket metinde yoksa çıktı girdiyle aynı kalır. |
Etiketler
53 etiket, dokuz kategoride.
| Kategori | Etiketler |
|---|---|
| Kimlik | [AD] [TCKN] [DOGUM_TARIHI] [DOGUM_YERI] [ANNE_ADI] [ANNE_KIZLIK] [BABA_ADI] [PASAPORT_NO] [EHLIYET_NO] [SGK_NO] [IMZA] |
| Finansal | [IBAN] [HESAP_NO] [KART] [KART_SKT] [CVV] [MAAS] [VERGI_NO] [MUSTERI_NO] [KREDI_NOTU] [POLICE_NO] [SOZLESME_NO] [KRIPTO_CUZDAN] |
| İletişim | [TEL] [EMAIL] [ADRES] [KONUM] |
| Özel nitelikli (KVKK md. 6) | [SAGLIK] [DIN] [ETNIK_KOKEN] [SENDIKA] [BIYOMETRIK] [CEZA_KAYDI] [KAN_GRUBU] [ENGEL_DURUMU] |
| Kimlik doğrulama | [SIFRE] [PIN] [KULLANICI_ADI] |
| Cihaz ve ağ | [IP_ADRES] [MAC_ADRES] [IMEI] [CIHAZ_ID] |
| Araç | [PLAKA] [SASI_NO] [MOTOR_NO] [RUHSAT_NO] |
| İstihdam ve diğer | [SICIL_NO] [ISYERI] [AILE] [REFERANS] |
| Demografi | [YAS] [CINSIYET] [UYRUK] |
Türkçeye özgü davranış
- Ek almış PII: kesme işaretli ekler ünlü uyumuyla korunur —
Ayşe Yılmaz'ın hesabına havale yap->[AD]'ın hesabına havale yap - Sözle yazılmış değerler:
tc kimlik numaram yedi bir dokuz yedi ...->tc kimlik numaram [TCKN] - BÜYÜK HARF girdi:
ADIM AHMET TC 12345678901->ADIM [AD] TC [TCKN] - Çok kişili metin: aynı cümledeki farklı kişiler ayrı ayrı maskelenir
- Tuzaklara direnç: fatura/sipariş numarası, şehir adlı projeler, "tc kimlik alanı boş bırakılamaz" gibi PII kelimesi geçen ama PII içermeyen metinler değiştirilmez
Sınırlar
- Değerlendirme sentetik veriyle yapılmıştır. Eğitim ve benchmark verisi Faker + LLM üretimidir; gerçek kişi verisi içermez. Gerçek kullanıcı metnindeki performans ölçülmemiştir. Kendi verinde ölçmeden kritik bir hatta koyma.
- Şema dışı etiket üretebilir. Üretimde 53 etiketlik bir whitelist katmanı öneririz; şema dışı etiket içeren çıktıyı reddedip insan incelemesine gönder.
- Zayıf dilimler (benchmark kırılımından): kara liste talimatları ve sözle yazılmış uzun sayı dizileri en düşük skorlu dilimlerdir. Bu dilimlerde çıktı doğrulaması ekle.
- Yalnızca Türkçe. Başka dillerde test edilmedi.
- Karar destek aracı değildir. KVKK/GDPR sorumluluğu kullanandadır; kritik akışlarda insan denetimi gerekir.
Yazar
Hasan Çağrı Güngör iletisim@cagrigungor.com — https://finiscode.com
Alıntı
@misc{pii-guard-turkish,
title = {PII Guard Turkish},
author = {Hasan Çağrı Güngör},
year = {2026},
url = {https://huggingface.co/cagrigungor/pii-guard-turkish-270m-gguf}
}
- Downloads last month
- 110
4-bit
8-bit