KI News #9

Hallo und herzlich willkommen zur neunten Ausgabe meines Newsletters KI News. In dieser Ausgabe geht es um das neue Github Copilot Tool, ein deutsches KI Startup, eine neue Video-Technologie von Nvidia und den Versuch ein Computerspiel durch ein neuronales Netz zu ersetzen.

Viel Spaß beim Lesen!

Github Copilot

Github ist eine Internetplattform zur Versionsverwaltung in Softwareprojekten, die 2018 von Microsoft übernommen wurde. Vor ein paar Tagen hat Github ein neues Tool namens Copilot vorgestellt. Copilot soll beim Programmieren helfen, indem es zum gegebenen Kontext den passenden Code vorschlägt - zum Beispiel zu einem Kommentar die entsprechende Funktion schreibt, die das implementiert, was im Kommentar beschrieben ist.

Copilot basiert auf OpenAI Codex, einem noch nicht nicht öffentlich benutzbaren Modell von OpenAI, das einen Text in Code übersetzen können soll. Codex wurde dazu mit natürlicher Sprache (nur Englisch) und öffentlich zugänglichem Code trainiert.

Copilot ist zur Zeit noch in der “Technical Preview” Phase, in der man sich für eine Warteliste anmelden muss, um Zugang zu bekommen.

Wenn man den hat, kann man Copilot als Plugin in die Entwicklungsumgebung Visual Studio Code einbinden. Um einen Vorschlag zu machen, schickt dieses Plugin dann die aktuelle Datei (maximal einige hundert Zeilen) an den Copilot Cloud Service. Dieser lässt das Modell einige Vorschläge machen und schickt sie zurück an den/die Benutzer:in. Die Entscheidung des/der Benutzer:in für einen der Vorschläge wird wiederum genutzt um zukünftige Vorschläge zu verbessern.

Ein Problem bei dieser Art von Programmierhilfe sind die Lizenzen, unter denen Software und Source Code stehen, und die oft das Kopieren von Code oder das Ableiten von eigenen Funktionen nur unter bestimmten Bedingungen erlauben.

Ich musste beispielsweise einmal eine Funktion für einen Kollegen programmieren, weil er eine OpenSource Implementierung der Funktion gesehen hatte, und es rechtliche Bedenken gab, dass Code, den er schreiben würde, eventuell von der OpenSource Version beeinflusst sein könnte.

Github Copilot, bzw. Codex, wurde nur auf OpenSource Code trainiert.

Wie hat Github also solche Lizenzprobleme bei Copilot gelöst?

Scheinbar gar nicht. Laut FAQ sind ca. 0,1% der Copilot-Vorschläge 1:1 aus den Trainingsdaten kopiert. Als Lösung will Github das Copilot Tool zukünftig um eine Funktion erweitern, die anzeigt, ob Code kopiert wurde, und falls ja, von wo. Mit diesen Informationen kann der/die Programmierer:in dann die Entscheidung treffen, den Code zu verwenden oder eben nicht.

In Fällen wie meinem, wo das reine Anschauen des Codes schon dazu führt, dass jemand anderes die Funktion schreiben muss, wäre es dann allerdings auch schon zu spät.

Ganz abgesehen davon, dass vermutlich die allermeisten Unternehmen nicht möchten, dass ihr geheimer Programmcode als "Kontext" an Github (und damit Microsoft) gesendet wird.

Webseite von Github Copilot: https://copilot.github.com/ (englisch)

Artikel bei t3n: https://t3n.de/news/ki-gestuetztes-pair-programming-1388462/

Untersuchung von Github zum kopierten Code: https://docs.github.com/en/github/copilot/research-recitation

Zoom übernimmt das deutsche Startup Kites

Die Videokonferenzfirma Zoom hat das Karlsruher Startup Kites übernommen. Kites entwickelt Technologie um gesprochene Sprache mit niedriger Latenz maschninell zu übersetzen.

Die Technik ist ursprünglich am Karlsruhe Institut für Technologie entstanden, wo mehrere der Gründer arbeiten. Dort sollte sie die Kommunikation in internationalen Teams vereinfachen.

Daraus hat sich ein Startup entwickelt, das sich besonders auf Übersetzung mit geringer Latenz spezialisiert hat.

Die Technologie ist in einem Paper beschrieben, das die Gründer letztes Jahr veröffentlicht haben. Darin beschreiben sie zwei verschiedene Ansätze, die beide auf neuronalen Netzen beruhen; der eine auf Netzen mit der Long Short Term Memory (LSTM) Architektur, der andere auf solchen mit der Transformer Architektur.

Der Unterschied zu bestehenden Ansätzen liegt vor allem darin, dass hier ein besonderer Fokus darauf gelegt wird, die Latenz zu verringern.

Die so entwickelten Modelle haben daher eine relativ geringe Latenz, zwischen 0,85s und 1,8s, abhängig von der gewünschten Genauigkeit. Diese war im besten Fall sogar leicht besser als die menschliche. Auf einem bekannten Datensatz zur Spracherkennung (Switchboard), verstehen Menschen im Durchschnitt 5,5% der Wörter falsch, das beste Modell von Kites nur 5%. Allerdings war bei diesem Modell die Latenz relativ hoch.

Ein Modell, das Wörter mit der selben Genauigkeit erkennt wie ein Mensch, hatte eine Latenz von 1s.

Ankündigung von Zoom: https://blog.zoom.us/zoom-to-acquire-kites-gmbh/ (englisch)

Webseite von Kites: https://www.kites.ai/ (englisch)

Beschreibung der Technologie: https://arxiv.org/abs/2010.03449 (englisch)

Switchboard Daten: https://catalog.ldc.upenn.edu/LDC97S62

Neue Video-Technologie von Nvidia

Forscher:innen von Nvidia haben eine Technik entwickelt, die mit Video-Nahaufnahmen von sprechenden Menschen mehrere interessante Dinge machen kann.

Zum einen kann sie aus einem Foto einer Person und der Videoaufnahme einer anderen Person ein Video der ersten Person machen, in dem sie sich genauso bewegt wie die Person im ursprünglichen Video.

Das System untersucht zuerst das Foto und das Video auf wichtige Eigenschaften, sogenannte Keypoints. Diese beschreiben dreidimensional die Gesichtsform und den Gesichtsausdruck. Dazu kommt noch die Kopfhaltung.

Die Keypoints, die Gesichtsausdruck und Kopfhaltung der fotografierten Person beschreiben, werden dann so verschoben, dass sie denen des Videos entsprechen. Die Gesichtsform muss natürlich gleich bleiben.

Aus diesen Informationen wird dann von einem neuronalen Netz mit GAN Architektur ein neues Bild vorhergesagt, das die Person vom Foto zeigt, aber mit dem gleichen Gesichtsausdruck und Kopfhaltung wie die Person im Video. Aus mehreren solcher Bilder hintereinander ensteht dann ein neues Video, das die Person vom Foto zeigt.

Dadurch, dass das neu erzeugte Video nur von einem Eingabebild und den Keypoints des Videos abhängt, ergeben sich noch zwei weitere Möglichkeiten.

Indem man die Keypoints des Videos nachträglich verändert, kann man Kopfhaltung und Gesichtsausdruck einer Person in einem Video auch nach der Aufzeichnung noch verändern.

Außerdem kann diese Technik auch als sehr sparsame Videocodierung genutzt werden, zum Beispiel in Videokonferenzen. Dazu könnte lokal bei den Teilnehmer:innen jeweils das eigene Video in ein Foto und eine Reihe von Keypoints umgewandelt werden. Diese Daten sind natürlich viel kleiner als das eigentliche Video. Bei den Empfänger:innen wird die Technik dann verwendet um das ursprüngliche Video wiederherzustellen.

Webseite mit Demo und Video: https://nvlabs.github.io/face-vid2vid/ (englisch)

Neuronales Netz ersetzt Computerspiel

In Computerspielen passiert die Interaktion zwischen Spieler:in und Spiel hauptsächlich durch Tastatur- und Mauseingaben und Ausgaben des Spiels auf dem Bildschirm. Das Spiel kennt den aktuellen Zustand der Spielewelt und stellt diesen als Bild auf dem Bildschirm dar.

Wenn der/die Spieler:in eine Eingabe macht, prüft das Spiel mit den einprogrammierten Regeln, was diese Aktion in der Spielwelt für Auswirkungen hat und verändert das angezeigte Bild entsprechend. Zum Beispiel drückt der/die Spieler:in auf die W Taste. Für das Spiel bedeutet das, dass die Spielfigur einen Schritt nach vorne macht. Das wird über ein aktualisiertes Bild umgesetzt, in dem der Charakter in der Spielwelt ein Stück weiter gelaufen ist.

Wenn aber beispielsweise ein Felsbrocken vor der Spielfigur liegt und den Weg versperrt, kann sie nicht geradeaus weiterlaufen. Das wird über ein neues Bild zurückgemeldet, in dem die Spielfigur immer noch an der gleichen Stelle vor dem Felsen steht.

Das nächste angezeigte Bild in einem Computerspiel hängt also immer vom aktuellen internen Zustand des Spiels (dargestellt durch das aktuell angezeigte Bild), den einprogrammierten Spielregeln und den Eingaben des/der Spieler:in ab.

Nvidia hat ein Modell namens GameGAN entwickelt, das bei Spielen aus den vorherigen Bildern und den Benutzereingaben vorhersagen kann, wie das nächste Bild aussehen wird. GameGAN ersetzt also im Prinzip das komplette programmierte Spiel durch ein neuronales Netz. Wie der Name schon andeutet, basiert auch dieses Modell auf der GAN Architektur.

Da Spiele oft sehr aufwändig programmiert sind, und es entsprechend schwierig ist, sie durch ein neuronales Netz zu ersetzen, hat Nvidia das Prinzip mit relativ einfachen Spielen demonstriert, z.B. Pacman.

Der Youtuber Sentdex hat das GameGAN Modell kopiert und erweitert, um einen Schritt weiter zu gehen: er hat es auf Daten aus GTA V trainiert, ein recht komplexes 3D Videospiel.

Dazu hat er zuerst einen Bot programmiert, der auf einem bestimmten Straßenabschnitt mit einem Auto immer hin und her fährt, um Trainingsdaten zu sammeln.

Mit diesen Daten hat er dann das GameGAN Modell trainiert und konnte am Ende tatsächlich mit einem Auto auf einer Straße aus dem Spiel fahren, ohne dass das Spiel lief und ohne selbst Spielelogik programmiert zu haben.

Alles was auf dem Bildschirm passierte wurde ausschließlich vom neuronalen Netz erzeugt.

Video von Sentdex: https://www.youtube.com/watch?v=udPY5rQVoW0 (englisch)

GameGAN Webseite: https://nv-tlabs.github.io/gameGAN/ (englisch)

Artikel bei t3n: https://t3n.de/news/nvidia-ki-baut-gta5-1387696/

Außerdem

« VorherigeNächste »

Hier abonnieren und keine Ausgabe mehr verpassen: