Wie sieht eine KI-Anwendung wirklich aus? Nachdem Sie einige davon gebaut haben, scheint es ein guter Zeitpunkt zu sein, sie in ihre (vielen) Teile zu zerlegen – und die betrieblichen Auswirkungen zu untersuchen.
Wir haben bereits untersucht , was bei KI-Anwendungen (vieles) gleich und was (vieles) anders ist . Es ist ganz einfach, eine KI-Anwendung als „eine Anwendung, die KI nutzt, entweder prädiktiv oder generativ “ zu definieren.
Das stimmt, aber was bedeutet das für die Leute, die diese neuen Arten von Anwendungen erstellen, einsetzen, bereitstellen, sichern und betreiben müssen?
Dies bedeutet unter anderem neue bewegliche Teile. Und nicht nur Inferenzdienste . Es gibt weitere neue Komponenten, die zu Standarderweiterungen der Anwendungsarchitektur werden, wie beispielsweise Vektordatenbanken. Dies bedeutet auch eine stärkere Abhängigkeit von APIs .
Es stimmt auch, dass die meisten dieser Komponenten in Containern vorliegen. Wenn ich ein neues KI-Anwendungsprojekt einrichte, starte ich einen Container mit PostgreSQL, um ihn als Vektordatenspeicher zu verwenden. Dies dient der Unterstützung von RAG (Retrieval Augmented Generation), das laut mehreren Branchenberichten (z. B. diesem von Databricks ) von einem erheblichen Prozentsatz der KI-Anwendungen verwendet wird. Das liegt daran, dass ich ein Standard-KI-Modell mit beliebigen Daten erweitern kann, ohne das Modell selbst optimieren oder trainieren zu müssen. Für eine beträchtliche Anzahl von Anwendungsfällen ist dies der beste Weg, eine KI-Anwendung zu implementieren.
Ich kann auch einen Wissensgraphen starten, normalerweise durch Ausführen einer containerisierten Graphdatenbank wie Neo4J. Graphdatenbanken sind besonders nützlich bei der Arbeit mit graphenaffinen Daten, wie sozialen Netzwerken, Daten von Empfehlungsmaschinen und bei der Betrugserkennung. Wie wir zu Beginn des Jahres erfahren haben, sind sie auch dazu geeignet, Halluzinationen im Zusammenhang mit der Politikgestaltung zu mildern . Durch die Einbindung einer Graphdatenbank kann ein neues Protokoll, GraphQL, zur Liste der „neuen Dinge, die gesichert werden müssen“ hinzugefügt werden.
Dann entscheide ich, welchen Inferenzdienst ich verwenden möchte. Ich habe Optionen. Ich könnte den Dienst eines Cloud-Providers oder KI als Dienst (wie ChatGPT) nutzen oder einen lokalen Dienst ausführen . Bei meinem letzten Basteleien habe ich beispielsweise Ollama und phi3 auf meinem MacBook verwendet. In diesem Fall führe ich nur eine Kopie des Inferenzservers aus, da die Ausführung mehrerer Kopien mehr Ressourcen verbrauchen würde, als mir zur Verfügung stehen. In der Produktion wäre es natürlich wahrscheinlich, dass mehr Instanzen vorhanden wären, um sicherzustellen, dass die Nachfrage gedeckt werden kann.
Da ich phi3 verwenden werde, wähle ich phidata als mein Framework für den Zugriff auf den Inferenzdienst. Ich habe Langchain auch verwendet, wenn ich die Vorteile von KI als Service genutzt habe, eine beliebte Wahl, und die gute Nachricht ist, dass das Framework aus betrieblicher Sicht nichts ist, das außerhalb der zentralen KI-Anwendung selbst betrieben wird.
Ich habe noch nicht einmal eine Zeile Code geschrieben und schon laufen mehrere Komponenten, auf die jeweils über eine API zugegriffen wird und die in ihren eigenen Containern laufen. Deshalb gehen wir davon aus, dass eine KI-Anwendung eine moderne Anwendung ist und dieselben bekannten Herausforderungen hinsichtlich Bereitstellung, Sicherheit und Betrieb mit sich bringt. Aus diesem Grund sind wir davon überzeugt, dass durch den Einsatz von KI-Modellen die Anzahl der APIs, die bereitgestellt und gesichert werden müssen, drastisch steigen wird.
KI-Anwendungen fügen einer bereits komplexen Umgebung eine weitere Ebene hinzu, was natürlich die Komplexität erhöht. Das bedeutet, dass die KI-Anwendungsarchitektur die Belastung aller Betriebsfunktionen erhöhen wird, von der Sicherheit über SRE bis hin zum Netzwerk. Jede dieser Komponenten verfügt außerdem über ihr eigenes Skalierungsprofil. Das heißt, einige Komponenten müssen schneller skaliert werden als andere, und die Verteilung der Anfragen erfolgt unterschiedlich, einfach weil die meisten von ihnen unterschiedliche APIs und in einigen Fällen auch Protokolle nutzen.
Darüber hinaus wird die Architektur von KI-Anwendungen intern sehr variabel sein. Das heißt, die KI-Anwendung, die ich erstelle, weist wahrscheinlich andere lokale Verkehrseigenschaften und -anforderungen auf als die KI-Anwendung, die Sie erstellen. Und mehr Heterogenität bedeutet natürlich auch mehr Komplexität, denn sie ist das Gegenteil von Standardisierung, die Homogenität fördert.
Durch Standardisierung können Unternehmen seit Jahrzehnten schneller neue Funktionen auf den Markt bringen, ihre Betriebseffizienz steigern und gleichzeitig die erforderlichen Personalressourcen freisetzen, um die Variabilität der KI-Anwendungsarchitekturen zu bewältigen.
Aus diesem Grund beobachten wir, dass einige gemeinsam genutzte Dienste – insbesondere App- und API-Sicherheit – an den Rand verlagert werden, ganz im Sinne von „Sicherheit als Service“ . Ein solcher Satz gemeinsam genutzter Dienste kann nicht nur Workloads in allen Umgebungen (Kern, Cloud und Edge) besser schützen, sondern auch einen gemeinsamen Satz von Diensten bereitstellen, der als Standard für alle KI-Anwendungen dienen kann.
Wenn Sie die Anatomie von KI-Anwendungen verstehen, können Sie nicht nur bestimmen, welche Arten von Anwendungsbereitstellungs- und Sicherheitsdiensten Sie benötigen, sondern auch , wo Sie sie benötigen.