Deteksi Data Pribadi (PII)
Menemukan nama, nomor identitas, alamat, dan 8 jenis data pribadi lain sebagai rentang karakter.
Model named-entity yang mengembalikan posisi karakter persis dari data pribadi dalam teks, untuk sebelas jenis entitas, sehingga Anda bisa menyamarkan, menghapus, atau mengarahkan bagian yang sensitif saja. Regex menemukan yang punya format; model ini untuk yang tidak — nama, alamat, dan angka yang menjadi data pribadi karena kalimat di sekitarnya. Gunakan keduanya.
Apa yang dijawabnyaDaftar rentang: jenis entitas, posisi awal dan akhir, serta teks yang cocok.
Spesifikasi
Di balik layar
| Indonesia | |
|---|---|
| Model dasar | distilbert-base-multilingual-cased |
| Parameter | 66.0M |
| Ukuran | 66.6 MB |
| Format | ONNX INT8 |
| Token maksimum | 128 |
Didistilasi dari model dasar dengan mempertahankan lebih sedikit layer dan memangkas kosakata ke bahasa yang dilayani, lalu dikuantisasi ke INT8 agar muat di CPU, perangkat edge, atau perangkat embedded.
Contoh penggunaan
Apa yang bisa Anda lakukan
Menyamarkan sebelum teks masuk ke LLM
Ganti setiap rentang dengan placeholder seperti [NAME] atau [NATIONAL_ID] sebelum prompt keluar dari jaringan Anda, lalu kembalikan di jawabannya.
Menghapus data pribadi dari log dan transkrip support
Jalankan di pipeline yang mengirim log ke data warehouse, agar analitik tidak pernah menyimpan NIK atau nomor telepon pelanggan.
Kepatuhan UU PDP
Data pribadi yang tidak pernah keluar dari server Anda adalah cara paling sederhana menjaga perlindungan data. Model berjalan di mesin yang sama dengan datanya.
Contoh hasil
Contoh hasil
Output nyata dari build ini pada baris uji — data yang tidak pernah dilihatnya saat pelatihan. Masing-masing menampilkan input, jawaban model, dan label rujukan pembandingnya. Tidak ada yang ditulis tangan.
>>> classify("Tagihan Jasa Kurir Ekspres. Invoice Ref: KRE/2024/6/1500. Alamat Pengirim: Jl. Raya Cimahi No. 7, 40523. Alamat Tujuan: Jl. Gajah Mada No. 11, 10130. Total Biaya: Rp 75.000.")
[ { "type": "ADDRESS", "start": 75, "end": 103, "value": "Jl. Raya Cimahi No. 7, 40523", "score": 0.9965 }, { "type": "ADDRESS", "start": 120, "end": 148, "value": "Jl. Gajah Mada No. 11, 10130", "score": 0.9967 } ]# Rujukan: ACCOUNT, ADDRESS, ADDRESS ✗ Berbeda
>>> classify("Status Pembayaran: LUNAS. Jumlah Transaksi: Rp 8.000.000. Metode Pembayaran: Kartu Kredit (sudah terenkripsi). Booking ID: MNB001.")
[]
# Rujukan: tidak ada ✓ Sesuai
>>> classify("Tanggal Lahir saya adalah 10/06/1990. Mohon cek data KTP 3374091006900007.")
[ { "type": "DOB", "start": 26, "end": 36, "value": "10/06/1990", "score": 0.9962 }, { "type": "NATIONAL_ID", "start": 57, "end": 73, "value": "3374091006900007", "score": 0.9948 } ]# Rujukan: DOB, NATIONAL_ID ✗ Berbeda
>>> classify("Udh selesai ya maintenance sistemnya? Mau coba login ulang.")
[]
# Rujukan: tidak ada ✓ Sesuai
>>> classify("Hasil Tes Lab Darurat. Pasien: Galih Rakasiwi. Akses Log masuk dari IP Address: 192.168.1.105.")
[ { "type": "PERSON", "start": 31, "end": 45, "value": "Galih Rakasiwi", "score": 0.9963 }, { "type": "IP_ADDRESS", "start": 80, "end": 93, "value": "192.168.1.105", "score": 0.9955 } ]# Rujukan: PERSON, IP_ADDRESS ✗ Berbeda
Data latih
Data latih
Dokumen sintetis yang dibuat dengan Gemini di Vertex AI dengan rentang karakter berlabel, dari chat sampai kontrak. Dinilai per entitas: nama yang terdeteksi "Budi" padahal "Budi Santoso" dihitung salah.
Kelas yang dipelajari model ini untuk dikenali:
| Label | Arti |
|---|---|
PERSON | Nama orang. |
NATIONAL_ID | Nomor identitas nasional — NIK, NRIC, SSN. |
TAX_ID | Nomor pokok wajib pajak — NPWP, TIN. |
PASSPORT | Nomor paspor. |
PHONE | Nomor telepon atau ponsel. |
EMAIL | Alamat email. |
ADDRESS | Alamat jalan atau pos. |
ACCOUNT | Nomor rekening bank atau IBAN. |
CREDIT_CARD | Nomor kartu pembayaran. |
IP_ADDRESS | Alamat IPv4 atau IPv6. |
DOB | Tanggal lahir. |
Lima baris contoh pertama, beserta label masing-masing:
| # | Teks | Label |
|---|---|---|
| 0 | Tagihan Jasa Kurir Ekspres. Invoice Ref: KRE/2024/6/1500. Alamat Pengirim: Jl. Raya Cimahi No. 7, 40523. Alamat Tujuan: Jl. Gajah Mada No. 11, 10130. Total Biaya: Rp 75.000. | ACCOUNT, ADDRESS, ADDRESS |
| 1 | Status Pembayaran: LUNAS. Jumlah Transaksi: Rp 8.000.000. Metode Pembayaran: Kartu Kredit (sudah terenkripsi). Booking ID: MNB001. | tidak ada |
| 2 | Tanggal Lahir saya adalah 10/06/1990. Mohon cek data KTP 3374091006900007. | DOB, NATIONAL_ID |
| 3 | Udh selesai ya maintenance sistemnya? Mau coba login ulang. | tidak ada |
| 4 | Hasil Tes Lab Darurat. Pasien: Galih Rakasiwi. Akses Log masuk dari IP Address: 192.168.1.105. | PERSON, IP_ADDRESS |
Skrip intura-ai
Jalankan dengan SDK intura-ai
- 1
Dapatkan
Masuk di situs ini lalu tekan Dapatkan. Model masuk ke library Anda beserta semua versinya.
- 2
Buat kunci unduhan
Di halaman akun, buat kunci unduhan lalu pasang sebagai INTURA_API_KEY. Kunci ini hanya mengunduh yang Anda miliki.
- 3
Pasang
pip install "intura-ai[local]" — SDK beserta runtime CPU yang dipakainya untuk menjalankan model di mesin Anda.
- 4
Jalankan
Jalankan skripnya. Skrip mengunduh build sekali dan memeriksa SHA-256 setiap file, lalu berjalan di CPU, perangkat edge, atau Linux embedded Anda — tanpa panggilan jaringan setelah diunduh.
# pip install "intura-ai>=3.0.0"
# export INTURA_API_KEY=... # a download key from your account
from intura_ai import Intura, LocalModel
client = Intura()
# Downloads once into ./guardrails-pii-detection-id/v1.1; later runs reuse the files on disk.
model_dir = client.models.download("guardrails-pii-detection-id", version="v1.1")
model = LocalModel.load(model_dir) # CPU, no network from here on
print(model.predict('Tagihan Jasa Kurir Ekspres. Invoice Ref: KRE/2024/6/1500. Alamat Pengirim: Jl. Raya Cimahi No. 7, 40523. Alamat Tujuan: Jl. Gajah Mada No. 11, 10130. Total Biaya: Rp 75.000.'))
# [{"type": ..., "start": ..., "end": ..., "value": ...}, ...]Offset mengacu pada string persis yang Anda kirim. Samarkan pada string itu, bukan salinan yang ditokenisasi ulang. Gini tidak berlaku untuk ekstraksi rentang; precision, recall, dan F1 dihitung per entitas.
Ingin melihat jawabannya sebelum mendapatkannya? Baca bagian Contoh hasil
Versi
Versi
Setiap versi tetap bisa diunduh setelah Anda memiliki modelnya. ID versi menamai persis byte yang Anda unduh.
v1.1DirekomendasikanONNX INT866.6 MBDirilis 17 Okt 2026v1.0ONNX INT866.6 MBDirilis 14 Okt 2026
Masukan
Perlu ada yang diubah di model ini?
Minta label atau bahasa baru, beri tahu kami di mana hasilnya meleset pada data Anda, minta bantuan menjalankannya, atau laporkan bug. Setiap pesan dibaca oleh tim kami dan dibalas lewat email.
Temukan model untuk tugas Anda.
Cari berdasarkan tugasnya, baca contoh hasil nyata, lalu unduh untuk dijalankan di CPU Anda sendiri — mulai $9 selama early bird.