IP Library › Granted Patent US 12,118,437
Granted Patent B2
US 12,118,437 · App. 17/188,167 · Granted Oct 15, 2024

Active learning via a surrogate machine learning model using knowledge distillation

Inventor: Asterios Stergioudis (Poligiros, GR)
G06N20/00G06N5/043G10L15/063
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 12,118,437
App. No.
17/188,167
Granted
Oct 15, 2024
Kind
B2
Abstract

Systems and methods of training a model is provided. The system can identify an unlabeled data set with phrases received by a virtual assistant that interfaces with one or more virtual applications to execute one or more functions. The system can query the unlabeled data set to select a first set of phrases based at least on one or more confidence scores output by a surrogate model that corresponds to a third-party model maintained by a third-party system. The system can receive, via a user interface, indications of functions to be executed by the one or more virtual applications responsive to the selected first set of phrases. The system can provide, to the third-party system, the indications of functions for the selected first set of phrases to train the third-party model and configure the virtual assistant to execute a function responsive to a phrase in the first set of phrases.

Claims (62)

1. A method of training a model for a Virtual assistant that interfaces with one or more virtual applications hosted on one or more servers, comprising:

identifying, by one or more processors, an unlabeled data set comprising a plurality of phrases received by a virtual assistant that interfaces with one or more virtual applications to execute one or more functions;

querying, by the one or more processors, the unlabeled data set to select a first set of phrases from the plurality of phrases based at least on one or more confidence scores output by a surrogate model that corresponds to a third-party model maintained by a third-party system;

receiving, by the one or more processors via a user interface, indications of functions to be executed by the one or more virtual applications responsive to the selected first set of phrases;

providing, by the one or more processors to the third-party system, the indications of functions for the selected first set of phrases to train the third-party model and configure the virtual assistant to execute a function responsive to a phrase in the first set of phrases;

determining, by the one or more processors, a level of performance of the virtual assistant in causing the one or more virtual applications to execute the one or more functions responsive to input phrases;

selecting, by the one or more processors responsive to the level of performance being less than or equal to a threshold, a second set of phrases from the plurality of phrases in the unlabeled data set to receive second indications of functions for provision to the third-party system to train the third-party model;

determining, by the one or more processors, a change in the level of performance of the virtual assistant in causing the one or more virtual applications to execute the one or more functions responsive to input phrases; and

preventing, by the one or more processors responsive to the change in the level of performance being less than or equal to a second threshold, selection of a subsequent set of phrases from the unlabeled data set to complete a labeling process for the unlabeled data set.

2. The method of claim 1 , comprising:

providing, by the one or more processors, a labeled data set to the third-party system to train the third-party model, the labeled data set comprising phrases configured for input into the virtual assistant and indications of corresponding functions to be executed by the one or more virtual applications.

3. The method of claim 1 , comprising:

training, by the one or more processors, the surrogate model with a labeled data set, the labeled data set comprising phrases configured for input into the virtual assistant and indications of corresponding functions to be executed by the one or more virtual applications.

4. The method of claim 3 , comprising:

inputting, by the one or more processors, the unlabeled data set into the surrogate model trained with the labeled data set to generate the predictions for the unlabeled data set.

5. The method of claim 1 , comprising:

constructing, by the one or more processors, a query to select the first set of phrases based on at least one of an uncertainty sampling technique or a query-by-committee technique.

6. The method of claim 1 , comprising:

providing, by the one or more processors, the first set of phrases selected from the plurality of phrases in the unlabeled data set to the third-party system; and

receiving, by the one or more processors, soft targets for the first of phrases output by the third-party model, the soft targets comprising predictions for functions responsive to the first set of phrases.

7. The method of claim 6 , comprising:

adjusting, by the one or more processors, the soft targets using a smoothing technique comprising at least one of probability clipping, a probability assignment, or a softmax temperature; and

training, by the one or more processors, the surrogate model based on the adjusted soft targets and the indications of functions received Via the user interface.

8. The method of claim 1 , comprising:

providing, by the one or more processors responsive to the selection of the first set of phrases, a prompt via the user interface for the indications of functions responsive to the first set of phrases.

9. A system to train a model for a virtual assistant that interfaces with one or more virtual applications hosted on one or more servers, comprising:

memory and one or more processors to:

identify an unlabeled data set comprising a plurality of phrases received by a virtual assistant that interfaces with one or more virtual applications to execute one or more functions;

query the unlabeled data set to select a first set of phrases from the plurality of phrases based at least on one or more confidence scores output by a surrogate model that corresponds to a third-party model maintained by a third-party system;

receive, via a user interface, indications of functions to be executed by the one or more virtual applications responsive to the selected first set of phrases;

provide, to the third-party system, the indications of functions for the selected first set of phrases to train the third-party model and configure the virtual assistant to execute a function responsive to a phrase in the first set of phrases;

determine a level of performance of the virtual assistant in causing the one or more virtual applications to execute the one or more functions responsive to input phrases;

select, in response to the level of performance being less than or equal to a threshold, a second set of phrases from the plurality of phrases in the unlabeled data set to receive second indications of functions for provision to the third-party system to train the third-party model;

determine a change in the level of performance of the virtual assistant in causing the one or more virtual applications to execute the one or more functions responsive to input phrases; and

prevent, in response to the change in the level of performance being less than or equal to a second threshold, selection of a subsequent set of phrases from the unlabeled data set to complete a labeling process for the unlabeled data set.

10. The system of claim 9 , wherein the one or more processors are further configured to:

provide a labeled data set to the third-party system to train the third-party model, the labeled data set comprising phrases configured for input into the virtual assistant and indications of corresponding functions to be executed by the one or more virtual applications.

11. The system of claim 9 , wherein the one or more processors are further configured to:

train the surrogate model with a labeled data set, the labeled data set comprising phrases configured for input into the virtual assistant and indications of corresponding functions to be executed by the one or more virtual applications.

12. The system of claim 11 , wherein the one or more processors are further configured to:

input the unlabeled data set into the surrogate model trained with the labeled data set to generate the predictions for the unlabeled data set.

13. The system of claim 9 , wherein the one or more processors are further configured to:

construct a query to select the first set of phrases based on at least one of an uncertainty sampling technique or a query-by-committee technique.

14. The system of claim 9 , wherein the one or more processors are further configured to:

provide the first set of phrases selected from the plurality of phrases in the unlabeled data set to the third-party system; and

receive soft targets for the first of phrases output by the third-party model, the soft targets comprising predictions for functions responsive to the first set of phrases.

15. The system of claim 14 , wherein the one or more processors are further configured to:

adjust the soft targets using a smoothing technique comprising at least one of probability clipping, a probability assignment, or a softmax temperature; and

train the surrogate model based on the adjusted soft targets and the indications of functions received via the user interface.

16. The system of claim 9 , wherein the one or more processors are further configured to:

provide, responsive to the selection of the first set of phrases, a prompt via the user interface for the indications of functions responsive to the first set of phrases.

17. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, train a model for a Virtual assistant that interfaces with one or more virtual applications hosted on one or more sewers, wherein the instructions comprise instructions to:

identify an unlabeled data set comprising a plurality of phrases received by a virtual assistant that interfaces with one or more Virtual applications to execute one or more functions;

query the unlabeled data set to select a first set of phrases from the plurality of phrases based at least on one or more confidence scores output by a surrogate model that corresponds to a third-party model maintained by a third-party system;

receive, via a user interface, indications of functions to be executed by the one or more virtual applications responsive to the selected first set of phrases;

provide, to the third-party system, the indications of functions for the selected first set of phrases to train the third-party model and configure the virtual assistant to execute a function responsive to a phrase in the first set of phrases;

determine a level of performance of the virtual assistant in causing the one or more virtual applications to execute the one or more functions responsive to input phrases;

selecting, in response to the level of performance being less than or equal to a threshold, a second set of phrases from the plurality of phrases in the unlabeled data set to receive second indications of functions for provision to the third-party system to train the third-party model;

determine a change in the level of performance of the virtual assistant in causing the one or more virtual applications to execute the one or more functions responsive to input phrases; and

prevent, in response to the change in the level of performance being less than or equal to a second threshold, selection of a subsequent set of phrases from the unlabeled data set to complete a labeling process for the unlabeled data set.

18. The computer-readable medium of claim 17 , wherein the instructions further comprise instructions to:

provide a labeled data set to the third-party system to train the third-party model, the labeled data set comprising phrases configured for input into the Virtual assistant and indications of corresponding functions to be executed by the one or more Virtual applications.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2021
From: STERGIOUDIS, ASTERIOS
To: CITRIX SYSTEMS, INC.
Reel/Frame 055445/0140 →
Continuity (2)
Continuation PCTGR2021000005 · Jan 21, 2021
Related Publication 20220230095A1 · Jul 21, 2022
Cited By (1)
US 12,530,535