IP Library Granted Patent US 11,551,083
Granted Patent B2
US 11,551,083 · App. 16/716,497 · Granted Jan 10, 2023

Neural network training from private data

Inventors: Zili Li (San Jose, CA); Asif Amirguliyev (Toronto, CA); Jonah Probell (Alviso, CA)
Assignee: SoundHound, Inc.
G06N3/08G06N3/0454G06N3/084H04L41/082H04L67/10
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,551,083
App. No.
16/716,497
Granted
Jan 10, 2023
Kind
B2
Abstract

Training and enhancement of neural network models, such as from private data, are described. A slave device receives a version of a neural network model from a master. The slave accesses a local and/or private data source and uses the data to perform optimization of the neural network model. This can be done such as by computing gradients or performing knowledge distillation to locally train an enhanced second version of the model. The slave sends the gradients or enhanced neural network model to a master. The master may use the gradient or second version of the model to improve a master model.

Claims (101)

1. A method of training a neural network model, the method comprising:

receiving, at a slave device, first configuration data for the neural network model from a master device, the master device being remote from the slave device, the master device including a first version of the neural network model;

instantiating, at the slave device, a second version of the neural network model using the first configuration data;

training, at the slave device, the second version of the neural network model using data from a first data source, the first data source being inaccessible by the master device;

receiving, at the master device, second configuration data for the neural network model, from the slave device, based on the trained second version of the neural network model;

instantiating, at the slave device, the second version of the neural network model as a student model;

instantiating, at the slave device, the first version of the neural network as a teacher model;

using, at the slave device, the teacher model to train the student model; and

generating the second configuration data to include parameters for the trained student model,

wherein the master device is configured to use the second configuration data to update parameters for the first version of the neural network model, and

wherein the first configuration data includes parameters for the first version of the neural network model and a neural network architecture definition for the second version of the neural network model.

2. The method of claim 1 further comprising:

loading, at the slave device, a binary executable; and

executing, using at least one processor of the slave device, the binary executable to implement at least the instantiating, training and outputting steps.

3. The method of claim 2 , wherein the binary executable includes the first configuration data.

4. A method of training a neural network model, the method comprising:

receiving, at a slave device, first configuration data for the neural network model from a master device, the master device being remote from the slave device, the master device including a first version of the neural network model;

instantiating, at the slave device, a second version of the neural network model using the first configuration data;

training, at the slave device, the second version of the neural network model using data from a first data source, the first data source being inaccessible by the master device;

receiving, at the master device, second configuration data for the neural network model, from the slave device, based on the trained second version of the neural network model;

instantiating, at the slave device, the second version of the neural network model as a student model;

instantiating, at the slave device, the first version of the neural network as a teacher model;

using, at the slave device, the teacher model to train the student model; and

generating the second configuration data to include parameters for the trained student model,

wherein the master device is configured to use the second configuration data to update parameters for the first version of the neural network model, and

wherein the first configuration data includes parameters for the first version of the neural network model and further comprising:

instantiating the student model and the teacher model using the parameters for the first version of the neural network model, such that the second version of the neural network model includes a copy of the first version of the neural network model; and

fixing, during training, the parameters of the teacher model while the parameters of the student model are trainable.

5. A method of training a neural network model, the method comprising:

receiving, at a slave device, first configuration data for the neural network model from a master device, the master device being remote from the slave device, the master device including a first version of the neural network model;

instantiating, at the slave device, a second version of the neural network model using the first configuration data;

training, at the slave device, the second version of the neural network model using data from a first data source, the first data source being inaccessible by the master device; and

receiving, at the master device, second configuration data for the neural network model, from the slave device, based on the trained second version of the neural network model,

wherein the master device is configured to use the second configuration data to update parameters for the first version of the neural network model,

wherein the first configuration data includes parameters for the first version of the neural network model and further comprising:

instantiating, using the parameters for the first version of the neural network model, the second version of the neural network that includes a trainable copy of the first version of the neural network model; and

generating, during the training, gradient data that is included in the second configuration data, and

wherein the master device is configured to update parameters for the first version of the neural network model by scaling its parameters by amounts indicated by the gradient data.

6. A slave device comprising:

a storage device to store parameter data for a second version of a neural network model;

memory to store computer program code configured to implement a distributed training operation;

a network interface to communicate data with a master device, the master device being remote and including a first version of the neural network model;

a storage interface to communicate with a first data source, the first data source being inaccessible by the master device; and

at least one processor configured to execute the computer program code stored in memory to:

receive, via the network interface, first configuration data for the neural network model from the master device;

instantiate the second version of the neural network model using the first configuration data;

perform a training operation to train the second version of the neural network model using data from the first data source obtained via the storage interface;

update the parameter data in the storage device based on the training operation;

output, via the network interface, second configuration data for the neural network model based on data resulting from the training operation;

instantiate the second version of the neural network model as a student model;

instantiate the first version of the neural network as a teacher model;

use the teacher model to train the student model; and

generate the second configuration data to include parameters for the trained student model,

wherein the second configuration data is used to update parameter data for the first version of the neural network model, and

wherein the first configuration data includes parameters for the first version of the neural network model and a neural network architecture definition for the second version of the neural network model.

7. The slave device of claim 6 , wherein the at least one processor further executes the computer program code in memory to:

load, at the slave device, a binary executable; and

execute, at the slave device, the binary executable to implement at least the instantiate of the second version of the neural network model using the first configuration data, to perform the training operation, and output.

8. The slave device of claim 7 , wherein the binary executable includes the first configuration data.

9. A slave device comprising:

a storage device to store parameter data for a second version of a neural network model;

memory to store computer program code configured to implement a distributed training operation;

a network interface to communicate data with a master device, the master device being remote and including a first version of the neural network model;

a storage interface to communicate with a first data source, the first data source being inaccessible by the master device; and

at least one processor configured to execute the computer program code stored in memory to:

receive, via the network interface, first configuration data for the neural network model from the master device;

instantiate the second version of the neural network model using the first configuration data;

perform a training operation to train the second version of the neural network model using data from the first data source obtained via the storage interface;

update the parameter data in the storage device based on the training operation;

output, via the network interface, second configuration data for the neural network model based on data resulting from the training operation;

instantiate the second version of the neural network model as a student model;

instantiate the first version of the neural network as a teacher model;

use the teacher model to train the student model; and

generate the second configuration data to include parameters for the trained student model,

wherein the second configuration data is used to update parameter data for the first version of the neural network model, and

wherein the first configuration data includes parameters for the first version of the neural network model and the at least one processor further executes the computer program code in memory to:

instantiate the student model and the teacher model using the parameters for the first version of the neural network model, such that the second version of the neural network model includes a copy of the first version of the neural network model; and

fix, during training, the parameters of the teacher model while the parameters of the student model are trainable.

10. The slave device of claim 9 , wherein the at least one processor further executes the computer program code in memory to:

load, at the slave device, a binary executable; and

execute, at the slave device, the binary executable to implement at least the instantiate of the second version of the neural network model using the first configuration data, to perform the training operation, and output.

11. The slave device of claim 10 , wherein the binary executable includes the first configuration data.

12. A slave device comprising:

a storage device to store parameter data for a second version of a neural network model;

memory to store computer program code configured to implement a distributed training operation;

a network interface to communicate data with a master device, the master device being remote and including a first version of the neural network model;

a storage interface to communicate with a first data source, the first data source being inaccessible by the master device; and

at least one processor configured to execute the computer program code stored in memory to:

receive, via the network interface, first configuration data for the neural network model from the master device;

instantiate the second version of the neural network model using the first configuration data;

perform a training operation to train the second version of the neural network model using data from the first data source obtained via the storage interface;

update the parameter data in the storage device based on the training operation; and

output, via the network interface, second configuration data for the neural network model based on data resulting from the training operation,

wherein the second configuration data is used to update parameter data for the first version of the neural network model, and

wherein the first configuration data includes parameters for the first version of the neural network model and the at least one processor further executes the computer program code in memory to:

instantiate, using the parameters for the first version of the neural network model, the second version of the neural network that includes a trainable copy of the first version of the neural network model; and

generate, during the training, gradient data that is included in the second configuration data, wherein the master device is configured to update parameters for the first version of the neural network model by scaling its parameters by amounts indicated by the gradient data.

13. The slave device of claim 12 , wherein the at least one processor further executes the computer program code in memory to:

load, at the slave device, a binary executable; and

execute, at the slave device, the binary executable to implement at least the instantiate of the second version of the neural network model using the first configuration data, to perform the training operation, and output.

14. The slave device of claim 13 , wherein the binary executable includes the first configuration data.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 3, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.
Reel/Frame 069480/0312 →
SECURITY INTEREST Recorded Aug 9, 2024
From: SOUNDHOUND, INC.
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 068526/0413 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2024
From: ACP POST OAK CREDIT II LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
Reel/Frame 067698/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2023
From: SOUNDHOUND AI IP HOLDING, LLC
To: SOUNDHOUND AI IP, LLC
Reel/Frame 064205/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2023
From: SOUNDHOUND, INC.
To: SOUNDHOUND AI IP HOLDING, LLC
Reel/Frame 064083/0484 →
SECURITY INTEREST Recorded Apr 17, 2023
From: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
To: ACP POST OAK CREDIT II LLC
Reel/Frame 063349/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2020
From: LI, ZILI; AMIRGULIYEV, ASIF; PROBELL, JONAH
To: SOUNDHOUND, INC.
Reel/Frame 051672/0577 →
Cited By (5)
US 12,368,503 US 12,587,274 US 12,603,701 US 12,627,372 US 12,664,975