IP Library Granted Patent US 11,836,650
Granted Patent B2
US 11,836,650 · App. 17/447,642 · Granted Dec 5, 2023

Artificial intelligence engine for mixing and enhancing features from one or more trained pre-existing machine-learning models

Inventors: Keen McEwan Browne (Berkeley, CA); Marcos Campos (Carlsbad, CA); Megan Adams (San Francisco, CA); Mark Hammond (Berkeley, CA); Matthew Brown (Berkeley, CA); Tod Frye (El Cerrito, CA)
Assignee: Microsoft Technology Licensing, LLC
G06Q10/00G06F3/0482G06F8/31G06F8/311G06F8/38G06F9/451G06F9/4881G06F15/80G06F16/2228G06F16/951G06F18/2148G06F30/20G06N3/008G06N3/04G06N3/045G06N3/08G06N3/105G06N5/04G06N20/00G06V10/945G06V10/96H04L67/01G06F3/03543G06F30/333G06F40/166
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,836,650
App. No.
17/447,642
Filed
Sep 14, 2021
Granted
Dec 5, 2023
Kind
B2
Art Unit
2178
USPC
706/12
Abstract

An AI engine having an architect module to create a number of nodes and how the nodes are connected in a graph of concept nodes that make up a resulting AI model. The architect module also creates a first concept node by wrapping an external entity of code into a software container with an interface configured to exchange information in a protocol of a software language used by the external entity of code. The architect module also creates a second concept node derived from its description in a scripted file coded in a pedagogical programming language, and connects the second concept node into the graph of nodes in the resulting AI model.

Claims (41)

1. A computing device, comprising:

a processor; and

a memory storing instructions executable by the processor to:

execute multiple independent modules of an Artificial Intelligence (“AI”) engine on one or more computing platforms, the multiple independent modules comprising an architect module;

use the architect module to create a plurality of nodes that are connected in a graph of concept nodes to form a resulting AI model, where the graph of the concept nodes is derived from a description in one or more scripted files;

create a first concept node based on a preconfigured function or a pre-trained AI object by wrapping an external entity of code into a software container with an interface configured to exchange information in a protocol of a software language used by the external entity of code;

create a second concept node comprising a new AI object that is coded by the architect module in the graph of the concept nodes that is derived from its description in a first scripted file; and

connect the second concept node into the graph of the concept nodes in the resulting AI model, where a re-use of the external entity of code as the first concept node in the graph allows creation and training of the resulting AI model with less computing cycles than creating and training all of the concept nodes in the resulting AI model from scratch; and

where the second concept node allows deployment of the first concept node embodied in the external entity of code with i) new functionality, ii) extended functionality or iii) a combination of both when combined in the resulting AI model.

2. The computing device of claim 1 , wherein the external entity of code comprises i) an external AI model coded in different software language natively used by the resulting AI model, ii) an external function having some defined input and output that is coded in different software language natively used by the resulting AI model, iii) a block of code using a ReST Application Programming Interface (“API”), iv) an already trained AI model coded in the software language natively used by the resulting AI model, or v) any combination of (i)-(iv).

3. The computing device of claim 1 , where the AI engine is configured to allow import of the external entity of code in order to containerize the external entity of code via the architect module in the AI engine, where the software container for the external entity of code is coded to make the external entity of code callable from trained AI models as a concept node in the graph of the concept nodes, where the software container for the external entity of code is also coded to make the external entity of code callable from AI models undergoing training within that graph of the concept nodes in the resulting AI model.

4. The computing device of claim 1 , where the resulting AI model is configured, after its initial training of all of the individual concept nodes making up the AI model, to allow individual concept nodes to be replaced without having to retrain other concepts in the graph of the concept nodes making up the resulting AI model; and thus, an older version of the first concept node can be replaced with a new version of the first concept node without having to retrain any of the other concepts in the graph of the concept nodes making up the resulting AI model.

5. The computing device of claim 1 , where the description including its functionality in the first scripted file of the second concept by the architect module is coded in a first software language of a pedagogical programming language and the first concept node correlating to the external entity of code is created in a second software language, and the first concept node and second concept node are contained in the same graph of concept nodes in the resulting AI model.

6. The computing device of claim 1 , where the external entity of code is integrated by a learned integrator controller into the graph of the concept nodes as the first concept node that makes up the resulting AI model, where the learned integrator controller is configured to combine a heterogeneous mix of concept nodes including the second concept node, with the first concept node of the external entity of code that includes a classical controller or the pre-trained AI object, into a complete overall problem solution contained within the resulting AI model, where the graph of the concept nodes of the resulting AI model is hierarchical and consists of nodes that are two or more layers deep.

7. The computing device of claim 1 , where the AI engine has a user interface configured to allow a user to i) insert transformations between concept nodes the graph of nodes, ii) connect pre-existing trained models to or into the resulting AI model, iii) connect any other data-driven services as needed, or iv) perform any combination of (i)-(iii).

8. The computing device of claim 1 , where the external entity of code is an already coded perception AI model or an already coded prediction AI model, and the second concept node is a new function or extended function for the perception AI model or prediction AI model, which is to be trained by a second module in the AI engine with reinforcement learning technology to form different concept nodes in the resulting AI model.

9. At a computing device, a method comprising:

instantiating an Artificial Intelligence (“AI”) engine having multiple independent modules on one or more computing platforms, the multiple independent modules including an architect module;

using the architect module to create a plurality of nodes that are connected in a graph of concept nodes to form a resulting AI model, where the graph of the concept nodes is derived from a description in one or more scripted files;

creating a first concept node by wrapping an external entity of code into a software container with an interface configured to exchange information in a protocol of a software language used by the external entity of code,

wherein the external entity of code comprises i) an external AI model coded in different software language natively used by the resulting AI model, ii) an external function having some defined input and output that is coded in different software language natively used by the resulting AI model, iii) a block of code using a ReST Application Programming Interface (“API”), iv) an already trained AI model coded in the software language natively used by the resulting AI model, or v) any combination of (i)-(iv);

creating a second concept node in the graph of the concept nodes that is derived from its description in a first scripted file; and

connecting the second concept node into the graph of the concept nodes in the resulting AI model, where a re-use of the external entity of code as the first concept node in the graph allows creation and training of the resulting AI model with less computing cycles than creating and training all of the concept nodes in the resulting AI model from scratch; and

where the second concept node allows deployment of the first concept node embodied in the external entity of code with i) new functionality, ii) extended functionality or iii) a combination of both when combined in the resulting AI model.

10. The method of claim 9 , where the AI engine is configured to allow import of the external entity of code in order to containerize the external entity of code via the architect module in the AI engine, where the software container for the external entity of code is coded to make the external entity of code callable from trained AI models as a concept node in the graph of concept nodes, where the software container for the external entity of code is also coded to make the external entity of code callable from AI models undergoing training within that graph of concept nodes in the resulting AI model.

11. The method of claim 9 , where the resulting AI model is configured, after its initial training of all of the individual concept nodes making up the AI model, to allow individual concept nodes to be replaced without having to retrain other concepts in the graph of the concept nodes making up the resulting AI model; and thus, an older version of the first concept node can be replaced with a new version of the first concept node without having to retrain any of the other concepts in the graph of the concept nodes making up the resulting AI model.

12. The method of claim 9 , where the description including its functionality in the first scripted file of the second concept by the architect module is coded in a first software language of a pedagogical programming language and the first concept node correlating to the external entity of code is created in a second software language, and the first concept node and second concept node are contained in the same graph of concept nodes in the resulting AI model.

13. The method of claim 9 , where the external entity of code is integrated by a learned integrator controller into the graph of concept nodes as the first concept node that makes up the resulting AI model, where the learned integrator controller is configured to combine a heterogeneous mix of concept nodes including the second concept node, with the first concept of the external entity of code that includes a classical controller or the pre-trained AI object, into a complete overall problem solution contained within the resulting AI model, where the graph of the concept nodes of the resulting AI model is hierarchical and consists of nodes that are two or more layers deep.

14. The method of claim 9 , where the AI engine has a user interface configured to allow a user to i) insert transformations between concept nodes the graph of concept nodes, ii) connect pre-existing trained models to or into the resulting AI model, iii) connect any other data-driven services as needed, and iv) any combination of these.

15. At a computing device, a method comprising:

instantiating an Artificial Intelligence (“AI”) engine having multiple independent modules on one or more computing platforms, the multiple independent modules including an architect module;

using the architect module to create a plurality of concept nodes that are connected in a graph of the concept nodes to form a resulting AI model, where the graph of the concept nodes is derived from a description in one or more scripted files;

creating a first concept node based on a preconfigured function or a pre-trained AI object by wrapping an external entity of code into a software container with an interface configured to exchange information in a protocol of a software language used by the external entity of code;

creating a second concept node comprising a new AI object that is coded by the architect module in the graph of the concept nodes that is derived from its description in a first scripted file; and

connecting the second concept node into the graph of the concept nodes in the resulting AI model, where a re-use of the external entity of code as the first concept node in the graph allows a creation and training of the resulting AI model with less computing cycles than creating and training all of the concept nodes in the resulting AI model from scratch; and

where the second concept node allows deployment of the first concept node embodied in the external entity of code with i) new functionality, ii) extended functionality or iii) a combination of both when combined in the resulting AI model.

16. The method of claim 15 , wherein the external entity of code comprises i) an external AI model coded in different software language natively used by the resulting AI model, ii) an external function having some defined input and output that is coded in different software language natively used by the resulting AI model, iii) a block of code using a ReST Application Programming Interface (“API”), iv) an already trained AI model coded in the software language natively used by the resulting AI model, or v) any combination of (i)-(iv).

17. The method of claim 15 , where the resulting AI model is configured, after its initial training of all of the individual concept nodes making up the AI model, to allow individual concept nodes to be replaced without having to retrain other concepts in the graph of the concept nodes making up the resulting AI model; and thus, an older version of the first concept node can be replaced with a new version of the first concept node without having to retrain any of the other concepts in the graph of the concept nodes making up the resulting AI model.

18. The method of claim 15 , where the description including its functionality in the first scripted file of the second concept by the architect module is coded in a first software language of a pedagogical programming language and the first concept node correlating to the external entity of code is created in a second software language, and the first concept node and second concept node are contained in the same graph of concept nodes in the resulting AI model.

19. The method of claim 15 , where the external entity of code is integrated by a learned integrator controller into the graph of concept nodes as the first concept node that makes up the resulting AI model, where the learned integrator controller is configured to combine a heterogeneous mix of concept nodes including the second concept node, with the first concept of the external entity of code that includes a classical controller or the pre-trained AI object, into a complete overall problem solution contained within the resulting AI model, where the graph of the concept nodes of the resulting AI model is hierarchical and consists of nodes that are two or more layers deep.

20. The method of claim 15 , where the AI engine has a user interface configured to allow a user to i) insert transformations between concept nodes the graph of concept nodes, ii) connect pre-existing trained models to or into the resulting AI model, iii) connect any other data-driven services as needed, and iv) any combination of these.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2021
From: BROWNE, KEEN MCEWAN; CAMPOS, MARCOS; ADAMS, MEGAN; HAMMOND, MARK; BROWN, MATTHEW; FRYE, TOD
To: BONSAI AI, INC.
Reel/Frame 057479/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2021
From: BONSAI AI, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 057479/0386 →
Continuity (7)
Continuation 16009153 · Jun 14, 2018
Continuation In Part 15417086 · Jan 26, 2017
Provisional Application 62287861 · Jan 27, 2016
Provisional Application 62524381 · Jun 23, 2017
Provisional Application 62547339 · Aug 18, 2017
Provisional Application 62555584 · Sep 7, 2017
Related Publication 20210406774A1 · Dec 30, 2021
Cited By (2)
US 12,737,815 US 12,737,816