News-Archiv

News Archiv Detail

Intel: Warum mehr Softwareentwicklung in die Maschinen fließen muss

Justin Gottschlich leitet das Team Machine Programming Research (MPR) im Systems and Software Research Lab von Intel. Seine neu gegründete Forschungsgruppe konzentriert sich auf das bahnbrechende Versprechen der Maschinenprogrammierung, das eine Fusion aus maschinellem Lernen, formalen Methoden, Programmiersprachen, Compilern und Computersystemen ist. MPR verwendet Formen des maschinellen Lernens und andere automatische Methoden, um Software zu entwickeln, die in der Lage ist, eine eigene Software zu erstellen. Es nennt sich Maschinenprogrammierung und geht im Wesentlichen um die Automatisierung der Softwareentwicklung und -wartung. Wenn die Maschinenprogrammierung vollständig umgesetzt ist, wird jeder seine Kreativität zum Ausdruck bringen und seine eigene Software entwickeln können, ohne eine einzige Zeile Code zu schreiben.

 

 

Das Versprechen der Maschinenprogrammierung
In der heutigen Technologielandschaft ist Software in fast alles integriert, was wir tun. Es steuert viele Aspekte unserer mobilen Geräte - Laptops, Tablets, Telefone. Es verbindet uns mit dem Internet und steuert unsere Social Media Feeds. Es virtualisiert unsere Rechenzentren und macht unsere Häuser intelligenter. Aber die Entwicklung und Wartung von Software ist ein zeitaufwändiger und fehleranfälliger Prozess, sagt Justin. "Ich glaube, wir können eine Gesellschaft schaffen, in der jeder Software erstellen kann, aber Maschinen werden den Teil ´Programmierung´ übernehmen", sagt er. "Also,'Maschinenprogrammierung'."

Ein Mangel an menschlichen Programmierern
Ein Kernproblem für Intel und andere führende Technologieunternehmen ist laut Justin, dass ihnen die Anzahl der Senior Developer ausgeht - ein Mangel, der die Programmierleistung in allen Branchen überfordert. Laut code.org gibt es allein in den USA 500.000 offene Programmierpositionen - verglichen mit einer jährlichen Ernte von 50.000 Absolventen der Informatik. Ein ähnlicher Mangel ist in der gesamten Europäischen Union zu beobachten. Auf dem Arbeitsmarkt für Programmierjobs, sagt Justin, haben bestenfalls nur 10% der Menschen, die diese Jobs besetzen, die Informatikausbildung, um Spitzenentwickler zu werden. Mit der heutigen heterogenen Hardware - CPUs, GPUs, FPGAs, ASICs, neuromorphe und bald auch Quantenchips - wird es schwierig, vielleicht unmöglich werden, Entwickler zu finden, die korrekt, effizient und sicher auf der gesamten Hardware programmieren können.

Jetzt ist es an der Zeit
Die Maschinenprogrammierung ist eine Verschmelzung verschiedener Bereiche. Es verwendet die Technik der automatischen Programmierung, von präzisen (z.B. formale Programmsynthese) bis hin zu probabilistischen (z.B. differenzierte Programmierung) Methoden. Es nutzt und lernt auch von allem, was wir bisher in Hard- und Software eingebaut haben. Forscher haben sich seit den 1950er Jahren mit der Maschinenprogrammierung beschäftigt, sagt Justin. "Aber heute ist es anders. Wir befinden uns an einem Wendepunkt mit neuen maschinellen Lernalgorithmen, neuer und verbesserter Hardware sowie umfangreichen und dichten Programmierdaten. Das sind die drei wesentlichen Bestandteile, die unserer Meinung nach die Programmierung der Maschine ermöglichen." Ein Beispiel ist die jüngste Forschung von Justins Team an Genetischen Algorithmen (GA), die veranschaulicht, wie die Fitnessfunktion eines genetischen Algorithmus - eine komplizierte, von erfahrenen Programmierern entwickelte Heuristik des maschinellen Lernens - automatisiert werden kann. Justin sagt, dass diese Arbeit wahrscheinlich noch vor ein paar Jahren nicht möglich gewesen wäre.

Ich weigere mich, Fehler zu akzeptieren
Fast jede große Software (z.B. Betriebssysteme, Browser, Social Media Plattformen) beinhaltet heute Fehler in Bezug auf Genauigkeit, Leistung oder Sicherheit. "Unser neuestes NeurIPS '19-Papier liefert frühe Beweise dafür, dass bestimmte Arten von Fehlern, die in der Vergangenheit selbst von erfahrenen Programmierern erkannt wurden, automatisch mit der Maschinenprogrammierung erkannt werden können, so dass kein menschlicher Eingriff erforderlich ist", sagt Justin. "Der nächste Schritt ist, sie automatisch zu reparieren."

Von 500.000 Zeilen Code bis 500

Justin verweist auf ein bekanntes Beispiel für die Vorteile der Maschinenprogrammierung. Google Translate, ein Service, der automatisch zwischen den Sprachen übersetzt, wurde von Ingenieuren entwickelt, die rund 500.000 Zeilen mit klassischen Programmiertechniken manuell kodierten. Mit dem Aufkommen der Maschinenprogrammierung hat Google seinen Code neu geschrieben, teilweise mit differenzierter Programmierung (ein kleines Stück vom gesamten Maschinenprogrammierkuchen). Diese Neuschreibung verringerte die Codebasis von 500.000 Zeilen auf 500 Zeilen, eine Reduzierung um das 1.000fache. "Nicht nur, dass die Codegröße um das 1.000fache geschrumpft ist", sagt Justin, "die Genauigkeit des Systems hat sich tatsächlich verbessert - es ist unglaublich."

Mehr Programmierjobs, nicht weniger
Die Maschinenprogrammierung wird Arbeitsplätze nicht beseitigen, meint Justin, sondern sie schaffen - möglicherweise Millionen von ihnen. Die eher niederen Aspekte der Programmierung werden automatisiert, sagt er, was das Ziel ist. Mit der Maschinenprogrammierung fügt er hinzu: "Unsere Blau-Himmel-Sicht ist so lange, wie Sie Ihre Ideen (wie wir sie nennen - Absicht) in irgendeiner Weise zum Ausdruck bringen können, die die Maschine erkennen kann - sei es natürliche Sprache, visuelle Diagramme oder Gesten - die Maschinenprogrammierung baut einen Weg für Sie auf, Ihre eigene Software zu erstellen."

Um mit dem Bau dieser fortschrittlichen Maschinenprogrammiersysteme zu beginnen, sagt Justin, werden wir uns stark auf eine Gemeinschaft von Programmierern und Wissenschaftlern verlassen - diejenigen, die plattformübergreifend arbeiten können, maschinelles Lernen und formale Techniken, heterogene Hardware und viele Programmiersprachen. Justin und sein Team skizzieren ihre Zukunftsvision der Maschinenprogrammierung in einem gemeinsam mit MIT-Forschern veröffentlichten Papier "The Three Pillars of Machine Programming".

Weiterführende Links


www.intel.de

 

 

Zurück zur Übersicht