챗GPT의 원리에 대한 설명
챗GPT가 요즘 정말 전 세계적으로 화제입니다.
그리고 챗GPT는 정말 신기합니다. 챗 GPT는 인공지능의 새로운 지평을 열어주었습니다. 챗 GPT는 인공지능이고 딥러닝 기술을 바탕으로 만들어졌습니다. 결국 언어모델이고 자동완성과 같은 확률의 개념으로 입력과 출력을 갖춘 수 억 개, 수조 개의 파라미터를 가진 함수 형태로 만들어지는 원리입니다. 결국 수학과 숫자로 구성된 세계입니다. 챗GPT의 원리에 대해서 자세히 설명한 콘테츠를 아래 첨부합니다.
내용은 아래와 같습니다.
챗GPT원리에 대한 자세한 설명
챗GPT는 일단 기본적으로는 챗봇입니다.
그런데 챗GPT는 기본적으로는 채팅을 하는데 얘가 너무 똑똑해서 뒤에 사람이 있는 거 아니야라는 생각이 들 정도로 어떤 분야에 대해서도 심지어 양자역학을 물어봐도 여자친구와의 뭐 잘 지내는 법을 물어봐도 어떤 법률적인 걸 물어봐도 대답을 다 해주는 수준입니다.
넷플릭스, 트위터 페이스북 이런 애들이 출시 후에 사용자 100만 명을 확보할 때까지 걸린 시간을 보면 넷플릭스 3.5년, 인스타그램은 2.5년, 그런데 챗GPT는 5일이 걸렸습니다. 이것은 바로 패러다임을 바꾼 것입니다. 챗 GPT의 가입자는 1억 명은 기본 적으로 넘은 거 같습니다. 챗GPT는 기본적으로 언어 모델입니다. 근데 언어 모델이라는 거는 완성이 아닙니다. 자동 완성이라는 것처럼 그다음을 완성을 해주는 개념입니다.
챗 GPT는 언어 모델이라고 하는데 기본적으로 자동완성의 개념입니다. 즉, 단어를 자동 완성하는것입니다. 모델은 모범적인 대표성을 가진 다는 것입니다. 물리학의 f=ma도 모델입니다. 세상을 이러한 모델로 이해를 합니다. 우리는 세상을 이렇게 모델로 보는 것이 많습니다.
그리고 모델은 함수입니다.
프로그램도 사실 함수입니다. 입력이 있고 출력이 있는 것입니다. 입력과 출력이 있는 것이 함수인데 이것이 프로그램의 기본 원리입니다. 함수는 입력이 있으면 출력이 있는 함수인 것입니다. x가 들어오면 y가 나가는 것입니다. y=f(x)라고 하는데, f가 Function의 f인 것입니다. 그래서 y= f(x)로 해서 언어도 나름대로 모델을 세워 보겠다는 것입니다.
이것이 언어 모델입니다. 그리고 확률의 개념이 들어갑니다. 저어 모델이 확률적으로 사람들이 이런 걸 많이 검색하더라라는 어떤 확률에 의해서 결과가 나오는 것입니다. 문장 속에 빈칸이 있을 때 사람들은 빈칸에 무엇이 들어갈지 알아맞힐 수 있습니다. 이것은 바로 사람들의 머릿속에 이미 언어 모델이 있는 것입니다. 언어 모델은 그다음에 어떤 말이 나올지 예를 들어 90% 확률로 맞추는 것입니다.
챗GPT가 놀라운 이유가 이러한 언어 모델이 발전을 한 것입니다. 몇 년 사이에 너무 빨리 발전을 했습니다. 이러한 발전은 딥러닝의 역할도 큽니다. 다 딥러닝으로 챗GPT가 발전을 한 것입니다. 챗GPT는 전체 학습을 했을 때 한 1.5% 정도가 한국어라고 합니다. 따라서 챗GPT는 한국어를 잘 못합니다. 챗GPT는 언어처리 프로그램이며 확률적으로 하는 것입니다. 챗GPT의 언어처리 프로그램은 논리와 절차입니다.
그래서 Flow 차트 흐름도 이런 걸로 이제 하는 건데 뭐를 누르면 뭐가 되고 뭐를 누르면 뭐가 되고 뭐 1 + 1을 넘으면 2가 나오고 근데 저런 프로그램은 원래 다 프로그래머라는 개발자들이 짜는 것입니다. 그래서 개발자들은 코딩을 하는 것입니다. 마이크로소프트의 윈도우즈 프로그램을 보면 코딩 줄이 한 10억 줄이 됩니다.
코딩 줄이 10억 줄이라는 것은 40년 동안 만든 것입니다. 엄청 많은 개발자들, 그리고 개발자들 중에서 똑똑한 분들이 40년 동안 10억 줄을 코딩 한 것입니다. 즉 윈도즈는 논리로 만들어진 것입니다. 하지만 인공지능 프로그램은 그런 구조가 아닙니다. 근데 특정 영역에 대해서는 사람이 도저히 논리와 절차를 찾을 수가 없는 경우가 있습니다.
사람들은 그냥 직관적으로 되게 쉽게 파악할 수 있는데 이거를 어떤 프로그래머의 논리와 절차를 만들기가 어려운 경우가 있습니다. 프로그램 코딩은 뭐 클릭을 하면 이동해 이거는 다 논리가 절차를 만들 수 있습니다. 하지만 특정 영역들은 사람이 프로그램을 알고리즘으로 짤 수 없는 것이 있습니다.
이것을 인공지능이 찾아주는 것입니다. 3d로 저렇게 인식해 주는 모델들은 이미 나와 있습니다. 이러한 기술들이 쏟아져 나오고 있습니다. 저런 것들이 그래서 그걸로 학습을 하는 거입니다. 저거가 정답이다라고 치고 이제 학습을 합니다. 와이파이 신호가 들어왔을 때 이런 지금 사람이 막 움직일 때 와이파이 신호가 들어오고 있고 아까 음파가 들어오듯이 사람이 움직이면 조금씩 변화가 있는데 그때 카메라로 저 사람들이 움직인 걸 찍습니다.
그다음에 그 정답은 이제 또 인공지능이 이게 정답이야라고 알려줍니다. 사람이 지금 이렇게 움직였어라는 건 움직이는 것을 이미 알 수 있습니다. 와이파이 신호가 들어오면 사람이 이렇게 있다는 출력을 내 와이파이 신호가 들어오면 여기에 사람이 있다고 이런 포즈를 취하고 있다고 인식을 하는데라고 이것을 다시 인공지능에게 알려주는 것입니다.
그렇게 해서 학습을 했더니 저런 결과가 나왔다. 그래서 인공지능은 뭐 원래 인공지능이 꼭 딥러닝일 필요는 없지만 요즘 보고 있는 신기한 인공지능들이 만든 결과들은 99.99%는 다 딥러닝 기술을 사용합니다. 그래서 결국 인공지능이 만들어 내는 결과물들은 딥러닝으로 찾아낸 프로그램이라고 할 수 있습니다. 그러니까 만들었다고 해도 되지만 저는 좀 더 정확하게 얘기하면 프로그램 코딩이 아니라 딥러닝으로 찾아냈다가 더 가까운 표현이 될 것입니다.
사람이 컴퓨터에게 딥러닝을 시키는 것이고 인공지능은 알고리즘과 프로그램을 찾아내는 개념입니다. 논리와 절차를 찾아냈다는 것입니다. 그래서 모델링이란 언어 모델을 만드는 과정을 이제 모델링이라고 하는데 예를 들면 내가 f는 ma로 한번 해봤다가 f는 m + a로도 해봤다가 이렇게 반복 하는 과정이 모델링하는 것입니다.
함수가 ax+b라고 했을 때 a와 b를 정하는 것과 같은 원리입니다. 여기서 x가 언어고 y도 언어일 때 그걸 언어 모델이라고 하는 것입니다. x가 들어왔을 때 y가 나가는 것이 언어 모델입니다. 그러한 원리를 조금씩 들어가는 것입니다. 그리고 계속 반복해서 시도를 하면서 오차를 측정을 하는 것입니다.
오차가 크면 다시 a와 b를 바꿔 보면서 오차가 적게 나오도록 반복하고 오차가 가장 적게 나온 것이 좋은 모델이 나오는 것입니다. 사람은 딥러닝을 하는 프로그램을 만드는 것입니다. 와이파이 신호가 들어오면 숫자들로 들어오고 그 숫자들이 들어오면 나의 행동과 포즈를 예측할 때 포즈도 숫자로 해볼 수 있습니다. 예를 들면 내가손을 들면 1 2. 고개를 숙이면 3, 이런 포즈들을 숫자로 바꿔 놓고 와이파이 신호가 숫자로 들어와서 1 2 3 예측하면 되는 것입니다.
이것도 모델링을 하면 되는 것입니다. 오차가 가장 조금 나오는 실제와 가장 가까운 것을 표현하는 함수 모델을 만들면 정답률이 높아지는 것입니다. 사실 1차 함수로는 모델링이 안되고 함수는 a, b, c, d 등 수많은 파라미터로 구성될 수 있습니다. 함수는 수백만 개, 수 억 개의 파리미터를 가질 수 있습니다. 모델마다 다른데 와이파이 같은 모델은 보통 더 수백만 개 아니면 수천만 개 수백만 개입니다. 챗GPT 3.0은 파리미터가 1,750억 개가 있었습니다.
그 1,750억 개의 파라미터를 사람이 찾을 수 없습니다. 딥러닝 기술로 하는 것입니다. 그리고 마법과 같은 결과가 나오는 것입니다. 이러한 간단한 원리가 인공지능의 원리고 딥러닝의 원리입니다. 곱하기와 더하기를 잘하면 세계에서 바둑을 제일 잘 줄 둘 수 있고 곱하기 더하기를 잘하면 자율주행을 할 수 있는 것입니다. 챗GPT 3는 한 2년 전에 나온 건데 인터넷에서 45 테라바이트를 텍스트를 가져왔다고 합니다. 근데 저게 좀 놀라운게 이런 것입니다.
45테라 바이트가 엄청 큰 거 같지만 우리 요즘에 노트북에도 1 테라바이트가 들어가는 수준입니다. 인터넷에 비하면 20조 개의 글자를 학습을 하는 것입니다. 일단 컴퓨터이기 전에 인공신경망이란 것은 원래 곱하기 더하기를 하는 시스템입니다. 그래서 숫자가 들어와야 되고 나가는 것도 숫자입니다. 컴퓨터가 하는 일은 숫자 처리 밖에 없는데 컴퓨터는 우리말로 하면 계산기입니다. 숫자가 돌아와서 숫자가 나가는 건데 이것으로 우리는 유튜브도 보고 게임도 하고 결제도 하고 하고 있는 것입니다. 겉으로 보면 숫자 같지 않지만 실제로는 다 숫자입니다.
워드도 치고 글자도 치고 하지만 사실은 컴퓨터는 숫자밖에 사실 알지 못합니다. CPI는 숫자를 계산하는 것이고 메모리는 숫자를 보관하는 것입니다. 인터넷은 숫자를 보내는 것입니다. 영과 1밖에 모르는 것입니다. 모든 이미지는 픽셀로 되어 있습니다. 컴퓨터는 RGB 저 rgb라는 게 이제 사람 눈에 삼원색인데 컴퓨터도 여기에 맞춰져 있습니다. 그래서 RGB 삼원색을 조합을 하면 모든 색이 나옵니다.
한글은 ac00이라고 16진수라서 코드인데 16진수로 a가 10이고 뭐 c가 12조 12인데 그러니까 결국 숫자와 숫자로 쓴 것입니다. 여기서 간은 ac00 닭은 ac01 이런 표입니다. 그러니까 저런 글자들을 다 숫자로 어떻게 쓰자라고 사람들이 약속을 해놨습니다. 그것을 유니코드라고 합니다.
전 세계가 다 같이 지금 20년째 쓰고 있습니다. 문자를 보내는 것도 저렇게 숫자로 바꿔서 간다는 것입니다. 과학도 결국에는 다 숫자로 바뀌어서 숫자가 들어가서 숫자가 나오는 거 그거를 언어 모델로 만드는데 딥러닝을 한다는 거는 뭐를 찾는 것이며 w를 찾는 것입니다.