Kapitel 1. Eine kurze Einführung in Edge AI
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Willkommen an Bord! In diesem Kapitel werden wir eine umfassende Tour durch die Welt der Kanten-KI unternehmen. Wir definieren die wichtigsten Begriffe, erfahren, was "Kanten-KI" von anderer KI unterscheidet, und erkunden einige der wichtigsten Anwendungsfälle. Unser Ziel in diesem Kapitel ist es, diese beiden wichtigen Fragen zu beantworten:
-
Was ist eigentlich Kanten-KI?
-
Warum sollte ich es jemals brauchen?
Definieren von Schlüsselbegriffen
Jeder Technologiebereich hat seine eigene Taxonomie von Buzzwords, und Edge AI ist da nicht anders. Tatsächlich ist der Begriff Edge AI eine Verschmelzung zweier Buzzwords, die zu einem mächtigen Begriff verschmolzen wurden. Man hört ihn oft zusammen mit seinen Geschwistern, dem eingebetteten maschinellen Lernen und TinyML.
Bevor wir weitermachen, sollten wir einige Zeit damit verbringen, diese Begriffe zu definieren und zu verstehen, was sie bedeuten. Da wir es mit zusammengesetzten Schlagwörtern zu tun haben, sollten wir uns zuerst mit den grundlegendsten Teilen beschäftigen.
Eingebettet
Was ist "eingebettet"? Je nach deinem Hintergrund ist dies vielleicht der bekannteste aller Begriffe, die wir zu beschreiben versuchen. Eingebettete Systeme sind die Computer, die die Elektronik aller möglichen Geräte steuern, vom Bluetooth-Kopfhörer bis zum Motorsteuergerät eines modernen Autos. Eingebettete Software ist die Software, die auf ihnen läuft. Abbildung 1-1 zeigt ein paar Orte, an denen eingebettete Systeme zu finden sind.
Eingebettete Systeme können winzig und einfach sein, wie der Mikrocontroller, der eine Digitaluhr steuert, oder groß und anspruchsvoll, wie der eingebettete Linux-Computer in einem Smart-TV. Im Gegensatz zu Allzweckcomputern wie Laptops oder Smartphones sind eingebettete Systeme in der Regel für eine bestimmte Aufgabe vorgesehen.
Da sie einen Großteil unserer modernen Technologie antreiben, sind eingebettete Systeme außerordentlich weit verbreitet. Tatsächlich wurden im Jahr 2020 über 28 Milliarden Mikrocontroller ausgeliefert1-nur eine Art von eingebettetem Prozessor. Sie sind in unseren Häusern, unseren Fahrzeugen, unseren Fabriken und unseren Straßen zu finden. Es ist wahrscheinlich, dass du nie weiter als ein paar Meter von einem eingebetteten System entfernt bist.
Es ist üblich, dass eingebettete Systeme die Einschränkungen der Umgebung, in der sie eingesetzt werden, widerspiegeln. Viele eingebettete Systeme müssen zum Beispiel mit Batteriestrom betrieben werden und werden daher mit Blick auf die Energieeffizienz entwickelt - vielleicht mit begrenztem Speicher oder einer extrem langsamen Taktrate.
Die Programmierung eingebetteter Systeme ist die Kunst, diese Einschränkungen zu umgehen und Software zu schreiben, die die geforderte Aufgabe erfüllt und gleichzeitig das Beste aus den begrenzten Ressourcen macht. Das kann unglaublich schwierig sein. Ingenieure und Ingenieurinnen für eingebettete Systeme sind die unbesungenen Helden und Heldinnen der modernen Welt. Wenn du einer davon bist, danke ich dir für deine harte Arbeit!
Die Kante (und das Internet der Dinge)
Die Geschichte der Computernetzwerke ist ein gigantisches Tauziehen. In den ersten Systemen - einzelnen Computern von der Größe eines Zimmers - war die Datenverarbeitung von Natur aus zentralisiert. Es gab nur eine Maschine, und die erledigte die ganze Arbeit.
Mit der Zeit wurden die Computer jedoch an Terminals angeschlossen (siehe Abbildung 1-2), die einen Teil ihrer Aufgaben übernahmen. Die meisten Berechnungen fanden im zentralen Großrechner statt, aber einige einfache Aufgaben - wie die Darstellung von Buchstaben auf einem Kathodenstrahlröhrenbildschirm - wurden von der Elektronik des Terminals übernommen.
Im Laufe der Zeit wurden die Terminals immer ausgefeilter und übernahmen immer mehr Funktionen, die früher vom Zentralrechner erledigt wurden. Das Tauziehen hatte begonnen! Als der Personal Computer erfunden wurde, konnten kleine Computer nützliche Arbeit leisten, ohne überhaupt mit einem anderen Rechner verbunden zu sein. Das Seil wurde ins andere Extrem gezogen - von der Mitte des Netzwerks an den Rand.
Das Wachstum des Internets und der Webanwendungen und -dienste hat es möglich gemacht, einige wirklich coole Sachen zu machen - vom Videostreaming bis zum sozialen Netzwerk. All das hängt davon ab, dass die Computer mit Servern verbunden sind, die nach und nach immer mehr Arbeit übernommen haben. In den letzten zehn Jahren wurde der größte Teil unserer Datenverarbeitung wieder zentralisiert - diesmal in der "Cloud". Wenn das Internet ausfällt, sind unsere modernen Computer nicht mehr zu gebrauchen!
Aber die Computer, die wir für Arbeit und Freizeit nutzen, sind nicht die einzigen vernetzten Geräte. Es wird geschätzt, dass im Jahr 2021 12,2 Milliarden verschiedene Geräte mit dem Internet verbunden sind,2 die Daten erzeugen und verbrauchen. Dieses riesige Netzwerk von Gegenständen wird als Internet der Dinge (IoT) bezeichnet und umfasst alles, was du dir vorstellen kannst: industrielle Sensoren, intelligente Kühlschränke, mit dem Internet verbundene Sicherheitskameras, Autos, Schiffscontainer, Fitness-Tracker und Kaffeemaschinen.
Tipp
Das erste IoT-Gerät überhaupt wurde 1982 entwickelt. Studierende der Carnegie Mellon University schlossen einen Cola-Automaten an das ARPANET an - einenfrühen Vorläufer des Internets -, um zu überprüfen, ob er leer war, ohne das Labor zu verlassen.
Alle diese Geräte sind eingebettete Systeme mit Mikroprozessoren, auf denen Software läuft, die von Softwareentwicklern geschrieben wurde. Da sie sich am Rande des Netzwerks befinden, können wir sie auch als Kantengeräte bezeichnen. Die Durchführung von Berechnungen auf Edge-Geräten wird als Edge Computing bezeichnet.
Der Rand ist kein einzelner Ort, sondern eher eine große Region. Geräte am Rande des Netzwerks können miteinander kommunizieren, aber auch mit entfernten Servern. Es gibt sogar Server, die am Rande des Netzwerks leben. Abbildung 1-3 zeigt, wie das aussieht.
Am Rande des Netzwerks zu sein, hat einige große Vorteile. Zum einen kommen dort alle Daten her! Edge-Geräte sind unser Bindeglied zwischen dem Internet und der realen Welt. Sie können mit Sensoren Daten aus ihrer Umgebung sammeln, z. B. die Herzfrequenz eines Läufers oder die Temperatur eines kalten Getränks. Sie können auf der Grundlage dieser Daten lokal Entscheidungen treffen und sie an andere Standorte senden. Kantengeräte haben Zugang zu Daten, die sonst niemand hat.
Sind Mobiltelefone und Tablets Kantengeräte?
Als tragbare Computer am Rande des Netzwerks sind Mobiltelefone, Tablets und sogar Personalcomputer allesamt Edge-Geräte. Mobiltelefone waren eine der ersten Plattformen, auf denen Kanten-KI zum Einsatz kam: Moderne Mobiltelefone nutzen sie für viele Zwecke, von der Sprachsteuerung bis zur intelligenten Fotografie.3
Wir werden später auf Kanten-Geräte zurückkommen (denn sie sind der Schwerpunkt dieses Buches). Bis dahin wollen wir noch einige Begriffe definieren.
Künstliche Intelligenz
Puh! Das ist eine große Sache. Künstliche Intelligenz (KI) ist eine sehr große Idee, und es ist furchtbar schwer, sie zu definieren. Seit Anbeginn der Zeit haben die Menschen davon geträumt, intelligente Wesen zu erschaffen, die uns in unserem Kampf ums Überleben helfen können. In der modernen Welt träumen wir von Robotern, die uns bei unseren Abenteuern helfen: hyperintelligente, synthetische Gehirne, die all unsere Probleme lösen, und wunderbare Unternehmensprodukte, die unsere Geschäftsprozesse optimieren und uns einen schnellen Aufstieg garantieren.
Aber um KI zu definieren, müssen wir Intelligenz definieren - was sich als besonders schwierig erweist. Was bedeutet es, intelligent zu sein? Bedeutet es, dass wir sprechen oder denken können? Offensichtlich nicht - frag einfach den Schleimpilz (siehe Abbildung 1-4), einen einfachen Organismus ohne zentrales Nervensystem, der in der Lage ist, ein Labyrinth zu lösen.
Da dies kein Philosophiebuch ist, haben wir nicht die Zeit, das Thema Intelligenz ausführlich zu behandeln. Stattdessen wollen wir eine schnelle und einfache Definition vorschlagen:
Intelligenz bedeutet, das Richtige zur richtigen Zeit zu wissen.
Das hält wahrscheinlich keiner akademischen Debatte stand, aber das ist in Ordnung für uns. Es gibt uns ein Werkzeug, um das Thema zu erforschen. Hier sind einige Aufgaben, die nach unserer Definition Intelligenz erfordern:
-
Ein Foto machen, wenn ein Tier im Bild ist
-
Bremsen, wenn ein Fahrer kurz vor einem Unfall steht
-
Benachrichtigung eines Bedieners, wenn eine Maschine kaputt klingt
-
Eine Frage mit relevanten Informationen beantworten
-
Eine Begleitung für eine musikalische Darbietung erstellen
-
Einen Wasserhahn aufdrehen, wenn sich jemand die Hände waschen will
Jedes dieser Probleme beinhaltet sowohl eine Aktion (das Aufdrehen eines Wasserhahns) als auch eine Vorbedingung (wenn jemand seine Hände waschen will). In ihrem eigenen Kontext klingen die meisten dieser Probleme relativ einfach, aber wie jeder weiß, der schon einmal eine Flughafentoilette benutzt hat, sind sie nicht immer einfach zu lösen.
Für die meisten Menschen ist es ziemlich einfach, die meisten dieser Aufgaben zu erledigen. Wir sind sehr fähige Lebewesen mit allgemeiner Intelligenz. Aber auch kleinere Systeme mit geringerer Intelligenz können diese Aufgaben erfüllen. Nehmen wir unseren Schleimpilz - er versteht vielleicht nicht, warum er ein Labyrinth löst, aber er ist auf jeden Fall in der Lage, es zu tun.
Allerdings ist es unwahrscheinlich, dass der Schleimpilz auch weiß, wann er einen Wasserhahn aufdrehen muss. Im Allgemeinen ist es viel einfacher, eine einzige, eng umrissene Aufgabe (wie das Aufdrehen eines Wasserhahns) auszuführen, als eine Vielzahl von völlig unterschiedlichen Aufgaben zu erledigen.
Eine künstliche allgemeine Intelligenz zu schaffen, die einem Menschen gleichkommt, wäre super schwierig - wie jahrzehntelange erfolglose Versuche gezeigt haben. Aber es kann viel einfacher sein, etwas zu schaffen, das auf dem Niveau eines Schleimpilzes funktioniert. Einen Autofahrer daran zu hindern, einen Unfall zu bauen, ist zum Beispiel theoretisch eine ganz einfache Aufgabe. Wenn du sowohl die aktuelle Geschwindigkeit als auch den Abstand zu einer Wand kennst, kannst du das mit einer einfachenbedingten Logik erreichen:
current_speed
=
10
# In meters per second
distance_from_wall
=
50
# In meters
seconds_to_stop
=
3
# The minimum time in seconds required to stop the car
safety_buffer
=
1
# The safety margin in seconds before hitting the brakes
# Calculate how long we’ve got before we hit the wall
seconds_until_crash
=
distance_from_wall
/
current_speed
# Make sure we apply the brakes if we’re likely to crash soon
if
seconds_until_crash
<
seconds_to_stop
+
safety_buffer
:
applyBrakes
()
In diesem vereinfachten Beispiel sind natürlich viele Faktoren nicht berücksichtigt. Aber mit etwas mehr Komplexität könnte ein modernes Auto mit einem Fahrerassistenzsystem, das auf dieser bedingten Logik basiert, durchaus als KI vermarktet werden.4
Wir wollen hier zwei Punkte ansprechen: Der erste ist, dass Intelligenz ziemlich schwer zu definieren ist und dass viele recht einfache Probleme ein gewisses Maß an Intelligenz erfordern, um gelöst zu werden. Zweitens: Die Programme, die diese Intelligenz umsetzen, müssen nicht unbedingt besonders komplex sein. Manchmal reicht auch ein Schleimpilz.
Also, was ist KI? Vereinfacht gesagt, ist es ein künstliches System, das auf der Grundlage einer Eingabe intelligente Entscheidungen trifft. Eine Möglichkeit, KI zu entwickeln, ist maschinelles Lernen.
Maschinelles Lernen
Im Grunde ist maschinelles Lernen (ML) ein ziemlich einfaches Konzept. Es ist eine Methode, um Muster in der Weltzu entdecken - und zwar automatisch, indem man Datendurch Algorithmen laufen lässt.
Wir hören oft, dass KI und maschinelles Lernen synonym verwendet werden, als ob sie dasselbe wären - aber das ist nicht der Fall. KI hat nicht immer etwas mit maschinellem Lernen zu tun, und maschinelles Lernen hat nicht immer etwas mit KI zu tun. Trotzdem passen beide Begriffe sehr gut zusammen!
Der beste Weg, um maschinelles Lernen vorzustellen, ist ein Beispiel. Stell dir vor, du baust einen Fitness-Tracker - ein kleines Armband, das ein Sportler tragen kann. Es enthält einen Beschleunigungsmesser, der dir sagt, wie stark die Beschleunigung auf jeder Achse (x, y und z) zu einem bestimmten Zeitpunkt ist - wie in Abbildung 1-5 dargestellt.
Um deinen Athleten zu helfen, solltest du ein automatisches Protokoll über die Aktivitäten führen, die sie durchführen. Zum Beispiel könnte ein Sportler am Montag eine Stunde laufen und am Dienstag eine Stunde schwimmen.
Da sich unsere Bewegungen beim Schwimmen deutlich von denen beim Laufen unterscheiden, stellst du die Theorie auf, dass du diese Aktivitäten anhand der Daten des Beschleunigungsmessers in deinem Armband unterscheiden kannst. Um Daten zu sammeln, gibst du einem Dutzend Athleten Prototypen von Armbändern und lässt sie bestimmte Aktivitäten ausführen - entweder Schwimmen, Laufen oder Nichtstun - während die Armbänder Daten aufzeichnen (siehe Abbildung 1-6).
Jetzt, wo du einen Datensatz hast, willst du versuchen, einige Regeln aufzustellen, die dir helfen zu verstehen, ob ein bestimmter Athlet schwimmt, läuft oder einfach nur chillt. Eine Möglichkeit, dies zu tun, ist die manuelle Analyse und Prüfung der Daten, um zu sehen, ob dir etwas auffällt. Vielleicht fällt dir auf, dass beim Laufen die Beschleunigung auf einer bestimmten Achse schneller ist als beim Schwimmen. Du kannst diese Informationen nutzen, um eine bedingte Logik zu schreiben, die die Aktivität auf der Grundlage der Messwerte dieser Achse bestimmt.
Die manuelle Analyse von Daten kann schwierig sein und erfordert in der Regel Expertenwissen über den jeweiligen Bereich (z. B. über menschliche Bewegungen beim Sport). Eine Alternative zur manuellen Analyse könnte der Einsatz von maschinellem Lernen sein.
Bei einem ML-Ansatz gibst du alle Daten deiner Sportler in einen Trainingsalgorithmus ein. Wenn der Algorithmus sowohl die Daten des Beschleunigungssensors als auch Informationen darüber erhält, welche Aktivität der Sportler gerade ausführt, versucht er, eine Zuordnung zwischen diesen beiden Daten zu lernen. Diese Zuordnung wird als Modell bezeichnet.
Wenn das Training erfolgreich war, kann dein neues maschinelles Lernmodell hoffentlich eine brandneue, noch nie dagewesene Eingabe - eine Stichprobe von Beschleunigungssensor-Daten aus einem bestimmten Zeitfenster - verarbeiten und dir sagen, welche Aktivität ein Sportler gerade ausführt. Dieser Prozess wird als Inferenz bezeichnet.
Diese Fähigkeit, neue Inputs zu verstehen, wird Generalisierung genannt. Während des Trainings hat das Modell die Merkmale gelernt, die das Laufen vom Schwimmen unterscheiden. Du kannst das Modell dann in deinem Fitness-Tracker verwenden, um neue Daten zu verstehen, genauso wie du die bereits erwähnte bedingte Logik verwenden kannst.
Es gibt viele verschiedene Algorithmen für maschinelles Lernen, jeder mit seinen eigenen Stärken und Nachteilen - und nicht immer ist ML das beste Werkzeug für den Job. Später in diesem Kapitel werden wir die Szenarien besprechen, in denen maschinelles Lernen am hilfreichsten ist. Eine gute Faustregel ist jedoch, dass maschinelles Lernen vor allem bei sehr komplexen Daten seine Stärken hat.
Kanten-KI
Herzlichen Glückwunsch, wir haben es zu unserem ersten zusammengesetzten Buzzword geschafft! Edge AI ist, wenig überraschend, die Kombination aus Kantengeräten und künstlicher Intelligenz.
Wie bereits erwähnt, sind Kantengeräte die eingebetteten Systeme, die die Verbindung zwischen unserer digitalen und unserer physischen Welt herstellen. Sie sind in der Regel mit Sensoren ausgestattet, die sie mit Informationen über die Umgebung versorgen, in der sie sich befinden. Dadurch haben sie Zugang zu einem metaphorischen Feuerwehrschlauch mit hochfrequenten Daten.
Wir hören oft, dass Daten das Lebenselixier unserer modernen Wirtschaft sind, dass sie durch unsere Infrastruktur fließen und das Funktionieren von Organisationen ermöglichen. Das ist definitiv wahr - aber nicht alle Daten sind gleich. Die von Sensoren gewonnenen Daten haben in der Regel ein hohes Volumen, aber einen relativ geringen Informationsgehalt.
Stell dir den Beschleunigungssensor am Armband vor, den wir im vorherigen Abschnitt beschrieben haben. Der Beschleunigungsmesser ist in der Lage, viele hundert Mal pro Sekunde eine Messung vorzunehmen. Jeder einzelne Messwert sagt nur sehr wenig über die aktuelle Aktivität aus - erst in der Summe von Tausenden von Messwerten können wir verstehen, was vor sich geht.
Normalerweise werden IoT-Geräte als einfache Knotenpunkte betrachtet, die Daten von Sensoren sammeln und sie dann zur Verarbeitung an eine zentrale Stelle übermitteln. Das Problem bei diesem Ansatz ist, dass die Übermittlung solch großer Mengen von Informationen mit geringem Wert außerordentlich kostspielig ist. Nicht nur die Konnektivität ist teuer, sondern die Datenübertragung verbraucht auch eine Menge Energie - ein großes Problem für batteriebetriebene IoT-Geräte.
Aufgrund dieses Problems wird der Großteil der von IoT-Sensoren gesammelten Daten normalerweise verworfen. Wir sammeln Unmengen von Sensordaten, aber wir können nichts damit anfangen.
Edge AI ist die Lösung für dieses Problem. Anstatt die Daten zur Verarbeitung an einen weit entfernten Ort zu schicken, können wir sie direkt auf dem Gerät verarbeiten, wo die Daten erzeugt werden. Anstatt uns auf einen zentralen Server zu verlassen, können wir jetzt Entscheidungen vor Ort treffen - eine Verbindung ist nicht erforderlich.
Und wenn wir trotzdem Informationen an vorgelagerte Server oder die Cloud melden wollen, können wir nur die wichtigen Informationen übertragen, anstatt jeden einzelnen Sensorwert zu senden. Das sollte eine Menge Kosten und Energie sparen.
Es gibt viele verschiedene Möglichkeiten, Intelligenz an den Kanten einzusetzen. Abbildung 1-7 zeigt die Bandbreite von KI in der Cloud bis hin zu vollständiger Intelligenz auf dem Gerät. Wie wir später in diesem Buch sehen werden, kann KI am Rand über die gesamte verteilte Computerarchitektur verteilt werden - mit einigen Knoten am Rand und anderen in lokalen Gateways oder in der Cloud.
Wie wir gesehen haben, kann künstliche Intelligenz viele verschiedene Dinge bedeuten. Sie kann ganz einfach sein: ein Hauch von menschlicher Einsicht, verpackt in einer einfachen bedingten Logik. Sie kann aber auch sehr ausgeklügelt sein und auf den neuesten Entwicklungen des Deep Learning basieren.
Edge AI ist genau dasselbe. Im Grunde geht es bei Edge AI darum, Entscheidungen am Rande des Netzwerks zu treffen, also dort, wo die Daten erzeugt werden. Aber sie kann auch einige wirklich coole Dinge ausnutzen. Und das bringt uns zum nächsten Abschnitt!
Eingebettetes maschinelles Lernen und winziges maschinelles Lernen
Embedded ML ist die Kunst und Wissenschaft, maschinelle Lernmodelle auf eingebetteten Systemen auszuführen. Tiny Machine Learning, oder TinyML,5 ist das Konzept, dies auf der am meisten eingeschränkten eingebetteten Hardware zu tun, die zur Verfügung steht - also auf Mikrocontrollern, digitalen Signalprozessoren und kleinen FPGAs (Field Programmable Gate Arrays).
Wenn wir über eingebettetes maschinelles Lernen sprechen, beziehen wir uns in der Regel auf den Prozess des maschinellen Lernens, d. h. auf den Prozess, bei dem aus einer Eingabe eine Vorhersage abgeleitet wird (z. B. das Erraten einer körperlichen Aktivität auf der Grundlage von Beschleunigungssensor-Daten). Der Trainingsteil findet normalerweise immer noch auf einem herkömmlichen Computer statt.
Eingebettete Systeme haben oft nur begrenzten Speicher. Dies stellt eine Herausforderung für die Ausführung vieler Arten von maschinellen Lernmodellen dar, die oft hohe Anforderungen an den Festwertspeicher (ROM) (zum Speichern des Modells) und den Arbeitsspeicher (zur Verarbeitung der während der Inferenz erzeugten Zwischenergebnisse) stellen.
Sie sind oft auch in ihrer Rechenleistung begrenzt. Da viele Arten von maschinellen Lernmodellen recht rechenintensiv sind, kann dies ebenfalls Probleme verursachen.
Glücklicherweise gab es in den letzten Jahren viele Fortschritte bei der Optimierung, die es möglich gemacht haben, ziemlich große und anspruchsvolle maschinelle Lernmodelle auf sehr kleinen, stromsparenden eingebetteten Systemen laufen zu lassen. Einige dieser Techniken werden wir in den nächsten Kapiteln kennenlernen!
Eingebettetes maschinelles Lernen wird oft zusammen mit seinem treuen Begleiter, der digitalen Signalverarbeitung, eingesetzt. Bevor wir weitermachen, sollten wir auch diesen Begriff definieren.
Digitale Signalverarbeitung
In der eingebetteten Welt arbeiten wir oft mit digitalen Repräsentationen von Signalen. Ein Beschleunigungsmesser liefert uns zum Beispiel einen Strom digitaler Werte, die der Beschleunigung auf drei Achsen entsprechen, und ein digitales Mikrofon liefert uns einen Strom von Werten, die dem Schallpegel zu einem bestimmten Zeitpunkt entsprechen.
Digitale Signalverarbeitung (DSP) ist die Anwendung von Algorithmen, um diese Datenströme zu bearbeiten. In Verbindung mit eingebettetem maschinellem Lernen verwenden wir DSP oft, um Signale zu verändern, bevor sie in maschinelle Lernmodelle eingespeist werden. Es gibt ein paar Gründe, warum wir das tun sollten:
-
Bereinigung eines verrauschten Signals
-
Beseitigung von Spitzen oder abweichenden Werten, die durch Hardwareprobleme verursacht werden könnten
-
Extrahieren der wichtigsten Informationen aus einem Signal
-
Umwandlung der Daten vom Zeitbereich in den Frequenzbereich6
DSP ist in eingebetteten Systemen so weit verbreitet, dass viele eingebettete Chips superschnelle Hardware-Implementierungen gängiger DSP-Algorithmen haben, nur für den Fall, dass du sie brauchst.
Wir haben nun ein solides Verständnis für die wichtigsten Begriffe in diesem Buch. Abbildung 1-8 zeigt, wie sie im Kontext zusammenhängen.
Im nächsten Abschnitt tauchen wir tief in das Thema Kanten-KI ein und schlüsseln auf, was sie zu einer so wichtigen Technologie macht.
Warum brauchen wir Edge AI?
Stell dir vor, du bist heute Morgen einen Trailrun durch den Joshua Tree National Park gelaufen, ein riesiges Stück Wildnis in der südkalifornischen Wüste. Du hast die ganze Zeit Musik gehört, die über eine ununterbrochene Mobilfunkverbindung auf dein Handy gestreamt wurde. An einem besonders schönen Ort, tief in den Bergen, hast du ein Foto gemacht und es deinem Partner geschickt. Ein paar Minuten später hast du seine Antwort erhalten.
Warum brauchen wir in einer Welt, in der selbst die entlegensten Orte über eine Datenverbindung verfügen, KI am Rand? Wozu brauchen wir winzige Geräte, die ihre eigenen Entscheidungen treffen können, wenn die leistungsstarken Server des Internets nur einen Funkimpuls entfernt sind? Machen wir uns das Leben mit all den zusätzlichen Komplikationen nicht nur selbst schwerer?
Wie du vielleicht schon vermutet hast, lautet die Antwort: Nein! Kanten-KI löst einige sehr reale Probleme, die sonst im Weg stehen, damit unsere Technologie besser für die Menschen funktioniert. Unser Lieblingsbegriff, um die Vorteile von Kanten-KI zu erklären, ist eine unhöflich klingende Eselsbrücke: BLERP.
Um die Vorteile von Edge AI zu verstehen, musst du nur BLERP
BLERP? Jeff Bier, der Gründer der Edge AI and Vision Alliance, hat dieses hervorragende Tool entwickelt, um die Vorteile von Kanten-KI auszudrücken. Es besteht ausfünf Wörtern:
-
Bandbreite
-
Latenz
-
Wirtschaft
-
Verlässlichkeit
-
Datenschutz
Mit BLERP kann sich jeder leicht an die Vorteile von Kanten-KI erinnern und sie erklären. Es ist auch ein nützlicher Filter, um zu entscheiden, ob Kanten-KI für eine bestimmte Anwendung gut geeignet ist.
Gehen wir ihn durch, Wort für Wort.
Bandbreite
IoT-Geräte erfassen oft mehr Daten, als sie über eine Bandbreite zur Übertragung verfügen. Das bedeutet, dass die meisten Sensordaten, die sie erfassen, gar nicht genutzt werden - sie werden einfach weggeworfen! Stell dir einen intelligenten Sensor vor, der die Vibrationen einer Industriemaschine überwacht, um festzustellen, ob sie richtig funktioniert. Er könnte einen einfachen Schwellenwertalgorithmus verwenden, um zu erkennen, wann die Maschine zu stark oder zu wenig vibriert, und diese Informationen dann über eine Funkverbindung mit geringer Bandbreite weitergeben.
Das klingt bereits nützlich. Aber was wäre, wenn du in den Daten Muster erkennen könntest, die dir einen Hinweis darauf geben, dass die Maschine bald fehlschlagen könnte? Wenn wir viel Bandbreite hätten, könnten wir die Sensordaten in die Cloud schicken und eine Art Analyse durchführen, um zu verstehen, ob ein Ausfall bevorsteht.
In vielen Fällen steht jedoch nicht genug Bandbreite oder Energie zur Verfügung, um einen konstanten Datenstrom an die Cloud zu senden. Das bedeutet, dass wir gezwungen sein werden, die meisten unserer Sensordaten zu verwerfen, auch wenn sie nützliche Signale enthalten.
Bandbreitenbeschränkungen sind weit verbreitet. Es geht nicht nur um die verfügbare Konnektivität, sondern auch um den Stromverbrauch. Die vernetzte Kommunikation ist oft die energieintensivste Aufgabe, die ein eingebettetes System ausführen kann, was bedeutet, dass die Batterielebensdauer oft die begrenzende Funktion ist. Einige Modelle für maschinelles Lernen können sehr rechenintensiv sein, aber sie verbrauchen trotzdem weniger Energie als die Übertragung eines Signals.
An dieser Stelle kommt die Kanten-KI ins Spiel. Was wäre, wenn wir die Datenanalyse auf dem IoT-Gerät selbst durchführen könnten, ohne die Daten hochladen zu müssen? Wenn die Analyse ergibt, dass das Gerät kurz davor ist, fehlzuschlagen, könnten wir mit unserer begrenzten Bandbreite eine Benachrichtigung senden. Das ist viel praktikabler, als zu versuchen, alle Daten zu streamen.
Natürlich ist es auch nicht ungewöhnlich, dass Geräte überhaupt keine Netzwerkverbindung haben! In diesem Fall ermöglicht die Kanten-KI eine ganze Reihe von Anwendungsfällen, die vorher unmöglich waren. Wir werden später mehr darüber hören.
Latenz
Die Übertragung von Daten braucht Zeit. Selbst wenn du eine große Bandbreite zur Verfügung hast, kann der Weg von einem Gerät zu einem Internetserver zehn oder hundert Millisekunden dauern. In manchen Fällen kann die Latenzzeit in Minuten, Stunden oder Tagen gemessen werden - man denke nur an die Satellitenkommunikation oder an Store-and-Forward-Nachrichten.
Manche Anwendungen erfordern eine schnellere Reaktion. So kann es zum Beispiel unpraktisch sein, ein fahrendes Fahrzeug über einen entfernten Server zu steuern. Die Steuerung eines Fahrzeugs, das sich durch die Umgebung bewegt, erfordert eine ständige Rückmeldung zwischen den Lenkeinstellungen und der Position des Fahrzeugs. Bei einer hohen Latenzzeit wird die Steuerung zu einer großen Herausforderung!
Kanten-KI löst dieses Problem, indem sie die Zeit für die Hin- und Rückfahrt komplett eliminiert. Ein gutes Beispiel dafür ist ein selbstfahrendes Auto. Die KI-Systeme des Autos laufen auf Bordcomputern. Dadurch kann es fast sofort auf veränderte Bedingungen reagieren, z. B. wenn der Fahrer vor ihm auf die Bremse tritt.
Eines der überzeugendsten Beispiele für Kanten-KI als Waffe gegen Latenzzeiten ist die Weltraumforschung mit Robotern. Der Mars ist so weit von der Erde entfernt, dass es Minuten dauert, bis eine Funkübertragung mit Lichtgeschwindigkeit dort ankommt. Noch schlimmer ist, dass eine direkte Kommunikation aufgrund der Anordnung der Planeten oft unmöglich ist. Das macht es sehr schwer, einen Marsrover zu steuern. Die NASA hat dieses Problem durch den Einsatz von Kanten-KI gelöst - ihre Rover nutzen ausgeklügelte Systeme der künstlichen Intelligenz, um ihre Aufgaben zu planen, ihre Umgebung zu navigieren und auf der Oberfläche einer anderen Welt nach Leben zu suchen. Wenn du etwas Zeit hast, kannst du den zukünftigen Mars-Rovern sogar bei der Navigation helfen, indem du Daten beschriftest, um ihre Algorithmen zu verbessern!
Wirtschaft
Konnektivität kostet eine Menge Geld. Vernetzte Produkte sind teurer in der Nutzung und die Infrastruktur, auf die sie angewiesen sind, kostet die Hersteller Geld. Je mehrBandbreite benötigt wird, desto höher sind die Kosten. Besonders schlimm wird es für Geräte, die an abgelegenen Standorten eingesetzt werden und eine weitreichende Verbindung über Satellit benötigen.
Durch die Verarbeitung von Daten auf dem Gerät reduzieren oder vermeiden KI-Systeme die Kosten für die Übertragung von Daten über ein Netzwerk und deren Verarbeitung in der Cloud. Dadurch können viele Anwendungsfälle erschlossen werden, die bisher unerreichbar waren.
In manchen Fällen ist die einzige "Verbindung", die funktioniert, die Entsendung eines Menschen, der eine manuelle Aufgabe ausführt. Zum Beispiel setzen Naturforscher/innen häufig Kamerafallen ein, um Wildtiere an abgelegenen Orten zu beobachten. Diese Geräte machen Fotos, wenn sie Bewegungen erkennen, und speichern sie auf einer SD-Karte. Da es zu teuer ist, jedes Foto über das Satelliteninternet hochzuladen, müssen die Forscher/innen zu den Kamerafallen reisen, um die Bilder einzusammeln und die Speicherung zu löschen.
Da herkömmliche Kamerafallen bewegungsaktiviert sind, machen sie viele unnötige Fotos - sie können durch Äste, die sich im Wind bewegen, Wanderer, die vorbeilaufen, und Tiere, die die Forscher nicht interessieren, ausgelöst werden. Einige Teams setzen jetzt aber Kanten-KI ein, um nur die Tiere zu identifizieren, die sie interessieren, und die anderen Bilder zu verwerfen. Das bedeutet, dass sie nicht mehr so oft ins Nirgendwo fliegen müssen, um die SD-Karte zu wechseln.
In anderen Fällen sind die Kosten für die Konnektivität vielleicht kein Problem. Bei Produkten, die auf serverseitige KI angewiesen sind, können die Kosten für die Wartung der serverseitigen Infrastruktur dein Geschäftsmodell jedoch erschweren. Wenn du eine Flotte von Geräten unterstützen musst, die nach Hause telefonieren müssen, um Entscheidungen zu treffen, bist du möglicherweise zu einem Abonnementmodell gezwungen. Außerdem musst du dich verpflichten, die Server über einen langen Zeitraum zu warten - mit dem Risiko, dass deine Kunden mit "gebrickten" Geräten dastehen, wenn du den Stecker ziehen willst.7
Unterschätze nicht den Einfluss der Wirtschaftlichkeit. Durch die Senkung der Kosten für den langfristigen Support ermöglicht Kanten-KI eine große Anzahl von Anwendungsfällen, die sonst nicht realisierbar wären.
Verlässlichkeit
Systeme, die durch KI auf dem Gerät gesteuert werden, sind potenziell zuverlässiger als solche, die von einer Verbindung zur Cloud abhängen. Wenn du einem Gerät eine drahtlose Verbindung hinzufügst, fügst du ein riesiges, überwältigend komplexes Netz von Abhängigkeiten hinzu, von Kommunikationstechnologien auf der Verbindungsebene bis hin zu den Internetservern, auf denen deine Anwendung laufen kann.
Viele Teile dieses Puzzles liegen außerhalb deiner Kontrolle. Selbst wenn du alle richtigen Entscheidungen triffst, bist du dem Zuverlässigkeitsrisiko ausgesetzt, das mit den Technologien verbunden ist, aus denen dein verteiltes Rechenzentrum besteht.
Für manche Anwendungen mag das tolerierbar sein. Wenn du einen intelligenten Lautsprecher entwickelst, der auf Sprachbefehle reagiert, können deine Nutzer/innen es vielleicht verstehen, wenn er ihre Befehle nicht mehr erkennt, wenn die Internetverbindung zu Hause ausfällt. Trotzdem kann es eine frustrierende Erfahrung sein!
Aber in anderen Fällen steht die Sicherheit an erster Stelle. Stell dir ein KI-System vor, das eine Industriemaschine überwacht, um sicherzustellen, dass sie innerhalb sicherer Parameter betrieben wird. Wenn es nicht mehr funktioniert, wenn das Internet ausfällt, könnte es Menschenleben gefährden. Es wäre viel sicherer, wenn die KI vollständig auf dem Gerät basiert, so dass sie auch bei einem Verbindungsproblem noch funktioniert.
Zuverlässigkeit ist oft ein Kompromiss, und das erforderliche Maß an Zuverlässigkeit variiert je nach Anwendungsfall. KI am Rande des Netzwerks kann ein mächtiges Werkzeug sein, um die Zuverlässigkeit deiner Produkte zu verbessern. Obwohl KI von Natur aus komplex ist, stellt sie eine andere Art von Komplexität dar als globale Konnektivität, und ihr Risiko ist in vielen Situationen einfacher zu handhaben.
Datenschutz
In den letzten Jahren haben sich viele Menschen widerwillig mit dem Kompromiss zwischen Komfort und Privatsphäre abgefunden. Die Theorie besagt, dass wir unsere Daten preisgeben müssen, wenn wir wollen, dass unsere Technologieprodukte intelligenter und hilfreicher werden. Da intelligente Produkte ihre Entscheidungen in der Regel auf entfernten Servern treffen, senden sie oft Ströme von Sensordaten in die Cloud.
Für manche Anwendungen mag das in Ordnung sein - zum Beispiel macht es uns keine Sorgen, dass ein IoT-Thermostat Temperaturdaten an einen entfernten Server übermittelt.8 Aber bei anderen Anwendungen ist der Datenschutz ein großes Problem. Viele Menschen würden zum Beispiel zögern, eine mit dem Internet verbundene Sicherheitskamera in ihrem Haus zu installieren. Sie könnte zwar für ein gewisses Maß an Sicherheit sorgen, aber der Kompromiss, dass eine Live-Video- und Audioübertragung ihrer privatesten Räume ins Internet gesendet wird, scheint es nicht wert zu sein. Selbst wenn der Hersteller der Kamera absolut vertrauenswürdig ist, besteht immer die Möglichkeit, dass die Daten durch Sicherheitslücken offengelegt werden.9
Kanten-KI bietet eine Alternative. Anstatt Video- und Audiodaten live an einen entfernten Server zu übertragen, könnte eine Sicherheitskamera mit Hilfe der eingebauten Intelligenz erkennen, dass ein Eindringling anwesend ist, wenn die Besitzer nicht bei der Arbeit sind. Sie könnte dann die Besitzer auf angemessene Weise alarmieren. Wenn die Daten auf einem eingebetteten System verarbeitet und nicht in die Cloud übertragen werden, ist die Privatsphäre der Nutzer/innen geschützt und die Gefahr des Missbrauchs geringer.
Die Fähigkeit der Kanten-KI, die Privatsphäre zu schützen, eröffnet eine Vielzahl von spannenden Anwendungsfällen. Das ist besonders wichtig für Anwendungen in den Bereichen Sicherheit, Industrie, Kinderbetreuung, Bildung und Gesundheit. Da es in einigen dieser Bereiche strenge Vorschriften (oder Kundenerwartungen) in Bezug auf die Datensicherheit gibt, ist das Produkt mit dem besten Datenschutz dasjenige, das das Sammeln von Daten gänzlich vermeidet.
BLERP verwenden
Wie wir in Kapitel 2 sehen werden, kann BLERP ein praktisches Werkzeug sein, um zu verstehen, ob ein bestimmtes Problem für Kanten-KI geeignet ist. Es muss nicht für jedes Wort des Akronyms ein starkes Argument geben: Auch die Erfüllung von nur ein oder zwei Kriterien kann, wenn sie überzeugend genug ist, für einen Anwendungsfall sprechen.
Edge AI for Good
Die einzigartigen Vorteile der Kanten-KI bieten ein neues Instrumentarium, das für einige der größten Probleme unserer Welt eingesetzt werden kann. Technologen in Bereichen wie Naturschutz, Gesundheitswesen und Bildung nutzen Kanten-KI bereits, um viel zu bewirken. Hier sind nur einige Beispiele, von denen wir persönlich begeistert sind:
-
Smart Parks setzt Halsbänder mit maschinellen Lernmodellen ein, um das Verhalten von Elefanten in Wildparks auf der ganzen Welt besser zu verstehen.
-
RAM-1 von Izoelektro hilft, Waldbrände zu verhindern, die durch Stromübertragungsanlagen verursacht werden, indem es maschinelles Lernen einsetzt, um bevorstehende Fehler zu erkennen.
-
Forscher wie Dr. Mohammed Zubair Shamim von der King Khalid University in Saudi-Arabien trainieren Modelle, die Patienten mit kostengünstigen Geräten auf lebensbedrohliche Krankheiten wie Mundkrebs untersuchen können.
-
Studierende auf der ganzen Welt entwickeln Lösungen für ihre lokalen Industrien. João Vitor Yukio Bordin Yamashita von der UNIFEI in Brasilien entwickelte ein System zur Erkennung von Krankheiten, die Kaffeepflanzen befallen, mit eingebetteter Hardware.
Die Eigenschaften der Kanten-KI machen sie besonders geeignet für die Anwendung auf globale Probleme. Da eine zuverlässige Internetverbindung teuer und nicht überall verfügbar ist, kommen viele intelligente Technologien der aktuellen Generation nur Menschen zugute, die in industrialisierten, wohlhabenden und gut vernetzten Regionen leben. Durch den Wegfall einer zuverlässigen Internetverbindung verbessert Kanten-KI den Zugang zu Technologien, die den Menschen unddem Planeten zugutekommen können.
Wenn maschinelles Lernen zum Einsatz kommt, handelt es sich bei Kanten-KI in der Regel um kleine Modelle, die oft schnell und kostengünstig trainiert werden können. Da auch keine teure Backend-Server-Infrastruktur unterhalten werden muss, ermöglicht Edge AI es Entwicklern mit begrenzten Ressourcen, innovative Lösungen für die lokalen Märkte zu entwickeln, die sie besser kennen als jeder andere. Wenn du mehr über diese Möglichkeiten erfahren möchtest, empfehlen wir dir den Vortrag "TinyML and the Developing World", den Pete Warden auf dem TinyML Kenya Meetup gehalten hat.
Wie wir in "Datenschutz" gesehen haben , bietet Kanten-KI auch die Möglichkeit, die Privatsphäre der Nutzer/innen zu verbessern. In unserer vernetzten Welt behandeln viele Unternehmen Nutzerdaten als wertvolle Ressource, die sie ausbeuten und abbauen wollen. Verbraucher/innen und Unternehmer/innen müssen oft ihre Privatsphäre aufgeben, um KI-Produkte nutzen zu können, und geben ihre Daten in die Hände unbekannter Dritter.
Mit Kanten-KI müssen die Daten das Gerät nicht verlassen. Dies ermöglicht eine vertrauensvollere Beziehung zwischen Nutzer und Produkt und gibt den Nutzern das Eigentum an ihren eigenen Daten. Das ist besonders wichtig für Produkte, die für schutzbedürftige Menschen gedacht sind, die gegenüber Diensten, die ihre Daten abzugreifen scheinen, skeptisch sein könnten.
Wie wir in späteren Abschnitten sehen werden, gibt es viele potenzielle Fallstricke, die umschifft werden müssen, um ethische KI-Systeme zu entwickeln. Dennoch bietet die Technologie eine enorme Chance, die Welt besser zu machen.
Hinweis
Wenn du darüber nachdenkst, Kanten-KI zur Lösung von Problemen in deiner Gemeinde einzusetzen, würden sich die Autoren freuen, von dir zu hören. Wir haben eine Reihe von wirkungsvollen Projekten unterstützt und würden uns freuen, weitere zu finden. Schicke eine E-Mail an die Autoren unter hello@edgeaibook.com.
Hauptunterschiede zwischen Edge AI und regulärer KI
Edge AI ist eine Untergruppe der regulären KI, daher gelten viele der gleichen Prinzipien. Dennoch gibt es einige Besonderheiten zu beachten, wenn man über künstliche Intelligenz auf Kantengeräten nachdenkt. Hier sind unsere wichtigsten Punkte.
Training an der Kante ist selten
Viele KI-Anwendungen werden durch maschinelles Lernen unterstützt. Meistens wird beim maschinellen Lernen ein Modell trainiert, das auf der Grundlage von markierten Daten Vorhersagen macht. Sobald das Modell trainiert wurde, kann es für Inferenzen verwendet werden: Es macht neue Vorhersagen auf Basis von Daten, die es noch nicht gesehen hat.
Wenn wir über Kanten-KI und maschinelles Lernen sprechen, geht es in der Regel um Inferenz. Das Trainieren von Modellen erfordert viel mehr Rechenleistung und Speicherplatz als die Inferenz, und oft ist ein markierter Datensatz erforderlich. All diese Dinge sind an den Rändern schwer zu bekommen, wo die Geräte nur über begrenzte Ressourcen verfügen und die Daten roh und ungefiltert sind.
Aus diesem Grund werden die in der Kanten-KI verwendeten Modelle oft trainiert, bevor sie auf den Geräten eingesetzt werden. Dazu werden relativ leistungsstarke Rechner und Datensätze verwendet, die bereinigt und beschriftet wurden - oft von Hand. Es ist zwar technisch möglich, Machine-Learning-Modelle auf den Edge-Geräten selbst zu trainieren, aber das ist eher selten - vor allem, weil es an gekennzeichneten Daten mangelt, die für das Training und die Auswertung benötigt werden.
Es gibt zwei Unterarten des geräteinternen Trainings, die weiter verbreitet sind. Eine davon wird häufig bei Aufgaben wie der Gesichts- oder Fingerabdruckverifizierung auf Mobiltelefonen eingesetzt, um eine Reihe biometrischer Daten einem bestimmten Nutzer zuzuordnen. Die zweite wird bei der vorausschauenden Wartung eingesetzt, bei der ein geräteinterner Algorithmus den "normalen" Zustand einer Maschine erlernt, damit er eingreifen kann, wenn dieser Zustand abnormal wird. Mehr zum Thema On-Device-Lernen erfährst du in "On-Device-Training".
Der Fokus der Kanten-KI liegt auf Sensordaten
Das Spannende an Edge-Geräten ist, dass sie in der Nähe des Ortes leben, an dem die Daten erzeugt werden. Oft sind Edge-Geräte mit Sensoren ausgestattet, die ihnen eine unmittelbare Verbindung zu ihrer Umgebung ermöglichen. Das Ziel einer Edge-KI-Implementierung ist es, aus diesen Daten einen Sinn zu machen, Muster zu erkennen und sie für Entscheidungen zu nutzen.
Sensordaten sind in der Regel groß, verrauscht und schwer zu verwalten. Sie treffen in hoher Frequenz ein - möglicherweise viele Tausend Mal pro Sekunde. Ein eingebettetes Gerät, auf dem eine Kanten-KI-Anwendung läuft, hat nur einen begrenzten Zeitrahmen, um diese Daten zu sammeln, zu verarbeiten, sie in einen KI-Algorithmus einzuspeisen und die Ergebnisse zu verarbeiten. Das ist eine große Herausforderung, zumal die meisten eingebetteten Geräte ressourcenbeschränkt sind und nicht über den nötigen Arbeitsspeicher verfügen, um große Mengen an Daten zu speichern.
Die Notwendigkeit, rohe Sensordaten zu verarbeiten, macht die digitale Signalverarbeitung zu einem wichtigen Bestandteil der meisten KI-Einsätze an den Kanten. Bei einer effizienten und effektiven Implementierung müssen die Signalverarbeitungs- und KI-Komponenten als ein einziges System konzipiert werden, das einen Kompromiss zwischen Leistung und Genauigkeit darstellt.
Viele herkömmliche Tools für maschinelles Lernen und Data Science konzentrieren sich auf tabellarische Daten, wie z. B. Finanzdaten von Unternehmen oder Produktbewertungen von Verbrauchern. Im Gegensatz dazu sind Edge-KI-Tools darauf ausgelegt, konstante Ströme von Sensordaten zu verarbeiten. Das bedeutet, dass für die Entwicklung von Kanten-KI-Anwendungen ganz andere Fähigkeiten und Techniken erforderlich sind.
ML-Modelle können sehr klein werden
Kantengeräte sind oft so konzipiert, dass sie wenig kosten und wenig Strom verbrauchen. Das bedeutet, dass sie in der Regel viel langsamere Prozessoren und weniger Speicher haben als PCs oder Webserver.
Wenn maschinelles Lernen zur Implementierung von Kanten-KI eingesetzt wird, müssen die Modelle aufgrund der Beschränkungen der Zielgeräte recht klein sein. Auf einem Mittelklasse-Mikrocontroller stehen vielleicht nur etwa hundert Kilobyte ROM zur Verfügung, um ein Modell zu speichern, und auf manchen Geräten sind es noch viel weniger. Da die Ausführung größerer Modelle mehr Zeit in Anspruch nimmt, können die langsamen Prozessoren der Geräte die Entwickler/innen auch dazu bringen, kleinere Modelle einzusetzen.
Die Verkleinerung von Modellen bringt einige Kompromisse mit sich. Zunächst einmal haben größere Modelle eine höhere Lernkapazität. Wenn du ein Modell verkleinerst, verliert es einen Teil seiner Fähigkeit, den Trainingsdatensatz zu repräsentieren, und ist möglicherweise nicht mehr so genau. Aus diesem Grund müssen Entwickler, die eingebettete maschinelle Lernanwendungen entwickeln, die Größe ihres Modells gegen die erforderliche Genauigkeit abwägen.
Es gibt verschiedene Technologien, um Modelle zu komprimieren und ihre Größe zu verringern, damit sie auf kleinere Hardware passen und weniger Zeit für die Berechnung benötigen. Diese Komprimierungstechniken können sehr nützlich sein, aber sie beeinträchtigen auch die Genauigkeit der Modelle - manchmal auf subtile, aber riskante Weise. In "Komprimierung und Optimierung" werden wir diese Techniken im Detail besprechen.
Allerdings erfordern nicht alle Anwendungen große, komplexe Modelle. In der Regel geht es dabei um Dinge wie die Bildverarbeitung, denn die Interpretation visueller Informationen erfordert viele Feinheiten. Für einfachere Daten reichen oft ein paar Kilobytes (oder weniger) an Modellenaus.
Lernen aus Feedback ist begrenzt
Wie wir später sehen werden, werden KI-Anwendungen durch eine Reihe von iterativen Feedbackschleifen entwickelt. Wir machen etwas, messen, wie es funktioniert, und finden dann heraus, wie wir es verbessern können.
Stell dir zum Beispiel vor, wir bauen einen Fitnessmonitor, der deine 10 km-Laufzeit auf der Grundlage der von den eingebauten Sensoren gesammelten Daten schätzen kann. Um zu testen, ob es gut funktioniert, können wir warten, bis du einen tatsächlichen 10 km-Lauf absolvierst, und sehen, ob die Vorhersage richtig war. Wenn das nicht der Fall ist, können wir deine Daten zu unserem Trainingsdatensatz hinzufügen und versuchen, ein besseres Modell zu trainieren.
Wenn wir eine verlässliche Internetverbindung haben, sollte das nicht allzu schwer sein - wir können die Daten einfach auf unsere Server hochladen. Aber ein Teil der Magie der Kanten-KI besteht darin, dass wir Intelligenz auf Geräten einsetzen können, die nur über eine begrenzte Konnektivität verfügen. In diesem Fall haben wir vielleicht nicht die Bandbreite, um neue Trainingsdaten hochzuladen. In vielen Fällen können wir überhaupt keine Daten hochladen.
Das stellt eine große Herausforderung für unseren Entwicklungsworkflow dar. Wie können wir sicherstellen, dass unser System in der realen Welt gut funktioniert, wenn wir nur begrenzten Zugang dazu haben? Und wie können wir unser System verbessern, wenn es so schwierig ist, mehr Daten zu sammeln? Dies ist ein Kernthema der Kanten-KI-Entwicklung, das wir in diesem Buch ausführlich behandeln werden.
Datenverarbeitung ist vielfältig und heterogen
Die meisten serverseitigen KI-Anwendungen laufen auf ganz normalen x86-Prozessoren, mit ein paar Grafikprozessoren (GPUs), die bei Deep-Learning-Inferenzen helfen. Dank der neuen Server-CPUs von Arm und exotischen Deep-Learning-Beschleunigern wie den TPUs (Tensor Processing Units) von Google gibt es zwar eine gewisse Vielfalt, aber die meisten Anwendungen laufen auf ganz normaler Hardware.
Im Gegensatz dazu gibt es in der eingebetteten Welt eine schwindelerregende Vielfalt an Gerätetypen:
-
Mikrocontroller, darunter winzige 8-Bit-Chips und ausgefallene 32-Bit-Prozessoren
-
System-on-chip (SoC) Geräte mit eingebettetem Linux
-
Allzweck-Beschleuniger auf Basis der GPU-Technologie
-
Feldprogrammierbare Gate-Arrays (FPGAs)
-
Feste Architekturbeschleuniger, die eine einzelne Modellarchitektur rasend schnell ausführen
In jeder Kategorie gibt es unzählige Geräte von vielen verschiedenen Herstellern, jedes mit einem einzigartigen Satz an Bauwerkzeugen, Programmierumgebungen und Schnittstellenoptionen. Das kann ziemlich überwältigend sein.
Die Vielfalt der Hardware bedeutet, dass es wahrscheinlich mehrere geeignete Systeme für einen bestimmten Anwendungsfall gibt. Der schwierige Teil ist, eines auszuwählen! Wir werden diese Herausforderung im Laufe des Buches behandeln.
"Gut genug" ist oft das Ziel
Bei der traditionellen KI geht es oft darum, die bestmögliche Leistung zu erzielen - egal, was es kostet. Deep-Learning-Modelle, die in serverseitigen Anwendungen eingesetzt werden, können Gigabytes groß sein und sind auf leistungsstarke GPU-Rechner angewiesen, um zeitnah ausgeführt werden zu können. Wenn die Rechenleistung kein Hindernis darstellt, ist das genaueste Modell oft die beste Wahl.
Die Vorteile der Kanten-KI sind mit einigen ernsthaften Einschränkungen verbunden. Edge-Geräte haben eine geringere Rechenleistung und es gibt oft knifflige Kompromisse zwischen der Leistung des Geräts und der Genauigkeit.
Das ist sicherlich eine Herausforderung, aber kein Hindernis. Der Einsatz von KI an den Kanten bietet enorme Vorteile, die bei einer Vielzahl von Anwendungsfällen den Nachteil einer geringeren Genauigkeit bei weitem aufwiegen. Selbst eine kleine Menge an geräteeigener Intelligenz ist unendlich viel besser als gar keine.
Das Ziel ist es, Anwendungen zu entwickeln, die das Beste aus dieser "guten" Leistung herausholen - ein Ansatz, den Alasdair Allan elegant als Capable Computing beschreibt. Der Schlüssel zum Erfolg liegt in der Verwendung von Tools, die uns helfen, die Leistung unserer Anwendungen in der realen Welt zu verstehen, nachdem wir alle Leistungseinbußen berücksichtigt haben. Wir werden dieses Thema ausführlich behandeln.
Werkzeuge und bewährte Methoden werden noch weiterentwickelt
Da es sich um eine brandneue Technologie handelt, die gerade erst begonnen hat, die Massenanwendung zu erreichen, hängt Kanten-KI immer noch von Tools und Ansätzen ab, die für groß angelegte, serverseitige KI entwickelt wurden. Tatsächlich konzentriert sich der Großteil der KI-Forschung immer noch auf die Erstellung großer Modelle auf riesigen Datensätzen. Das hat einige Auswirkungen.
Erstens werden wir, wie wir in Kapitel 5 sehen werden, oft auf bestehende Entwicklungswerkzeuge aus den Bereichen Data Science und maschinelles Lernen zurückgreifen. Das hat den Vorteil, dass wir auf ein reichhaltiges Ökosystem von Bibliotheken und Frameworks zurückgreifen können, das sich bewährt hat. Allerdings legen nur wenige der vorhandenen Tools Wert auf Dinge, die am Rande wichtig sind, wie kleine Modellgrößen, Recheneffizienz und die Fähigkeit, mit kleinen Datenmengen zu trainieren. Wir müssen oft zusätzliche Arbeit leisten, um diese Dinge in den Mittelpunkt zu stellen.
Zweitens: Da die Kanten-KI-Forschung relativ neu ist, werden wir wahrscheinlich eine extrem schnelle Entwicklung erleben. In dem Maße, wie das Feld wächst und immer mehr Forscher und Ingenieure sich darauf konzentrieren, entstehen neue Ansätze zur Verbesserung der Effizienz - und bewährte Methoden und Techniken zur Entwicklung effektiver Anwendungen. Diese Aussicht auf schnelle Veränderungen macht Kanten-KI zu einem sehr spannenden Arbeitsfeld.
Zusammenfassung
In diesem Kapitel haben wir uns mit der Terminologie beschäftigt, die Edge AI definiert, ein praktisches Tool kennengelernt, mit dem wir die Vorteile von Edge AI erörtern können, untersucht, wie die Verlagerung von Rechenleistung an den Rand den Zugang zu Technologie verbessern kann, und die Faktoren beschrieben, die Edge AI von herkömmlicher KI unterscheiden.
Ab dem nächsten Kapitel werden wir uns mit den Besonderheiten beschäftigen. Bereite dich darauf vor, mehr über die Anwendungsfälle, Geräte und Algorithmen zu erfahren, die Kanten-KI heute antreiben.
1 Wie von Business Wire berichtet.
2 Laut IoT Analytics wird bis 2025 ein Anstieg auf 27 Milliarden erwartet.
3 Embedded Engineering und mobile Entwicklung sind in der Regel getrennte Disziplinen. Selbst innerhalb eines mobilen Geräts unterscheiden sich die eingebettete Firmware und das Betriebssystem von mobilen Anwendungen. In diesem Buch liegt der Schwerpunkt auf der Embedded-Entwicklung, daher werden wir nicht viel über die Entwicklung mobiler Anwendungen sprechen, aber wir werden Techniken behandeln, die in beiden Fällen relevant sind.
4 Viele Jahre lang hoffte man, dass künstliche allgemeine Intelligenz durch eine komplexe bedingte Logik erreicht werden könnte, die von Ingenieuren von Hand abgestimmt wird. Es hat sich herausgestellt, dass es viel komplizierter ist als das!
5 Der Begriff TinyML ist eine eingetragene Marke der TinyML Foundation.
6 Dies wird in "Spektralanalyse" erklärt .
7 Nicht alle Kanten-KI-Anwendungen sind davor gefeit, da es oft notwendig ist, die Geräte zu überwachen und Updates für die Algorithmen bereitzustellen. Es gibt jedoch viele Fälle, in denen Kanten-KI den Wartungsaufwand verringern kann.
8 Selbst in diesem harmlosen Beispiel könnte eine böswillige Person, die auf deine Thermostatdaten zugreift, diese nutzen, um zu erkennen, wann du im Urlaub bist, damit sie in dein Haus einbrechen kann.
9 Genau dieses Szenario ereignete sich im Jahr 2022 mit dem Heimsicherheitssystem Ring, das für einen Angriff anfällig war ("Amazon's Ring Quietly Fixed Security Flaw That Put Users' Camera Recordings at Risk of Exposure", TechCrunch, 2022).
Get KI am Rande now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.