Repositori ini menyempurnakan sistem deteksi PII yang canggih dan meningkatkan kinerja dengan pembuatan data PII sintetis.
Pendahuluan • Sorotan • Data PII sintetis • Sistem deteksi entitas PII • Masalah •
Informasi Identifikasi Pribadi (PII) adalah data sensitif yang digunakan untuk mengidentifikasi, menemukan, atau menghubungi seseorang. Sistem Deteksi Entitas PII dapat mengidentifikasi, mengkategorikan, dan mereduksi informasi sensitif dalam teks yang tidak terstruktur. Meningkatkan sistem deteksi PII membantu menjaga privasi dan keamanan individu, mematuhi persyaratan hukum dan peraturan, dan mencegah pencurian identitas, penipuan, atau jenis kerusakan lainnya. Gambar 1 memberikan contoh entitas PII yang menggunakan format di dalam, luar, awal (IOB).

Gambar 1: Contoh data PII dalam format IOB [Sumber].
Pekerjaan dalam repositori ini diturunkan selama Kompetisi Kaggle Lab Badan Pembelajaran - Deteksi Data PII. Menggunakan teknik dalam repositori ini akan memberikan solusi di 1% teratas untuk kompetisi.
PII PlaceHolders alih -alih langsung memasukkan data PII ke dalam prompt.class_weights dalam pelatih wajah yang memeluk dan dengan kehilangan fokus atau kehilangan entropi silang. Format IOB, juga biasanya disebut sebagai format bio, adalah format penandaan umum untuk menandai token dalam tugas chunking seperti aplikasi pengenalan entitas bernama (NER). Membuat set data bio berlabel dapat menjadi waktu dan padat karya untuk dataset spesifik domain. Pendekatan alternatif adalah untuk secara sintetis menghasilkan kumpulan data PII yang secara sintetis mewakili aplikasi kehidupan nyata Anda. Lihat Direktori gen-data untuk kode untuk membuat data PII spesifik domain. File di bawah ini akan dieksekusi secara berurutan karena masing -masing mewakili tugas yang berbeda dalam pembuatan data PII sintetis.
Data PII sintetis dibuat menggunakan Faker dan fungsi khusus untuk membuat informasi PII. Data ini ditempatkan ke dalam teks tidak terstruktur yang dihasilkan LLM yang dibuat pada langkah berikutnya.
LLM generatif (misalnya, LLAMA3) digunakan untuk menghasilkan teks tidak terstruktur yang menyerupai teks spesifik domain. Dalam repositori ini data meniru esai dari siswa dalam kursus online. Lihat berbagai petunjuk untuk meminta contoh yang digunakan dalam pekerjaan ini.
PEMBERITAHUAN : Wawasan bermanfaat yang dipelajari selama pekerjaan ini adalah untuk mendorong LLM untuk membuat placeholders untuk data PII. Data dari langkah #1 akan disuntikkan ke placeholder. Pendekatan Placeholder PII memberikan manfaat anekdotal berikut:
Dua contoh strategi yang diminta diberikan yang menunjukkan perbedaan antara mendorong PII secara langsung (Contoh 1) dan kemudian dengan placeholder (Contoh 2).
Contoh 1: LLM Meminta Injeksi Data PII Langsung
Model Prompt:
Write an sentence introducing yourself and include only your personal information provided below:
- FULL_NAME: John Doe
- PHONE_NUM: 555-123-4567
Model Response:
My name is John Doe and you can reach me at 555-125-4567 or by email at [email protected].Teknik yang mendorong ini secara rutin memperkenalkan beberapa kesalahan dari LLMS yang sulit untuk dikenali secara terprogram dan menyebabkan kesalahan pelabelan PII dalam format bio. Contoh 1 meminta model untuk secara langsung memasukkan data PII ke dalam teks dan memperhatikan beberapa kesalahan:
[email protected] .Contoh 2: LLM Meminta Placeholder PII
Model Prompt:
Write an sentence introducing yourself and include only your personal information using the placeholders provided below:
- {FULL_NAME}: First and Last Name
- {PHONE_NUM}: Personal phone number
Model Response:
My name is {FULL_NAME} and you can reach me at {PHONE_NUM}.Dengan Contoh 2 LLM tidak memiliki kesempatan untuk mengubah kesalahan apa pun di phone_num atau dengan full_name. Juga, tampaknya LLM akan lebih jarang menggabungkan entitas PII tambahan.
Dua langkah di atas memisahkan data PII dan pembuatan teks spesifik domain. Pada Langkah #3 Data PII Langkah #1 dimasukkan ke dalam Langkah #2's LLM Domain Spesifik Teks. Ini berguna karena Anda dapat dengan mudah bereksperimen dengan kombinasi data PII yang berbeda dan data pembuatan teks spesifik domain.
Model LLM berkinerja terbaik untuk deteksi entitas PII adalah Bert yang ditingkatkan decoding Microsoft dengan model V3 perhatian yang terpencil. Model ini secara konsisten berkinerja baik untuk tugas -tugas model encoder seperti Named Entity Recognition (NER), pertanyaan dan jawaban, dan klasifikasi.
Titik awal yang baik untuk melatih model Deberta-V3 adalah dengan modul fine-tuning Deberta-V3 baseline. Dalam modul ini pelatih wajah pelukan khusus diciptakan untuk berlatih dengan kehilangan fokus atau kehilangan CE untuk memperhitungkan ketidakseimbangan kelas.
class CustomTrainer ( Trainer ):
def __init__ (
self ,
focal_loss_info : SimpleNamespace ,
* args ,
class_weights = None ,
** kwargs ):
super (). __init__ ( * args , ** kwargs )
# Assuming class_weights is a Tensor of weights for each class
self . class_weights = class_weights
self . focal_loss_info = focal_loss_info
def compute_loss ( self , model , inputs , return_outputs = False ):
# Extract labels
labels = inputs . pop ( "labels" )
# Forward pass
outputs = model ( ** inputs )
logits = outputs . logits
# Loss calculation
if self . focal_loss_info . apply :
loss_fct = FocalLoss ( alpha = 5 , gamma = 2 , reduction = 'mean' )
loss = loss_fct ( logits . view ( - 1 , self . model . config . num_labels ),
labels . view ( - 1 ))
else :
loss_fct = CrossEntropyLoss ( weight = self . class_weights )
if self . label_smoother is not None and "labels" in inputs :
loss = self . label_smoother ( outputs , inputs )
else :
loss = loss_fct ( logits . view ( - 1 , self . model . config . num_labels ),
labels . view ( - 1 ))
return ( loss , outputs ) if return_outputs else lossTrik dan tip lebih lanjut untuk membantu menyempurnakan sistem deteksi PII yang terkandung dalam direktori pelatihan adalah:
unlabeled datasets untuk mengekspos model ke pola dan terminologi bahasa khusus domain. Menyempurnakan model yang menjalani pra-pelatihan tambahan pada tugas atau domain tertentu, dimulai dengan pos pemeriksaan awal yang disesuaikan untuk tugas dan distribusi data yang ada, biasanya menghasilkan kinerja yang lebih baik dibandingkan dengan model penyempurnaan yang dimulai dari pos pemeriksaan awal generik [Sumber: 1, 2].Catatan : Alur kerja yang disajikan di sini dapat disesuaikan untuk banyak aplikasi pembelajaran yang mendalam wajah, bukan hanya LLM.
Repositori ini akan melakukan yang terbaik untuk dipertahankan. Jika Anda menghadapi masalah apa pun atau ingin melakukan perbaikan, silakan angkat masalah atau kirimkan permintaan tarik. ?