IP Library Granted Patent US 11,900,261
Granted Patent B2
US 11,900,261 · App. 17/981,440 · Granted Feb 13, 2024

Transfer learning system for automated software engineering tasks

Inventors: Colin Bruce Clement (Seattle, WA); Dawn Drain (San Francisco, CA); Neelakantan Sundaresan (Bellevue, WA); Alexey Svyatkovskiy (Bellevue, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
G06N3/088G06F8/30G06F40/40G06N3/045G06F8/427G06F8/71G06N3/04G06N3/063G06N3/08G06N20/00
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,900,261
App. No.
17/981,440
Granted
Feb 13, 2024
Kind
B2
Abstract

A transfer learning system is used for the development of neural transformer models pertaining to software engineering tasks. The transfer learning system trains source code domain neural transformer models with attention in various configurations on a large corpus of unsupervised training dataset of source code programs and/or source code-related natural language text. A web service provides the trained models for use in developing a model that may be fine-tuned on a supervised training dataset associated with a software engineering task thereby generating a tool to perform the software engineering task.

Claims (65)

1. A web service, comprising:

a storage server including a custom training dataset;

a first computing device having a first processor and a first memory device, wherein the first memory device includes a plurality of source code domain neural transformer models with attention, the plurality of source code domain neural transformer models with attention including configurations of an encoder-only neural transformer with attention, a decoder-only neural transformer with attention and/or an encoder-decoder neural transformer with attention, wherein each of the plurality of source code domain neural transformer models with attention associated with a select software engineering task;

wherein the first memory device includes a program including instructions that perform actions to:

receive a request for a custom neural transformer model with attention to perform a requested software engineering task;

obtain the custom training dataset;

select one of the plurality of source code domain neural transformer models with attention associated with the requested software engineering task; and

fine-tune the select one of the plurality of source code domain neural transformer models with attention with the custom training dataset to generate the custom neural transformer model with attention.

2. The web service of claim 1 ,

wherein each of the plurality of source code domain neural transformer models with attention includes a standard memory size and a standard model size, wherein the standard model size indicates a number of transformer blocks.

3. The web service of claim 2 ,

wherein the request includes a requested memory size that differs from the standard memory size of the plurality of source code domain neural transformer models with attention, and

wherein the program includes instructions that perform actions to:

prior to fine-tune the select one of the plurality of source code domain neural transformer models with attention with the custom training dataset:

choose the select one of the plurality of source code domain neural transformer model with attention with a largest standard memory size closest to the requested memory size; and

reduce a number of transformer blocks of the select one of the plurality of source code domain neural transformer models with attention to fit the requested memory size.

4. The web service of claim 2 ,

wherein the request includes a requested model size that differs from the standard model size of the plurality of source code domain neural transformer models with attention, and

wherein the program includes instructions that perform actions to:

prior to fine-tune the select one of the plurality of source code domain neural transformer models with attention with the custom training dataset:

choose the select one of the plurality of source code domain neural transformer model with attention with a largest standard model size closest to the requested model size; and

reduce a number of transformer blocks of the select one of the plurality of source code domain neural transformer model with attention to fit the requested model size.

5. The web service of claim 3 ,

wherein the program includes instructions that perform actions to:

calculate a scaling factor to determine the model size to accommodate the requested memory size; and

reduce the number of transformer blocks based on the scaling factor.

6. The web service of claim 1 ,

wherein each of the plurality of source code domain neural transformer models with attention is pre-trained on an unsupervised training dataset of source code.

7. A computer-implemented method, comprising:

providing a plurality of source code domain neural transformer models with attention, wherein each of the plurality of source code domain neural transformer models includes a memory size and a model size, wherein the model size indicates a number of transformer blocks;

receiving, through a network, a request for a custom neural transformer model with attention, wherein the request includes a configuration of transformer blocks of the custom neural transformer model with attention; and

when none of the plurality of source code domain neural transformer models with attention meets the requested configuration of transformer blocks:

selecting one of the plurality of source code domain neural transformer models with attention associated with a larger model size closest to the requested configuration of transformer blocks;

eliminating select ones of the transformer blocks of the selected one of the plurality of source code domain neural transformer models with attention; and

fine-tuning the select one of the plurality of source code domain neural transformer models with attention with a custom training dataset to generate the custom neural transformer model with attention.

8. The computer-implemented method of claim 7 , comprising:

when at least one of the plurality of source code domain neural transformer models with attention meets the requested configuration, fine-tuning the at least one of the plurality of source code domain neural transformer models with attention with the custom training dataset to generate the custom neural transformer model with attention.

9. The computer-implemented method of claim 7 ,

wherein eliminating select ones of the transformer blocks of the selected one of the plurality of source code domain neural transformer models with attention, further comprises:

computing a scaling factor to determine a number of transformer blocks to eliminate from the selected one of the plurality of source code domain neural transformer models with attention.

10. The computer-implemented method of claim 7 , wherein fine-tuning the select one of the plurality of source code domain neural transformer models with attention comprises:

distilling the select one of the plurality of source code domain neural transformer models with attention to fit the model size and/or the memory size.

11. The computer-implemented method of claim 9 , wherein the plurality of source code domain neural transformer models with attention having configurations of includes an encoder-only neural transformer with attention, a decoder-only neural transformer with attention and/or an encoder-decoder neural transformer with attention, wherein each configuration of the plurality of source code domain neural transformer models with attention associated with a select software engineering task.

12. The computer-implemented method of claim 7 ,

wherein the select one of the plurality of source code domain neural transformer models with attention is an encoder-only neural transformer with attention associated with a software classification task.

13. The computer-implemented method of claim 12 ,

wherein fine-tuning the select one of the plurality of source code domain neural transformer models with attention with the custom training dataset to generate the custom neural transformer model with attention, further comprises:

replacing an output layer of the encoder-only neural transformer with attention with a classification layer.

14. The computer-implemented method of claim 11 , wherein the decoder-only neural transformer model with attention is associated with an auto-regressive software task.

15. The computer-implemented method of claim 11 , wherein the encoder-decoder neural transformer model with attention is associated with sequence-to-sequence software translation tasks.

16. A computer-implemented method, comprising:

accessing a plurality of pre-trained source code domain neural transformer models with attention, the plurality of pre-trained source code domain neural transformer models with attention including configurations of an encoder-only neural transformer with attention, a decoder-only neural transformer with attention and/or an encoder-decoder neural transformer with attention, each of the plurality of pre-trained source code domain neural transformer models with attention associated with a software engineering task;

obtaining a supervised training dataset for a specific software engineering task;

selecting one of the plurality of pre-trained source code domain neural transformer models with attention associated with the specific software engineering task; and

fine-tuning the selected one of the plurality of pre-trained source code domain neural transformer models with attention with the supervised training dataset to perform the specific software engineering task.

17. The computer-implemented method of claim 16 ,

wherein the selected one of the plurality of pre-trained source code domain neural transformer models with attention includes a model size, and

wherein the fine-tuning the selected one of the plurality of pre-trained source code domain neural transformer models with attention further comprises distilling the selected one of the plurality of pre-trained source code domain neural transformer models with attention to accommodate a requested model size prior to performing the fine-tuning.

18. The computer-implemented method of claim 17 , further comprising:

computing a scaling factor to determine a number of transformer blocks to meet the requested model size.

19. The computer-implemented method of claim 16 ,

wherein the selected one of the plurality of pre-trained source code domain neural transformer models with attention includes a memory size, and

wherein the fine-tuning the selected one of the plurality of pre-trained source code domain neural transformer models with attention further comprises distilling the selected one of the plurality of pre-trained source code domain neural transformer models with attention to accommodate a requested memory size prior to performing the fine-tuning.

20. The computer-implemented method of claim 19 , further comprising:

prior to fine-tuning the selected one of the plurality of pre-trained source code domain neural transformer models with attention, altering configuration of the selected one of the plurality of pre-trained source code domain neural transformer model with attention to fit the requested memory size.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2022
From: CLEMENT, COLIN BRUCE; DRAIN, DAWN; SUNDARESAN, NEELAKANTAN; SVYATKOVSKIY, ALEXEY
To: MICROSOFT TECHNOLOGY LICENSING, LLC.
Reel/Frame 061668/0021 →
Continuity (3)
Continuation 16917267 · Jun 30, 2020
Provisional Application 63025529 · May 15, 2020
Related Publication 20230067364A1 · Mar 2, 2023
Cited By (2)
US 12,461,993 US 12,688,024