This article is more than 1 year old
From pair to p-AI-r programming: Kite floats paid-for spin of its GitHub-trained code autocomplete assistant
Too lazy to type out Python? But not too tight to pay $20 a month?
Kite will today launch a subscription-based coding assistant that tries to help programmers craft stuff quickly and efficiently.
Founder and CEO Adam Smith told The Register his San Francisco upstart has spent more than six years developing a product that is, essentially, autocomplete for source code. Over that time, Kite has amassed about 250,000 monthly active users for its free version known as Kite Free, which integrates with Visual Studio Code, Atom, Sublime, Vim, and others, and supports JavaScript and Python.
Now, it’s touting a premium flavor called Kite Pro that costs $19.90 per month, or $16.60 a month if you’re willing to fork out for a whole year.
Kite fetched about 22 million open-source files from GitHub to train its statistical-model-based system to automatically complete code as it's typed: as you write out your source, the tool tries to predict what you're doing, from patterns picked up in other projects, and suggests the next part.
“We wanted a model that was broadly applicable and useful, so we picked training data to capture a breadth of applications and libraries,” Smith said.
Since Kite’s software only learns from this data set, which Smith calls “global code”, there are some limitations. “If there are complicated patterns that are unique to your code base then it might not pick up on those,” he told us.
Kite Pro melds together various machine-learning techniques, Smith told The Register, adding: “We’re always evolving our modelling approach. At first we looked at gated graph neural networks.” These networks learn patterns in data represented as a series of nodes and edges. They were typically used by natural language processing systems to learn and understand the associations between individual words in a sentence.
However, AI has progressed, and now there are better techniques to understand text, whether it's natural language or code. At the core of Kite’s software is an attention mechanism, a technique that has paved the way for transformer-based models that are capable of generating text given an input prompt.
Pair programming? That's so 2017. Try out this deep-learning AI bot that autocompletes lines of source code for you
READ MOREFor example, OpenAI’s GPT-2 can write news articles or poetry after it’s fed an opening sentence. Similarly, Kite Pro learns to write code by predicting what the user is going to do next, whether it’s writing a function, or assigning a value to a variable, or creating a loop. Instead of having to type out the whole line, users can just hit a key to get Kite to complete it more quickly.
“If you think about a whole code base, it might have millions of lines in it. But when developers write code they only really have in mind a couple different pieces that are related to the code they’re currently writing. That part of the code relevant to their codebase is small,” Smith said.
"Attention really helps you find that part of the codebase that is relevant to what the user is doing, making the problem of trying to predict what they’re going to write more feasible."
Kite Pro is aimed at professional developers. Students, however, will be able to get it for free. At the moment, the premium subscription service only supports Python. The differences between the free version and Pro can be found here, though generally speaking, the paid-for flavor offers line-of-code and multi-line completion, support, and more.
Whether you're using the free or pro version, the software runs locally on your computer or laptop, and doesn’t need to access a cloud server.
Smith is targeting enterprises next: “That involves a lot more capabilities that we need to add. They obviously have more local code than say a student, for example.”
Local code is specific to the company and contains proprietary information. At the moment, Kite only trains on global code, and Smith said training on the user’s own codebases is something the company believes will be possible in the future. ®