Lompat ke konten
Intura
Produk / Model / Guardrails
IndonesiaGuardrailsEkstraksi entitas (NER)

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

Di balik layar
Indonesia
Model dasardistilbert-base-multilingual-cased
Parameter66.0M
Ukuran66.6 MB
FormatONNX INT8
Token maksimum128

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.

python
  1. >>> 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

  2. >>> classify("Status Pembayaran: LUNAS. Jumlah Transaksi: Rp 8.000.000. Metode Pembayaran: Kartu Kredit (sudah terenkripsi). Booking ID: MNB001.")

    []

    # Rujukan: tidak ada ✓ Sesuai

  3. >>> 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

  4. >>> classify("Udh selesai ya maintenance sistemnya? Mau coba login ulang.")

    []

    # Rujukan: tidak ada ✓ Sesuai

  5. >>> 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:

Kelas yang dipelajari model ini untuk dikenali:
LabelArti
PERSONNama orang.
NATIONAL_IDNomor identitas nasional — NIK, NRIC, SSN.
TAX_IDNomor pokok wajib pajak — NPWP, TIN.
PASSPORTNomor paspor.
PHONENomor telepon atau ponsel.
EMAILAlamat email.
ADDRESSAlamat jalan atau pos.
ACCOUNTNomor rekening bank atau IBAN.
CREDIT_CARDNomor kartu pembayaran.
IP_ADDRESSAlamat IPv4 atau IPv6.
DOBTanggal lahir.

Lima baris contoh pertama, beserta label masing-masing:

Lima baris contoh pertama, beserta label masing-masing:
#TeksLabel
0Tagihan 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
1Status Pembayaran: LUNAS. Jumlah Transaksi: Rp 8.000.000. Metode Pembayaran: Kartu Kredit (sudah terenkripsi). Booking ID: MNB001.tidak ada
2Tanggal Lahir saya adalah 10/06/1990. Mohon cek data KTP 3374091006900007.DOB, NATIONAL_ID
3Udh selesai ya maintenance sistemnya? Mau coba login ulang.tidak ada
4Hasil 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. 1

    Dapatkan

    Masuk di situs ini lalu tekan Dapatkan. Model masuk ke library Anda beserta semua versinya.

  2. 2

    Buat kunci unduhan

    Di halaman akun, buat kunci unduhan lalu pasang sebagai INTURA_API_KEY. Kunci ini hanya mengunduh yang Anda miliki.

  3. 3

    Pasang

    pip install "intura-ai[local]" — SDK beserta runtime CPU yang dipakainya untuk menjalankan model di mesin Anda.

  4. 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.

run.py
# 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.

  1. v1.1DirekomendasikanONNX INT866.6 MBDirilis 17 Okt 2026
  2. v1.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.

Mulai dengan

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.