Die in Anwendungen wie medizinischen Bildverarbeitung und Spracherkennung verwendeten Modelle für künstliche Intelligenz von Neuronales Netzwerk führen Vorgänge für äußerst komplexe Datenstrukturen aus, die eine enorme Menge an Berechnung erfordern, um zu verarbeiten. Dies ist ein Grund, warum Deep-Learning-Modelle so viel Energie verbrauchen.
Um die Effizienz von KI -Modellen zu verbessern, haben MIT -Forscher ein automatisiertes System erstellt, das es Entwicklern von Deep -Learning -Algorithmen ermöglicht, gleichzeitig zwei Arten von Datenredenz zu nutzen. Dies reduziert die Menge an Berechnung, Bandbreite und Speicherspeicher, die für maschinelles Lernen erforderlich sind.
Bestehende Techniken zur Optimierung von Algorithmen können umständlich sein und ermöglichen es den Entwicklern normalerweise nur, entweder von Sparsity oder Symmetrie zu profitieren – zwei verschiedene Arten von Redundanz, die in Deep -Lern -Datenstrukturen existieren.
Indem ein Entwickler einen Algorithmus von Grund auf erstellen kann, der beide Redundanzen gleichzeitig ausnutzt, steigerte der Ansatz der MIT -Forscher die Geschwindigkeit der Berechnungen in einigen Experimenten um fast das 30 -fache.
Da das System eine benutzerfreundliche Programmiersprache verwendet, kann es Maschinenlernalgorithmen für eine Vielzahl von Anwendungen optimieren. Das System könnte auch Wissenschaftlern helfen, die keine Experten für tiefes Lernen sind, sondern die Effizienz von AI -Algorithmen verbessern möchten, die sie verwenden, um Daten zu verarbeiten. Darüber hinaus könnte das System Anwendungen im wissenschaftlichen Computer haben.
„Lange Zeit erfordert die Erfassung dieser Datenbekämpfungen viel Implementierungsaufwand. Statt Willow Ahrens, ein MIT-Postdoc und Co-Autor eines Papiers über das System, das auf dem Internationalen Symposium zur Erzeugung und Optimierung des Codes vorgestellt wird.
Sie wird von der leitenden Autorin Radha Patel ’23, SM ’24 und dem leitenden Autor Saman Amarasinghe, Professor der Abteilung für Elektrotechnik und Informatik (EECS) und Hauptforscher im Labor für Informatik und künstliche Intelligenz (Laborin des Künstlichen Intelligenz (ECECS) (EECS) (SM ’24) begleitet. CSAIL).
Berechnung ausschneiden
Im maschinellen Lernen werden Daten häufig als mehrdimensionale Arrays dargestellt und manipuliert, die als Tensoren bezeichnet werden. Ein Tensor ist wie eine Matrix, eine rechteckige Array von Werten, die auf zwei Achsen, Zeilen und Säulen angeordnet sind. Aber im Gegensatz zu einer zweidimensionalen Matrix kann ein Tensor viele Abmessungen oder Achsen haben, die Tensoren schwieriger zu manipulieren.
Deep-Learning-Modelle führen Operationen auf Tensoren mit einer wiederholten Matrix-Multiplikation und Addition durch-dieser Prozess ist, wie neuronale Netze komplexe Muster in Daten lernen. Das bloße Volumen der Berechnungen, die an diesen mehrdimensionalen Datenstrukturen durchgeführt werden müssen, erfordert eine enorme Menge an Berechnung und Energie.
Aufgrund der Art und Weise, wie Daten in Tensoren angeordnet sind, können die Ingenieure die Geschwindigkeit eines neuronalen Netzwerks häufig steigern, indem sie redundante Berechnungen abschneiden.
Wenn beispielsweise ein Tensor Benutzerüberprüfungsdaten von einer E-Commerce-Website darstellt, sind die meisten Werte in diesem Tensor wahrscheinlich Null. Diese Art der Datenreduktion wird als Sparsity bezeichnet. Ein Modell kann Zeit und Berechnung sparen, indem nur auf Werte ungleich Null speichert und arbeitet.
Darüber hinaus ist manchmal ein Tensor symmetrisch, was bedeutet, dass die obere Hälfte und untere Hälfte der Datenstruktur gleich ist. In diesem Fall muss das Modell nur auf einer Hälfte arbeiten, wodurch die Berechnung reduziert wird. Diese Art der Datenreduktion wird als Symmetrie bezeichnet.
„Aber wenn Sie versuchen, diese beiden Optimierungen zu erfassen, wird die Situation ziemlich komplex“, sagt Ahrens.
Um den Prozess zu vereinfachen, haben sie und ihre Mitarbeiter einen neuen Compiler erstellt, der ein Computerprogramm ist, das komplexen Code in eine einfachere Sprache übersetzt, die von einer Maschine verarbeitet werden kann. Ihr Compiler, genannt SYSTEC, kann Berechnungen optimieren, indem sie sowohl die Sparsity als auch die Symmetrie in Tensoren automatisch nutzen.
Sie begannen den Prozess des Aufbaus von SYSTEC, indem sie drei wichtige Optimierungen identifizierten, die sie mit Symmetrie durchführen können.
Wenn der Ausgangspendentor des Algorithmus symmetrisch ist, muss er nur eine Hälfte davon berechnen. Zweitens muss der Algorithmus nur die Hälfte davon lesen, wenn der Eingangsprüfungszensor symmetrisch ist. Wenn die Zwischenergebnisse von Tensoroperationen symmetrisch sind, kann der Algorithmus redundante Berechnungen überspringen.
Gleichzeitige Optimierungen
Um SYSTEC zu verwenden, gibt ein Entwickler sein Programm ein und das System optimiert seinen Code automatisch für alle drei Symmetriearten. Anschließend führt die zweite Phase von SYSTEC zusätzliche Transformationen durch, um nur Datenwerte ungleich Null zu speichern und das Programm für die Sparsity zu optimieren.
Letztendlich generiert SYSTEC einsatzbereit.
„Auf diese Weise erhalten wir die Vorteile beider Optimierungen. Und das Interessante an Symmetrie ist, wie Ihr Tensor mehr Dimensionen hat, können Sie noch mehr Einsparungen bei der Berechnung erzielen“, sagt Ahrens.
Die Forscher zeigten Beschleunigungen von nahezu einem Faktor 30, wobei der Code automatisch von SYSTEC generiert wurde.
Da das System automatisiert ist, kann es besonders nützlich sein, in Situationen, in denen ein Wissenschaftler Daten mit einem Algorithmus verarbeiten möchte, den er von Grund auf neu schreiben.
In Zukunft möchten die Forscher SYSTEC in vorhandene spärliche Tensor -Compiler -Systeme integrieren, um eine nahtlose Schnittstelle für Benutzer zu erstellen. Darüber hinaus möchten sie ihn verwenden, um den Code für kompliziertere Programme zu optimieren.
Diese Arbeit wird teilweise von Intel, der National Science Foundation, der Defense Advanced Research Projects Agency und dem Department of Energy finanziert.