As the newest member of Bonsai's Berkeley staff, I've entered into this new and uncharted territory of developer tooling for artificial intelligence, and I'm absolutely fascinated with what I (and the computers!) could learn. Coming to this from a developer tools background, I'm eager to use the Bonsai platform to craft my own artificial intelligence models (we call them BRAINs, short for Basic Recurrent Artificially Intelligent Network) and add the wonder of AI to my own projects. Come along and we'll explore this brave new world of notional training using concepts, lessons, and curricula to break down the barriers to entry into machine learning! But first, Python. As a scientific and mathematical modeling language, we looked at Python as a natural choice for the first implementation of our tooling. The initial implementation of our simulator integration library is built with it (more languages coming soon), as well as our CLI and tools. The popularity of Python provides an easily comprehensible starting point and ensures there will be ample resources to draw upon in the greater community of developers. Fun fact: the entire Bons.ai service stack, both front and back end, are built on Python.
Before I got started with Inkling and the Bonsai CLI, I had to get my Python, pip, and virtualenv into shape. The general idea is that virtualenv allows me to isolate a specific Python environment (in our case the Python that I use with Bonsai) from the Python I use for everything else. To do this, it will be represented by a group of files that are created in the context it's called from containing only the packages I've called for this virtual environment. Pip, in turn, will obtain and maintain your packages in this virtual environment. Full documentation can be found at the PyPA website, but here's some pro tips to make sure your virtual environment stays in good condition:
Artificial intelligence and machine learning are complex and difficult to get started with, even for seasoned developers. The only way we'll realize our vision of AI for Everyone will be to break down these barriers to entry that prevent the world's developers from using and deploying modern artificially intelligent systems. We’ve already seen this approach earlier in the history of computer science with the development of compiled and interpreted languages. To see how Bonsai leveraged the DQN algorithm against the Breakout Simulator problem published by University of Toronto in just a few dozen lines of code, check out our three-part blog post on the topic: Concepts and Schemas, Curricula and Lessons, and The BRAIN Server. The current state of AI and ML is similar to the earliest days of computing, when the only method of representing logic to a computer was through the use of assembly code or machine language. Over time, some enterprising developers wrote a compiled language to express this complexity in a (somewhat) human-readable fashion. While learning this new “C” language was a large commitment, it took the world by storm because it abstracted the details into a modular, interchangeable system. By now, C is one of the most widely used languages in the world, with assembly code relegated to #8. When taken together with its descendants C++ and C#, the C family is in the #1 spot. We can catalyze the same transformation in the AI space, and make AI approachable to many more developers, by creating the tooling and paradigms that will unlock the power of AI for everyone.
In the upcoming weeks, I'll be reporting on the people and ideas that drive our design, implementation, and architecture as we bring artificial intelligence and machine learning to the masses with Inkling as our language and compiler, trained BRAIN models, and approachable concepts using a modular approach. Next week, I'll chat with Megan Adams, our Senior Engineer writing the Inkling language specification and compiler, to get more details. She'll give us an insider's view of the challenges and motivations around building a special purpose language for AI.