KIs zur Programmierung natürlicher Sprache machen das Codieren einfacher


„Lernen Sie Programmieren.“ Diese aus drei Wörtern bestehende abwertende Bemerkung ist ständig in aller Munde und griffbereit von Internet-Trollen und Tech-Brüdern, wenn Entlassungen in den Medien angekündigt werden. An sich schon ein nutzloses Gefühl, aber mit dem jüngsten Aufkommen codegenerierender KIs könnte die Kenntnis der Besonderheiten einer Programmiersprache wie Python bald genauso nützlich sein wie die Fähigkeit, eine tote Sprache wie Sanskrit fließend zu sprechen. Tatsächlich helfen diese genAIs professionellen Softwareentwicklern bereits dabei, schneller und effektiver zu programmieren, indem sie einen Großteil der Programmierarbeit erledigen.

Wie Codierung funktioniert

Zwei der heute am weitesten verbreiteten und geschriebenen Programmiersprachen sind Java und Python. Ersterer revolutionierte bei seiner Veröffentlichung Mitte der 90er-Jahre fast im Alleingang den plattformübergreifenden Betrieb und steuert heute „alles von Smartcards bis hin zu Raumfahrzeugen“. Java-Magazin Stellen Sie es im Jahr 2020 vor – ganz zu schweigen von der Suchfunktion von Wikipedia und Minecraft. Letzteres ist tatsächlich einige Jahre älter als Java und dient als Codebasis für viele moderne Apps wie Dropbox, Spotify und Instagram.

Sie unterscheiden sich in ihrer Funktionsweise erheblich darin, dass Java kompiliert werden muss (wobei der für Menschen lesbare Code in computerausführbaren Maschinencode übersetzt wird), bevor es ausgeführt werden kann. Python hingegen ist eine interpretierte Sprache, was bedeutet, dass ihr menschlicher Code bei der Ausführung des Programms Zeile für Zeile in Maschinencode umgewandelt wird, sodass es ohne vorherige Kompilierung ausgeführt werden kann. Mit der Interpretationsmethode kann Code einfacher für mehrere Plattformen geschrieben werden, während kompilierter Code tendenziell auf einen bestimmten Prozessortyp ausgerichtet ist. Unabhängig davon, wie sie ausgeführt werden, ist der eigentliche Code-Schreibprozess bei beiden nahezu identisch: Jemand muss sich hinsetzen, einen Texteditor oder eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) öffnen und tatsächlich alle diese Anweisungszeilen aufschreiben. Und bis vor Kurzem war dieser Jemand typischerweise ein Mensch.

Der Schreibprozess der „klassischen Programmierung“ von heute unterscheidet sich nicht wesentlich von dem Prozess bei ENIAC, bei dem ein Softwareentwickler ein Problem nimmt, es in eine Reihe von Unterproblemen zerlegt und Code schreibt, um jedes dieser Unterprobleme zu lösen der Reihe nach und anschließendes wiederholtes Debuggen und Neukompilieren des Codes, bis er ausgeführt wird. Bei der „automatischen Programmierung“ hingegen wird der Programmierer um eine gewisse Trennung entfernt. Anstatt dass ein Mensch jede Codezeile einzeln schreibt, erstellt die Person eine High-Level-Abstraktion der Aufgabe, damit der Computer dann Low-Level-Code zur Bearbeitung generiert. Dies unterscheidet sich von der „interaktiven“ Programmierung, bei der Sie ein Programm programmieren können, während es bereits ausgeführt wird.

Heutige Konversations-KI-Codierungssysteme, wie wir sie in Copilot von Github oder ChatGPT von OpenAI sehen, entfernen den Programmierer noch weiter, indem sie den Codierungsprozess hinter einer Fassade natürlicher Sprache verbergen. Der Programmierer teilt der KI mit, was sie wie programmieren möchte, und die Maschine kann automatisch den erforderlichen Code generieren.

Zu den ersten dieser neuen Generation von Konversationscodierungs-KIs gehörte Codex, das von OpenAI entwickelt und Ende 2021 veröffentlicht wurde. OpenAI hatte zu diesem Zeitpunkt bereits GPT-3 (Vorläufer von GPT-3.5, das BingChat Public antreibt), die große Sprache, implementiert Das Modell ist bemerkenswert geschickt darin, menschliche Sprache und Schrift nachzuahmen, nachdem es mit Milliarden von Wörtern aus dem öffentlichen Internet trainiert wurde. Anschließend verfeinerte das Unternehmen dieses Modell mithilfe von über 100 Gigabyte GitHub-Daten, um Codex zu erstellen. Es ist in der Lage, Code in 12 verschiedenen Sprachen zu generieren und vorhandene Programme zwischen ihnen zu übersetzen.

Codex ist in der Lage, kleine, einfache oder wiederholbare Assets zu generieren, wie „einen großen roten Knopf, der beim Klicken kurz den Bildschirm wackelt“ oder reguläre Funktionen wie die E-Mail-Adressvalidierung in einem Google Web Form. Aber egal wie ausführlich Ihre Prosa ist, Sie werden sie nicht für komplexe Projekte wie die Programmierung eines serverseitigen Lastausgleichsprogramms verwenden – es ist einfach eine zu komplizierte Frage.

DeepMind von Google hat AlphaCode speziell für die Bewältigung solcher Herausforderungen entwickelt. Wie Codex wurde AlphaCode zunächst auf mehreren Gigabyte bestehender GitHub-Codearchive trainiert, wurde dann aber mit Tausenden von Codierungsherausforderungen aus Online-Programmierwettbewerben konfrontiert, wie etwa dem Herausfinden Wie viele Binärzeichenfolgen mit einer bestimmten Länge enthalten keine aufeinanderfolgenden Nullen?.

Zu diesem Zweck generiert AlphaCode bis zu eine Million Codekandidaten und lehnt dann alle bis auf das oberste 1 Prozent ab, um seine Testfälle zu bestehen. Das System gruppiert dann die verbleibenden Programme basierend auf der Ähnlichkeit ihrer Ausgaben und testet sie nacheinander, bis es einen Kandidaten findet, der das gegebene Problem erfolgreich löst. Laut einer Studie aus dem Jahr 2022, veröffentlicht in WissenschaftAlphaCode schaffte es, diese Herausforderungsfragen in 34 Prozent der Fälle richtig zu beantworten (im Vergleich zum einstelligen Erfolg von Codex bei denselben Benchmarks ist das nicht schlecht). Sogar DeepMind AlphaCode nahm an einem Online-Programmierwettbewerb mit 5.000 Teilnehmern teilwo es fast 46 Prozent der menschlichen Konkurrenten übertraf.

Jetzt hat sogar die KI Notizen

So wie GPT-3.5 als grundlegendes Modell für ChatGPT dient, dient Codex als Grundlage für die Copilot-KI von GitHub. Basierend auf Milliarden von Codezeilen, die aus dem öffentlichen Web zusammengestellt wurden, bietet Copilot über ein Abonnement-Plugin für die integrierten Entwicklungsumgebungen (IDEs) Visual Studio Code, Visual Studio, Neovim und JetBrains cloudbasierte KI-gestützte automatische Codierungsfunktionen.

Copilot wurde ursprünglich im Juni 2021 als Entwicklervorschau veröffentlicht und gehörte zu den allerersten programmierbaren KIs, die auf den Markt kamen. Mehr als eine Million Entwickler haben das System in den zwei Jahren seitdem genutzt, sagte Ryan J. Salva, VP of Product bei GitHub, gegenüber Engadget. Mit Copilot können Benutzer aus Texteingaben in natürlicher Sprache ausführbaren Code generieren sowie häufig wiederholte Codeabschnitte und Programmierfunktionen automatisch vervollständigen.

Salva weist darauf hin, dass die früheren maschinell generierten Codierungsvorschläge von GitHub vor der Veröffentlichung von Copilot nur in 14 bis 17 Prozent der Fälle von Benutzern akzeptiert wurden. „Was in Ordnung ist“, sagte er. „Es bedeutet, dass es den Entwicklern weitergeholfen hat.“ In den zwei Jahren seit dem Debüt von Copilot ist diese Zahl auf 35 Prozent gestiegen, „und das entspricht knapp der Hälfte der geschriebenen Codemenge.“ [on GitHub] – 46 Prozent durch KI, um genau zu sein.“

„[It’s] Es kommt nicht nur auf den Prozentsatz des geschriebenen Codes an“, stellte Salva klar. „Es geht wirklich um die Produktivität, den Fokus und die Zufriedenheit der Entwickler, die etwas erschaffen.“

Wie bei den Ausgaben natürlicher Sprachgeneratoren wie ChatGPT ist der von Copilot stammende Code weitgehend lesbar, aber wie bei jedem großen Sprachmodell, das im offenen Internet trainiert wird, hat GitHub darauf geachtet, zusätzliche Schutzmaßnahmen zu integrieren, damit das System unbeabsichtigt ausnutzbaren Code produziert.

„Zwischen dem Zeitpunkt, an dem das Modell einen Vorschlag erzeugt, und dem Zeitpunkt, an dem dieser Vorschlag dem Entwickler präsentiert wird“, sagte Salva, „führen wir zur Laufzeit eine Leistung aus.“ […] eine Codequalitätsanalyse für den Entwickler, die nach häufigen Fehlern oder Schwachstellen im Code sucht, wie z. B. Cross-Site-Scripting oder Path-Injection.“

Dieser Prüfschritt soll die Qualität des empfohlenen Codes im Laufe der Zeit verbessern und nicht überwachen oder überwachen, wofür der Code verwendet werden könnte. Copilot kann Entwicklern dabei helfen, den Code zu erstellen, aus dem Malware besteht. Das System wird sie jedoch nicht verhindern. „Wir vertreten den Standpunkt, dass Copilot als Werkzeug da ist, um Entwicklern bei der Codeerstellung zu helfen“, sagte Salva und verwies auf die zahlreichen White-Hat-Anwendungen für ein solches System. „Ein Tool wie Copilot in ihre Hände zu legen […] macht sie zu leistungsfähigeren Sicherheitsforschern“, fuhr er fort.

Während sich die Technologie weiterentwickelt, geht Salva davon aus, dass die generative KI-Codierung weit über ihre aktuellen technologischen Grenzen hinaus expandieren wird. Dazu gehört auch, dass man „große Anstrengungen“ in Richtung Konversations-KI eingeht. „Wir sehen auch, dass KI-unterstützte Entwicklung tatsächlich in andere Teile des Softwareentwicklungslebenszyklus vordringt“, sagte er, beispielsweise durch den Einsatz von KI zur autonomen Nutzung Reparieren Sie einen CI/CD-Build-FehlerSicherheitslücken schließen oder von Menschen geschriebenen Code durch die KI überprüfen lassen.

„So wie wir heute Compiler verwenden, um Code auf Maschinenebene zu erstellen, denke ich, dass sie mit KI irgendwann zu einer anderen Abstraktionsebene gelangen werden, die es Entwicklern ermöglicht, sich in einer anderen Sprache auszudrücken“, sagte Salva. „Vielleicht ist es eine natürliche Sprache wie Englisch oder Französisch oder Koreanisch. Und das wird dann zu etwas „kompiliert“, das die Maschinen verstehen können“, was Ingenieuren und Entwicklern die Möglichkeit gibt, sich auf das Gesamtwachstum des Projekts zu konzentrieren und nicht auf die Grundlagen seiner Konstruktion.

Vom Programmierer bis zum Gabber

Da die menschliche Entscheidungsfindung zumindest im Moment immer noch fest in der KI-Programmierschleife verankert ist, haben wir wenig zu befürchten, wenn Software Software schreibt. Wie Salva feststellte, tun Computer dies bereits zu einem gewissen Grad, wenn sie Code kompilieren, und digitale Grauschimmel haben dies noch nicht übernommen. Stattdessen spiegeln die unmittelbarsten Herausforderungen bei der Programmierung von KI die der generativen KI im Allgemeinen wider: inhärente Vorurteile, die Trainingsdaten verzerren, Modellausgaben Urheberrecht verletzenund Bedenken hinsichtlich des Datenschutzes der Benutzer, wenn es um das Training großer Sprachmodelle geht.

GitHub ist mit seinen Bemühungen, einen KI-Programmierpartner aufzubauen, bei weitem nicht der Einzige. ChatGPT von OpenAI ist in der Lage, Code zu generieren – ebenso wie die bereits unzähligen Indie-Varianten, die auf der GPT-Plattform basieren. So ist es auch Das AWS CodeWhisperer-System von Amazon, das weitgehend die gleichen Autovervollständigungsfunktionen wie Copilot bietet, jedoch für die Verwendung innerhalb des AWS-Frameworks optimiert ist. Nach mehreren Anfragen von Nutzern hat Google im vergangenen April auch Codegenerierungs- und Debugging-Funktionen in Bard integriert, bevor es bei der I/O 2023 und 2023 seinen ökosystemweiten Schwenk hin zur Einführung von KI vornimmt die Veröffentlichung von Codey, Alphabets Antwort auf Copilot. Wir können noch nicht sicher sein, was generative Codierungssysteme letztendlich werden oder welche Auswirkungen sie auf die Technologiebranche haben könnten – wir könnten es mit den frühesten Iterationen einer transformativen Demokratisierungstechnologie zu tun haben, oder es könnte Clippy für eine neue Generation sein.

Alle von Engadget empfohlenen Produkte werden von unserem Redaktionsteam unabhängig von unserer Muttergesellschaft ausgewählt. Einige unserer Geschichten enthalten Affiliate-Links. Wenn Sie über einen dieser Links etwas kaufen, erhalten wir möglicherweise eine Affiliate-Provision. Alle Preise gelten zum Zeitpunkt der Veröffentlichung.

source-115

Leave a Reply