2020-02715 - Temporary scientific engineer in machine learning and Python development

Contract type : Fixed-term contract

Level of qualifications required : PhD or equivalent

Fonction : Temporary scientific engineer

About the research centre or Inria department

The Inria Rennes - Bretagne Atlantique Centre is one of Inria's eight centres and has more than thirty research teams. The Inria Center is a major and recognized player in the field of digital sciences. It is at the heart of a rich R&D and innovation ecosystem: highly innovative PMEs, large industrial groups, competitiveness clusters, research and higher education players, laboratories of excellence, technological research institute, etc.

Context

Have you heard of Tensorly (www.tensorly.org)? Tensorly is a collaborative open-source project which aims at providing a complete python library for tensor manipulations and decompositions.
Tensorly is already a great toolbox featuring many tensor manipulations (such as permuting entries in multiway arrays), operations (such as the Khatri-Rao product or the MTTKRP) and tensor decomposition models (such as CP/PARAFAC, Tucker, Matrix Product State, soon PARAFAC2). However, several criticisms can be made about Tensorly:

  • the algorithms implemented for training these models are not state-of-the-art.
  • there is at most two different algorithms for training a tensor decomposition in Tensorly, while the literature has dozens for each model.
  • there is no plug-and-play system for more advanced users.

The Tensoptly project aims at solving the above issues, in order to drastically improve the Tensorly toolbox and expand its userbase. Although entirely funded by Inria, the Tensoptly project is a collaborative project. Collaborators for this project are

  • the core development team of Tensorly (tensorly.org), NViDia (in particular Anima Anandkumar's team), and the development community.
  • members of the project-team Panama hosting the project (Jeremy Cohen, Nancy Bertin, Axel Marmoret, possibly interns).
  • the users, composed among others of several Inria teams (SIROCCO, EMPENN, DANTE)

This job is thus an incredible opportunity to have a leadership role among many actors from the machine learning and informatics communities, with various cultures and expectations.

Assignment

Assignments:
The candidate will be the main developer of the Tensoptly project. Tensoptly will implement several features in Tensorly, in particular state-of-the-art optimization algorithms, class-based programming and easy customization.
These features are key to allow the Tensorly project to become usable in various fields of machine learning, which have various specificities, and drastically expand its user base.

For a better knowledge of the proposed project, see the official project webpage
(https://cohenjer.gitlab.io/tensoptly-website/project/).

Responsibilities:
The person recruited is responsible for the implementation of state-of-the-art algorithms and will take initiatives for his formation on tensor algebra and optimization and his collaboration with the various actors of the project.

Moreover, the person recruited will be in charge of managing the existing workforce and reviewing potential external contributions.

Main activities

Main activities:

  • Case study of several uses of tensor decomposition techniques
  • API design for the Tensoptly project
  • Efficient implementation of algorithms and routines
  • Ensuring the transmission of the code at the end of the project
  • Benchmarking existing algorithms using the Tensoptly implementation

Additional activities:

  • Building from exisintg free data set a benchmark data set for tensor decomposition.
  • Ponctual help on other projects within the team involving Python or collaborative development
  • Participation to the scientific life of the team (such as team and group meetings) and potential Tensorly developers meetings.

Skills

  • A PhD related to numerical optimization, machine learning or signal processing.
  • Publications or open-source software related to machine learning or numerical optimization.
  • Knowledge about numerical optimization (e.g. gradient descent, second-order methods, stochastic/extrapolated/proximal variants).
  • Experience in programming with Python.
  • Experience in collaborative projects hosted on plateforms such as Github. Experience in medium/large-scale collaborative projects is a plus. The candidate should be completely autonomous on these aspects.
  • Any knowledge about tensor decomposition or related models such as Nonnegative Matrix Factorization is a plus.

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Leave: 7 weeks of annual leave + 10 extra days off due to RTT (statutory reduction in working hours)
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage

Remuneration

Monthly gross salary from 2735 euros according to diploma and experience