Obwohl ich vor ein paar Monaten über einige tolle ChatGPT-Leistungen berichtet habe, habe ich nicht den nächsten logischen Schritt unternommen, Copilot auszuprobieren, Githubs Tool zur Unterstützung der KI-Codierung. Mein Interesse wurde jedoch letzte Woche geweckt, als ein Kollege einen Screenshot einer KI-generierten Testsuite teilte.
Die Eingabeaufforderung war einigermaßen einfach und die generierten Testfälle waren relevant; Genug, um in mir den Wunsch zu wecken, die kostenlose Testversion von GC zu abonnieren und zum Aufkommen des Singularitätsereignisses beizutragen.
Ich verzichte darauf, im Detail darauf einzugehen, was Copilot kann und was nicht: Andere haben mich bereits bei weitem erwartet. Das Interessante für mich ist, wie ich mich mit dieser neuen Technologie auseinandersetzen kann.
In diesem Beitrag werde ich Github Copilot auch als Benchmark verwenden, um abzuleiten, was eine „KI zum Codieren“ heute leisten kann, da sie meiner Meinung nach den neuesten Stand der Technik auf diesem Gebiet darstellt.
Wenn man über KI im Softwarebereich nachdenkt, kommen einem viele spontane Fragen in den Sinn.
Ist es nützlich? Ist es gefährlich? Wird es unsere Jobs kosten? Das Wichtigste ist, uns nicht mit einer einschränkenden Denkweise in die Enge zu treiben und unseren Emotionen zu erlauben, eine seltsame Erzählung rund um die KI zu schmieden – weder als Neoluddisten noch als utopische Techno-Enthusiasten.
Stattdessen finde ich andere Arten von Fragen interessanter und viel einfacher zu beantworten: Diese Fragen implizieren keine „Ja“- oder „Nein“-Antwort, sondern beginnen normalerweise mit „Was“, „Wann“ und „Wo“.
Wie kann ich Copilot beispielsweise in meinen Arbeitsalltag integrieren? Welche Aufgaben erleichtert es und welche persönlichen Fähigkeiten erfordert es?
Der Wert von KI in unserer Arbeit ist vor allem Softwareentwicklern klar. Dennoch verstehe ich, dass Menschen aus anderen Lebensbereichen die Möglichkeiten möglicherweise völlig falsch einschätzen, insbesondere da viele Content-Ersteller oder Journalisten gerne Aufmerksamkeit erregen, indem sie Katastrophenszenarien vorschlagen (oder versprechen, dass die Erstellung von Software jetzt für jedermann zugänglich ist).
Ja, es stimmt, dass Tools, die auf GPT-3 – und seit Kurzem auch auf GPT-4 – basieren, Code schreiben können, und ja, der generierte Code lässt sich oft kompilieren und tut, was von ihm erwartet wird.
Allerdings stellt dies nicht unbedingt eine unmittelbare Gefahr für meine Arbeitsplatzsicherheit dar, da das Schreiben von Code nicht zu den Aufgaben von Softwareentwicklern gehört. Lassen Sie mich das näher erläutern.
Bei unserem Job geht es nicht darum, Code in einen Texteditor einzugeben. Wir sind keine Stenographen. Bei der Aufgabe geht es darum, zu entscheiden, was codiert werden soll. Tatsächlich habe ich jedes Mal, wenn ich Software entwerfe und endlich anfange, etwas in meine IDE einzugeben, bereits im Kopf, wie der nächste Codeausschnitt aussehen wird.
An diesem Punkt verbindet die KI nur noch die Zusammenhänge und generiert sofort die von mir beabsichtigte Methode oder Datenstruktur, abzüglich unfreiwilliger Tippfehler oder anderer offensichtlicher Fehler.
Selbst wenn KI zu mehr als 80 % einer Codebasis beitragen könnte, ist es wichtig, die entsprechende Eingabeaufforderung (die ersten 20 %) zu geben , da sie enorme Informationen enthält, die GC für den ordnungsgemäßen Betrieb benötigt. Und ohne einen Techniker hinter der Tastatur erhalten Sie diese erste Eingabeaufforderung nicht.
Ich glaube, dass ein guter Vergleich mit Flugzeug-Autopiloten möglich ist. AFCS (Auto-Flight Control System) kann eine Vielzahl von Flugvorgängen perfekt durchführen: die Flugbahn anpassen, einen Flughafen anfliegen oder sogar landen.
Ich würde immer noch nicht im Traum daran denken, ohne menschliche Aufsicht in einen kommerziellen Flug einzusteigen.
Die Tatsache, dass der Computer das Flugzeug steuern kann, bedeutet nicht, dass die Piloten untätig auf dem Flugdeck sitzen.
Es gibt noch viel zu tun: die Wettervorhersage zu prüfen, mit der Flugsicherung zu kommunizieren, Ausweichrouten zu planen und vor allem den Autopiloten zu überwachen und bei Bedarf die Zügel in die Hand zu nehmen.
Daher können wir sehen, dass es immer noch Piloten sind, die das Flugzeug steuern.
In ähnlicher Weise entwickelt KI keine Software, sondern Ingenieure . KI ist ein Werkzeug. Ingenieure werden darin geschult, ihre Arbeitsabläufe durch den Einsatz von Automatisierung zu optimieren, überwachen jedoch stets, was ihr Werkzeug tut. Wenn es sich nicht wie beabsichtigt verhält, werden die Ingenieure eingreifen und Abhilfe schaffen.
Dies ist die Einstellung, die ich bei der Verwendung von Copilot verfolge: Ich delegiere ihm gerne die untergeordneten Aufgaben, aber in der Zwischenzeit werde ich wachsam sein, welche Ergebnisse es produzieren wird.
Wie Sie vielleicht wissen, heißt der zugrunde liegende ML-Algorithmus von Copilot GPT-3 und macht Vorhersagen über die wahrscheinlichste Reihenfolge der zu generierenden Token. Während der generierte Code in der Regel syntaktisch korrekt ist, wissen die Tools nicht, um welche Spezifikationen es sich handelt und ob der erzeugte Code gültig ist.
Eine mögliche Gegenmaßnahme besteht darin, GC durch zeitnahes Engineering zu unterstützen: Beispielsweise ist das Schreiben eines Kommentars, der angibt, was das nächste Snippet bewirkt, eine wirkungsvolle Technik, um der KI zu helfen.
Noch besser: Manchmal konnte sogar der Kommentar automatisch generiert werden, nachdem die ersten paar Wörter eingegeben wurden.
Es muss jedoch gesagt werden, dass Copilot selbst unter den idealsten Bedingungen nicht immer einen hilfreichen Vorschlag oder überhaupt keinen Vorschlag bietet, wenn das der Fall ist. Obwohl GC ziemlich erstaunlich ist, glaube ich, dass es als Codierungstool immer noch sehr unvollkommen ist.
Im Moment habe ich mich noch nicht entschieden, ob ich Copilot vollständig in mein Toolset integrieren soll oder nicht: Die Zufallscharakteristik seiner Vorschläge kann manchmal ein Hindernis sein.
Auf jeden Fall würde ich jedem raten, sich an die Arbeit zu machen und es zumindest einmal auszuprobieren: Betrachten Sie es als ein Hilfsprogramm wie Ihren Syntax-Highlighter oder die Autovervollständigungsfunktion Ihrer Lieblings-IDE.
Was ist Ihre Meinung zu Github Copilot? Haben Sie es in Ihren Arbeitsalltag integriert oder fiel es Ihnen schwer? Seien Sie nicht schüchtern und lassen Sie es mich in den Kommentaren wissen!
Auch hier veröffentlicht