May 3, 2017

Cultivating The Bonsai AI Platform

Cultivating The Bonsai AI Platform

With the strategic funding and Early Access Program announced today, I am excited to accelerate our product development and customer engagement efforts. Countless conversations with enterprises, ISVs and technology partners over the last 12+ months have simultaneously validated the fundamental product assumptions from our founding in 2014, and informed the investments we need to make in the future.

There is a rapidly growing demand from enterprises of all sizes for AI models that can inject greater intelligence, in the form of control and optimization, into dynamic industrial systems. These systems take many different forms, including robotics, vehicles, factories, supply chains, logistics, warehouse operations, HVAC systems, oil exploration, and resource planning. Programming sophisticated AI that can improve the automation and operational efficiency of industrial systems requires a platform that can account for a variety of factors:

  1. A way to leverage existing domain expertise and AI models
  2. A structured approach to training
  3. The need to explain AI predictions or decisions
  4. The ability to not only perceive but decide or recommend action
  5. A need to run in the data center and embedded on a device

Machine Teaching vs Machine Learning

Let’s consider an example of a pick-and-place robot on a work site.  If we want to be confident in the behavior of this robot in an open, dynamic environment, we need a rigorous mechanism for training. Luckily, there is an entire field of study dedicated to helping data scientists, programmers and engineers define how to be structured and rigorous in their approach to training models. Machine Teaching is the counterpart to machine learning. While machine learning focuses on how to best get a computer to learn how to predict or control something, the focus of machine teaching is on how to best teach an ML algorithm.

A combination of Machine Teaching and Machine Learning techniques are at the foundation of Bonsai’s platform and comprise a fundamentally new way to tackle the needs of AI for programming optimization and control.

Bonsai's Platform

At the heart of Bonsai's approach to tackling complex control and optimization problems is a new special purpose programming language and runtime technology.  Inkling, the new special purpose programming language, gives programmers a way to combine machine learning and machine teaching into one AI program.  Bonsai’s AI Engine - the runtime technology - generates, trains and hosts models that solve the challenge posed by the Inkling program and associated training sources.

A programmer begins by defining a directed graph of concepts for how to solve the problem named the mental model. Concepts in this model are trained using simulations or datasets. Then, the model is deployed for use where it is further fine tuned and then hosted for prediction.

Mental Models: Bonsai's streaming AI pipeline

At Bonsai, our platform enables users to combine learning algorithms into one workflow or pipeline so the AI can make real time predictions or decisions.  This pipeline is described by concept keywords and their relationships with one another. For example in the robot case:

schema State

 Float32 joint1,

 Float32 joint2,

 Float32 joint3,

 Bool vacuum_on,

 Luminance(84,84) image

end

schema Command

 Float32 joint1,

 Float32 joint2,

 Float32 joint3,

 Bool vacuum_on

end

concept MoveToTarget is estimator

 predicts (Float32 joint1, Float32 joint3)

 follows input(State)

end

concept Grasp is estimator

 predicts (Command)

 follows input(State)

end

concept Lift is estimator

 predicts (Command)

 follows input(State)

end

concept PickAndPlace is estimator

 predicts (Command)

 follows input(State), MoveToTarget, Grasp, Lift

 feeds output

end

Concepts represent features of the environment the AI must perceive or skills that the AI must combine to accomplish a goal.  These concepts can be models predefined by the programmer using toolkits like TensorFlow or the models can be selected and tuned automatically by Bonsai’s AI Engine.  In the above example, the robot must combine the skills of moving to a target, grasping and lifting, and picking and placing. The feeds and follows keywords specifically state that the AI should first learn how to MoveToTarget GraspAndLift and use those new skills as a basis for then learning PickAndPlace.

Curriculums: Structured training with objectives to measure success

Each concept is taught using a curriculum. Curriculums are further decomposed into lessons and each lesson uses all or some subset of real or synthetic data to train that portion of the AI.

curriculum TeachMoveToTarget

 train MoveToTarget

 with simulator arm_simulator

 objective reach_furthest_target_reward

   lesson near_target

     configure

       constrain x with Float32{1.0}        Constrain y with Float32{1.0}

     until

       maximize reach_target_reward

   lesson far_target

     until

       maximize reach_target_reward

end

...

curriculum TeachPickAndPlace

 train PickAndPlace

 with simulator arm_simulator

 objective pick_and_place_reward

   lesson pick_and_place

     until maximize pick_and_place_reward

end

For example the TeachMoveToTarget curriculum starts the arm off close to a target within a simulation.  The AI masters ability to reach the target in that close-in configuration; the AI is then taught to move to target from further away.  This initial simplification of the training environment shortcuts the amount of exploration the AI needs to move through in order to train. Each lesson in the curriculum optimizes some objective or reward.  This objective or reward is calculated using the state of the simulation or physical environment.

Training in Simulation and the Physical World

Initial lessons are in simulation while later lessons tweak the model in the real world.  Robotics applications can be trained using many simulations like Gazebo, RobotStudio or RobotExpert. The simulator or programmed solution uses a Bonsai Library to receive control signals from the Bonsai AI Engine over a Websocket.

Deployment

The AI Engine can run in the cloud or on-robot. Deployed models are automatically versioned so that use of each model has consistent behavior.  The accompanying libraries and standardized Web APIs are designed to connect to a wide array of systems and applications.  

Getting Started

If you think you have a control or optimization use case that would be a good fit for the Bonsai Platform, we want to hear from you. Our Getting Started page has all the information you need to learn about and apply for our Early Access Program.

Subscribe to our newsletter to stay up-to-date on our latest product news & more!

SUBSCRIBE NOW