Internship@Grenoble: The AI Pac-Man - Using LLM-agents for End-to-end Software Packaging.

Contract type : Internship agreement

Level of qualifications required : Master's or equivalent

Fonction : Internship Research

About the research centre or Inria department

The Centre Inria de l’Université de Grenoble groups together almost 600 people in 23 research teams and 9 research support departments.

Staff is present on three campuses in Grenoble, in close collaboration with other research and higher education institutions (Université Grenoble Alpes, CNRS, CEA, INRAE, …), but also with key economic players in the area.

The Centre Inria de l’Université Grenoble Alpe is active in the fields of high-performance computing, verification and embedded systems, modeling of the environment at multiple levels, and data science and artificial intelligence. The center is a top-level scientific institute with an extensive network of international collaborations in Europe and the rest of the world.

Context

The internship will take place at the DataMove team located in the IMAG building on the campus of Saint Martin d’Heres (Univ. Grenoble Alpes) near Grenoble, under the supervision of Bruno Raffin (bruno.raffin@inria.fr), Andres Bermeo (andres.bermeo-marinelli@inria.fr).

The length of the internship is 4 months minimum and the start date is flexible, but need a 2 month delay before starting the interhsip due to administrative constraints. The DataMove team is a friendly and stimulating environment that gathers Professors, Researchers, PhD and Master students. The city of Grenoble is a student-friendly city surrounded by the Alps mountains, offering a high quality of life and where you can experience all kinds of mountain-related outdoor activities.

Assignment

The recent but already famous AI Scientist paper proposes to rely on a combination of LLM-agents to automate research paper generation. It covers the process end-to-end: generating novel research ideas, writing and debugging code for experiments, executing these experiments, generating plots from results, describing its findings by writing a full scientific paper, and even reviewing the paper.

The goal of this internship is to take inspiration from this pipeline while targeting a more focused task: building software packages. We have a double motivation: The first one is to evaluate the potential of such LLM-agents for non-trivial coding tasks (but not so complex that it will prevent us from getting interesting results within a few months), the second is to actually build a tool that hopefully will be useful for our team.

Our team has been involved in software packaging efforts and developed advanced expertise with the Nix, Guix and Spack software packagers. The main task of packaging software is writing a specification file that identifies all required dependencies, how to download the software, and how to call its build tools, like Cmake with the correct options. Once completed, a command like "guix install emacs" should install all dependencies, download the code, compile and install it.

The task of writing a package description is time-consuming. Different package managers often use their own specification language. It may also require modifying compilation recipes (cmakelist.txt files for cmake) that directly install dependencies (dependencies should all be installed through the package manager to properly track them).

We are looking for a motivated candidate with experience in development tools (CMake, Git, CI/CD, some software packagers - preferably Spack, Guix or Nix), strong Python programming skills, and some practice with LLMs. The candidate's goal will be to prototype an end-to-end solution using LLM-agents that can:

  • Use package managers to query existing packages, test building and installing a given package
  • Produce a package recipe for a given software, potentially modifying compilation recipes (like CMakeLists.txt) when required
  • Compile and install the built package, retrieve errors if any, correct them, and repeat until successful

 

Recommended References:

Main activities

 After getting familiar with the base concepts, existing work, deploying and runing some simple tests, the candidate will iterate to ellaborate a solution  and test it.  The candidate will join a team developping applications and framwork for high performance computing,  experts of the Nix and Guix software  packagers.



Skills

Expected skills include

  • Devops Knowledge: software compilation,  Git, cmake,  package management (Nix, Guix or other), CI  
  • Some practical experience with LLMs.
  • Python
  • English (working language)

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Leave
  • Possibility of teleworking and flexible organization of working hours

Remuneration

 €4.35 per hour of actual presence at 1 January 2024.

About 590€ gross per month (internship allowance)