Project Thoth is a recommendation engine for Python software stacks. As Python is becoming de-facto the language of choice for many data scientists and machine learning engineers, Thoth aggregates information about popular Python machine learning and data science packages, such as TensorFlow, PyTorch, and many others – this aggregation is done on different levels. One such data aggregation is done in a pipeline that is capable of installing and testing Python packages into different operating systems with a different set of software present in them (different versions of Python interpreter, different versions of glibc, …).
The goal of this thesis is to create a predictive model that can, based on data aggregated, spot patterns causing issues in software stacks and predict which software stacks will likely not work without actually running the application. An example of an issue can be a specific version of TensorFlow installed together with a specific version of numpy that cause API incompatibility issues spotted on run time.
A rough thesis overview:
- Get familiar with project Thoth and its goals.
- Get familiar with Thoth’s Amun service and Thoth’s dependency monkey.
- Get familiar with the input and output of Thoth’s Amun service.
- Create or use an existing data set provided by Thoth team that could spot issues during application assembling (e.g. incompatible Python interpreter version).
- Create or use an existing data set provided by Thoth team that could spot issues during application run (e.g. wrong/missing requirements, package syntax errors, …).
- Based on the aggregated data set, design and build one or more predictive models that can predict application issues (either runtime or build time).
- Evaluate the predictive models created and their accuracy.