Dependency
Dependency (Abhängigkeit) bezeichnet im Software-Kontext die Beziehung zwischen Komponenten, bei der eine Komponente die andere benötigt, um zu funktionieren. Im KI/ML-Ökosystem sind Abhängigkeiten eine permanente Quelle von Komplexität und Fehlerquellen.
Python-Dependencies sind das tägliche Brot des ML-Engineers. PyTorch erfordert eine bestimmte CUDA-Version. CUDA erfordert eine bestimmte GPU-Treiberversion. transformers erfordert eine bestimmte tokenizers-Version. Ein Requirements-Conflict zwischen zwei Bibliotheken kann Stunden des Debuggens kosten. Der berüchtigte „dependency hell" ist in ML-Projekten besonders akut, weil die Versionierung von Hardware (GPU), Treibern (CUDA), Frameworks (PyTorch/TensorFlow) und Libraries (Hugging Face, scikit-learn) über mehrere Ebenen synchronisiert sein muss.
Tools zur Abhängigkeitsverwaltung: pip + requirements.txt (simpel, aber fragil), conda (isolierte Environments mit nativen Dependencies), Poetry und uv (modernes Dependency Resolution), Docker (Container packen alle Dependencies ein), Nix (reproduzierbare Builds).
In NLP: Dependency Parsing ist eine klassische Aufgabe — die syntaktische Analyse von Satzstrukturen. „Der Hund beißt den Mann" → „Hund" ist Subjekt, „beißt" ist Verb, „Mann" ist Objekt. spaCy und Stanza implementieren neuronale Dependency Parser, die für Informationsextraktion und Fragebeantwortung genutzt werden.
In der ML-Infrastruktur: Model Dependencies beschreiben, welche Daten, Features und vortrainierten Modelle ein System benötigt. Feature Stores und Modell-Registries tracken diese Abhängigkeiten systematisch.