Code generation, programming assistants

October 14, 2021 — August 28, 2023

faster pussycat
language
machine learning
making things
neural nets
NLP
real time
signal processing
stringology
time series
UI

A cousin to neural automata: writing machines to code for us. We might also want to write code to speak for us, which ends up involving similar technology, i.e. large language models.

I am vaguely concerned about how much of the world is uploading their source code for everything to these code servers. The potential for abuse is huge.

Figure 1

1 Github copilot

GitHub Copilot uses suggestions from OpenAI Codex to suggest code completion.

Behind a firewall, we require at least the following whitelist exceptions:

  • vscode-auth.github.com
  • api.github.com
  • copilot-proxy.githubusercontent.com

See Networked VS Code for some more whitelist rules we need for VS Code generally.

2 Codeium

Codeium

Codeium has been developed by the team at Exafunction to build on the industry-wide momentum on foundational models. We realized that the combination of recent advances in generative models and our world-class optimized deep learning serving software could provide users with top quality AI-based products at the lowest possible costs (or ideally, free!).

3 Fauxpilot

FauxPilot: Like GitHub Copilot without Microsoft telemetry • The Register

Updated GitHub Copilot, one of several recent tools for generating programming code suggestions with the help of AI models, remains problematic for some users due to licensing concerns and to the telemetry the software sends back to the Microsoft-owned company.

fauxpilot/fauxpilot: FauxPilot - an open-source alternative to GitHub Copilot server

This is an attempt to build a locally hosted alternative to GitHub Copilot. It uses the SalesForce CodeGen models inside of NVIDIA’s Triton Inference Server with the FasterTransformer backend.

Being able to work offline would be a real win; Copilot loves bandwidth too much.

4 Amazon CodeWhisperer

AI Code Generator - Amazon CodeWhisperer - AWS

Available as part of the AWS Toolkit for Visual Studio (VS) Code and JetBrains, CodeWhisperer currently supports Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell scripting, SQL and Scala. In addition to VS Code and the JetBrains family of IDEs—including IntelliJ, PyCharm, GoLand, CLion, PhpStorm, RubyMine, Rider, WebStorm, and DataGrip—CodeWhisperer is also available for AWS Cloud9, AWS Lambda console, JupyterLab and Amazon SageMaker Studio.

Free for individual use.

5 Incoming

Figure 2

Querying Glean:

Glean is a system for working with facts about source code. It is designed for collecting and storing detailed information about code structure, and providing access to the data to power tools and experiences from online IDE features to offline code analysis.

For example, Glean could answer all the questions you’d expect your IDE to answer, accurately and efficiently on a large-scale codebase. Things like:

  • Where is the definition of this method?
  • Where are all the callers of this function?
  • Who inherits from this class?
  • What are all the declarations in this file?

6 References

Beurer-Kellner, Fischer, and Vechev. 2022. Prompting Is Programming: A Query Language For Large Language Models.”
Bubeck, Chandrasekaran, Eldan, et al. 2023. Sparks of Artificial General Intelligence: Early Experiments with GPT-4.”
Din, Karidi, Choshen, et al. 2023. Jump to Conclusions: Short-Cutting Transformers With Linear Transformations.”
Suzgun, Scales, Schärli, et al. 2022. Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them.”
Wang, Wei, Schuurmans, et al. 2023. Self-Consistency Improves Chain of Thought Reasoning in Language Models.”