Ethics in AI pair programming

Posted on June 22nd, 2022

As ethics questions go, the judgement of AI applicability to programming might not rate all that high on the list of thorny moral conundrums. But AI is a part of our lives now. From the curated on our Twitter feeds to the music we listen to. In a technologically driven world it’s hard to find an activity where we don’t have machine learning code somewhere close at hand or actively assisting our pursuits whether we like it or not. Still are there ethical considerations that Tabnine, or any company involved in AI code assistance, should think about? I think the answer is an absolute yes!

Framing the problem is a good place to start. Where do most companies in need of solid programming skills find talented folks? Really good code hands are hard to come by these days and awfully expensive when you can get them onboard. If it works you can find talented folks overseas, or remote, but that does introduce an extra layer of complexity in managing the team and due to compliance reasons isn’t always an option. So if we are short on skills, and availability of people becomes the long pole in a product development roadmap what are the options that we are left with? Languages are becoming easier to use. Functional libraries in Java, Javascript, Python or any of the many modern languages can help wrap up complex code and make things faster, but bless those Haskell devs out there…

Still, transferring knowledge, refactoring code to address tech debt and documentation requires people with hands on keyboards and if there just are not enough of them to go around we have to fall back on technology. This is where AI enabled tools for code can come into play. Done correctly ML based models for a company can have a good sense of existing code, can be contextually aware of comments in the code and help a new hire avoid mistakes that might slow down development.

However, ML doesn’t live in a vacuum and it’s only as good as the data it’s trained on. But that code was likely written by someone. Probably by someone in the company, either currently or in the past. In this case AI code enhancement is pretty cut and dried. But it isn’t the only source of quality code. Open source is another data source for training your company’s algorithm and if done according to appropriate licensing permissions this too can be a good place to get new libraries and best practices.

But it’s not a free for all out there, it’s vitally important to examine where code from outside your organization is coming from. First for provenance and quality, but perhaps just as importantly has it been released for the purposes of our model training? Back when we were all taking CS classes in college we knew how frustrating it was to debug an assignment, and how much easier it would be to cut and paste. Plagiarism isn’t really an easily detectable fault in coding. So perhaps it’s easy to see the issues in copying code via AI for which the creator granted no permissions.

Can we fail in other ways though? If it becomes easier and easier to allow an algorithm to write code for us, are we not opening ourselves up to the ethical failure of attentiveness and stewardship of our code? Propagating a zero day is an easy fault to see happening, but what of innovation? AI assisted development helps us average folks achieve better code but it also removes the frustration and unique thinking that can come along with solving a problem in a new way. We run the risk of making our code more similar, more stagnant and possibly more vulnerable.

Ethics in coding and the new wrinkles that AI brings to this arena are far from easy to sort out. There may be more socially visible implications of AI, but as the world continues to become more entwined with technology the ethics of the code that powers that technology should also be a part of our discussion.

Announcing our next-generation AI models

Posted on June 15th, 2022

Today, I’m excited to make a few important announcements:

1,000,000+ developers use Tabnine!

I’m happy to share that Tabnine is successfully automating 30% (and often >40%) of the code created by over 1,000,000 developers. I would like to thank our fantastic user community. One million developers is massive, but as we’re confident that all developers will use AI in the near future, you are the early adopters of AI technology for creating higher quality software faster. Your trust and feedback drive us to push the limits of what’s possible, taking Tabnine to a new and exciting technology foundation.

Tabnine’s new code-native AI models enable whole-line, full-function code completions, and natural language-to-code completions.

Over the past year, we have completely revamped our AI models as well as our approach to integrating new models into the platform. As opposed to a monolithic approach that mandates a single AI model, Tabnine now supports any compatible AI model for providing guidance to developers. 

In fact, Tabnine now uses a family of a dozen of code-native models. The new code-native models are trained from the ground-up on code (vs. models pre-trained on text and retro-fitted to learn code). Each of these models is optimized from its basic “vocabulary” to fit a specific language and domain, thus using the entire learning capacity of the model for the relevant code patterns. Our code-native models improve Tabnine by providing better precision and a 5x increase in the length of suggestions. 

Tabnine’s AI models run on a powerful GPU cluster to predict the code for you. We can’t wait for you to try it!

With the new AI models, Tabnine can contextually complete whole lines of code and even full functions, as well as generate code based on natural language description in comments. This functionality is now available for Python, JavaScript, TypeScript, Java, and 7 other languages as a part of Tabnine Pro using the Visual Studio Code and JetBrains IDEs.

 

 

The new models are now used for predicting full lines and snippets of code, and we’ll be gradually rolling them out also for better precision and length than the current mid-line code completion available in Tabnine Starter.

Launching Tabnine Pro

We’ve included the new line completion and snippet completion functionality in our new Pro plan, which is now our recommended plan for professional developers. The new Pro plan also allows customers of 3+ team members to train the AI model on the code in their GitHub, GitLab, or BitBucket repositories.

Read more 

New financing round

We’re also happy to announce that we’ve raised a new financing round of $15.5M to fuel our growth and accelerate our journey to craft the software development experience of the future.

[cta_btn label=”Get Started for Free”]

Tabnine goes hybrid, serving AI models on both cloud and local

Posted on June 8th, 2022

Harnessing the combined power of both cloud and local servers is essential for providing the best possible code prediction experience for our users. 

That’s why we’re excited to introduce Tabnine’s new Hybrid model, which uses both Cloud and Local inference. As of June 1, 2022, Tabnine’s new hybrid model will be enabled by default for all new installations, meaning that Tabnine will use both local machines and our cloud servers in tandem to provide contextual code completions.

Why is Tabnine moving to a hybrid model?

Tabnine’s cloud offering has greatly evolved over the past year, partly due to a significant increase in the size of models and model specialization. Effective inference with these models cannot be run completely locally. 

Our cloud models which require network connectivity, allow you to use Tabnine’s servers for GPU-accelerated completions, offering more accurate and longer predictions. 

Local models run without network access and rely on local resources; as a result, they’re not as powerful as the cloud models. 

Tabnine’s new Hybrid Model combines the benefits of both.

What does it mean for you? 

You still have full control

Although we recommend keeping the hybrid model enabled, you can easily switch to cloud or local mode at any time. Just visit the Tabnine Hub to change the default configuration. 

We remain committed to your privacy 

Tabnine continues to place the highest value on your privacy, never storing nor sharing any of your code. All communication with the cloud is strongly encrypted. Learn more about Tabnine’s code privacy here

Always moving forward

This new hybrid model is an important step in our quest for providing more and more powerful coding experiences for our users, but it’s just one of many to come. 

Stay tuned for more news coming soon…