KI basiert auf einem trainierten Modell, das weiß, wie bestimmte Dinge funkti­on­ie­ren. Dieses Modell kommt dann in einer Anwen­dung zum Einsatz, um Rückschlüsse (Inferenzen) auf die reale Welt zu ziehen. Daher hat eine KI-Anwendung zwei unter­schied­liche Lebensphasen: Training und Inferenz (Bild 1).

Das Training erfolgt im Rahmen der Ent­wick­lung und typischerweise in der Cloud. Inferenz hingegen ist eine ständige Aktivität der ver­wen­deten Systeme. Da Inferenz eine enorme Rechen­leis­tung erfor­dern kann, erledigt die Cloud einen Großteil davon. Dadurch bleibt aber oft zu wenig Zeit, um Entscheidungen zu treffen. Daten an die Cloud zu senden und dann zu warten, bis eine Entscheidung zurückkommt, kann Zeit kosten – und bis dahin ist es vielleicht schon zu spät. Diese Entscheidung vor Ort zu treffen, kann wertvolle Sekunden sparen. Echtzeit-Entscheidungen sind in vielen Anwendungsbereichen gefragt. In vielen Fällen geht es dabei darum, die Anwesenheit von Menschen zu erkennen, wie zum Beispiel bei Smart-Home-Anwendungen, Überwachungskameras oder Selfie-Drohnen etc.

Inferenz aus der Cloud entfernen

Wegen der Notwendigkeit schneller Entscheidungen zu treffen, gibt es eine starke Tendenz, die Inferenz aus der Cloud herauszunehmen und sie an den Netz­werk­rand zu verlagern, das heißt in die Systeme, die Daten erfas­sen und dann auf der Grundlage der KI-Entscheidungen Maßnahmen ergreifen. Dadurch lassen sich die der Cloud innewohnenden Verzögerungen vermeiden.

Aufmacher: KI-Anwendung haben zwei unter­schied­liche Lebensphasen: Training und Inferenz.

Bild 1: KI-Anwendung haben zwei unter­schied­liche Lebensphasen: Training und Inferenz. AdobeStock_220790568

Lokale Inferenz hat noch zwei weitere Vorteile. Erstens einen besseren Datenschutz. Daten, die mit der Cloud ausgetauscht und/oder in der Cloud gespeichert werden, sind Hackern und Datendieben ausgesetzt. Wenn die Daten das Gerät, das sie erfasst, niemals verlassen, gibt es viel weniger Missbrauchsgelegenheiten.

Der zweite Vorteil besteht darin, dass eine lokale KI-Imple­men­tierung unab­hän­gig von der verfüg­baren Internet-Band­breite ist. Wird ein Video zur Echt­zeit-Interpretation in die Cloud gesendet, erfordert dies eine enorme Bandbreite. Lassen sich die Entscheidungen hingegen vor Ort treffen, so wird diese Bandbreite für anderweitige Nutzung frei.

Weiterhin gilt, das viele dieser Geräte batte­rie­betrie­ben sind – oder lassen sich bei Betrieb am Stromnetz wegen starker Wärme­ent­wick­lung nicht belie­big lang mit voller Leis­tung betreiben. In der Cloud liegen Energie­verbrauch und Kühlung in der Verantwortung des Betreibers. KI-Modelle unterliegen einer schnellen Weiter­entwick­lung. Zwischen Beginn und Ende des Trainings kann sich die Größe des Modells drastisch ändern und die Leistungs­­anfor­de­rungen an die benö­tigte Computerplattform lassen sich möglicherweise erst gegen Ende des Entwicklungs­prozesses beurteilen. Darüber hinaus können kleine Änderungen beim Training einen erheb­lichen Einfluss auf das Modell haben, wodurch weitere Unsicherheiten ins Spiel kommen. All dies macht es zu einer Herausforderung, die Endgeräte-Hardware passend zu dimensionieren.

Es muss immer Kompromisse bei der Optimierung der Modelle für das jeweilige Gerät geben. Das bedeutet, dass ein und dasselbe Modell in verschiedenen Geräten unterschiedlich funktionieren kann. Hinzu kommt, dass Endgeräte oft sehr klein sind. Dadurch ist die Größe der für die KI-Inferenz verwendeten Bauteile begrenzt. Aus all dem ergeben sich die folgenden Grundvoraussetzungen für KI-Inferenz am Netz­werk­rand: Engines für KI-Inferenz am Netz­werk­rand müssen mög­lichst wenig Strom verbrauchen, sehr viel­seitig und in hohem Maße skalier­bar sein, sowie kleine Abmes­sungen aufweisen.

Neue FPGA-Plattformen ermöglichen es OEMs, KI-Engines mit genau diesen Eigenschaften zu entwickeln. Typischerweise umfassen diese Lösungen eine Hardware-Plattform, Soft-IP, einen Neuronalen-Netz-Compiler, Entwicklungsmodule und Ressourcen, die dabei helfen, ein auf Anhieb funkti­on­ie­rendes Design zu ent­wickeln.

Optionen für Inferenz-Engines

Bei der Integration einer Inferenz-Engine in ein End­gerät gibt es zwei Aspekte: die Entwicklung der Hardware-Plattform, die das Modell ausführen soll und die Entwicklung des Modells selbst.

Ein KI-Modell lässt sich theoretisch auf vielen verschiedenen Architekturen ausführen. Aber die Ausführung am Netz­werk­rand – unter Berücksichtigung der oben genannten Anforderungen an Leistungs­fähig­keit, Flexibilität und Skalierbarkeit – schränkt die Auswahlmöglichkeiten ein; dies gilt ins­beson­dere für ständig aktive Anwendungen.

In der Regel führt ein Prozessor die KI-Modelle aus, beispiels­weise eine GPU, ein DSP oder ein Mikro­con­troller. Aber die Prozessoren in End­geräten – oft ein leis­tungsschwacher Mikro­con­troller (MCU) – sind der Herausforderung, selbst einfache Modelle auszuführen, möglicher­weise nicht gewachsen. Die Verwendung eines leistungs­fähigeren Prozessors würde even­tuell die Strom­­ver­brauchs- und Kostenbudgets des Geräts überschreiten. Deshalb drängt sich der Gedanke auf, KI sei für solche Geräte unerreichbar. Aber dem ist nicht so! Die Lösung sind energie­effiziente FPGAs. Anstatt einen Prozessor für die Verar­beitung der KI-Algorithmen aufzurüsten, kann es zweckmäßig sein, ein FPGA der neues­ten Gene­ra­tion als Co-Prozessor für die MCU einzusetzen und diese von der schwierigen Aufgabe der KI-Inferenz zu entlasten – und zugleich die Energie­effizienz-Anfor­de­rungen einzuhalten. Da diese FPGAs auch DSP-Funk­tionen bereitstellen können, bieten sie eine Rechenleistung, wie sie in einer Low-End-MCU nicht verfügbar ist.

ASICs, ASSPs und FPGA-KI-Engines

Bild 1: FPGAs können als Aktivitäts-Gates fungieren und bei der Erkennung von Schlüssselwörtern oder bestimmter Arten von Videobildern ein ASIC oder ASSP aufwecken.

Bild 2: FPGAs können als Aktivitäts-Gates fungieren und bei der Erkennung von Schlüssselwörtern oder bestimmter Arten von Videobildern ein ASIC oder ASSP aufwecken. AdobeStock_1882164

Für ausgereifte KI-Modelle, die in hohen Stückzahlen auf den Markt kommen sollen, können ASICs oder ASSPs (Application-Specific Standard Products) die passende Lösung sein. Aber in ständig aktiven Anwen­dungen verbrauchen sie unter Umständen zu viel Strom.

Hier können FPGAs als Aktivitäts-Gates fungieren und bei der Erkennung von Schlüssselwörtern oder bestimmter Arten von Videobildern ein ASIC oder ASSP aufwecken (Bild 2), das dann Sprache genauer analysiert oder mit großer Gewissheit bestätigt, dass ein Video tatsächlich eine Person zeigt.

Der FPGA handhabt dabei die ständig aktive Funk­tion, bei der es ganz beson­ders auf mög­lichst geringen Strom­ver­brauch ankommt. Nicht alle FPGAs können diese Rolle übernehmen, da viele von ihnen immer noch zu viel Strom verbrauchen, doch gibt es heute FPGAs, die dafür gut geeignet sind.

Low-Power-FPGAs der neues­ten Gene­ra­tion können als autonome, integrierte AI-Engines fungieren. Die Hauptrollein spielen dabei die in den FPGAs verfügbaren DSPs. Selbst wenn ein End­gerät über keine großen Rechenressourcen verfügt, lässt es sich mit KI-Fähigkeiten aus­tatten, ohne die Budgets für Strom­ver­brauch, Kosten oder Leiter­platten­fläche zu überschreiten. Diese FPGAs verfügen über die Flexibilität und Skalierbarkeit, die angesichts der schnellen Weiter­entwick­lung der Algorithmen erforderlich sind.

Entwicklung von Inferenzmodellen

Die Erstellung eines Inferenzmodells ist der nächste Schritt im Rahmen der Produkt­entwick­lung. Beim Entwurf von Hardware, die ein KI-Inferenzmodell ausführen soll, gilt es, den nötigen Ressourcenaufwand gegen die Perfor­mance- und Energie­effizienz-Anfor­de­rungen abzuwägen. FPGAs können, je nach Größe, bis zu acht Inferenz-Engines und zwischen 1 MByte und 3,7 MByte internen Speicher beherbergen und verbrauchen bis zu 1 W bei 100 mm2 Grund­fläche.

Es gibt aber auch FPGAs, die nur ein Tausendstel des Stroms verbrauchen, also 1 mW, und die sich mit nur 5,5 mm2 Leiter­platten­fläche begnügen. Solche FPGAs enthal­ten bis zu acht Multiplizierer und bis zu 1 MByte internen speicher. Mit einem FPGA, Soft-IP und geeigneter Peripherie-Hard­ware lassen sich neue Plattformen mit Hilfe von Designwerkzeugen kompilieren, die einen Bitstrom liefern, der die FPGAs beim Einschalten des Zielgeräts konfi­gu­riert.

Die Erstellung eines Inferenzmodells unterscheidet sich wesent­lich von der Erstellung der zugrundeliegenden Ausführungsplattform. Der Prozess ist abstrakter, erfor­dert mehr Mathematik und beinhaltet kein RTL-Design. Er umfasst zwei Hauptschritte: die Erstellung des abstrakten Modells und die Opti­mierung der Modell­imple­men­tierung auf der jewei­ligen Hard­ware-Plattform. Das Modelltraining findet auf einem speziell dafür entwickelten Framework statt. Die beiden bekanntesten Frameworks sind Caffe und Tensorflow, aber es gibt auch noch diverse andere.

Zusammenfassend lässt sich sagen, dass heute FPGAs verfüg­bar sind, die geringen Strom­verbrauch mit Flexibilität und Skalierbarkeit kombi­nieren und alle Elemente bereitstellen, die für den erfolg­reichen Einsatz von KI-Inferenz-Designs in End­geräten erforderlich sind.