Here’s something that probably doesn’t cross most developers’ minds: In a distributed system whose components don’t share state with one another, how does one produce an application whose stated goal, if you will, is to create and maintain a state — specifically, something learned?
We already know that artificial intelligence routines such as decision trees don’t need to have state pre-assessed for them, to render results that seem rational enough. Chess move algorithms, for example, don’t have to retain a concept of the active chessboard in memory, to rate the quality of a potential move. They may not produce the best chess programs on the market, but they can evaluate moves, and they can beat amateurs.
Well, by definition, a machine learning application is expected to retain something — that’s what the entire “learning” part is supposed to mean.
“The thing that you really want to do from the get-go is, make a couple of decisions,” Bonsai co-founder and CEO Mark Hammond told The New Stack Makers. “The first is going to be, are you going to have a system where online learning matters — that is to say, where the system needs to learn concurrently, with users utilizing the system? Or can there be a lag in that? Is it possible for you instead to record the data that has come in, as users use the system, and then learn on those recordings in a more batch-style operation layer?”