OpenAI 코드 생성 기능 이해

완료됨

GPT 모델은 자연어 또는 코드 조각을 가져와서 코드로 변환할 수 있습니다. OpenAI GPT 모델은 C#, JavaScript, Perl, PHP와 같은 12개 이상의 언어에 능숙하며 Python에서 가장 성능이 뛰어납니다.

GPT 모델은 자연어와 퍼블릭 리포지토리에서 수십억 줄의 코드에 대해 학습되었습니다. 모델은 코드 주석과 같은 자연어 명령에서 코드를 생성할 수 있으며 코드 함수를 완료하는 방법을 제안할 수 있습니다.

예를 들어 “Python에서 1에서 10까지의 for loop 계산 작성”이라는 프롬프트가 표시되면 다음과 같은 답변이 제공됩니다.

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

GPT 모델은 개발자가 더 빠르게 코딩하고, 새 코딩 언어를 이해하고, 애플리케이션에서 더 큰 문제를 해결하는 데 집중할 수 있도록 도와줍니다. 개발자는 목표를 더 간단한 작업으로 나누고 GPT를 사용하여 알려진 패턴을 사용하여 이러한 작업을 구축할 수 있습니다.

코드 생성의 예

GPT-3에 대한 학습 데이터의 일부에는 프로그래밍 언어가 포함되어 있으므로 GPT 모델이 프로그래밍 질문에 대답할 수 있다는 것은 놀라운 일이 아닙니다. Codex 모델 제품군의 독특한 점은 GPT 모델보다 더 많은 언어에서 더 많은 기능을 사용할 수 있다는 것입니다.

코드 생성은 자연어 프롬프트에서 코드를 작성하는 것 이상입니다. 다음 코드가 주어지면 단위 테스트를 생성할 수 있습니다.

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

# Unit test
def

GPT는 함수에 대한 단위 테스트를 빌드합니다.

# 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는 이미 작성된 함수를 요약하고, SQL 쿼리 또는 테이블을 설명하고, 함수를 한 프로그래밍 언어에서 다른 프로그래밍 언어로 변환할 수도 있습니다.

GPT 모델과 상호 작용할 때 라이브러리 또는 언어별 태그를 지정하여 Codex에 원하는 것을 명확하게 할 수 있습니다. 예를 들어 HTML 주석 <!-- build a page titled "Let's Learn about AI" -->으로 서식이 지정된 이 프롬프트를 제공하고 다음의 결과를 얻을 수 있습니다.

<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는 GitHub와 협력하여 AI 쌍 프로그래머라고 하는 GitHub Copilot을 만들었습니다. GitHub Copilot은 OpenAI Codex의 기능을 Visual Studio Code와 같은 개발자 환경을 위한 플러그 인에 통합합니다.

플러그 인이 설치되고 사용하도록 설정되면 코드 작성을 시작할 수 있으며 GitHub Copilot은 코드 주석 또는 함수 이름을 기반으로 함수의 나머지 부분을 자동으로 제안하기 시작합니다. 예를 들어 파일에 함수 이름만 있고 회색 텍스트가 자동으로 제안되어 완료됩니다.

Screenshot of GitHub Copilot suggesting completion of function.

GitHub Copilot은 바로 가기 키를 사용하여 탭할 수 있는 코드 완성을 위한 여러 제안을 제공합니다. 유익한 코드 주석이 제공되면 전체 함수 코드와 함께 함수 이름을 제안할 수도 있습니다.

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