[ChatGPT와 자연어 처리] - ChatGPT가 똑똑한 이유

- 손정의 "10년 안에 인류 뛰어넘는 AI 실현될 것

이데일리 기사

 2023년을 대표할 수 있는 가장 Hot Keyword를 꼽으라고한다면 ChatGPT가 빠질 수 없다.

 

  ChatGPT는 OpenAI에서 개발한 자연어 처리 모델로서 사용자와의 대화에서 인상적인 자연어 생성 능력을 보여주었다.

이는 급격한 AI 기술 발전을 일반인들이 체감할 수 있게 해주고 있으며  실로 어마어마한 관심을 받고있다. 

 

  이러한 ChatGPT는 월간 사용자 1억을 달성하는데 겨우 2달밖에 걸리지 않았다.

월간 액티브 유저 1억명을 달성하는데  틱톡(TikTok)이 9개월, 인스타그램(Instagram)은 2년 6개월이 소요된 것에 비하면

경이로운 기록이며 그만큼 세계의 이목과 관심이 쏠리고 있다.

 

  ChatGPT의 등장으로 대기업들도 충격을 받고 너도나도 할 것 없이 자신들도 ChatGPT와 같은 서비스를 출시하거나 다른 서비스안에서 녹여내려는 시도들이 이어지고 있다.

 

  국내에서는 네이버 클라우드에서 자체 개발한 초대규모 AI 모델인 '하이퍼클로바X'를 바탕으로 사업영역을 확장해 나가고 있다.

 

이처럼 ChatGPT가 선보인 자연어 처리능력이 경이로운 이유는 무엇일까?

 

- 트랜스포머 아키텍처가 등장과 GPU의 발전

 ChatGPT의 기본 구조는 '트랜스포머'라는 딥러닝 아키텍처를 기반으로 한다. 

해당 아키텍처는 복잡한 자연어 패턴을 인식하고 생성하는 데 있어 뛰어난 능력을 가지고 있는 반면

기존의 방법보다 엄청난 양의 계산을 해야하는 문제가 존재했었다.

하지만 GPU의 발전과 함께 사용할 수 있는 대안이 되었다.

 

  트랜스포머(Tranformer) 아키텍처는 2017년 Attention Is All You Need 라는 논문에서 소개되었다.

해당 논문에서는 기존의 순환 신경망(RNN)이나 합성곱 신경망(CNN)에 의존하지 않고도 시퀀스 모델링과 변환 작업을

효과적으로 수행할 수 있는 새로운 방법을 제시했고 그것이 바로 트랜스포터 아키텍처이다.

 

- 비순환 신경망 모델의 등장 : Sequence Modeling?  트랜스포머 아키텍처?

출처: https://opennmt.net/

  Sequence modeling이란 어떠한 sequence를 가지는 데이터로부터 또 다른 sequence를 가지는 데이터를

생성하는 모델링 방법이다.

 

  이러한 sequence modeling에는 대부분 RNN, LSTM, GRU가 주축으로 사용되었는데 몇몇 문제들이 발생하였다.

위와 같은 Recurrent model들은 모든 데이터를 한꺼번에, 즉 병렬 처리하는 것이 아니라 sequence position에 시간에

따라 순차적으로 입력에 넣어 주어야한다.

 

  예를 들어, "i am boy"이라는 문장을 처리할 때, "i"라는 단어를 먼저 네트워크에 입력하고 

"i"를 RNN에 넣으면, 네트워크는 이 정보를 바탕으로 hidden state(h t0)를 생성한다.

 

  이후 "am" 이라는 단어를 처리할 때, 이전 단계의 hiddent state (h t0)을 함께 사용하여 새로운 hidden state(h t1)을 생성하고 이러한 과정이 시퀀스의 끝까지 반복된다.

 

  그러다보니 긴 시퀀스를 처리할 때 많은 계산이 필요하고 이로인해 메모리 사용량과 계산 복잡도가 높아질 뿐더러

시퀀스가 길어지면 길어질수록 이전 정보를 제대로 기억하지 못하는 장기 의존성문제가 발생한다.

 

  이러한 한계들을 극복하기 위해 LSTM, GRU 같은 변형모델들이 개발된 것이지만, 여전히 긴 시퀀스를 처리하는데 있어 계산적인 부담의 문제를 해결하지 못했다.

하지만 이를 극복하기 위해 트랜스포터 아키텍처와 같은 비순환 모델들이 등장하게 되었다.

 

순환 신경망 모델의 종류들 - 출처 위키독

 Hidden State란?

RNN의 핵심 구성요소로서 네트워크가 이전 시간 단계에서 학습한 정보를 저장하는 메모리 역할을 하는 레이어를 말한다.

 

-비순환 신경망 모델 : Attention mechanism 

 앞서 언급한 순환 신경망 모델의 한계점을 극복하기 위해서 비순환 신경망 모델에서는

모든 시퀀스 요소들을 동시에 처리한다. 이때 Attention mechanism을 이용하여 요소 간의 상호작용을 모델링한다.

 

 Attention mechanism을 예를 들어 설명하면 아래와 같다.

사람이 많은 식당에서 친구와 중요한 이야기를 나누고 있는 상황이라고 가정해보자.

 

1. No Attention : 주변의 모든 소리와 대화에 귀를 기울이면, 친구와의 대화에 집중하기 어렵다. (정보의 과부화 상태) 

2. Attention Mechanism : 친구의 목소리에만 집중하기 위해 주변의 다른 소리는 무시하거나 덜 신경쓰는 것이다. 

여기서 친구의 목소리는 중요한 정보이므로 Attention Score를 높게 부여한다.

 

이처럼 Attention Mechanism은 다양한 정보속에서 필요한 부분만을 선택적으로 집중처리하는 것과 유사하게 동작한다.

 

 이 때문에 시퀀스가 길어지더라도 정보를 잘 유지하고 접근할 수 있게된다. 물론 이러한 메커니즘도 시퀀의 길이에 따라 계산비용이 증가하는건 마찬가지이지만 그래도 순환 신경망 모델은 병렬처리가 되기 때문에 압도적으로 계산속도가 빠르다.

 

 사실 계산횟수 자체는 RNN과 같은 순환 신경망이 더 적지만 병렬 처리가 가능한 비순환 신경망 모델이 훨씬 더 계산 효율이 좋은 것이다.

 

 단순한 예를 들면, 두 모델에게 동일하게  n의 길이를 가진 시퀀스를 주었을 때,

RNN의 시간복잡도는 n이라고 한다면, 트랜스 포머의 시간복잡도는 n^2 이라고 할 수 있다.

                (모든 계산에서 n^2의 복잡도를 가지는 것은 아니며 이러한 복잡도를 줄이기 위한 연구들이 진행되고 있다.)

 

 그럼에도 GPU는 병렬 처리에 최적화되어 있기 때문에, 트랜스포머와 같은 비순환 신경망이 RNN보다 훨씬 효율적으로 동작할 수 있다.