ML Treningski Podaci: Reproducibilni Presetovi za Privatnost
Problem Reproducibilnosti
Klasični ML pipeline:
- Original podaci → Privatni
- Anonimizovani podaci → Deljivi
- Model → Trebao bi biti identičan
Bez reproducibilnosti, eksperimenti se ne mogu ponoviti.
Rešenje: Seeded Anonimizacija
import hashlib
def reproducible_anonymize(text, seed=42):
# Koristi seed za determinatsku generaciju
random.seed(seed)
hash_seed = hashlib.sha256(str(seed).encode()).hexdigest()
analyzer_results = analyzer.analyze(text, language="sr")
key_mapping = {}
for result in analyzer_results:
original = text[result.start:result.end]
if original not in key_mapping:
# Generiši determinatsku zamenu
entity_hash = hashlib.sha256(
f"{original}{hash_seed}".encode()
).hexdigest()[:8]
key_mapping[original] = f"[{result.entity_type}_{entity_hash}]"
return key_mapping
Presetovi za ML
{
"ml_training_preset": {
"entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
"anonymization_method": "deterministic_hash",
"seed": 42,
"document_seed_derivation": true
}
}
Zahtevi za Reproducibilnost
- Deterministička transformacija: Ista ulazna vrednost = ista izlazna vrednost
- Dokumentovan seed: Pesadžaj za ponovno poklapanje
- Verzionisano mapiranje: Pratiti promene u ključu
Zaključak
Reproducibilna anonimizacija omogućava timovima da rade sa privatnim ML podacima bez žrtvovanja obnovljivosti eksperimenta.