
Two companies, one AI model, zero shared data
David Uzan · 10 August 2026
Here's a quiet inefficiency hiding inside most industries: competitors and partners are training the same machine learning models, on the same kinds of data, in parallel, separately, and every one of those models is worse than the model they could build together.
Take two telecom carriers, each running an anomaly detection model over its own network: dropped calls, traffic spikes, suspicious routing. Each model only ever learns from one network. A fraud pattern that spans both networks is invisible to both. A model trained on the combined picture would catch it, but the combined picture is exactly what neither carrier can have.
The obvious fix, pooling the data, is off the table; nobody ships raw network telemetry to a competitor. The less obvious fix, sharing trained model weights instead of data, turns out to be almost as bad. Weights leak. Researchers have shown that trained weights can reveal a lot about the data behind them, which means handing over your model is uncomfortably close to handing over your network map.
What Federated Average does
Federated Average (FedAvg) is the JuLenny function that breaks this deadlock. Each organization trains locally, and the platform combines the learning, not the data, with nobody seeing anybody's weights. Not the other party. Not JuLenny.
The round looks like this:
Each carrier trains the model on its own data, as usual, on its own infrastructure. Nothing about local training changes.
Each carrier encrypts its trained model weights locally with the JuLenny client and uploads only the ciphertext.
The platform computes a weighted average of the encrypted weights, with each side's contribution scaled by how much data it trained on. All of the arithmetic happens on encrypted values. There is no point in the process where the actual numbers are visible to anyone, including us: the joint key is split between the parties, and decryption of the result requires both to approve.
Each carrier downloads the averaged global weights, decrypts, and loads them into its local model. Both now run a model that learned from both networks.
Then they do it again. FedAvg is iterative by nature: train locally, average, train locally, average. Each round the global model gets better, and each round is an independent computation on the platform. Daily, weekly, hourly, whatever the operation needs.
What nobody learns
Neither organization sees the other's raw data, ever; it never leaves its owner's premises. Neither sees the other's individual model weights, only the combined average. And the platform sees ciphertext from start to finish. Even a full compromise of JuLenny's cloud would expose encrypted vectors that nobody, including JuLenny, holds the key to decrypt.
That last property is what separates this from "federated learning" as it's usually deployed, where a central coordinator sees every participant's weight updates in the clear and everyone simply agrees to trust it.
Where this pattern shows up
Banking: two banks each train fraud models on their own transaction graphs. The combined model catches the fraudster who moves money between accounts at different institutions, the case that defeats every single-bank model by design.
Healthcare: hospitals train diagnostic models on local patient cohorts. The combined model benefits from a larger, more diverse population. No patient record crosses an institutional boundary.
Cyber defense: agencies and companies that will never share raw threat intelligence can still combine what their detection models have learned, and catch coordinated attacks no single party could see.
Manufacturing: quality prediction models from separate production lines, averaged into one model that has seen more defect patterns than either line alone.
The honest framing
Your model is only as good as the data it has seen, and the most valuable data is usually the data you can't get: it sits with your peers, your partners, sometimes your competitors. FedAvg on JuLenny is a way to get the benefit of that data without anyone giving anything up. Each party keeps its data, keeps its weights, keeps its key share, and walks away with a better model.
If you have a model that would improve with a partner's data, and a partner who will never hand that data over, this is the function to start with. Get in touch.