Software dependencies 2.0: An empirical study of reuse and integration of pre-trained models in open-source projects
摘要
Pre-trained models (PTMs) are machine learning models that have been trained in advance, often on large-scale data, and can be reused for new tasks, thereby reducing the need for costly training from scratch. Their widespread adoption introduces a new class of software dependency, which we term Software Dependencies 2.0, extending beyond conventional libraries to learned behaviors embodied in trained models and their associated artifacts. The integration of PTMs as software dependencies in real projects remains unclear, potentially threatening maintainability and reliability of modern software systems that increasingly rely on them.
ObjectiveIn this study, we investigate Software Dependencies 2.0 in open-source software (OSS) projects by examining the reuse of PTMs, with a focus on how developers manage and integrate these models. Specifically, we seek to understand: (1) how OSS projects structure and document their PTM dependencies; (2) what stages and organizational patterns emerge in the reuse pipelines of PTMs within these projects; and (3) the interactions among PTMs and other learned components across pipeline stages.
MethodWe conduct a mixed-methods analysis of a statistically significant random sample of 401 GitHub repositories from the PeaTMOSS dataset (28,575 repositories reusing PTMs from Hugging Face and PyTorch Hub). We quantitatively examine PTM reuse by identifying patterns and qualitatively investigate how developers integrate and manage these models in practice.
ResultsWe find that multi-PTM reuse is common (52.6% of the studied projects). In these projects, a notable portion of PTMs are interchangeable (37%), meaning one model can seamlessly replace another in the workflow, while others are complementary (23%), performing distinct functional roles. This integration complexity is compounded by fragmented dependency declarations across code, documentation, and configuration files, with only 21.2% of projects documented outside code. We identify three types of PTM reuse pipelines, i.e., feature extraction, generative, and discriminative, all involving varying degrees of PTM adaptation, from as-is reuse to head addition or architectural modification. PTMs also frequently interact with other models in tightly coupled or modular designs, reflecting the complexity of such systems.
ConclusionManaging Software Dependencies 2.0 and PTM reuse pipeline complexity introduces unique technical challenges in ML-enabled software. Our findings underscore the need for enhanced tools and practices that treat PTMs as first-class, modular components, facilitating their reliable integration and long-term maintenance within Software Dependencies 2.0. We identify future research on PTM reuse and integration as a way to further understand Software Dependencies 2.0.