CoreNet: Bibliothek zum Training tiefer neuronaler Netze
(github.com/apple)Einführung in CoreNet, ein von Apple entwickeltes Deep-Learning-Framework
- CoreNet ist ein von Apple entwickeltes Deep-Learning-Framework, mit dem sich standardmäßige oder neue große Modelle für verschiedene Tasks trainieren lassen
- Unterstützung für Tasks wie Foundation Models (CLIP, LLM), Objektklassifikation, Objekterkennung, semantische Segmentierung usw.
- Das kürzlich aktualisierte v0.1.0 enthält unter anderem OpenELM, CatLIP und MLX-Beispiele
Apples Forschungsergebnisse mit CoreNet
- OpenELM: ein effizientes Open-Source-Language-Model für Training und Inferenz
- CatLIP: erreicht CLIP-Niveau bei 2,7-mal schnellerem Pretraining auf Web-Scale-Bild-Text-Daten
- FastVit: schneller hybrider Vision Transformer mit struktureller Reparametrisierung
- Bytes Are All You Need: ein Transformer, der direkt auf Byte-Ebene von Dateien arbeitet
- MobileOne: ein Backbone-Netzwerk für Mobilgeräte mit 1 ms Latenz
- RangeAugment: effiziente Online-Augmentation mithilfe von Range Learning
- MobileViT: ein leichtgewichtiger, mobilfreundlicher Vision Transformer
- Vorstellung vieler weiterer Forschungsergebnisse
Installation und Einrichtung der Entwicklungsumgebung
- Git LFS muss installiert werden (erforderlich für Tests, das Ausführen von Jupyter Notebooks und Beiträge)
- Unter Linux werden Python 3.10+ und PyTorch v2.1.0+ empfohlen
- Unter macOS ist Python 3.9+ ausreichend
- Optionale Abhängigkeitspakete werden für Beiträge oder das Ausführen von Tests benötigt
- Erläuterung detaillierter Installationsmethoden für Linux und macOS sowie der Paketinstallation für Audio-/Videoverarbeitung
Verzeichnisstruktur von CoreNet
tutorials: Beispiele für den Einstieg- Modelle von Grund auf mit neuen Datensätzen trainieren
- Leitfaden für SLURM- und Multi-Node-Training
- Beispiele für CLIP, semantische Segmentierung und Objekterkennung
projects: bietet Trainingsrezepte, vortrainierte Gewichte und Checkpoints für jeden Task- Dokumentation, Links zu vortrainierten Gewichten und Zitationsinformationen in
README.md - Reproduzierbare Trainings-/Evaluierungskonfigurationen über Dateien wie
<task_name>/<model_name>.yaml
- Dokumentation, Links zu vortrainierten Gewichten und Zitationsinformationen in
mlx_example: Beispiele, um CoreNet-Modelle auf Apple Silicon effizient auszuführencorenet/modeling/models: nach Tasks organisierte Modellimplementierungen- Task-Name und Modellname werden per Decorator festgelegt
- Erläuterung, wie die zu verwendende Modellklasse in YAML-Konfigurationsdateien angegeben wird
corenet/data/datasets: nach Tasks organisierte Datensätze- Erläuterung weiterer Implementierungsverzeichnisse für Klassen, auf die in YAML-Konfigurationen verwiesen wird
loss_fn,metrics,optims,datausw.
Informationen zum CoreNet-Projekt
- Sachin begann die Entwicklung; derzeit wird es von Sachin, Maxwell Horton, Mohammad Sekhavat und Yanzi Jin gepflegt
- Pull-Request-Beiträge aus der Community sind willkommen. Siehe Beitragsdokumentation.
- CoreNet ist ein aus CVNets hervorgegangenes Projekt und wurde über Vision hinaus erweitert, um auch das Training von Foundation Models wie LLMs zu unterstützen
Meinung von GN⁺
-
CoreNet wirkt wie ein umfassendes Deep-Learning-Framework, das aktuelle SOTA-Modelle abdeckt. Neben Implementierungen der SOTA-Modelle bietet es auch Trainingspipelines, wodurch sich bestehende Forschungsergebnisse vermutlich leicht reproduzieren lassen.
-
Da es sich um ein von Apple entwickeltes Framework handelt, ist ein optimierter Betrieb auf Apple-Silicon-Geräten zu erwarten. Besonders die MLX-Beispiele geben einen Einblick in Optimierungsansätze für Apple Silicon.
-
Bemerkenswert ist, dass es nicht nur Vision-Tasks, sondern auch das Training von Foundation Models wie LLMs unterstützt. Allerdings ist die derzeit veröffentlichte Version 0.1.0 und scheint noch in einem frühen Stadium zu sein. Künftige Update-Pläne und eine Roadmap wären interessant.
-
Als PyTorch-basiertes Framework dürfte es die vielfältigen Funktionen des PyTorch-Ökosystems nutzen können. Aufgrund der aktuellen Projektstruktur scheint die Interoperabilität mit anderen Frameworks jedoch schwierig zu sein.
-
Eine Funktion zum Exportieren von Modellen über ONNX oder TorchScript wäre wünschenswert. Außerdem könnte man über Integrationsmöglichkeiten in das Apple-Ökosystem nachdenken, etwa die Konvertierung zu CoreML bei der Entwicklung von iOS- und macOS-Apps.
1 Kommentare
Hacker-News-Kommentare
default_trainer.pyin CoreNet zeigt, dass zwar Tensoren von PyTorch verwendet werden, die Trainingsmethodik aber selbst implementiert ist. Es gibt einen eigenen LR-Scheduler und Optimizer, und Aufrufer können optional PyTorchs Adam verwenden.