도보다모 | 멀리서 바라보는 AI 세계 탐구일지

챗GPT 자연어 처리 모델, 자비스와 같을까? 본문

AI | 역사와 기술

챗GPT 자연어 처리 모델, 자비스와 같을까?

도보다모 2024. 3. 2. 16:39

대화형 AI와 즐겁게 대화하는 사람
달리로 만든 대화형 AI와 즐겁게 대화하는 사람

 

기계의 자연어 처리, 어떤 과정을 거칠까?

 

사람들은 인공지능을 상상하면 *자비스를 떠올리곤 합니다.

그러나 사실 컴퓨터는 계산기와 더 닮았는데요.

지금 나와 있는 챗GPT 등의 대화형 AI가 사용자와 대화하는 것처럼 보여도 그 본질은 계산(Computation) 내지 처리(Processing)일 뿐이기 때문입니다.

 

*자비스(J.A.R.V.I.S)는 마블 시네마틱 유니버스에 등장하는 토니 스타크의 인공지능 비서입니다.

 

 

사람의 자연어 이해(Understanding)와는 분명한 차이가 있습니다.

예를 들어 A라는 영화에 대해 대다수의 사람이 "이 영화 재밌다!"라고 평가한다면, 인공지능은 그 정보를 기호화 등을 통해 '긍정'이라 처리하는 것입니다.

 

 

그렇다면 기계가 자비스처럼 사람들과 그럴듯한 대화를 하는 것처럼 보이게 하려면 어떤 요소들이 필요할까요?

오늘은 그 요소가 되는 모델(model), 함수(Function)의 개념과 출력에 대해 설명하며 AI가 사용자에게 답변을 하는 과정 등을 알아보도록 하겠습니다.

 


 

입력과 모델과 함수

 

모델은 데이터를 기반으로 현실 세계의 시스템이나 프로세스를 수학, 논리로 표현한 것을 말합니다.

앞서 "이 영화 재밌다!"는 다소 두루뭉술 추상적인 표현을 '긍정'으로 처리하는 프로세스와 같습니다.

이것을 다른 말로 *입력을 어떠한 처리로 수행하는 *함수(Function)라고도 합니다.

 

*입력(Independent Variables)
: 모델이 처리하고 분석해야 할 데이터나 정보를 뜻합니다.

*함수(Function)
: 수학에서 입력을 출력으로 매핑하는 관계를 뜻합니다.

 

 

그리고 이 입력 -> 모델(함수)은 출력으로 이어지는데, 이 출력을 확률(Probability)이라고 합니다.

확률이란 어떤 사건이 나타날 가능성을 의미하는 수치며 0에서 1 사이의 값으로 나타납니다.

그래서 이 프로세스로 새로 출시된 자동차의 데이터를 바탕으로 이 자동차의 연비를 예측해 볼까요?

 

1. 입력

새로운 자동차에 대한 데이터

  • 무게(자동차의 총무게):4000lbs
  • 엔진 크기(엔진의 크기 또는 배기량): 2.5L
  • 기어비(변속기의 기어비 설정): 4.1

2. 모델(함수)
MPG=β0​+β1​×무게+β2​×엔진 크기+β3​×기어비


3. 출력(확률)
연비(MPG): 주어진 데이터(입력)에 대해 모델이 예측한 자동차의 마일 당 갤런 수치입니다.



즉 모델은 어떤 입력(정보나 데이터 등)을 받아 해당 입력이 특정 범주일 확률을 반환하는 확률 함수가 됩니다.

그리고 이 입력이 사람들의 말, 즉 자연어가 됐을 때를 자연어 처리 모델이라고 합니다.

"자연어 처리 모델은 자연어를 입력받아 특정 범주일 확률을 반환하는 확률 함수다."

자연어 처리에 맞는 다른 예를 들어볼까요?

우리가 드라마 리뷰의 감성(Sentiment)을 맞히는 자연어 처리 모델을 만든다고 가정해 봅시다.

드라마 리뷰 텍스트는 "I love waching dramas, 리뷰의 감성(긍정, 부정, 중립)은 각 수치를 '긍정(P):+1', '부정(N): -1', '중립(Z):0'입니다.

 


1. 토큰화(Tokenization)
"I love waching dramas"를 아래와 같이 분리합니다.
"I love waching dramas"I", "love", "watching", "dramas"}


2. 벡터화 (Vectorization)
이제 분리한 {"I", "love", "watching", "dramas"}를 다양한 방식으로 수치화합니다.

여기서는 단어의 출현 빈도를 사용할 수도 있고 단어의 중요도 등으로도 구분할 수 있습니다.

우리는 긍정은 +1, 부정은 -1이라고 이미 학습했으니 이를 기반으로 텍스트를 수치로 변환하면 되겠죠?

그러면 아래와 같은 값이 나옵니다.

 

V =  {0, +1, 0, +1}

 

 

모델 종류는 정말 다양합니다.

입력(자연어) 특성과 목적(감성 분석) 등에 따라 가장 괜찮고 생각되는 걸 선택하면 됩니다.

많은 상품이 진열된 마트에서 오늘 저녁 메뉴에 잘 어울릴 것 같은 재료를 고르는 것과 같습니다.



요즘은 모델 종류 중 딥러닝(Deep Learning)이 가장 많은 선호를 받고 있습니다.

기존의 다른 구조보다 훨씬 성능이 좋기 때문인데요.

딥러닝은 데이터를 자동으로 학습할 수 있고, 원시 데이터(Raw data)로부터 저수준 특징부터 고수준 특징까지 스스로 추출하고 조합해 패턴을 인식할 수 있습니다.

즉, 스스로 익히는 인공지능이기 때문인데 여기서 '딥(Deep'이 많은 은닉층(Hidden layer)을 사용한다는 것을 뜻한다는 것이 하나의 힌트가 될 것 같습니다.

딥러닝 중에서는 BERT나 GPT 등이 특히 유명하며, 이들을 일컬어 딥러닝 기반 자연어 처리 모델이라고 부릅니다.

딥러닝 기반 자연어 처리 모델의 출력 역시 확률이고, 자연어 AI 서비스는 이 확률을 자연어로 후처리합니다.

그럼 앞에 예로 들었던 리뷰 텍스트를 자연어로 출력해 볼까요?

 

1. 입력
"I love waching dramas"

2. 출력(확률)
{0, +1, 0, +1}

3. 후처리
긍정(Positive)

 

 

 


 

 


📧 마무리 인사

 

이처럼 자연어 처리 모델은 자연어를 입력받고, 이의 확률을 출력하고, 이 확률값을 후처리해 다시 자연어 형태로 가공해 반환합니다.

결국 자비스처럼 우리에게 그럴싸한 대답을 해주는 대화형 AI들은 자연어를 계산하는 과정을 통해 컴퓨터 언어를 자연어로 바꿔치기 한 것일 뿐이지요.

자연어 처리를 지금보다도 더 정밀하고, 자연스럽게 만들기 위해 지금 이 순간에도 고군분토하고 있는 많은 연구자와 개발자들을 응원합니다.

 

 

읽어주셔서 감사합니다.