Liebe Maschinelles Lernen / KI-Community,
Ich bin nur ein angehender und aufstrebender Maschinenlerner, der an offenen Online-Datensätzen und einigen lokal für mein Projekt erstellten POCs gearbeitet hat. Ich habe einige Modelle gebaut und in Gurkenobjekte umgewandelt, um ein erneutes Training zu vermeiden.
Und diese Frage verwirrt mich immer wieder. Wie funktioniert ein echtes Produktionssystem für ML-Algorithmen?
Angenommen, ich habe meinen ML-Algorithmus mit einigen Millionen Daten trainiert und möchte ihn in ein Produktionssystem verschieben oder auf einem Server hosten. Konvertieren sie in der realen Welt in Essiggurkenobjekte? Wenn ja, wäre es eine riesige eingelegte Datei, nicht wahr? Diejenigen, die ich lokal trainiert und für 50000 Zeilendaten selbst konvertiert habe, beanspruchten 300 MB Speicherplatz auf der Festplatte für dieses eingelegte Objekt. Ich denke nicht, dass dies der richtige Ansatz ist.
Wie funktioniert es also, um zu vermeiden, dass mein ML-Algorithmus eingehende Daten neu trainiert und mit der Vorhersage beginnt? Und wie machen wir den ML-Algorithmus tatsächlich als kontinuierlichen Online-Lernenden? Zum Beispiel habe ich einen Bildklassifizierer erstellt und die eingehenden Bilder vorhergesagt. Ich möchte den Algorithmus jedoch erneut trainieren, indem ich die eingehenden Online-Bilder zu meinen zuvor trainierten Datensätzen hinzufüge. Möglicherweise nicht für alle Daten, aber täglich, wenn ich alle empfangenen Daten für diesen Tag kombinieren und mit neu 100 Bildern neu trainieren möchte, die mein zuvor trainierter Klassifikator mit dem tatsächlichen Wert vorhergesagt hat. Und dieser Ansatz sollte sich nicht auf meinen zuvor trainierten Algorithmus auswirken, um die Vorhersage eingehender Daten zu beenden, da dieses erneute Training aufgrund von Rechenressourcen und Daten einige Zeit in Anspruch nehmen kann.
Ich habe viele Artikel gegoogelt und gelesen, konnte aber meine obige Frage nicht finden oder verstehen. Und das verwirrt mich jeden Tag. Sind manuelle Eingriffe auch für Produktionssysteme erforderlich? oder gibt es einen automatisierten Ansatz dafür?
Alle Hinweise oder Antworten auf die oben genannten Fragen wären sehr hilfreich und würden geschätzt. Bitte lassen Sie mich wissen, wenn meine Fragen keinen Sinn ergeben oder nicht verständlich sind.
Dies ist kein Projekt, den ich suche. Nur ein allgemeiner Fall eines Beispiels für ML-Systeme in der realen Welt.
Vielen Dank im Voraus!
quelle
Ja, es ist typisch, dass das hochgeladene Modell dauerhaft dargestellt wird, und ja, es ist normalerweise sehr groß als Datei / Dateien. Mit Hilfe
pickle
ist eine Möglichkeit , es zu tun, häufig verwendet mitscikit-learn
, zum Beispiel. Deep-Learning-Frameworks haben normalerweise ihre eigenen Formate, aber nichts hindert Sie daran,pickle
sie auch zu verwenden, außer dass sie als Ansatz komplizierter und weniger effizient sind.Ich bin nicht sicher, ob ich den zweiten Teil der Frage verstehe, aber wenn Sie Ihr Modell online ändern möchten, hindert Sie nichts daran, eine neue Gurke zu erstellen. Es wird empfohlen, dass Sie eine neue Schulung als separaten Stapelprozess im Hintergrund ausführen, um zu vermeiden, dass Ihre Website oder Ihr Webdienst blockiert wird, insbesondere wenn Ihr Webanwendungsserver Single-Threaded ist. Darüber hinaus müssen Sie bei der Verwendung von Serverressourcen vorsichtig sein, damit Sie solche Batch-Updates in Zeiten mit geringem Datenverkehr besser ausführen können. Dies kann über das Wochenende erfolgen oder wenn Ihre Benutzerbasis überwiegend regional ist, nachts oder an Feiertagen.
quelle