-2

Ich habe gerade gemacht api, die Filme basierend auf Benutzereingaben mit Django empfiehlt. Es ist so konzipiert, dass es für alle 10 Eingaben eines jeden Benutzers eine Tiefenlernfunktion ausführt. Für diese 10 Eingänge dauert es etwa 10 Sekunden, um eine Ausgabe zu erhalten. Wie kann Google oder Amazon Daten in Echtzeit ohne Verzögerung aktualisieren?Wie funktioniert Deep Learning in Echtzeit?

Antwort

2

Wenn es um die Ausführung kommt kein tiefes ist lernen, gibt es nur tief Modell. Nehmen wir an, dass dies ein reguläres Feed-Forward-Modell ist, dann müssen Sie nur K (Tiefen) -Matrix-Multiplikationen durchführen. Für Faltungsschichten ist es viel mehr, aber immer noch Matrixmultiplikationen. All diese Operationen sind extrem einfach zu parallelisieren. Insbesondere wenn Sie sie nur auf GPU laufen lassen, erhalten Sie ~ 20x Boost. Die Verwendung von Tensorflow, der Berechnungen über viele Cores/CPUs/Maschinen verteilen kann, funktioniert ebenfalls auf die gleiche Weise. Es sind auch zahlreiche andere Optimierungen möglich, wie das Trainieren eines kleinen Netzes, um das Verhalten des großen zu replizieren, die Sparsität einiger Matrizen (wenn Sie Relus verwenden - viele Neuronen erzeugen Nullen, so erscheinen spärliche Matrizen) usw.

Davon abgesehen - Netzwerk, das 10s zu verarbeiten 10 Eingänge klingt wie eine schreckliche Implementierung oder das Netzwerk ist wirklich großen, so, bevor sie für die allgemeinen Optimierungsschemata nimmt - Ihr aktueller Code ist in Ordnung, stellen Sie sicher. Zum Beispiel, wenn Sie Tensorflow usw. verwenden, ist es wichtig, dass viele Dinge vor schieben Ihre Daten nehmen Zeit - wie Laden von Bibliotheken, Sitzungen, Sitzung starten .run selbst anrufen

+0

Entschuldigung mein Fehler, ich habe nur Apriori-Algorithmus für Das. Ich werde später mit TensorFlow versuchen. Meine Hauptfrage ist, dass ich nicht weiß, wie ich all diese Daten mit neuen Benutzern, die parallel eingegeben werden, aktualisieren und Benutzern den Zugriff auf diese Datenbank ermöglichen kann. Wie kann ich tiefes Lernen automatisieren, um Daten zu aktualisieren, ohne irgendwelche Schwierigkeiten (wie Verlangsamung) und so weiter zu machen? –

+0

Jetzt ist das eine ganz andere Frage, und normalerweise sind das zwei verschiedene Dinge. Sie haben ein Modell, das tatsächlich für die Vorhersage verwendet wird (nennen wir es A), dann haben Sie ein anderes, das trainiert wird (B), und Sie synchronisieren diese Modelle nur von Zeit zu Zeit (Kopieren von B nach A). Beide Dinge auf separaten Maschinen etc. So gibt es keine Verlangsamung, obwohl das Modell "parallel" trainiert. Wichtiger Vorteil eines solchen Ansatzes ist, dass Sie auch testen können, ob ein neu trainiertes Modell gut genug ist, bevor Sie es in die Produktion schieben (Kopieren nach A) – lejlot

+0

Also, wenn ich etwas google, verwenden sie Maschine B zu berechnen, während Vorhersage von Maschine A. und diese Maschinen sind schnell genug, um miteinander zu synchronisieren, um mir eine aktualisierte Vorhersage zu geben, wann immer ich versuche, etwas anderes zu suchen, das mit dem vorherigen in 10 Sekunden zusammenhängt? Entschuldigung, ich bin immer noch Anfänger. –

Verwandte Themen