October 3, 2016

Welcome to Bonsai: A Brave New World of Machine Learning | Bonsai

A Brave New World of Artificial Intelligence

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 conceptslessons, 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.

Understanding Python, Pip, and Virtualenv

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:

  • I found Python at the python.org website. Version 3.5 or higher is currently required to use our simulator integration library. We're working hard to make these components Python2 compatible.
  • Be sure you're calling python3 whenever you run simulators - I must be sure I use virtualenv -p python3 when I create my virtualenv. I use python --version to inspect my version number.
  • To make it easier to find them later, I create environments in my home directory.
  • To populate my new virtualenv, I  pip install -r requirements.txt from the root of the simulator's repository. This is idempotent, so I'm not afraid to do it every time I start a session.
  • If the bonsai-cli, bonsai-config, or bonsai-python modules are missing, pip install $NAME_OF_MODULE will fetch a specific module by name.
  • I use deactivate to exit my virtualenv.

Breaking down the barriers to entry

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 SchemasCurricula 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.

An Insider's View of Bonsai

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.

Always. Be. Learning.

Stay up-to-date on our latest product news, AI industry highlights, and more!