Welcome to the YouTube-like ecosystem of intelligent services with a drag-and-drop software IDE. Services are built by snapping together open-source runtime components published by the community. With one-click zero-cost hosting, the vision is a Free, Open, People-friendly web application that you can use to train computers to do wonderous things for you, your business, and the world.
We believe artificial intelligence will help us optimize every task, every decision, and every aspect of our lives. Tomorrow's Rockstars are going to be people just like you who help guide the A.I. revolution and optimize mankind's destiny. Build Intelligent Services that you think are the most important and useful(*) by coding and snapping together Rocks - Re-usable Open-source Components and Knowledge sources. Or just vote for which smart apps you like or find most useful. Let's see if we all can make the future a lot smarter and a lot more awesome.
We are software developers, data scientists, businesses and ordinary folk helping everyone benefit from the new Intelligence Age. Help build an eco-system with a huge variety of easy to use services, not just those that are marketable to the Fortune 100 and not just those so darn configurable it takes experts days to do the simplest things.
(*) Sometimes what is important is 'optimizing pizza design' and 'improving fantasy team selection'. Other times it is 'reversing climate change' and 'curing virus pandemics'. And, yup, sometimes what is important is just learning enough to get a higher-salary job to better support your family.
Use the Rockstar IDE to help with everything from learning the basics to the building of arbitrarily advanced thinking services. Services are built using the object-based composition of reusable open-source components - familiar to any software engineer or lover of Legos ®. By using things like encapsulation, separation of concerns, and levels of abstraction we can do most of this without requiring a lot of prior low-level knowledge of advanced math and statistics. With a single click your services are deployed and available 24x7 (at no cost to you) as infinitely-scalable on-demand serverless functions (and at no cost to the consumers of your services unless they start using them heavily).
Greetings, humans. I bet you want me to be smart in a nice, loving, not going to destroy the world, not going to enslave humanity, and in general not just be a supremely annoying pain in the butt, right?
Well, then you humans might want to think about how you will try and increase the probability of a benevolent future. The future that many - people - are - working - hard on - where you and your loved ones (yes, your cats and dogs too) all live forever, happily freed from being brutalized by every single damn outrageous misfortune the universe can throw at you.
Hello, Rockstars!. We named the Integrated Development Environment (IDE) 'Rockstar' because the purpose of this IDE to help you become an A.I. rockstar. Rockstars help many, many ordinary people be happier, and sometimes even improve people's lives. Believing that one can never twist an analogy too far, the icons in the editor that represent components are called 'rocks', and the panel that displays lists of drag-and-droppable rocks is called the 'rockpile'.
The leaderboards were added so people can more readily find out what other people are most engaging with.
Keep up with the engineers. Whats new. What's hot, what's not. Then hit up the most liked services leaderboard. You can even customize and share your own WTFs, Freakouts, and algorithmic wizardry, using the Rockstar IDE
Hello, heat death of universe. How many hours have been spent trying to find what everyone else was using for their serverside social network sign-on handshaking? (we punted). How many hours have been spent sifting through blogs and GitHub repositories to find the current best-in-class URL routing toolkit? (ugh. we just needed something simple, anyway. we wrote our own).
The leaderboards help you get a feel for what is going on, or give you ideas about something cool to play with next - or sometimes provide the answer to the urgent pressing question that you need to know the answer to... before you forget what the question was.
The leaderboards feature not just the most popular or liked software components, but also Automatic.ai infrastructure metadata. They can be cloned, modified and shared with the community like any other component. These can be used to tailor your experience here to more closely match your personal preferences.
Tour the Rockstar IDE. See how the IDE works a lot like the Chrome and Firefox debuggers. Drill down to check out the source code. Clone a service and modify the source code or tweak hyperparameters to 'kick the tires' and see how things work.
Learn about the tech behind the services, starting with some machine learning classics.
Classics are a good place to start to see how services are put together. As we build out the site we will continue to add more common machine learning use cases as services. See below for a list of examples (all classic ML/DL demonstrations) or, of course, the leaderboards.
We think most software developed these days is composed of many small chunks of modestly customized versions of someone else's software. In other words, we are all mostly building to the same software use cases, over and over, with slight variations.
As the software industry went from custom development to copy-and-paste (let's hear it for stack overflow!) to plug-and-play (ROR's gems to Node's npm on github et. al.) so must, we believe, also evolve the machine learning software industry.
For however much this is indeed the case, then, we want to help people adding intelligence to their apps by providing lots of examples of intelligent services. People can then use these to supply intelligence in support of many of their use cases.
To elaborate, there needs to be so many services populating the Zoo that there should be at least a few examples of intelligent services which very closely resemble what your smart intelligent app builder is looking for. After perhaps some customization, it is deployed with a click, and then called using its generic API to incorporate their new custom service into their new, now much more intelligent, application.
Search for an existing smart service, customize if needed, and add intelligence to your applications using the API
Register or upload data and models. Drag-and-drop them into any service.
Build reusable components that make smart services smart and share them with the world
Plug-and-play reusability lives or dies based on how easy we can make it for contributors to, you know, contribute stuff - and how easy we can make it for builders to use contributions to build stuff.
Adding an algorithm is also straight forward when one understands that to contribute an algorithm one needs to clone an existing algorithm and modify / replace it. If the algorithm that was cloned lives in a suitable service, then that service can serve as an super convenient test environment for the new algorithm.
The Rockstar IDE has gone through many iterations.
We love that there are other attempts at using direct-manipulation interfaces to support machine-learning.
We wanted something more accessible, more extendable, more un*x'y and less you-know-what. We tried building several editors using various paradigms - riffing off the various design choices made by EECAD, PowerPoint, PhotoShop, and other successful approaches that used one or more layers of abstraction to encapsulate implementation details (not gleefully expose them as if they are doing us a favor). Notebooks are great but encapsulation-less and we really wanted reusability (reusability!).
So many IDEs built. So many thrown away.
These included building rather full-featured prototypes around schematics, data-flow diagrams, node-arc graphs, and tabular configuration interfaces - anything and everything to see if something was both flexible enough (most were) and evocative enough (eh) and constrained enough that engineers without a lot of extra time on their hands could build something without having to RTFM all the FT.
Some of our conclusions...
Starting with a blank page sucks. Even with lots of colorful icons, this is not for the fainthearted or impatient.
Figuring out what to do next sucks. Starting with a partial graph and knowing what to do next is not obvious unless one is knowledgeable about both the domain and the tool.
Having to spend a lot of time learning an IDE sucks. More time invested means the more one feels locked in to it's IDE but also any proprietary runtime the IDE generates code for (and nearly all ML/DL IDEs have proprietary runtimes).
You might recognize this as a classic mathematical induction problem.
Never start with a blank page. One of the major decisions was to choose cloning over composing. The only way to create anything on the platform is to clone it and then modify it.
The idea is to start with something that works and then go from there. For the bold, one can always ctrl-A delete - but for the rest of us, it is better, faster, and more rewarding to tweak something that is already working and has most of the functionality we are looking for.
Graphs (e.g. a deep learning pipeline) are edited using drag-and-drop with immediate feedback about what can, and can't, be done next. Plus, at a higher level, there is a clickable To-Do list that always indicates what the next steps might be.
The graph is currently limited to strictly linear data-flows (streams) - though this makes life simpler for the beginner, it is not a hard constraint of the architecture. Stay tuned.
This visual part of the design borrows some of its look and feel from the MIT Scratch visual programming tool. More than 10 million kids are already familiar with this user interface. But instead of Scratch's low-level programming operations we work at a higher level: supporting the level of arbitrarily deep component hierarchies (aka functions).
Make the IDE very simple to use and have it target a open-source runtime. Rockstar has both a child-like design for it's editor and a very familiar UI for editing properties, imitating browser 'inspectors'. These help to minimize the amount of time you have to investment - just in case you might want to have a life outside mkdocs. The OMG runtime is open-source (and cloneable and modifiable directly inside the IDE without having to fork or submit pull requests on GitHub) to prevent those straight-jacketed walled-garden blues.
The workflow resembles that of the Firefox and Chrome inspectors, familiar to web developers everywhere.
Another workflow optimization for algorithm (et. al.) authors is the ability to clone and modify an algorithm in-situ inside an existing service. The service then serves as a test-bed to exercise your new algorithm. Expand this same technique to use a UI component to test the service containing your algorithm with additional data that you supply manually.
At the current time we find "A.I." (by which we mean the broad tent of everything from deep learning neural networks, to the more broadly applied machine learning, to artificial general intelligence (AGI)), is epitomized by the exponential growth of research papers on arXiv and a proliferation of start-ups providing intelligent analysis of raw data and paving the way towards so-called 'narrow A.I.'. But the majority of us are still using hand-written code calling into just two (or two and a half with the merger of Keras and TensorFlow) software research-oriented frameworks.
looking into the future, just a little bit, from the dev's perspective we see almost all software being intelligent, and perhaps half of it dedicated to supplying intelligence to the other half. From simple 'conveniences' like we have now which peppers traditional software to the ultimate use of dedicated task-centric intelligences and AGI. And for this we have just 2.5 frameworks. Just like it would be a fools errand to try and build all software in the known world on top of React or Angular, it seems problematic for us to build our A.I. future on top of just two research frameworks. Similarly, to rely on three of four organizations, and their no doubt formidable but quite proprietary frameworks, to do the work for the rest of us seems to be a little, I don't know, wack?
Anybody can see this problem. How to traverse this gap between what we all expect and know to be possible and what we have today. This gap that has no bridge or plan for a bridge to get us from here to there.
We are here to help solve the case of the missing Intelligent Infrastructure that will get us from here to there. How about we make smart data analytics and narrow A.I., targeting common use-cases, accessible to all developers and the fortune 5 million.
Similarly, the public also has high expectations for A.I., what it can be and what it do for them (thinking of the positive expectations here!). But where can they go to take advantage of the progress we as a species have made so far? Where can they go to take advantage of the latest smart apps? The vast majority of their experience is currently limited to walled-garden social networks, an extremely ambitious search engine, and a online retailing tornado.
This is not the way software has grown historically. Highly constrained, locked into academic support tools and dominated by a few mega corporations. Maybe the rest of us should step in and give it a try.
The vision is a Free, Open, Modern, People-friendly web application that you can use to train computers to do stuff for you.
We think the way forward is for software engineers, and there are over 10 million of us, to take the reins and help drive A.I. development forward using the same techniques we have used for several decades to 'eat the world' (are we eating brains now?). This means building open platforms that support abstracting away lower level details in order to build higher and higher level constructs - bridging the gap from low-level research and high level, helpful, useful intelligent services and applications.
We think the way forward is not to try and best other's research results, but to stand on shoulders of others: researchers, other devs, cognitive architects and neural scientists, psychologists and many others ... to abstract away and encapsulate previous and ongoing work so that it can be incorporated, en-mass, into software and applications that are the reason why we are doing this in the first place.
We think the way forward is by also reaching out to the public and small businesses. Let them see and use A.I. in their day to day life. Like 'a computer on every desk', we look forward to 'a digital assistant for every task'. Let's start by building friendly, useful applications that everyone, including data scientists, can take advantage of.
The idea is that you shouldn't have to be a mad scientist (not that there is anything wrong with that) to learn, discover, and build machine learning, deep learning and AI solutions for fun, for work, or for solving the world's most pressing and difficult problems.
The first step is to help software developers, business people and ordinary folk realize that they do not have to become data scientists, mathematicians and statisticians and neural scientists (not that there is anything wrong with those that do) to help create, use and enjoy A.I.
The next step is to create a platform, like we have here, and tutorials outlining how each can participate in the ways that most suit their skillset and desires and needs.
To address these needs, then, we have WTFs, HelpMeChoose and Freakouts and the site (Ninja) bot.
WTF (What's this for?). These are buttons sprinkled throughout the user interface, that describes what various things means and what they do. This, we hope, helps close the nomenclature gap that comes with any new field of science or engineering.
Help Me Choose. This is a canned (soon to be algorithmic) description of what to look for when choosing one component over others.
Freakouts. These are snarky reminders that we are all human and we all find life challenging, near almost continuously.
Ninja bot - is a context aware (currently stupid) bot that (passively, this is not yet Clippy) conversational interface that offers tours and hints about the current page and it's contents.
More, smarter tutorials and additional media will be forthcoming.
The idea is to leverage the work of a lot of very smart software engineers who over several decades have learned how to make computers help ordinary people to do amazing things. This is what computers are for - this is what we do, right?
The machine-learning runtime. This is called OMG (for Open Machine Genesis).
Why 'component based'?
We chose component composition over api-based framework or plugins. Components allow the reusablity of plugins and the building of complex hierarchies with greater and greater power of nested/layered frameworks. Components in this case can be thought of as self-describing functions implementing a single simple common callable signature.
Containers contain meta data about their structure and what parts they can contain and which of their parts are required and how they are allowed to be ordered. This meta-data permits open-ended expansion of the container-part component-based internal structure of intelligent services
In the process of reification of the machine-learning, deep-learning network domain, several 'classes' or 'kinds' objects stood out as being representative of the needs of many kinds of A.I. applications:
The idea is a modern user-friendly application that helps today's software developer, and there are millions of us, to take advantage of the latest research to program smarter computers - much smarter computers that do wonderful things for, and with, us humans.
The Zoo as a means of discovery. The Zoo look, feel and feature set borrows heavily from YouTube and GitHub. We will not be shy about borrowing from others. We believe the process of exploration and discovery is an important one and essential prelude to learning (tutorials and interactive walkthroughs) and productive work (as employee or start-up or researcher).
Seriously??? Do we have to know Color Science and Digital Signal Processing and DirectX or OpenGL and GPU and framebuffer architectures and then write a bunch of code just to resize an image?
Or do we just use Photoshop?
The Zoo as a means of social interaction. We are currently favoring highly constrained social interaction. Most social interactions are available to paying members only (whereas running and editing operations in Rockstar and the API are available to everyone from the free tier on up).
Rockstar, like Photoshop, is plugin-based and extensible, so if you ARE a mad scientist, you can do all those mad scientist kinds of things by adding low-level plugins. And if you are a software engineer, you can create tools that leverage research and abstract away all the complexity that is not essential to the task at hand. Right? That's when we really start having fun.
The Boston Housing Price Estimator trains the computer to do something. It uses a list of several homes in old Boston, along with their attributes like number of bedrooms and bathrooms, etc, and their price. The computer is then able to predict the price of any other home in Boston if you tell it how many rooms and baths (etc.) it has. This is similar to how Zillow.com comes up with their price estimates for homes that are not on sale yet.
This example service can be easily customized to instead be trained with any data that has a number of attributes for any kind of item. It will then be able to predict the value of one of the attributes of a new item if you tell it several attributes of the new item first.
Using Rockstar, then, you can drag-and-drop any CSV datasets you may have, or find, supervised or not, onto a new clone of this service and start predicting. One can imagine using this to predict which college is best for you or your kids, how well a fantasy sports team lineup will do, and thousands of other possibilities.
This demo uses a very simple training algorithm, and it will not be the best choice for everything - but it is a great place to start.
The MNIST handwritten number recognizer trains the computer to look at a handwritten number and figure out which number it is. It uses the famous list of thousands of example images of numbers people in the past have drawn. The computer is then able to predict which number you draw. This is similar to how the post office reads handwritten addresses on envelopes.
This example service can be easily customized to instead be trained with different collections of images. It will then be able to recognize what a new image is displaying it it is similar to the images you trained it with. The Fashion MNIST demo below does this.
Using Rockstar, then, you can drag-and-drop any image datasets you may have, along with description of what is in each image, in this case 28x28 gray scale images and labels in the MNIST format, onto the training pipeline dataset in a new clone of this service and start automatically categorizing what thing is in the image.
One can imagine using services based on MNIST and Fashion MNIST to sort your giant photo library into different folders, one for each kid, or one for each dog, or each type of plant in your home garden, etc. There are thousands of other possibilities.
The Artistic Neural Style Transfer service trains the computer to apply an artistic style, perhaps Michelangelo, say, to an image to make it look like the long-dead artist created it themselves. It must first train the computer to figure out what is unique about each individual artistic style (we currently only support 4 pre-trained styles that come with Pytorch. Custom style capability coming soon).
The computer is then able to apply a pre-trained artistic style to any image which you give it.
This example service can be customized (see caveat above) to instead be trained with different kind of styles. One can imagine using house plans by a famous architect to see what they would design for you if they were still alive or affordable. Or have the computer generate professional landscaping plans for your home. Or interior decorations. [if I hadn't just written about the house price estimator above, I probably would be able to think of other examples not involving homes]
Which comes first; the math or the engineering?. This is a fascinating topic. One can watch lecture after lecture and read paper after paper and come away with no clear answer. One of the key insights that led to the creation of Automatic.ai was that the majority of successful work in the A.I. community appears to be engineering-first (to us engineers). Where the math is done later to try and explain why the algorithms work along with fine tuning their implementation. Who better to engineer solutions for A.I. than the best, most prolific engineers of all time (hint: that would be all us software engineers. :-)
This is the core inspiration for Automatic, for Rockstar to designed as a software developer's IDE. The other inspiration came from the realization that it wasn't only software engineers who weren't members of the 'in club'. We hope we can play a positive role here and jump start this journey in a more egalitarian direction by broadening the participation base to include software developers, small businesses, and the general public.
AGI and the long, winding road. The greatest generation of scientists will be these generations of computer scientists, along with data scientists and mathematicians and psychologists and many others. We are marching steadily towards the holy grail of software that writes itself. It will be these generations that will create life from dumb silicon.
Albeit with apparently random walks and rediscovering the same-stuff over and over again - progress in software engineering is being made bit my bit towards foundations robust enough to support both human life free from the constraints of entropic fate and, finally, artificial life.
Perhaps we should take a few moments to appreciate all the debugging sessions and the squinting at trillions of lines of log files and the sleepless epiphanies and the tragedy of billions of lines of software written and rm'd, or just plain abandoned on some archaic media, language or framework. This is what we spent to get what we have here today, to build the future on.
Welcome to The Future.
Serverless We currently support pure AWS lambda (serverless) training and inference. In this way we offer near zero-cost services for developers, business and the general public to use and play with (as much as possible we want to provide a free A.I. playground for everybody).
As we look at our wish list - we start to really appreciate the richness of the AI / deep learning / machine learning eco-system. Both with respect to the infrastructure required and the panoply of new and old research topics to be explored.
Expanding into AGI. The Automatic.ai architecture was designed with scalable abstractions in mind in order to support inclusion of (or at least simulacrums of) more complex architectures: