Normalerweise ist ein wichtiges Thema in DevOps, wie wir uns um die automatisierte Erstellung und Bereitstellung von Software-Artefakten kümmern.
Mit dem Aufstieg der Datenwissenschaft gibt es eine neue Art von Artefakten - monolitische binäre Blobs, die beispielsweise ein trainiertes neuronales Netz oder andere Modelle des maschinellen Lernens darstellen. Ein solcher Blob kann eine Größe von vielen GB haben und seine Erstellung ist noch nicht standardisiert. AFAIK bringt Organisationen zurück in das Zeitalter vor CI. Trotzdem haben sie ihre Version und die dazugehörigen Sammlungen von Trainingsdaten (Korpora), die ebenfalls schnell wachsen.
Was sind Best Practices, um diese neue Herausforderung mithilfe von DevOps-Methoden anzugehen - wenn überhaupt möglich?
quelle
Antworten:
Persönlich sehe ich keinen Grund, aus dem ein Artefakt-Repository - das empfohlene DevOps-Tool zum Verwalten von Artefakten - nicht auf trainierte neuronale Netze oder andere Artefakte anwendbar wäre.
Die Artefaktgröße kann eine Obergrenze für ein bestimmtes Artefakt-Repository haben, in diesem Fall handelt es sich jedoch um eine technische oder Richtlinienbeschränkung, nicht um eine grundlegende / prinzipielle.
Was die Anwendung von DevOps-Methoden für den Prozess zur Herstellung dieser Artefakte betrifft, denke ich, dass die meisten, wenn nicht alle gleich gut angewendet werden können, solange die Artefakte:
Randnotiz: Die Bereitstellung von monolithischem Software-Code ist immer noch eine große Sache und kann mit DevOps-Methoden (mit ein wenig Sorgfalt) perfekt gewartet werden. Nicht alles kann in Microservices aufgeteilt werden. Die Größe spielt keine Rolle, sodass DevOps nicht anwendbar ist.
quelle
git lfs
und ziehe sie bei Bedarf [serverloses Paradigma] :)git-lfs
Ich würde empfehlen, einen Blick auf DVC zu werfen - ein Open-Source-Versionskontrollsystem für datenwissenschaftliche Projekte.
Eines der grundlegenden Dinge, die perfekt verarbeitet werden, ist die Verwaltung von Datendateien (zusammen mit Code) - Eingaben, Ausgaben (Modelle), Zwischenergebnisse. Semantisch ist es ähnlich,
git-lfs
aber im Gegensatzgit-lfs
dazu ist es in der Lage, Dateien wie 100 GB zu verwalten, und was noch wichtiger ist, es basiert nicht auf proprietärem Speicher / Format. Es ist vollständig Open Source und mit jedem Netzwerkspeicher als Server kompatibel, um Datendateien zu speichern - S3, GCP-Cloud-Speicher, SSH, FTP usw.quelle