4 ms·
Very interesting. It makes sense that you could learn the model for something like classification which has a cut and dry answer. Just brute force queries at th
by danvoell 10y ago
Very interesting. It makes sense that you could learn the model for something like classification which has a cut and dry answer. Just brute force queries at the API, log the results, and start working on your own model based on theirs.
- yid 10y ago> Just brute force queries at the API, log the results, and start working on your own model based on theirs. To add insult to injury, you could outsource the training of your own model to the API too.
- dharma1 10y agoAPI rate limits? Suppose you could get around that with multiple IPs/accounts. How many queries do you need to steal a (reasonable size) model?
- yid 10y agoDepends on too many factors for even a ballpark. Take Google's Machine Vision API for instance. The limiting factor here is that the larger your model (and deep networks are very large models in terms of free parameters), the more training data you need to make a good approximation. To come close to "stealing" their entire trained model, my guess is that your API use would probably multiply Google's annual revenue by a small positive integer. Alternatively, you could restrict your "stolen" model to a smaller domain and use fewer, more targeted examples for training. But at this point, you might as well start blending in predictions from other APIs, perhaps even training one off the errors of another. This is basically a technique that has been around for a long time, and in one incarnation is called "boosting" (see Adaboost).
- vintermann 10y agoYou don't need to steal the whole model. You can train a model yourself, and just "steal" those "bits" of a model that you can't reach with your own training data. With carefully selected queries based on an already trained model, I think you many not need so terribly many. But that's just an intuition.