Tensorflow is non-deterministic for some operations due to thread scheduling. PyTorch doesn’t have this issue.
This makes it a lot harder to rely on OpenAI's API if you are doing any sort of caching / evaluation workloads.
My guess is that promising it right now is not a priority. It would be a great "pro" or "enterprise" type feature tho.
It is strange that cub does not guarantee determinism here - it's not too hard an op to implement in CUDA.
The source code shows that it's using pickling to store OpenAI responses on the local filesystem. See here:
https://github.com/ianb/infinite-ai-array/blob/main/iaia/gpt...
and here:
https://github.com/ianb/infinite-ai-array/blob/main/iaia/gpt...
If it was JSON then it wouldn't be crazy to add it to your repository. (I guess Pickle is stable enough in practice, but it would offend my personal sensibilities to check them in.)
I can't imagine it's too hard to serialize the `existing` python dict so subsequent runs are deterministic
The problem* is that if a prompt changes slightly then it won't be a cache hit.
* okay, one problem.