The AI Assistant plugin provides AI-powered features for software development in all JetBrains IDEs. This plugin integrates the remotely hosted large language models (LLMs) into development workflows. Despite sufficient capabilities, the LLMs don’t know about the project opened in the IDE. Since attaching the whole project to requests is not an option, we select only a small part of it, identified as related to a task. The better context is selected, the better the response from the LLM will be. This approach is usually called RAG (retrieval-augmented generation).
Our RAG system is based on multiple components. One is the embedding model we use to retrieve task-related project entities, such as classes, symbols, documentation, etc. As an intern, you will explore how to improve this retrieval and test your ideas directly in the product.
We have several open ideas, such as:
Fine-tuning one of the well-performing open-source text embedding models on code and optimising it for on-device inference.
Including the surrounding context in embeddings to improve their quality.
Improvement of evaluation methods and our in-house datasets.
Hybrid retrieval involving sparse methods, like BM25 or SPLADE.
Specialised models for different types of entities.
File chunking approach improvements.
During the internship, you will work on one of these projects.
Feel free to contact us with any questions via telegram or email.
Good knowledge of Python
Prior experience with deep learning and natural language processing (might be coursework, personal projects or internships)
Great communication skills
Motivation and passion for learning
Nice to have:
Basic knowledge of Java/Kotlin
Understanding of how to design ML experiments and interpret their results
Experience with developing LLM-based applications
Experience with information retrieval or recommendation systems, and their evaluation