본문 바로가기
물건 사용 후기

ChatGPT에 대한 설명

by minchel1128 2023. 1. 8.

요즘 핫하게 이야기되는 내용 중 하나로 ChatGPT라는 프로그램이 있습니다. ChatGPT는 OpenAI라는 연구기관에서 만든 오픈소스 프로그램으로 사용자와 대화하는 방식으로 명령어를 입력받는 구조로 자연어를 사용해 명령을 입력받습니다.

OpenAI에 대한 설명으로는 "OpenAI 프로젝트는 친절한 인공지능을 책임감 있게 홍보하고 발전시키는 것을 목표로 하는 연구 기관입니다. 그 단체는 Elon Musk, Sam Altman, Greg Brockman, Ilya Sutskever, 그리고 Wojciech Zaremba를 포함한 기업가들과 연구원들에 의해 2015년에 설립되었습니다. 그리고 OpenAI는 머신러닝, 로봇공학, 경제학 등 인공지능과 관련된 광범위한 분야에서 연구를 수행합니다. 이 단체의 가장 잘 알려진 프로젝트 중에는 인간과 같은 텍스트를 생성하는 데 사용된 언어 생성 모델인 GPT(Generative Pre-trained Transformer)와 텍스트 설명에서 이미지를 생성할 수 있는 신경망인 DALL-E가 있습니다. OpenAI는 연구를 수행하는 것 외에도 공공 지원 및 교육 노력에 참여하고 인공지능의 책임 있는 개발 및 사용을 촉진하기 위해 노력합니다. 그 조직은 AI의 윤리적 의미에 강한 초점을 맞추고 있으며 AI가 공정하고 투명하며 사회에 유익한 방식으로 개발되고 사용되도록 보장하기 위해 노력합니다."

여기서 큰 따옴표를 친 부분은 ChatGPT에 OpenAI에 대한 설명을 요청했을 때 영어로 대답한 것을 파파고를 이용해 번역해본 내용입니다. 물론 번역을 조금 다듬는 작업을 하긴 했습니다.

그래서 GPT에 대한 설명으로는 "GPT(Generative Pre-Trained Transformer)는 OpenAI이 개발한 크고 감독되지 않은 언어 모델입니다. 800만 개 이상의 웹 페이지 데이터 세트에 대해 교육을 받았으며 다양한 스타일과 형식으로 인간과 같은 텍스트를 생성할 수 있습니다. GPT는 학습할 수 있는 더 작은 데이터 세트를 제공하여 번역 또는 요약과 같은 특정 작업에 맞게 미세 조정될 수 있습니다. GPT의 응용 프로그램 중 하나는 ChatGPT인데, 이는 GPT 모델을 사용하여 대화에서 사용자 입력에 대한 응답을 생성하는 챗봇입니다. 채팅 GPT는 대화의 맥락을 유지하고 이전에 사용된 단어와 구를 기반으로 적절한 응답을 생성할 수 있습니다. 그것은 다양한 주제에 대한 대화를 계속할 수 있고 심지어 다국어로 응답을 생성할 수 있습니다."

해당 부분도 인공지능이 작성한 부분입니다.

그런데 이런 ChatGPT는 2021년까지의 정보를 담고 있다고 되어있어 현재 내용이 갱신되지 않은 모습을 보여줍니다. 또한 다국어를 지원하지만 한글로 물어보기보다는 영어로 물어보는 게 좀 더 정확한 결과를 얻을 수 있습니다. 영어로 질문을 한다고 하지만 틀린 문법이나 단어의 오타가 있어도 알아듣는 모습을 보여 부담 없이 사용해도 될 거 같습니다.

한국 대통령 명단에 대해 물어봤을 때 다음과 같은 내용을 서술하였습니다.

한국어로 변환을 부탁했을 때도 한국어로 표시해 주는 모습을 보여줬습니다. 다만 여기서 알 수 있다시피 2022년 대통령선거를 통해 대통령이 바뀌었지만 AI의 학습 날짜가 2021년까지여서 퇴임한 대통령이 아직 현직으로 표시되는 문제가 있습니다.

물론 이런 소소한 지식 질문을 이외에도 코딩 질문도 가능했습니다.

#include <iostream>

int main() {
  int n, t1 = 0, t2 = 1, nextTerm = 0;

  std::cout << "Enter the number of terms: ";
  std::cin >> n;

  std::cout << "Fibonacci Series: ";

  for (int i = 1; i <= n; ++i) {
    if (i == 1) {
      std::cout << " " << t1;
      continue;
    }
    if (i == 2) {
      std::cout << t2 << " ";
      continue;
    }
    nextTerm = t1 + t2;
    t1 = t2;
    t2 = nextTerm;

    std::cout << nextTerm << " ";
  }
  return 0;
}

해당 코드는 ChatGPT에게 피보나치수열을 작성하는 것을 부탁했을 때 나온 코드입니다. 그래서 다른 언어 변환도 시켜보았습니다.

Python

def fibonacci(n):
  t1, t2 = 0, 1
  for i in range(3, n+1):
    t1, t2 = t2, t1+t2
  return t2

num_terms = int(input("Enter the number of terms: "))

print("Fibonacci Series:")
for i in range(1, num_terms+1):
  if i == 1:
    print(t1)
  elif i == 2:
    print(t2)
  else:
    print(fibonacci(i))

Java

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter the number of terms: ");
    int n = scanner.nextInt();

    int t1 = 0, t2 = 1, nextTerm;

    System.out.print("Fibonacci Series: ");

    for (int i = 1; i <= n; ++i) {
      if (i == 1) {
        System.out.print(t1 + " ");
        continue;
      }
      if (i == 2) {
        System.out.print(t2 + " ");
        continue;
      }
      nextTerm = t1 + t2;
      t1 = t2;
      t2 = nextTerm;

      System.out.print(nextTerm + " ");
    }
  }
}

C#

using System;

namespace FibonacciSequence
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.Write("Enter the number of terms: ");
      int n = int.Parse(Console.ReadLine());

      int t1 = 0, t2 = 1, nextTerm;

      Console.Write("Fibonacci Series: ");

      for (int i = 1; i <= n; ++i)
      {
        if (i == 1)
        {
          Console.Write(t1 + " ");
          continue;
        }
        if (i == 2)
        {
          Console.Write(t2 + " ");
          continue;
        }
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;

        Console.Write(nextTerm + " ");
      }
    }
  }
}

JavaScript

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('Enter the number of terms: ', (numTerms) => {
  let t1 = 0, t2 = 1, nextTerm;

  console.log("Fibonacci Series:");

  for (let i = 1; i <= numTerms; i++) {
    if (i == 1) {
      console.log(t1);
      continue;
    }
    if (i == 2) {
      console.log(t2);
      continue;
    }
    nextTerm = t1 + t2;
    t1 = t2;
    t2 = nextTerm;

    console.log(nextTerm);
  }

  rl.close();
});

Go

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	fmt.Print("Enter the number of terms: ")
	numTerms, _ := reader.ReadString('\n')
	numTerms = strings.TrimSpace(numTerms)
	n, _ := strconv.Atoi(numTerms)

	t1 := 0
	t2 := 1
	var nextTerm int

	fmt.Print("Fibonacci Series: ")

	for i := 1; i <= n; i++ {
		if i == 1 {
			fmt.Print(t1, " ")
			continue
		}
		if i == 2 {
			fmt.Print(t2, " ")
			continue
		}
		nextTerm = t1 + t2
		t1 = t2
		t2 = nextTerm

		fmt.Print(nextTerm, " ")
	}
}

Kotlin

fun main() {
    print("Enter the number of terms: ")
    val n = readLine()!!.toInt()

    var t1 = 0
    var t2 = 1
    var nextTerm: Int

    print("Fibonacci Series: ")

    for (i in 1..n) {
        when (i) {
            1 -> {
                print(t1)
                continue
            }
            2 -> {
                print(" $t2")
                continue
            }
            else -> {
                nextTerm = t1 + t2
                t1 = t2
                t2 = nextTerm
                print(" $nextTerm")
            }
        }
    }
}

불행히도 제가 C#, Go, Kotlin은 잘 모르다 보니 작동하는 코드인지는 모르겠지만 python, Java, C++은 잘 작동하는 코드로 소개해 주었습니다.

그래서 다른 것도 가능한가 싶어 로그인 페이지 템플릿을 HTML과 CSS를 이용하여 만들어 달라고 해 보았습니다.

<!DOCTYPE html>
<html>
<head>
  <style>
    /* Add some style to the form */
    form {
      border: 1px solid #f1f1f1;
      width: 300px;
      margin: 0 auto;
      padding: 20px;
    }

    /* Style the input fields */
    input[type="text"], input[type="password"] {
      width: 100%;
      padding: 12px 20px;
      margin: 8px 0;
      box-sizing: border-box;
      border: 1px solid #ccc;
      border-radius: 4px;
    }

    /* Style the submit button */
    input[type="submit"] {
      width: 100%;
      background-color: #4CAF50;
      color: white;
      padding: 14px 20px;
      margin: 8px 0;
      border: none;
      border-radius: 4px;
      cursor: pointer;
    }

    /* Add some hover effect to the button */
    input[type="submit"]:hover {
      background-color: #45a049;
    }

    /* Style the container */
    .container {
      width: 500px;
      margin: 0 auto;
      text-align: center;
    }
  </style>
</head>
<body>
  <!-- Add a login form -->
  <div class="container">
    <form>
      <label for="username">Username:</label><br>
      <input type="text" id="username" name="username"><br>
      <label for="password">Password:</label><br>
      <input type="password" id="password" name="password"><br><br>
      <input type="submit" value="Submit">
    </form> 
  </div>
</body>
</html>

해당하는 코드를 작성하여주었고 HTML 파일은 웹 브라우저로 바로 볼 수 있기 때문에 실행까지 해 보았습니다.

예상보다 더 잘 만들어 주어서 대단히 쓸만한 가치가 있어 보였습니다.


사용 후기 : ChatGPT는 현재는 오픈베타 수준으로 무료로 사용가능하며 OpenAI에 가입하고 사용할 수 있습니다. 체험해본 바로는 앞으로도 계속 사용할만한 가치가 있다고 생각이 들며 현재는 마이크로소프트에서 가장 크게 영향을 주고 있다고 합니다. 결국 인공지능은 데이터의 학습이 중요하기 때문에 아마 나중에 정식으로 나오게 되면 개인적 사용은 무료로 할 수 있을 수 있을 듯하고 추가적으로 구독제를 형성하여 판매할 수 있을 거 같아 보입니다. 

현재 마이크로소프트에서 저 시스템을 이용해 자사 검색엔진인 빙을 업그레이드하려는 모습을 보이고 있어 무료로 사용이 가능할 수도 있을 거 같아 보입니다.

그나저나 저 코드들을 다 작성하는데 사실 5분 이내의 시간이 소모되었으며 작성과 변환에도 큰 시간이 소모되지 않았습니다. 현재는 템플릿 정도 거나 간단한 코딩 정도는 정확하게 할 수 있는 것으로 보이는데 복잡한 메커니즘이 들어가는 부분은 아직 제대로 작성하기는 힘들어 보입니다. 그리고 일부 질문의 경우 특히 한국어로 질문하게 되면 정확하게 질문을 파악하지 못하거나 역사적 사실의 경우에 다르게 표현하는 등의 문제가 있어 보입니다. 그리고 인터넷에 연결되어 있지 않아 정보의 갱신이 힘들다는 단점도 존재했습니다. 다만 현재 GPT-3 버전이 탑재되어 있는 만큼 더 나은 버전이 탑재가 되고, 인터넷과 연결되어 실시간으로 새로운 정보를 얻을 수 있게 된다면 이전 2016년에 구글에서 공개했던 알파고가 당시 전성기가 끝나가던 이세돌 9단을 4:1로 이긴 걸 전성기가 거의 끝나가는 바둑기사를 이긴 거지 현재 전성기를 누리고 있는 일류 기사들을 이긴 게 아니다라며 저평가했었지만 결국 3년도 안되어 바둑을 정복한 것처럼 5년 이내에 압도적인 성능을 가지고 현재 구글이 마이크로소프트의 ChatGPT 이용 검색엔진 업그레이드를 경계하듯이 검색엔진 시스템을 바꾸고 코딩이나 다른 부분에 대대적인 개혁을 하게 만드는 존재로서 등장할 가능성이 높아 보입니다.

 

 

 


참고로 앞서 다르게 표현한 부분이 있다고 한 내용은 다음과 같습니다.

해당 내용에서 인천상륙작전은 1950년 9월 15일 시작되어 17일 서울을 수복하였는데 1950년 10월 15일 일제점령기라고 잘못 표기된 게 있었습니다. 아직은 갈 길이 멀어 보이긴 하네요. 여러 질문을 했었는데 웃긴 게 나와서 한번 가져와 봤습니다. 그리고 중간에 멈추게 한 것이 아닌 저기서 스스로 멈췄습니다.

728x90
반응형