Cross-platform federated learning SDK
Veil
Personalization without collecting user data. Ranking models train and run on the user's device; only noised, masked updates leave it, and each brand has a hard privacy budget.
- TypeScript
- Swift
- Kotlin
- Fastify
Key numbers
- 0
raw training examples leave the device
- ε ≤ 10
privacy budget per brand and model
How it works
- Local contextconsented categories only
- On-device rankingpicks what to show
- Local learningopt-in, clipped
- Noise, then maskthe only thing sent
- Threshold aggregationminimum participants
- Brand dashboardaggregates only
Decisions that matter
The device does the work
Ranking runs on the phone or in the browser. Turning consent off really changes what feeds the model, and private learning stays off until the person opts in.
A budget that closes
Every training round spends privacy budget, tracked per brand and per model. A round that would push it past ε = 10 is refused, not logged and allowed.
Three platforms, one answer
Shared golden vectors check that the web, iOS and Android feature encoders turn the same input into the exact same numbers, so the three SDKs train one model.
Results
Limits. A working demo, not a deployed product, with synthetic data. Masks come from the server rather than being agreed between devices, and a round cannot survive dropouts; the project documents both.
