Autor: Sergey Lukyanchikov, Vertriebsingenieur bei InterSystems
Behebung der Terminologie
Es wird nicht erwartet, dass ein Roboter entweder riesig oder humanoid oder gar materiell ist (im Widerspruch zu
Wikipedia , obwohl letzteres die ursprüngliche Definition in einem Absatz aufweicht und die virtuelle Form eines Roboters zulässt). Ein Roboter ist aus algorithmischer Sicht ein Automat zur autonomen (algorithmischen) Ausführung konkreter Aufgaben. Ein Lichtdetektor, der nachts Straßenlaternen auslöst, ist ein Roboter. Eine E-Mail-Software, die E-Mails in "externe" und "interne" unterteilt, ist ebenfalls ein Roboter.
Künstliche Intelligenz (in einem engeren und angewandten Sinne interpretiert
Wikipedia sie wieder anders) ist ein Algorithmus zum Extrahieren von Abhängigkeiten aus Daten. Es werden keine eigenen Aufgaben ausgeführt, da dies als konkrete Analyseprozesse (Eingabedaten plus Modelle plus Ausgabedaten plus Prozesssteuerung) implementiert werden müsste. Der Analyseprozess, der als „künstlicher Intelligenzträger“ fungiert, kann von einem Menschen oder einem Roboter gestartet werden. Es kann auch von beiden gestoppt werden. Und das schaffte auch keiner von ihnen.
Interaktion mit der Umwelt
Künstliche Intelligenz benötigt Daten, die zur Analyse geeignet sind. Wenn ein Analyst mit der Entwicklung eines Analyseprozesses beginnt, werden die Daten für das Modell vom Analysten selbst aufbereitet. Normalerweise erstellt er einen Datensatz, der über genügend Volumen und Funktionen verfügt, um für Modelltrainings und -tests verwendet zu werden. Sobald die Genauigkeit (und in selteneren Fällen die „lokale Stabilität“) des erhaltenen Ergebnisses zufriedenstellend ist, betrachtet ein typischer Analyst seine Arbeit als erledigt. Hat er recht In der Realität ist die Arbeit nur zur Hälfte erledigt. Es bleibt eine "ununterbrochene und effiziente Abwicklung" des Analyseprozesses zu gewährleisten - und hier kann es für unseren Analysten zu Schwierigkeiten kommen.
Die Werkzeuge zur Entwicklung künstlicher Intelligenz und maschineller Lernmechanismen sind mit Ausnahme einiger einfachster Fälle nicht für eine effiziente Interaktion mit der Außenumgebung geeignet. Zum Beispiel können wir (für kurze Zeit) Python verwenden, um Sensordaten aus einem Produktionsprozess zu lesen und zu transformieren. Python wird jedoch nicht das richtige Werkzeug sein, um die Situation zu überwachen und die Steuerung zwischen verschiedenen Produktionsprozessen zu wechseln, die entsprechenden Rechenressourcen zu erhöhen und zu verringern, alle Arten von „Ausnahmen“ zu analysieren und zu behandeln (z. B. Nichtverfügbarkeit einer Datenquelle, Infrastrukturfehler, Benutzerinteraktionsprobleme usw.). Dazu benötigen wir eine Datenmanagement- und Integrationsplattform. Und je leistungsfähiger und variabler unser Analyseprozess ist, desto höher werden die Erwartungen an die Plattformintegration und die „DBMS“ -Komponenten sein. Ein Analyst, der sich auf Skriptsprachen und traditionelle Entwicklungsumgebungen stützt, um Modelle (einschließlich Dienstprogramme wie "Notebooks") zu erstellen, wird mit der Unmöglichkeit konfrontiert sein, seinen Analyseprozess für eine effiziente produktive Implementierung zu sichern.
Anpassungsfähigkeit und Anpassungsfähigkeit
Umweltveränderlichkeit äußert sich auf unterschiedliche Weise. In einigen Fällen ändert sich das Wesen und die Art der Dinge, die von künstlicher Intelligenz verwaltet werden (z. B. Eintritt eines Unternehmens in neue Geschäftsbereiche, Anforderungen nationaler und internationaler Regulierungsbehörden, Entwicklung unternehmensrelevanter Kundenpräferenzen usw.). In den anderen Fällen wird die Informationssignatur der Daten, die aus einer externen Umgebung stammen, anders (z. B. neue Geräte mit neuen Sensoren, leistungsfähigere Datenübertragungskanäle, Verfügbarkeit neuer Daten- "Etikettierungstechnologien" usw.).
Kann sich ein Analyseprozess „neu erfinden“, wenn sich die Struktur der externen Umgebung ändert? Vereinfachen wir die Frage: Wie einfach ist es, den Analyseprozess anzupassen, wenn sich die Struktur der externen Umgebung ändert? Nach unserer Erfahrung ist die folgende Antwort einfach und traurig: In den meisten bekannten Implementierungen (nicht von uns!) Muss der Analyseprozess mindestens neu geschrieben werden, und höchstwahrscheinlich auch die KI, die er enthält. Nun, das Ende-zu-Ende-Umschreiben ist möglicherweise nicht das endgültige Urteil, aber es kann in der Tat erforderlich sein, die Programmierung so vorzunehmen, dass etwas hinzugefügt wird, das die neue Realität widerspiegelt, oder den „Modellierungsteil“ zu ändern. Und das könnte einen unerschwinglichen Overhead bedeuten - insbesondere, wenn sich die Umgebung häufig ändert.
Agentur: die Grenze der Autonomie?
Dem Leser ist vielleicht schon aufgefallen, dass wir in Richtung einer immer komplexer werdenden Realität vorgehen, die der künstlichen Intelligenz vorgeschlagen wird. Beachten Sie dabei mögliche „instrumentenseitige Konsequenzen“. In der Hoffnung, endlich auf neue Herausforderungen reagieren zu können.
Wir nähern uns nun der Notwendigkeit, einen Analyseprozess mit einem solchen Maß an Autonomie auszustatten, dass er nicht nur die Veränderlichkeit der Umwelt, sondern auch die Unsicherheit ihres Zustands bewältigen kann. Ein Hinweis auf eine Quantennatur der Umwelt ist hier nicht vorgesehen (wir werden ihn in einer unserer weiteren Veröffentlichungen erörtern). Wir betrachten lediglich die Wahrscheinlichkeit, dass ein Analyseprozess im erwarteten „Volumen“ zum erwarteten Zeitpunkt auf den erwarteten Zustand stößt. Zum Beispiel: Der Prozess „dachte“, dass es gelingen würde, einen Modelltrainingslauf vor dem Eintreffen neuer Daten zu beenden, auf die das Modell angewendet werden soll, „scheiterte“ jedoch, ihn zu beenden (z. B. enthielt die Trainingsstichprobe aus mehreren objektiven Gründen mehr Aufzeichnungen als gewöhnlich). Ein weiteres Beispiel: Das Etikettierteam hat eine Reihe neuer Druckmaschinen in den Prozess aufgenommen. Ein Vektorisierungsmodell wurde unter Verwendung dieses neuen Materials trainiert, während das neuronale Netzwerk noch die vorherige Vektorisierung verwendet und einige äußerst relevante Informationen als "Rauschen" behandelt. Unsere Erfahrung zeigt, dass die Überwindung solcher Situationen die Aufteilung eines einzelnen Analyseprozesses in mehrere autonome Komponenten und die Erstellung einer "gepufferten Projektion" der Umgebung für jeden der resultierenden Agentenprozesse erfordert. Nennen wir diese Aktion (Auf Wiedersehen, Wikipedia) die Vermittlung eines analytischen Prozesses. Und nennen wir Agentur die Qualität, die ein analytischer Prozess (oder vielmehr ein System von analytischen Prozessen) aufgrund von Agentierung erlangt.
Eine Aufgabe für den Roboter
An dieser Stelle werden wir versuchen, eine Aufgabe zu entwickeln, die eine robotisierte KI mit allen oben genannten Eigenschaften erfordert. Es wird keine lange Reise dauern, um zu Ideen zu gelangen, insbesondere aufgrund einer Fülle von sehr interessanten Fällen und Lösungen für die im Internet veröffentlichten Fälle - wir werden einfach einen solchen Fall / eine solche Lösung wiederverwenden (um beides zu erhalten) Aufgabe und Lösungsformulierung). In dem von uns gewählten Szenario geht es um die Klassifizierung von Posts („Tweets“) im sozialen Netzwerk von Twitter anhand ihrer Stimmung. Um die Modelle zu trainieren, haben wir ziemlich große Stichproben von "gekennzeichneten" Tweets (dh mit angegebener Stimmung), während die Klassifizierung für "nicht gekennzeichnete" Tweets (dh ohne angegebene Stimmung) durchgeführt wird:
Abbildung 1 Formulierung einer sentimentbasierten Textklassifizierung (Sentiment-Analyse)Ein Ansatz zur Erstellung mathematischer Modelle, die aus beschrifteten Texten lernen und unbeschriftete Texte mit unbekanntem Gefühl klassifizieren können, wird in einem großartigen
Beispiel vorgestellt, das im Web veröffentlicht wurde.
Die
Daten für unser Szenario wurden freundlicherweise aus dem Internet zur Verfügung gestellt.
Mit all dem oben Genannten könnten wir anfangen, „einen Roboter zusammenzubauen“ - wir bevorzugen jedoch die Erschwerung der klassischen Aufgabe durch Hinzufügen einer Bedingung: Sowohl beschriftete als auch unbeschriftete Daten werden dem Analyseprozess als Dateien in Standardgröße wie der Prozess zugeführt "Verbraucht" die bereits eingespeisten Dateien. Daher muss unser Roboter mit minimalen Trainingsdatenmengen arbeiten und die Klassifizierungsgenauigkeit kontinuierlich verbessern, indem das Modelltraining bei allmählich wachsenden Datenmengen wiederholt wird.
Zum InterSystems Workshop
Wir werden anhand des soeben formulierten Szenarios demonstrieren, dass InterSystems IRIS und ML Toolkit, eine Reihe von Erweiterungen, künstliche Intelligenz robotisieren können. Und erreichen Sie eine effiziente Interaktion mit der externen Umgebung für die von uns erstellten Analyseprozesse, während diese anpassungsfähig, anpassungsfähig und agierend bleiben (die "drei A").
Beginnen wir mit der Agentur. Wir implementieren vier Geschäftsprozesse in der Plattform:
Abbildung 2 Konfiguration eines agentenbasierten Systems von Geschäftsprozessen mit einer Komponente für die Interaktion mit Python- GENERATOR - Erzeugt neue Dateien mit Eingabedaten (beschriftet - positive und negative Tweets - sowie unbeschriftete Tweets), wenn zuvor erzeugte Dateien von den anderen Prozessen verbraucht werden.
- BUFFER - da bereits gepufferte Datensätze von den anderen Prozessen verbraucht werden, werden neue Datensätze aus den von GENERATOR erstellten Dateien gelesen und die Dateien gelöscht, nachdem Datensätze aus ihnen gelesen wurden
- ANALYZER - verbraucht Datensätze aus dem unbeschrifteten Puffer und wendet auf sie das trainierte RNN (wiederkehrendes neuronales Netzwerk) an, überträgt die "angewendeten" Datensätze mit den entsprechenden hinzugefügten "Wahrscheinlichkeit, positiv zu sein" -Werten in den Überwachungspuffer; Verwendet Datensätze aus gekennzeichneten (positiven und negativen) Puffern und trainiert das darauf basierende neuronale Netzwerk
- MONITOR - verbraucht die von ANALYZER verarbeiteten und in den Puffer übertragenen Datensätze, wertet die vom neuronalen Netz nach dem letzten Training nachgewiesenen Klassifizierungsfehlermetriken aus und löst ein neues Training durch ANALYZER aus
Unser agentenbasiertes Prozesssystem lässt sich wie folgt darstellen:
Abbildung 3 Datenflüsse im agentenbasierten SystemAlle Prozesse in unserem System funktionieren unabhängig voneinander, hören sich jedoch gegenseitig die Signale an. Ein Signal für den GENERATOR-Prozess, eine neue Datei mit Datensätzen zu erstellen, ist beispielsweise das Löschen der vorherigen Datei durch den BUFFER-Prozess.
Betrachten wir nun die Anpassungsfähigkeit. Die Anpassungsfähigkeit des Analyseprozesses in unserem Beispiel wird durch die „Einkapselung“ der KI als einer von der Logik des Trägerprozesses unabhängigen Komponente realisiert, deren Hauptfunktionen - Training und Vorhersage - voneinander isoliert sind:
Abbildung 4 Isolierung der Hauptfunktionen der KI in einem Analyseprozess - Training und Vorhersage mithilfe mathematischer ModelleDa das oben zitierte Fragment des ANALYZER-Prozesses Teil der „Endlosschleife“ ist (die beim Start des Prozesses ausgelöst wird und funktioniert, bis das gesamte agentenbasierte System heruntergefahren ist) und die AI-Funktionen gleichzeitig ausgeführt werden, Der Prozess ist in der Lage, den Einsatz von KI an die Situation anzupassen: Ansonsten können Sie Modelle trainieren, wenn dies erforderlich ist, und basierend auf der verfügbaren Version der trainierten Modelle vorhersagen. Die Notwendigkeit, die Modelle zu trainieren, wird durch den adaptiven MONITOR-Prozess signalisiert, der unabhängig vom ANALYZER-Prozess funktioniert und seine Kriterien anwendet, um die Genauigkeit der von ANALYZER trainierten Modelle abzuschätzen:
Abbildung 5 Erkennung des Modelltyps und Anwendung der jeweiligen Genauigkeitsmetriken durch den MONITOR-ProzessWir machen mit der Anpassungsfähigkeit weiter. Ein Analyseprozess in InterSystems IRIS ist ein Geschäftsprozess, der eine grafische oder XML-Darstellung in Form einer Abfolge von Schritten aufweist. Die Schritte können wiederum Sequenzen anderer Schritte, Schleifen, Bedingungsprüfungen und anderer Prozesssteuerungen sein. Die Schritte können Code ausführen oder Informationen (auch Code) zur Behandlung durch andere Prozesse und externe Systeme übertragen.
Wenn ein Analyseprozess geändert werden muss, haben wir die Möglichkeit, dies entweder im Grafikeditor oder in der IDE zu tun. Durch Ändern des Analyseprozesses im Grafikeditor kann die Prozesslogik ohne Programmierung angepasst werden:
Abbildung 6 ANALYZER-Prozess im Grafikeditor mit geöffnetem Menü zum Hinzufügen von ProzesssteuerelementenSchließlich ist es die Interaktion mit der Umwelt. In unserem Fall ist das wichtigste Element der Umgebung das mathematische Toolset Python. Für die Interaktion mit Python und R wurden die entsprechenden Funktionserweiterungen entwickelt -
Python Gateway und
R Gateway . Das Ermöglichen einer komfortablen Interaktion mit einem konkreten Toolset ist deren Schlüsselfunktionalität. Wir konnten die Komponente für die Interaktion mit Python bereits in der Konfiguration unseres agentenbasierten Systems erkennen. Wir haben gezeigt, dass Geschäftsprozesse, die mit Python implementierte KI enthalten, mit Python interagieren können.
Der ANALYZER-Prozess enthält beispielsweise die in InterSystems IRIS mithilfe der Python-Sprache implementierten Modelltrainings- und Vorhersagefunktionen, wie im Folgenden dargestellt:
Abbildung 7 Modellschulungsfunktion, die im ANALYZER-Prozess in InterSystems IRIS mithilfe von Python implementiert wurdeJeder der Schritte in diesem Prozess ist für eine bestimmte Interaktion mit Python verantwortlich: eine Übertragung von Eingabedaten aus dem IRIS-Kontext von InterSystems in den Python-Kontext, eine Übertragung von Code zur Ausführung in Python und eine Rückgabe von Ausgabedaten aus dem Python-Kontext in den IRIS-Kontext von InterSystems .
Die in unserem Beispiel am häufigsten verwendete Art von Interaktionen ist die Übertragung von Code zur Ausführung in Python:
Abbildung 8 Python-Code, der im ANALYZER-Prozess in InterSystems IRIS implementiert ist, wird zur Ausführung an Python gesendetIn einigen Interaktionen werden die Ausgabedaten aus dem Python-Kontext in den IRIS-Kontext von InterSystems zurückgegeben:
Abbildung 9 Visuelle Ablaufverfolgung der ANALYZER-Prozesssitzung mit einer Vorschau der von Python in einem der Prozessschritte zurückgegebenen AusgabeRoboter starten
Den Roboter hier in diesem Artikel starten? Warum nicht, hier ist die
Aufzeichnung aus unserem Webinar, in der (neben anderen interessanten KI-Geschichten, die für die Robotisierung relevant sind!) Das in unserem Artikel diskutierte Beispiel vorgeführt wurde. Die Webinar-Zeit ist leider immer begrenzt, und wir möchten unsere Arbeit immer noch möglichst anschaulich und kurz präsentieren. Deshalb geben wir im Folgenden einen umfassenderen Überblick über die erzielten Ergebnisse (7 Trainingsläufe, einschließlich des ersten Trainings, statt nur 3 im Webinar):
Abbildung 10 Roboter erreicht bei Vorhersage eine stabile AUC über 0,8Diese Ergebnisse stimmen mit unseren intuitiven Erwartungen überein: Wenn der Trainingsdatensatz mit „beschrifteten“ positiven und negativen Tweets gefüllt wird, verbessert sich die Genauigkeit unseres Klassifizierungsmodells (dies wird durch die schrittweise Erhöhung der AUC-Werte bei der Vorhersage belegt).
Welche Schlussfolgerungen können wir am Ende des Artikels ziehen:
• InterSystems IRIS ist eine leistungsstarke Plattform zur Robotisierung der Prozesse mit künstlicher Intelligenz
• Künstliche Intelligenz kann sowohl in der externen Umgebung (z. B. Python oder R mit ihren Modulen, die gebrauchsfertige Algorithmen enthalten) als auch in der InterSystems IRIS-Plattform (mithilfe nativer Funktionsbibliotheken oder durch Schreiben von Algorithmen in Python und R) implementiert werden. InterSystems IRIS sichert die Interaktion mit externen AI-Toolsets, sodass deren Funktionen mit den nativen Funktionen kombiniert werden können
• InterSystems IRIS robotisiert die KI mithilfe von „drei A“: anpassbare, adaptive und Agenten-Geschäftsprozesse (oder auch Analyseprozesse)
• InterSystems IRIS bedient externe KI (Python, R) über Kits spezialisierter Interaktionen: Übertragung / Rückgabe von Daten, Übertragung von Code zur Ausführung usw. Ein Analyseprozess kann mit mehreren mathematischen Toolsets interagieren
• InterSystems IRIS konsolidiert die Eingabe- und Ausgabemodellierungsdaten auf einer einzigen Plattform und verwaltet die Historisierung und Versionierung der Berechnungen
• Dank InterSystems IRIS kann künstliche Intelligenz sowohl als spezialisierter Analysemechanismus als auch als integrierte OLTP- und Integrationslösung verwendet werden
Für diejenigen, die diesen Artikel gelesen und sich für die Funktionen von InterSystems IRIS als Plattform für die Entwicklung und Bereitstellung von Mechanismen für maschinelles Lernen und künstliche Intelligenz interessiert haben, schlagen wir eine weitere Erörterung der für Ihr Unternehmen relevanten möglichen Szenarien und eine gemeinsame Definition vor der nächsten Schritte. Die Kontakt-E-Mail unseres AI / ML-Expertenteams lautet
MLToolkit@intersystems.com .