Gepostet von Sergey Lukyanchikov, beratender Ingenieur, InterSystems
Terminologie vereinbaren
Ein Roboter muss weder groß noch humanoid oder grundsätzlich materiell sein (bis zum Höhepunkt von
Wikipedia , der jedoch nach einigen Absätzen den ursprünglichen Wortlaut mildert und es dem Roboter ermöglicht, immateriell zu sein). Ein Roboter ist ein Automat im algorithmischen Sinne, ein Automat zur autonomen (algorithmischen) Lösung einiger Probleme. Der Lichtdetektor, der abends das Licht einschaltet, ist ein Roboter. Analysieren von E-Mails auch auf "externe" und "interne" E-Mail-Clients.
Künstliche Intelligenz (im engeren Sinne teilt
Wikipedia sie nicht wieder) sind Algorithmen zum Extrahieren von Abhängigkeiten aus Daten. Es löst keine Probleme von selbst, dafür muss es zunächst in Form spezifischer Analyseprozesse (Eingabedaten, Modelle, Ausgabedaten, Prozesssteuerung) implementiert werden. Der analytische Prozess, der als "Träger künstlicher Intelligenz" fungiert, kann von einer Person gestartet werden, kann von einem Roboter gestartet werden. Und auch aufgehört, entweder der eine oder der andere. Und auch schaffen.
Interaktion mit der Umwelt
Künstliche Intelligenz benötigt darüber hinaus Daten in einer für die Analyse geeigneten Form. Wenn der Analytiker beginnt, den Analyseprozess zu entwickeln, werden die Daten vom Analytiker selbst für das Modell vorbereitet. In der Regel wird ein in Umfang und Umfang ausreichender Datensatz („Datensatz“) erstellt, an dem das Modell trainiert und getestet wird. Nachdem ein typischer Analytiker ein Ergebnis erzielt hat, dessen Genauigkeit zufriedenstellend ist (und in selteneren Fällen zeitlich „lokal stabil“ ist), betrachtet er seine Arbeit als erledigt. Aber wirklich? In der Tat ist dies nur die halbe Miete. Jetzt ist es notwendig, den „ununterbrochenen und effizienten Betrieb“ des Analyseprozesses sicherzustellen - und der Analyst kann damit Schwierigkeiten haben.
Die Werkzeuge zur Entwicklung von Mechanismen der künstlichen Intelligenz und des maschinellen Lernens sind, außer in den einfachsten Fällen, nicht für eine produktive Interaktion mit der externen Umgebung geeignet. Das heißt, Es ist wahrscheinlich möglich, beispielsweise Python zu zwingen, Daten von Sensoren im Produktionsprozess zu lesen und zu transformieren (zumindest für kurze Zeit). Je nach Situation zwischen mehreren Produktions- und Verwaltungsprozessen wechseln, die entsprechende Rechenleistung skalieren, alle Arten von „Ausnahmen“ behandeln (Unzugänglichkeit einer der Datenquellen, Infrastrukturausfall, Benutzerinteraktionsprobleme usw.) - dies ist nicht für Python vorgesehen . Dies erfordert eine Datenverwaltungs- und Integrationsplattform. Und je belasteter, je vielfältiger unser Analyseprozess sein wird, desto höher sind die Anforderungen an die Integration und die Komponenten der „Unterkomponenten“ -Lösung. Der Analytiker, der sich für KI-Mechanismen interessiert und versucht, den Analyseprozess mithilfe der Skriptsprache seiner üblichen Modellierungsumgebung (und der für ihn entwickelten Dienstprogramme wie „Laptops“) zu implementieren, ist mit der Unfähigkeit konfrontiert, seinen Analyseprozess vollständig produktiv zu nutzen.
Anpassungsfähigkeit und Anpassungsfähigkeit
Die Variabilität der Umgebung manifestiert sich auf unterschiedliche Weise. In einigen Fällen ändern sich das Wesen und die Art der durch künstliche Intelligenz kontrollierten Phänomene (Eintritt eines Unternehmens in neue Geschäftsbereiche, Anforderungen der nationalen und internationalen Regulierungsbehörden, Entwicklung der Verbraucherpräferenzen von Unternehmensprodukten usw.). In anderen Fällen die Art der Daten, die aus der Umgebung stammen (neue Geräte mit neuen Sensoren, effizientere Datenübertragungskanäle, Verfügbarkeit neuer Technologien zum „Markieren“ von Daten usw.).
Kann sich der Analyseprozess "neu aufbauen", wenn sich die Struktur der Umgebung ändert? Um die Frage zu vereinfachen: Wie einfach ist es, den Analyseprozess neu zu erstellen, wenn Sie die Struktur der Umgebung ändern? Aus unseren Beobachtungen geht hervor, dass die Antwort einfach und traurig ist: In den meisten uns bekannten Implementierungen (nicht in unseren!) Müssen wir zumindest den Analyseprozess - und häufig die darin enthaltene KI - neu schreiben. Es kann sein, dass es nicht wörtlich vom „Eingang zum Ausgang“ bis zum Umschreiben geht, aber Sie müssen der Programmierung etwas hinzufügen, um neue Realitäten zu verarbeiten, die interne Logik des „Modellanwendungsprozesses“ selbst zu ändern usw. Und dies kann zu einem unerschwinglich teuren Geschäft führen - insbesondere wenn sich die Umgebung dynamisch ändert.
Agentur: die Grenze der Autonomie?
Wie der Leser wahrscheinlich bereits bemerkt hat, bewegen wir uns in Richtung einer Zunahme der Komplexität der Realität, die der künstlichen Intelligenz angeboten wird. Und wir markieren die möglichen Konsequenzen für den "instrumentalen Teil". In der Hoffnung, dass wir am Ende die Antwort auf alle auftretenden Herausforderungen finden können.
Wir kamen der Notwendigkeit nahe, dem Analyseprozess ein solches Maß an Autonomie zu verleihen, mit dem er nicht nur die Variabilität der Umwelt, sondern auch die Unsicherheit seines Zustands bewältigen kann. Hier geht es nicht um die Quantennatur der Umgebung (obwohl wir in einer der folgenden Veröffentlichungen darüber sprechen werden), sondern nur um die Wahrscheinlichkeit, dass der vom Analyseprozess erwartete Zustand zum erwarteten Zeitpunkt und im erwarteten „Volumen“ erreicht wird. Beispiel: Der Prozess „dachte“, dass er mit dem nächsten Training des Modells verwaltet werden würde, bis neue Daten für die Anwendung des Modells eintrafen, aber nicht „verwaltet“ (aus objektiven Gründen wurden mehr Datensätze als üblich in den Trainingssatz eingegeben und das Modelltraining verzögert). Oder: Die Markup-Gruppe hat dem Prozess eine neue Druckmaschine hinzugefügt, das Vektorisierungsmodell wurde bereits auf das neue Textmaterial trainiert, und das neuronale Netzwerk arbeitet noch an der alten Vektorisierung und sendet äußerst interessante neue Informationen an den "Schrott". Um mit solchen Situationen fertig zu werden, können Sie, wie unsere Praxis zeigt, den zuvor einheitlichen Analyseprozess nur in mehrere unabhängig voneinander arbeitende Komponenten aufteilen und für jeden empfangenen Agentenprozess eine eigene „Pufferprojektion“ der Umgebung erstellen. Diese Aktion (auf Wiedersehen, Wikipedia) wird als Agentisierung des Analyseprozesses bezeichnet. Und die Qualität, die die Agentur dem Analyseprozess (in der Regel dem gesamten System, das aus mehreren Prozessen gleichzeitig besteht) mitteilt, wird als Agentur bezeichnet.
Wir stellen die Aufgabe für den Roboter
Versuchen wir, ein solches Problem zu finden, für dessen Lösung eine Roboter-KI mit allen oben genannten Eigenschaften erforderlich wäre. Wir müssen nicht weit hinter die Idee zurückgehen, da viele interessante Fälle und Lösungen dafür im Internet veröffentlicht wurden - wir werden eine dieser „Falllösungen“ verwenden (sowohl für die Erklärung des Problems als auch für die Lösung in Bezug auf künstliche Intelligenz). Unsere gewählte Aufgabe beschränkt sich auf die Einteilung der Aussagen im sozialen Netzwerk Twitter („Tweets“) in „negativ“ und „positiv“ hinsichtlich ihrer emotionalen Färbung. Um die Modelle zu trainieren, verfügen wir über ausreichend große Stichproben von „markierten“ Tweets (dh mit einer bereits definierten emotionalen Färbung), und wir müssen die Tweets als „nicht markiert“ (dh mit einer nicht definierten emotionalen Färbung) klassifizieren:
Abbildung 1 Erklärung des Problems für die Klassifizierung von Texten nach emotionaler Färbung (englische Stimmungsanalyse)Der Ansatz, mathematische Modelle zu erstellen, die in der Lage sind, auf markierten Texten zu lernen und anschließend Texte mit einer unbestimmten emotionalen Färbung zu klassifizieren, wird in einem ziemlich bekannten
Beispiel formuliert, das von S. Smetanin im Internet veröffentlicht wurde.
Daten für die Aufgaben dieser Klasse werden freundlicherweise von Yu. Rubtsova gesammelt, verarbeitet und veröffentlicht.
Und hier könnten wir anfangen, „den Roboter zusammenzubauen“ - aber wir werden die klassische Aussage ein wenig mit einer Bedingung komplizieren: Sowohl markierte als auch nicht zugewiesene Daten werden dem Analyseprozess in Form von Dateien mit Standardgröße zur Verfügung gestellt, da der Prozess die bereits bereitgestellten Dateien „verbraucht“. Daher muss unser Roboter mit der Arbeit an den minimalen Trainingsdatenmengen beginnen und die Klassifizierungsgenauigkeit ständig erhöhen, indem er das Modelltraining bei zunehmenden Trainingsdatenmengen wiederholt.
Wir gehen zum Workshop InterSystems
Lassen Sie uns am Beispiel der gerade von uns formulierten Aufgabe zeigen, wie künstliche Intelligenz mithilfe der IRIS-Plattform von InterSystems und einer Reihe von Erweiterungen namens ML Toolkit robotisiert werden kann. Gleichzeitig wird sichergestellt, dass die von uns erstellten Analyseprozesse produktiv mit der Umgebung interagieren können, anpassungsfähig, anpassungsfähig und agierend sind („drei A“).
Beginnen wir mit der Agentur. Platzieren wir vier Geschäftsprozesse in der Plattform:
Abbildung 2 Konfiguration eines Business Process Agent-Systems mit einer Komponente für die Interaktion mit Python- GENERATOR ("Generator") - Da die Dateien von anderen Prozessen verbraucht werden, werden neue Dateien mit Eingabedaten erstellt (markiert als "positiv" und "negativ" - Tweets und Tweets mit einer undefinierten emotionalen Färbung).
- BUFFER („Puffer“) - Wenn andere Prozesse Datensätze verbrauchen, werden neue Datensätze aus vom Generator erstellten Dateien gelesen und diese Dateien nach dem Lesen von Datensätzen gelöscht
- ANALYZER ("Analysator") - verbraucht Einträge aus dem Puffer unbestimmter Tweets, wendet ein trainiertes Faltungs-Neuronales Netzwerk auf diese Einträge an und legt die resultierenden Einträge mit der berechneten "Wahrscheinlichkeit des Positiven" in den Monitorpuffer; Durch das Konsumieren von Einträgen aus Puffern positiver und negativer Tweets wird ein neuronales Netzwerktraining durchgeführt
- MONITOR ("Monitor") - Indem die vom Analysator verarbeiteten Datensätze aus seinem eigenen Puffer verwendet werden, überwacht er die Werte der Tweet-Klassifizierungsfehlermetriken durch das neuronale Netzwerk während des letzten Trainings und sendet ein Signal an den Analysator über die Notwendigkeit eines neuen Trainings des neuronalen Netzwerks
Wir können unser Agentensystem für Geschäftsprozesse wie folgt schematisch darstellen:
Abbildung 3 AgentendatenflussAlle Prozesse in unserem System arbeiten unabhängig voneinander, berücksichtigen jedoch die Signale voneinander. Das Signal zum Beginn der Bildung der nächsten Datei mit Datensätzen durch den Prozessgenerator ist beispielsweise das Löschen der vorherigen Datei mit den Datensätzen durch den Puffer.
Nun zur Anpassungsfähigkeit. Die Anpassungsfähigkeit des Analyseprozesses in unserem Beispiel wird durch die "Einkapselung" der KI in Form eines Elements implementiert, das von der Logik des Trägerprozesses des Elements unabhängig ist, wobei seine Hauptfunktionen isoliert werden - Training und Anwendung von Modellen:
Abbildung 4 Isolierung der Hauptfunktionen der KI im analytischen Prozessanalysator - Training und Bewertung mathematischer ModelleWeil Das oben dargestellte Fragment des Analyseprozesses ist Teil des „Endloszyklus“ (der beginnt, wenn der Analyseprozess startet und läuft, bis das gesamte Agentensystem stoppt). Die KI-Funktionen werden parallel ausgeführt. Der Prozess kann die KI an die Situation anpassen: Modelle bei Bedarf trainieren und ohne Unterbrechung die ihm zur Verfügung stehende Version der Modelle zu verwenden. Der Bedarf an Trainingsmodellen wird durch einen adaptiven Überwachungsprozess bestimmt, der unabhängig vom Analyseprozess arbeitet und anhand seiner eigenen Kriterien die Genauigkeit der vom Analysator trainierten Modelle bewertet:
Abbildung 5 Erkennung des Modelltyps durch den Prozessmonitor und Anwendung geeigneter Kriterien zur Bewertung der Genauigkeit von ModellenWir wenden uns der Anpassungsfähigkeit zu. Der Analyseprozess in InterSystems IRIS ist ein Geschäftsprozess mit einer grafischen oder XML-Darstellung als Folge von Schritten. Schritte können wiederum Sequenzen von Schritten, Zyklen, Bedingungstests und anderen Prozesskontrollen sein. Schritte können Programmcode zur Ausführung ausführen oder Informationen (die auch Programmcode sein können) zur Ausführung an andere Prozesse oder externe Umgebungen übertragen.
Insbesondere wenn es notwendig ist, den Analyseprozess zu ändern, haben wir die Möglichkeit, dies sowohl im grafischen Editor als auch in der IDE zu tun. Durch Ändern des Analyseprozesses in einem grafischen Editor können Sie die Logik des Prozesses ohne Programmierung anpassen:
Abbildung 6 Prozessanalysator in einem grafischen Editor mit einem geöffneten Menü zum Hinzufügen von SteuerelementenUnd schließlich die Interaktion mit der Umwelt. Die wichtigste Komponente der Umgebung ist in unserem Fall die mathematische Modellierungsumgebung von Python. Um die Interaktion mit den Python- und R-Umgebungen sicherzustellen, wurden die entsprechenden Funktionserweiterungen erstellt:
Python Gateway und
R Gateway . Eine Schlüsselfunktion beider Mechanismen ist die Fähigkeit, mit der geeigneten Umgebung unter Verwendung praktischer Integrationskomponenten zu interagieren. Wir haben die Komponente für die Interaktion mit Python bereits in der Konfiguration unseres Agentensystems gesehen. Auf diese Weise interagieren Geschäftsprozesse, die in Python implementierte KI enthalten, mit Python.
Der Analyseprozess enthält beispielsweise Funktionen zum Trainieren und Anwenden von Modellen, von denen die Implementierung in Python auf der InterSystems IRIS-Plattform folgendermaßen aussieht:
Abbildung 7 Implementierung der InterSystems IRIS-Plattform in Python für das Training von Modellen im AnalyseprozessJeder der Schritte dieses Prozesses ist für die Verarbeitung einer bestimmten Interaktion mit Python verantwortlich: Übertragen von Eingaben aus dem Kontext des InterSystems-IRIS-Prozesses in den Python-Kontext, Übergeben von Code zur Ausführung in Python und Zurückgeben der Ausgabe aus dem Python-Kontext an den Kontext des InterSystems-IRIS-Prozesses.
Die in unserem Beispiel am häufigsten verwendete Art der Interaktion ist die Übergabe von Code zur Ausführung in Python:
Abbildung 8 Python-Code, der in einem InterSystems-IRIS-Parserprozess gehostet wird, wird zur Ausführung an Python gesendetIn einigen Interaktionen werden Daten aus dem Python-Kontext in den InterSystems-IRIS-Prozesskontext zurückgegeben:
Abbildung 9 Visuelle Verfolgung der Analyseprozesssitzung mit Anzeige der von Python zurückgegebenen Informationen in einem der ProzessschritteWir starten den Roboter
Führen Sie den Roboter richtig in diesem Artikel aus? Warum nicht, hier ist eine
Aufzeichnung unseres Webinars, in dem (zusätzlich zu einer Reihe anderer interessanter und mit der Robotisierung zusammenhängender KI-Geschichten!) Die Arbeit des obigen Szenarios gezeigt wird. Da die Zeit des Webinars leider begrenzt ist - und wir die „nützliche Arbeit“ unseres Roboterskripts so kompakt und visuell wie möglich zeigen möchten - haben wir unten einen vollständigeren Überblick über die Ergebnisse des Modelltrainings gegeben (7 aufeinanderfolgende Trainingszyklen anstelle von 3 im Webinar):

Die Ergebnisse stimmen weitgehend mit den intuitiven Erwartungen überein: Wenn sich die Trainingsstichprobe mit „markierten“ positiven und negativen Tweets füllt, verbessert sich die Qualität unseres Klassifizierungsmodells (dies wird durch die zunehmende „Fläche unter der Kurve“, dieselbe AUC - Fläche unter Kurve, belegt).
Welche Schlussfolgerungen möchte ich am Ende des Artikels ziehen:
- InterSystems IRIS ist eine leistungsstarke KI-Plattform für Roboterprozesse
- Künstliche Intelligenz kann sowohl in externen Umgebungen (z. B. Python und R mit ihren Modulen, die gebrauchsfertige Algorithmen enthalten) als auch in der InterSystems IRIS-Plattform selbst (mithilfe der integrierten Bibliothek von Algorithmen oder durch Schreiben von Algorithmen in Python oder R) implementiert werden. InterSystems IRIS bietet Interaktion mit externen KI-Umgebungen, sodass Sie deren Funktionen mit ihren eigenen Funktionen kombinieren können
- InterSystems IRIS-Roboter AI mit "drei A": anpassbare, adaptive und Agenten-Geschäftsprozesse (sie sind auch analytische Prozesse)
- InterSystems IRIS arbeitet mit externer KI (Python, R) durch spezielle Interaktionen zusammen: Datenübertragung / -rückgabe, Codeübertragung zur Ausführung usw. Im Rahmen eines Analyseprozesses können Interaktionen mit mehreren mathematischen Modellierungsumgebungen durchgeführt werden.
- InterSystems IRIS konsolidiert Modelleingabe- und -ausgabedaten auf einer einzigen Plattform, historisiert und versioniert Berechnungen
- Dank InterSystems IRIS kann künstliche Intelligenz sowohl in speziellen Analysemechanismen als auch in OLTP- oder Integrationslösungen eingebettet werden.
Für diejenigen, die den Artikel lesen und an den Funktionen von InterSystems IRIS als Plattform für die Entwicklung oder Bereitstellung künstlicher Intelligenz und maschineller Lernmechanismen interessiert sind, empfehlen wir, mögliche Szenarien zu erörtern, die für Ihr Unternehmen von Interesse sind. Wir analysieren gerne die Bedürfnisse Ihres Unternehmens und legen gemeinsam einen Aktionsplan fest. Die Kontakt-E-Mail für unser AI / ML-Expertenteam lautet
MLToolkit@intersystems.com .