Defining the API is extremely important and should be addressed now. Much of this conversation is a discussion about APIs directly or indirectly. Process (C4 or other) can be address in parallel, e.g. regression test are about process ensuring correctness of APIs and algorithms.
Designing the API will: - force us to think about how code base is used / structured - force us to explicitly choose to surface operational parameters that configure algorithms - provide a contract for development community that encourages stability - provides a model for a other language implementations - provides a contract for public data structures (serialization, portable trained regions) - force us to make choices about where to include 'injected functionality' or 'plugins' - allowing the broader community to extend functionality without PRs or C4 process (encouraging organic growth of ideas). With a properly designed API we should be able to move forward with the current code base, re-factoring chunks instead of doing a complete rewrite. I believe that it is important to be able build distributed networks of regions and share trained regions. As we scale CLA systems up, the value that goes into tuning and training models should be captured and commoditized. A model and it's trained dataset should be easy to instantiate, run and move across the network. Then we will have a strong community of users and then we will have an ecosystem. My dream is to be able to put larger models together based on existing trained models - I want to say "hey Stewart, can I get a copy of your facial-emotion detector region? I'm building a speech recognition system and I need more inputs to correlate. I've already got Matt's speech-tone detector region". So starting with APIs is how I see we can make this happen. -Doug On Fri, Nov 15, 2013 at 5:47 PM, Scott Purdy <[email protected]> wrote: > Can someone explain which parts of NuPIC they think are "clean" and which > they want to get rid of? With the exception of the current effort around > the spatial pooler I don't know which parts are being referred to. > > > On Fri, Nov 15, 2013 at 2:39 PM, Sebastian Hänisch > <[email protected]>wrote: > >> Some explorative redesigning can be a true benefit to the current NuPIC, >> too. Some coordinated brainstorming can lead to a better design of >> 'NuNuPIC' with an extensive API and a more modular code basis. This would >> be a base for discussion whether a complete restart is the way to go or >> maybe it reveals easy ways to restructure the current version without >> robbing away the base for Grok. >> >> This can be done aside from NuPIC and wouldn't influence it currently >> (though some ideas may find themselve implemented there directly). >> >> As Newcomer to NuPIC I'm just throwing in my 2 cents of course. >> >> Regards, >> Sebastian >> >> >> >> 2013/11/15 Fergal Byrne <[email protected]> >> >>> Hi Matt/Stewart, >>> >>> I think the radical approach is worth exploring, but keep it within >>> NuPIC. You'd need to start with a design, and then build it up by robbing >>> the clean algorithms from the current NuPIC. Eventually Grok would switch >>> to the NuNuPIC. >>> — >>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone >>> >>> >>> On Fri, Nov 15, 2013 at 9:26 PM, Matthew Taylor <[email protected]>wrote: >>> >>>> Let's not throw out the baby with the bathwater. Numenta's interests >>>> lie in improving NuPIC. We won't be able to get behind a start-from-scratch >>>> effort. We just don't have the manpower, and we're quite busy building >>>> product on top of NuPIC. >>>> >>>> That being said, there is nothing stopping anyone else from doing this. >>>> If someone extracts our core algorithms and pastes them into another >>>> project, however, the GPL must be respected, and Numenta will not be able >>>> to provide any commercial licensing options. >>>> >>>> --------- >>>> Matt Taylor >>>> OS Community Flag-Bearer >>>> Numenta >>>> >>>> >>>> On Fri, Nov 15, 2013 at 12:32 PM, Stewart Mackenzie <[email protected] >>>> > wrote: >>>> >>>>> Hi, >>>>> >>>>> Been (carefully) thinking about this more, it's occupying a >>>>> disproportionately large amount of time. >>>>> >>>>> I'm going to go one step further: >>>>> >>>>> The proof of concept works, NuPIC has cracked it to a large degree. >>>>> But its based on an old codebase that went through a few fundamental >>>>> architectural changes. It doesn't support serialization nor can operate in >>>>> a hierarchy. >>>>> Most of the issues are about compilation, incompatibilities, the code >>>>> base is dependency heavy yet... despite all this the algorthims have got >>>>> it >>>>> right. >>>>> >>>>> I propose we retain the core algorithms and start from scratch. Its >>>>> the algorithms that are important. >>>>> >>>>> What I have brewing will make a distributed HTM dramanically easier to >>>>> achieve, serialization becomes trivial and it is portable. If nupic is >>>>> about to do some major move. Then lets at least think about how to make it >>>>> easier to distribute and serialize. >>>>> >>>>> Insane as it sounds. >>>>> Stewart >>>>> >>>>> Matthew Taylor <[email protected]> wrote: >>>>> >Thanks, Stewart. >>>>> > >>>>> >I think we should put the discussion about releases to the side for >>>>> >awhile, >>>>> >because it's evident that we cannot release until we've nailed down >>>>> the >>>>> >API >>>>> >for NuPIC. This should take priority. I'll start that discussion soon. >>>>> > >>>>> >This has been quite enlightening, and I really appreciate everyone's >>>>> >input. >>>>> > >>>>> >>>>> _______________________________________________ >>>>> nupic mailing list >>>>> [email protected] >>>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org >>>>> >>>> >>>> >>> >>> _______________________________________________ >>> nupic mailing list >>> [email protected] >>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org >>> >>> >> >> _______________________________________________ >> nupic mailing list >> [email protected] >> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org >> >> > > _______________________________________________ > nupic mailing list > [email protected] > http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org > >
_______________________________________________ nupic mailing list [email protected] http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
