Grundlegendes zu den Codegenerierungsfunktionen von OpenAI

Abgeschlossen

GPT-Modelle zur Codegenerierung können natürliche Sprache oder Codeschnipsel verwenden und in Code übersetzen. Die OpenAI GPT-Modelle beherrschen mehr als ein Dutzend Sprachen (z. B. C#, JavaScript, Perl, PHP und insbesondere Python).

GPT-Modelle wurden sowohl mit natürlicher Sprache als auch mit Milliarden von Codezeilen aus öffentlichen Repositorys trainiert. Diese Modelle können Code aus Anweisungen in natürlicher Sprache wie Codekommentaren generieren und Möglichkeiten zum Vervollständigen von Codefunktionen vorschlagen.

Beispielsweise wird bei der Äußerung „Schreibe eine FOR-Schleife in Python, die von 1 bis 10 zählt“ die folgende Antwort bereitgestellt:

for i in range(1,11):
    print(i)

GPT-Modelle können Entwickler*innen helfen, schneller zu programmieren, neue Programmiersprachen zu verstehen und sich mit der Lösung größerer Probleme in ihrer Anwendung zu befassen. Entwickler*innen können ihr Ziel in einfachere Aufgaben unterteilen und mithilfe von GPT diese Aufgaben über bekannte Muster erstellen.

Beispiele für die Codegenerierung

Ein Teil der Trainingsdaten für GPT-3 bestand aus Programmiersprachen. Daher ist es nicht verwunderlich, dass GPT-Modelle bei Bedarf Programmierfragen beantworten können. Das Besondere an der Codex-Modellfamilie ist, dass sie mehr Sprachen beherrscht und fähiger ist als GPT-Modelle.

Die Codegenerierung geht über das Schreiben von Code aus Äußerungen in natürlicher Sprache hinaus. Mit dem folgenden Code können Komponententests generiert werden:

# Python 3
def mult_numbers(a, b):
  return a * b

# Unit test
def

GPT erstellt Komponententests für unsere Funktion:

# Python 3
def mult_numbers(a, b):
  return a * b

# Unit test
def test_mult_numbers():
  assert mult_numbers(3, 4) == 12
  assert mult_numbers(0, 10) == 0
  assert mult_numbers(4, 0) == 0

# Unit test
def test_mult_numbers_negative():
  assert mult_numbers(-1, 10) == -10
  assert mult_numbers(10, -1) == -10

GPT kann auch bereits geschriebene Funktionen zusammenfassen, SQL-Abfragen oder -Tabellen erläutern und eine Funktion aus einer Programmiersprache in eine andere konvertieren.

Bei der Interaktion mit GPT-Modellen können Sie Bibliotheken oder sprachspezifische Tags angeben, um Codex klar zu machen, was Sie erreichen möchten. Beispielsweise können Sie diese Eingabeaufforderung als HTML-Kommentar formatiert bereitstellen: <!-- build a page titled "Let's Learn about AI" -->. Dies ist dann das Ergebnis:

<html>
<head>
<title>Let's Learn about AI</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body>
<div class="wrapper">
<div class="header">
<h1>Let's Learn about AI</h1>
</div>
<div class="nav">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="resources.php">Resources</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</div>
<div class="content">
<h2>Contact</h2>
<p>
<!-- build a form to contact the site owner -->
<form action="contact.php" method="post">
<label for="name">Name:</label>
<input type="text" name="name" id="name" required>
<label for="email">Email:</label>
<input type="email" name="email" id="email" required>
<label for="subject">Subject:</label>
<input type="text" name="subject" id="subject" required>
<label for="message">Message:</label>
<textarea name="message" id="message" required></textarea>
<input type="submit" value="Send">
</form>
</p>
</div>
<div class="footer">
<p>Let's Learn about AI</p>
</div>
</div>
</body>
</html>

GitHub Copilot

OpenAI hat sich mit GitHub zusammengetan, um GitHub Copilot zu erstellen, das als KI-Paarprogrammierer bezeichnet wird. GitHub Copilot integriert die Leistungsfähigkeit von OpenAI Codex in ein Plug-In für Entwicklerumgebungen wie Visual Studio Code.

Sobald das Plug-In installiert und aktiviert ist, können Sie mit dem Schreiben von Code beginnen. GitHub Copilot schlägt dann automatisch den Rest der Funktion basierend auf Codekommentaren oder dem Funktionsnamen vor. Beispielsweise enthält die Datei nur einen Funktionsnamen, und der graue Text wird automatisch zum Vervollständigen vorgeschlagen.

Screenshot of GitHub Copilot suggesting completion of function.

GitHub Copilot bietet mehrere Vorschläge zur Codevervollständigung, die Sie mithilfe von Tastenkombinationen durchlaufen können. Mit informativen Codekommentare kann sogar ein Funktionsname zusammen mit dem vollständigen Funktionscode vorgeschlagen werden.

Animated screenshot of GitHub Copilot suggesting completion of function based on code comments.