ColBERTv2.0: Efficient, late-interaction retrieval in Julia.
- Mentors
- Cameron Pfiffer, Jan Siml
- Organization
- The Julia Language
- Technologies
- julia, Transformers, OpenAI, HuggingFace, LLMs, ollama
- Topics
- machine learning, information retrieval, generative AI, late-interaction
This projects aims to bring the well known ColBERTv2.0 information retrieval system to Julia! In this project, we aim to implement various components of the ColBERT model, with the major focus on indexing and search. Being a late-interaction retrieval system, ColBERT isolates all the computations between the queries and documents to enable pre-computing the document embeddings offline. Combined with a RAG pipeline as an embedding and retrieval backend, ColBERT can make the usage of existing AI tools really powerful. As part of the project, we also aim to apply this model to Julia's own extensive documentation (over thousands of packages), and integrate ColBERT with AIHelpMe.jl and PromptingTools.jl. Combine this with a locally hosted LLM, all Julia users get a powerful, modular, and easily hackable local AI assistant, allowing them to integrate ColBERT with their own RAG pipelines.
The main deliverable of the project will be a new package (called ColBERT.jl), with the implementation design inspired from the original Python implementation of ColBERTv2.0 (i.e the centroids + residuals compression method). The project will also have an extensive number of addons, including, but not limited to, implementing the training module for this package, which will allow users to train their own ColBERT models instead of relying on pretrained checkpoints, and distributed training (using existing art like DaggerFlux.jl).