Is it possible to make a verifiable data provenance log for datasets used for machine learning? Sort of a hash that would confirm that a collection of datasets were actually used to train a given model.

Example. We have a collection of 10 datasets: D1-D10. Let's say D1, D5 and D6 were used for training. The task is to save some kind of a "provenance hash" that would certify that no other dataset was used, except for D1, D5, D6. In other words, it should be verifiable that:

  • D1, D5 and D6 were actually used,
  • D2, D3, D4, D7-D10 were not used,
  • no other data was also used.

The last one is hard, so maybe this statement should be probabilistic.


1 Answer 1


In general, certainly not.

  • Problem 1: assuming there is such as hash which identifies the datasets, how could the hash be linked to the model in a permanent way? What would prevent anybody to modify, replace, switch hashes?
  • Problem 2: "a dataset" can mean anything. The same exact data can be represented in different ways, and of course there's no standard method to identify them (no international database of all the possible datasets ids, for example).
  • Problem 3: different datasets may have instances in common. For example if D1 and D2 vary only by 2 or 3 instances out of 1000, is it really useful to know that one was used and not the other?
  • $\begingroup$ The idea is not to check that a given dataset was used for training of a given model. The idea is to log this process. Sort of a hash that verifies that the training was actually performed on a given dataset. This hash can be probabilistic, not the type of hash we use for bitcoin mining or orther types of integrity verification. By hash I mean some kind of a trace that the process of training produces. $\endgroup$ Commented Feb 6, 2022 at 14:45
  • $\begingroup$ Sorry I misunderstood then. So you mean that there is a finite set D of known possible datasets, each with a unique id, and you are looking for a way to represent any subset of D as a hash? If so I don't see anything specific to datasets to it, you could for instance use something like a Bloom filter. $\endgroup$
    – Erwan
    Commented Feb 6, 2022 at 15:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.