AI privacy inspection: lab results.
Compare Caged's privacy configurations using measured CPU inspection times and synthetic detection results. Explore the effect of detector choice and text length, with every timing sample available to download.
Caged AI · measured October 3, 2026 · CPU inference · 900 timed inspections
Study setup: Caged's privacy inspection component in monitor mode, processing 100 synthetic texts across three configurations and three passes. Test hardware and workload details accompany the results below.
Compare the privacy engine configurations.
Pattern and language analysis uses structured patterns and language analysis to identify sensitive fields. The local AI model adds model-based entity detection. Combined inspection runs both configurations.
Each configuration processed the same 100 texts in three passes, for 300 timed calls per configuration. The median is the middle observed time; p95 is the time below which 95% of the observed calls fell.
| Configuration | Calls | Median | p95 | Maximum |
|---|---|---|---|---|
| Pattern and language analysis | 300 | 16.14 ms | 67.32 ms | 184.07 ms |
| Local AI model | 300 | 122.47 ms | 454.70 ms | 704.78 ms |
| Combined inspection | 300 | 142.21 ms | 543.53 ms | 1141.54 ms |
The timings measure the local inspection step in monitor mode. Network transport, request routing, masking, and model-provider responses are separate stages of an AI request. Initialization and warmup timings are included in the inspection report.
View results by text length
| Configuration | Text class | Calls | Median | p95 |
|---|---|---|---|---|
| Pattern and language analysis | short | 99 | 4.45 ms | 6.17 ms |
| Pattern and language analysis | medium | 102 | 16.14 ms | 20.12 ms |
| Pattern and language analysis | long | 99 | 63.89 ms | 74.86 ms |
| Local AI model | short | 99 | 66.70 ms | 90.80 ms |
| Local AI model | medium | 102 | 122.47 ms | 187.69 ms |
| Local AI model | long | 99 | 365.06 ms | 534.48 ms |
| Combined inspection | short | 99 | 72.88 ms | 99.98 ms |
| Combined inspection | medium | 102 | 141.18 ms | 217.08 ms |
| Combined inspection | long | 99 | 433.93 ms | 658.12 ms |
The test data changes the result.
The labelled set contains 50 synthetic expected values across names, email addresses, phone numbers, payment test-card values, and SSNs. A value counts as caught when its entity type matches and the detected span overlaps the expected substring.
| Corpus | Configuration | Caught / labelled |
|---|---|---|
| Original synthetic corpus (.invalid emails) | Pattern and language analysis | 37 / 50 |
| Original synthetic corpus (.invalid emails) | Combined inspection | 39 / 50 |
| Reserved example.com email variant | Pattern and language analysis | 47 / 50 |
| Reserved example.com email variant | Combined inspection | 47 / 50 |
The original email fixtures use the reserved .invalid suffix. A follow-up check changed those ten email samples to reserved example.com addresses while retaining the other text and labels. Both versions are downloadable, and both results are shown.
The comparison reports detected values within each labelled synthetic dataset. Use representative input formats when choosing the entity rules and detector configuration for your application.
The lab study explains how to turn this fixture sensitivity into a practical pilot check.
Keep the conditions with the numbers.
- Test hardware
- Apple M2 Max; 96 GiB RAM; ARM64; CPU inference.
- Software
- Python 3.11.13; fixed detector and model configuration across all measured passes.
- Study record
- privacy-inspection-2026-10-03
- Model
- Local CPU inference with verified model assets and offline analysis.
- Workload
- 100 English synthetic timing texts: 33 short, 34 medium, 33 long. Three warmup calls per configuration; three measured passes; one call at a time.
- Timing
- Monotonic perf_counter_ns; seeded text and configuration shuffles (seed 20261003). Median and linearly interpolated p95 are calculated from all recorded samples.
Short texts are under 120 characters, medium texts are 300–600, and long texts are 1,500–2,500. The inspection report includes individual timings, initialization and warmup times, observed host load, and detection observations.
Use these measurements to understand the component and plan validation. The AI governance brief explains how inspection fits into the governed request path.
Inspect the samples and calculations.
The inspection report contains 200 per-case detection observations. Use the supplied test inputs and detected character spans to review detection counts, and the 900 timing samples to check the reported summaries.
The email-domain comparison changes only the detection examples. Both versions use the same timing texts, so the inspection-time comparison stays consistent.
Plan a measured pilot.
Bring the applications, privacy policy, hardware, and network conditions you need to validate. Define the measurements before choosing the deployment configuration.