Most dev teams probably run Redis in production and having neural networks as a datatype could be incredibly powerful -- it will make neural networks much more accessible.
While this was a 48h personal hackathon (insane!) by Salvatore, I hope it makes it into Redis core.
I will be spending my weekend on playing with this and trying it out with different internal datasets.
Also, the documentation is a treat. It teaches the basics of NNs very well.
Sorry in the README I meant 48 hours of total time, and about 24-28 hours of total work. However now it's already more, but looking at the commit history says it all.
Also note that nn.c was just modified, it's code I wrote before (years ago). The code I wrote in 2 days is the neuralredis.c file for a total of 1200 lines of code (including comments) plus most of the README.
I love this idea, but I'm also worried this is papering over a lot of the truly hard parts of building products on machine learning - the hard part isn't crunching the numbers.
I totally agree, and indeed the help that Neural Redis attempts to provide is mainly in the data collection function and the simplicity to experiment. Actually for the number crunching part there are a lot of stellar alternatives (that we can just "connect" to Neural Redis as NN implementation later). The problem is to find a good API for the programmer that allows to easily make experiments.
I'm only on basic understanding of this, so this will be a cool learning tool! Can you, or more precisely did anyone try to create a decoder like this? For example, taking an input stream of mpeg4 or prores or whatever and giving that and the decoded output to the network and, after awhile, see what happens?
Or CNNs... However I see RNNs more in the future of Neural Redis than CNNs that are more domain-specific, while RNNs are an orthogonal tool for modeling algorithms and not functions.
I didn't mean video specifically though. I mean decoding in general. Input and output fed in, and try to replicate blackbox encoder/decoder and see what happens. I'm sure it wouldn't work on (advanced) encryption because of some mathy reasons, but.. I don't know, xoring and RLE could work I guess? Only one way to find out! If it could work on more complicated codec systems, it would be an interesting approach regarding IP.
Yep, true... however note that the current Redis incarnation of NNs don't use RNNs nor convolutional NNs that are the big news in the area, it's mostly stuff that was accessible 10 years ago or more. Just computers are now a lot faster even without GPUs, so that small feed forward NNs can be trained in little time and show that they can be pretty useful, especially in a context where the data ingestion and training are encapsulated into an easy to use API.
Nothing prevents us from incorporating more advanced NNs into Redis as a foundation for the API provided by Neural Redis, however with certain problems users face, they may not make much difference, but we'll try to explore new solutions.
While this was a 48h personal hackathon (insane!) by Salvatore, I hope it makes it into Redis core.
I will be spending my weekend on playing with this and trying it out with different internal datasets.
Also, the documentation is a treat. It teaches the basics of NNs very well.