I would like to train an open source version of the new awesome GitHub Copilot AI tool, which is based on GPT3. Similar to the awesome people behind GPT-Neo, having such an open source model would greatly help researchers understand what this type of biases and limitations this kind of code autocompletion model might have such as generating insecure code (i do research in this area and i know my team would love an open sourced version to run experiments on, i.e. try and break it )
The model will be trained on different programming languages such as C, C++, java, python, etc.
Datasets that contain hopefully high quality source code
Possible links to publicly available datasets include:
Some additional datasets may need creating that are not just method level.
I believe the standard CLM language model script would do for this.
We can make use of transformers/run_clm_flax.py at master · huggingface/transformers · GitHub
The data additional data may be a challenge. From what I can see in copilot, it looks to be training on entire files, not code snippets. There are file level datasets that exist but they are a few years old and i don’t think they cover many programming languages. The ones I listed above have multiple languages but are only methods.
However, githubs API is pretty easy to use and so it would be pretty easy to create one from scratch, especially if we get some insights into how the copilot dataset was generated
I’d love to have this open source model setup in a similar Visual Studio Code extension to the GitHub Copilot one. I’ve actually made a tutorial on doing this using the GPT-Neo model, so we could easily clean it up and release it free of charge forever because from what I’ve seen on Twitter the GitHub Copilot might eventually be put behind a paywall .
The following links can be useful to better understand the project and
what has previously been done.
- Introducing GitHub Copilot: your AI pair programmer | The GitHub Blog
- Deep Learning to Autocomplete Code: Part #2 Autogenerating Code - VS Code Tutorial - YouTube (tutorial on how we could setup the demo of the model once it’s done cooking)