Warum eine GPU für das KI-Training benötigt wird

Mit dem durch ChatGPT ausgelösten KI-Boom sind GPUs zum Eckpfeiler der KI-Trainingsplattformen für große Modelle geworden und können sogar als entscheidende Rechenbasis bezeichnet werden. Um die Frage zu beantworten, warum GPUs für das KI-Training benötigt werden, ist es wichtig, die wichtigsten Technologien in der künstlichen Intelligenz (KI) und im Deep Learning zu verstehen.

Künstliche Intelligenz und Deep Learning

Künstliche Intelligenz ist eine Disziplin mit einer langen Geschichte. Seit den 1950er Jahren wurde es in verschiedenen technologischen Richtungen erforscht und erlebte mehrere Höhen und Tiefen. Aus den Anfängen der Künstlichen Intelligenz entstand ein eher erfolgloses Genre namens „Künstliche Neuronale Netze“. Das Konzept hinter dieser Technologie war, dass die Intelligenz des menschlichen Gehirns beispiellos ist und dass die Nachahmung des menschlichen Gehirns der Schlüssel zum Erreichen fortgeschrittener künstlicher Intelligenz ist. Das menschliche Gehirn besteht aus Milliarden von Neuronen, die miteinander verbunden sind und ein riesiges und komplexes neuronales Netzwerk bilden. Das Gehirn eines Babys ist wie ein unbeschriebenes Blatt, das durch postnatales Lernen ein hohes Maß an Intelligenz erreichen kann.

Von biologischen Neuronen zu künstlichen Neuronen

Künstliche Neuronenmodelle wurden entwickelt, um sich von den Neuronen des menschlichen Gehirns inspirieren zu lassen. In den künstlichen Neuronen auf der rechten Seite des Diagramms führt die Anpassung der Gewichtung jeder Eingabe und deren Verarbeitung durch das Neuron zur entsprechenden Ausgabe. Jedes Gewicht wird in diesem Zusammenhang als Parameter bezeichnet.

künstliche neuronale Netz

Durch die Verbindung mehrerer Neuronen zu einem Netzwerk entsteht ein künstliches neuronales Netzwerk. Künstliche neuronale Netze bestehen typischerweise aus einer Eingabeschicht, mehreren dazwischen liegenden verborgenen Schichten und einer Ausgabeschicht.

Solche künstlichen neuronalen Netze ähneln dem Gehirn eines Babys – leer und benötigen umfangreiche Datenzufuhr, um umfassend zu lernen und sich Wissen für die praktische Problemlösung anzueignen. Dieser Prozess wird als „Deep Learning“ bezeichnet und fällt in die Untergruppe des „maschinellen Lernens“.

lernen

Beim häufig verwendeten Ansatz des „überwachten Lernens“ müssen die der KI zugeführten Daten sowohl das Problem als auch die Antwort enthalten. Wenn das Ziel beispielsweise darin besteht, die KI darauf zu trainieren, zu erkennen, ob ein Bild eine Katze zeigt, müssen wir der KI viele Bilder mit der Kennzeichnung „Katze“ sowie die charakteristischen Merkmale von Katzen zur Verfügung stellen. Anhand dieser Beispiele wird die KI dann die Muster und Eigenschaften von Katzen erlernen.

Der Lernprozess beginnt damit, dass die KI ein bestimmtes Bild anhand seines anfänglichen Parametersatzes analysiert. Anschließend vergleicht es seine Schlussfolgerung mit der richtigen Antwort und passt die Parametergewichte entsprechend an. Dieser iterative Prozess wird fortgesetzt, bis die Ausgabe der KI nahezu mit der richtigen Antwort übereinstimmt.

Der Lernprozess des neuronalen Netzwerks

Dieser Lernprozess wird Training genannt. Im Allgemeinen führt die Bereitstellung einer großen Datenmenge mit bekanntermaßen korrekten Antworten für die KI zu besseren Trainingsergebnissen. Sobald wir mit dem Training zufrieden sind, können wir die Leistung der KI bei unbekannten Problemen testen. Wenn die KI die Antworten genau finden kann, betrachten wir das Training als erfolgreich und die KI hat gute „Generalisierungsfähigkeiten“ bewiesen.

Ein einfaches neuronales Netzwerk

Wie im Diagramm dargestellt, handelt es sich bei der Übertragung von Parametergewichten von einer Schicht des neuronalen Netzwerks auf die nächste im Wesentlichen um Matrixmultiplikation und -addition. Je größer die Skala der Parameter des neuronalen Netzwerks ist, desto umfangreicher sind die während des Trainings erforderlichen Matrixberechnungen.

Die fortschrittlichsten Deep-Learning-Neuronalen Netze können Hunderte Millionen bis Billionen Parameter haben und erfordern große Mengen an Trainingsdaten, um eine hohe Genauigkeit zu erreichen. Das bedeutet, dass sie eine enorme Anzahl von Eingabeproben durch Vorwärts- und Rückwärtsausbreitung verarbeiten müssen. Da neuronale Netze aus einer großen Anzahl identischer Neuronen aufgebaut sind, sind diese Berechnungen von Natur aus hochgradig parallel. Sollten wir angesichts des enormen Rechenaufwands eine CPU oder eine GPU verwenden?

CPU vs. GPU

Die CPU (Central Processing Unit) ist das Gehirn des Computers, der Kern des Kerns. Es besteht im Wesentlichen aus einer arithmetischen Logikeinheit (ALU) zur Durchführung von Berechnungen und einer Steuereinheit (CU) zur Verwaltung des Daten- und Befehlsflusses.

CPU

Wenn Daten eintreffen, werden sie zunächst im Speicher gespeichert. Die Steuereinheit ruft dann die relevanten Daten aus dem Speicher ab und übergibt sie zur Verarbeitung an die ALU. Nachdem die Berechnung abgeschlossen ist, wird das Ergebnis wieder im Speicher gespeichert.

In der Anfangszeit verfügte eine CPU über einen einzigen Satz ALU, CU und Cache und konnte jeweils nur eine Aufgabe verarbeiten. Um mehrere Aufgaben zu bewältigen, müsste die CPU sie in eine Warteschlange stellen und nacheinander ausführen, wobei die Ressourcen geteilt werden.

mehrere Aufgaben bewältigen

Später wurden mehrere Sätze von ALU, CU und Cache auf einem einzigen Chip integriert, wodurch eine Multi-Core-CPU entstand. Multi-Core-CPUs verfügen über echte Parallelverarbeitungsfähigkeiten.

Multicore-Prozessoren

Typischerweise verfügen moderne CPUs über einige bis Dutzende Kerne. Als Smartphones zum ersten Mal weit verbreitet waren, legten die Hersteller großen Wert auf die Anzahl der Kerne, was zu einem „Kernkrieg“ auf dem Smartphone-Markt führte. Dieser Wettlauf um die Anzahl der Kerne verlangsamte sich jedoch schließlich und die Chiphersteller konzentrierten sich auf die Optimierung der Kernleistung.

Warum integrieren CPUs nicht noch mehr Kerne? Dies liegt daran, dass es sich bei der CPU um einen Allzweckprozessor handelt. Seine Aufgaben sind hochkomplex und erfordern die Durchführung verschiedener Arten von Datenberechnungen und die Reaktion auf Mensch-Computer-Interaktionen. Die komplexe Aufgabenverwaltung und -planung erfordert ausgefeiltere Steuereinheiten und größere Caches, um beim Wechseln zwischen Aufgaben eine geringe Latenz zu gewährleisten. Mit zunehmender Anzahl der Kerne steigt auch der Kommunikationsaufwand zwischen den Kernen, was die Leistung einzelner Kerne beeinträchtigen kann. Darüber hinaus kann der Stromverbrauch durch mehr Kerne steigen, und wenn die Arbeitslast nicht gleichmäßig verteilt ist, verbessert sich die Gesamtleistung möglicherweise nicht und kann sogar sinken.

GPU, Parallel-Computing-Experte

Lassen Sie uns in den Bereich der GPU eintauchen. Die GPU, auch als Grafikverarbeitungseinheit bekannt, wurde ursprünglich entwickelt, um die CPU zu entlasten und die Darstellung dreidimensionaler Grafiken zu beschleunigen, die häufig in Computergrafikkarten verwendet werden. Die Bildverarbeitung ist im Wesentlichen eine Form intensiven parallelen Rechnens mit Schwerpunkt auf Matrizen. Wie im Diagramm unten dargestellt, besteht das Bild links aus zahlreichen Pixeln und kann rechts natürlich als Matrix dargestellt werden.

Grafikkarte

Der Begriff „GPU“ gewann 1999 an Popularität, als Nvidia den GeForce256 herausbrachte, ein Produkt, das jeden Pixelpunkt gleichzeitig verarbeitet und mathematisch intensive parallele Berechnungen wie Grafiktransformationen, Beleuchtung und Dreiecksausschnitt für die Bildwiedergabe durchführt.

Die Kompetenz von GPUs bei der Bewältigung intensiver paralleler Datenverarbeitung ergibt sich aus ihren architektonischen Unterschieden im Vergleich zu CPUs. CPUs verfügen über weniger Kerne, wobei jeder Kern über ausreichend Cache und robuste Rechenkapazitäten sowie Hardware-Unterstützung für zahlreiche Beschleunigungszweigvorhersagen und noch komplexere logische Beurteilungen verfügt, wodurch sie für die Bewältigung komplizierter Aufgaben geeignet sind.

Der Unterschied zwischen CPU und GPU

Im Gegensatz dazu sind GPUs unkomplizierter und brutaler; Jeder Kern verfügt über eine begrenzte Rechenleistung und Cache-Größe. Daher ist eine Erhöhung der Kernanzahl erforderlich, um die Gesamtleistung zu verbessern. Mit einer höheren Anzahl an Kernen können GPUs effizient Multitasking betreiben, indem sie eine große Menge einfacher paralleler Rechenaufgaben verarbeiten.

GPUs können Multitasking betreiben

Im Laufe der Zeit wurden GPUs vielseitiger und programmierbarer und erweiterten ihre Funktionalität über das Rendern von Bildanzeigen hinaus, um Hochleistungsrechnen, Deep Learning und andere Arbeitslasten zu beschleunigen. GPUs haben die Chance genutzt, die sich aus der steigenden Nachfrage nach parallelem Computing durch künstliche Intelligenz ergibt, und sind von ihrer früheren Randrolle in den Mittelpunkt gerückt und sehr gefragt. Der Begriff „GPU“ hat sich in GPGPU umgewandelt und steht für General-Purpose GPU. Durch die Nutzung der inhärenten Parallelität des KI-Trainings auf GPUs wird die Geschwindigkeit im Vergleich zum Training ausschließlich mit CPUs erheblich gesteigert, was sie zur bevorzugten Plattform für das Training großer, komplexer neuronaler Netzwerksysteme macht. Die parallele Natur von Inferenzoperationen passt gut zur Ausführung auf GPUs. Daher wird die Rechenleistung, die von GPUs als primärer Kraft bereitgestellt wird, als „intelligentes Rechnen“ bezeichnet.

Hinterlasse einen Kommentar

Nach oben scrollen