brunch

You can make anything
by writing

C.S.Lewis

트랜스포머 알고리즘과 화제의 AI 챗봇, 챗GPT

기술스크랩

트랜스포머(Transformer) 알고리즘


개요

    트랜스포머는 문장 속 단어와 같은 순차 데이터 내의 관계를 추적, 맥락과 의미를 학습하는 AI 신경망으로, 어텐션(attention) 또는 셀프어텐션(self-attention)이라 불립니다. 트랜스포머는 간단히 말하면 번역기라고 할 수 있습니다. A언어로 쓰인 한 문장이 트랜스포머로 입력되면, 여러 인코더 블록과 디코더 블록을 통과하여 같은 의미의 B언어로 쓰인 문장으로 출력되는 것입니다. 


이는 2017년 구글의 “Attention is all you need”라는 제목의 논문에서 처음 발표된 모델로, 이전까지 NLP(자연어처리) 분야에서 가장 영향력 있던 Seq2Seq 구조에서 착안한 모델입니다. Seq2Seq 모델은 RNN의 조합으로 이루어진 인코더-디코더 구조의 모델로, 인코더는 입력 시퀀스를 하나의 벡터 표현으로 압축하고, 디코더는 이 벡터 표현을 통해 출력 시퀀스를 만듭니다. 하지만 인코더의 입력 시퀀스를 압축하는 과정에서 정보가 일부 손실되는 단점이 있었습니다. 이를 보완하기 위해 스텝마다 입력 전체 문장을 참고하며 각 시점에서 예측할 단어에 더 집중하는 어텐션 기법을 고안하게 되었습니다. 


트랜스포머의 원리

    먼저 트랜스포머의 내부 구조는 크게 인코더와 디코더 블록으로 구분됩니다. 그림과 같이 인코더 블록은 두 층으로 나뉘어 멀티 헤드 어텐션과 피드 포워드 신경망으로 구성됩니다. 디코더 블록은 세 층으로 나뉘며 Masked 멀티 헤드 어텐션, 기본 멀티 헤드 어텐션, 피드 포워드 신경망으로 구성되어 있습니다. 


#Positional Encoding

순차적으로 단어를 입력받는 RNN과 달리 트랜스포머는 단어 입력을 순차적으로 받지 않습니다. 그래서 각 단어의 임베딩 벡터에 위치 정보를 더해 모델에 입력해 사용하는 형식인 Positional Encoding을 활용합니다.


#Self Attention

어텐션 기법은 이미 언급했듯 디코더에서 출력 단어를 예측하는 시점마다 인코더의 전체 입력 문장을 다시 한번 참고하는 기법입니다. 예측하는 단어와 연관이 있는 단어를 좀 더 집중하여 참고합니다. 

먼저 입력된 문장이 Word embedding을 거쳐 벡터로 변환되고, 인코더 블록의 attention layer에 입력됩니다. 그리고 학습시킬 weight vector를 곱해 Query, Key, Value라는 세 종류의 새로운 벡터를 만들어냅니다. 

각 Query vector를 다른 단어들의 key vector와 곱합니다. 이렇게 함으로써 각 단어가 서로에게 얼마나 중요한지 점수화할 수 있습니다. 이렇게 얻어진 각 값들을 계산의 편의를 위해 key vector 크기의 제곱근으로 나눈 뒤, softmax 함수를 활용해 합이 1이 되게 합니다. 여기에 각 단어의 value vector를 곱하고 모두 더하면 self-attention 값이 나옵니다. 


이 출력은 입력된 단어의 의미뿐만 아니라 문장 내 다른 단어와의 관계도 포함하고 있습니다. 여태까지의 NLP 알고리즘들은 문맥을 읽기 어렵거나, 읽을 수 있어도 단어와 단어 사이 거리가 짧을 때만 이해할 수 있었습니다. 그러나 attention은 각 단어들의 query와 key vector 연산을 통해 관계를 유추하므로 거리가 먼 단어 간의 관계도 계산하기 쉽고, 연산 과정을 시각화하여 모델이 문장을 어떻게 해석하고 있는지 좀 더 정확히 파악할 수 있습니다.


#multi-head attention

한 번의 어텐션을 하는 것보다, 여러 번의 어텐션을 병렬로 활용하는 것이 다양한 시각으로 정보를 수집할 수 있으며 문맥을 더 잘 이해할 수 있습니다. 따라서 트랜스포머에서는 멀티 헤드 어텐션 구조를 활용합니다. 병렬적으로 수행한 어텐션 연산을 통합 후 가중치 행렬을 곱하고, 최종 행렬을 생성합니다.

#Feed Forward 

Feed Forward Neural Network는 인코더와 디코더에서 공통으로 가지고 있는 서브 층으로 Fully connected layer로 이루어진 신경망을 말합니다. 어텐션의 결과를 취합해 전달하는 역할을 수행합니다. 



활용 사례


    최근 화제 되고 있는 OpenAI의 대화형 에이전트 챗 GPT를 구축하는 데에도 트랜스포머 기술이 활용됐습니다. 챗 GPT는 초거대 생성형 AI 모델로, NLP와 딥러닝을 기반으로 하여 문장이나 스토리를 생성합니다. OpenAI의 대규모 언어 모델 GPT-3.5를 기반으로 전통적 언어 모델보다 높은 성능을 자랑하며, 데이터 규모가 커지면서 기존에 풀지 못했던 문제를 해결할 수 있습니다. 


GPT는 ‘Generative Pre-trained Transformer’의 약자로, 딥러닝을 통해 스스로 언어를 생성하고 추론하는 것이 가장 큰 특징이라고 할 수 있습니다. 학습 데이터가 많을수록, 딥러닝 과정에서 실제값과 출력값 차이를 최소화하는 가중치(파라미터)를 많이 찾을수록 실제와 AI 출력값의 오차가 줄어듭니다. 


AI 모델 딥러닝에 있어 최대 문제는 대량 데이터 처리였습니다. 위에서 설명한 트랜스포머 알고리즘이 이 문제를 해결했는데, 트랜스포머의 multi head attention, 즉 병렬화로 대규모 데이터셋을 학습할 수 있게 된 것입니다. 데이터를 순차적으로 처리하는 RNN의 한계를 극복하였으며, 문장에서 단어와 단어 간 연관성을 계산하여 맥락과 의미의 학습을 가능케 했습니다. 또한 데이터를 순차적이 아니라 병렬 처리하기 때문에 학습 속도도 향상시킬 수 있었습니다. 일반 AI모델의 학습 연산능력은 2년 간 25배 증가한 반면, 트랜스포머 모델 이후 2년간 약 275배 성장했다고 합니다. 


많은 기업들이 경쟁적으로 트랜스포머 모델을 개발 중이며, OpenAI의 GPT-4, 구글의 BERT 등이 대표적입니다. 최근 국내 기업 네이버와 카카오, 사피온 등도 AI 챗봇 모델을 출시하고 있습니다. 

 



기술과 사례에 대한 인사이트


    앞서 소개한 챗GPT와 같은 생성 AI가 발달해 가면서 산업계에 다양한 영향을 미칠 것으로 보입니다. 먼저 작업의 생산성을 높이는 데 크게 기여할 것입니다. 반복적인 일뿐만 아니라 창조적인 작업도 수행할 수 있기 때문에, 기존의 업무를 더 효율적으로 처리할 수 있을 것입니다.


이로 인해 아직까지는 인간 고유 영역이라 여겨왔던 지식 콘텐츠 산업이 위협받을 수 있다는 우려도 많습니다. 하지만 어떤 의도를 가지고 콘텐츠를 기획하는 것은 결국 인간이며, AI 기술의 한계도 존재합니다. 실시간 학습이 불가한 점이나, 아는 것과 모르는 것이 구분이 명확하지 않은 점 등을 들 수 있습니다.


실제로 챗GPT는 질문자가 가진 지식이나 의도에 따라 다른 답변을 내놓는다고 하는데, 질문자가 잘못된 정보를 바탕으로 질문해도 그에 맞는 왜곡된 답을 한 것으로 나타났습니다. 이처럼 얼마나 구체적이고 좋은 질문을 던지느냐에 따라 더 좋은 답을 구할 수 있습니다. 따라서 인간의 생산성을 향상시키는 도구로써 AI의 가치를 100% 뽑아내기 위해, 지식 산업에 있어 오히려 인간의 깊은 지식과 차별화된 아이디어가 더 중요해질 것이라고 생각합니다. 



함께 생각해 볼 만한 논점 


Q1. 챗GPT 또는 이와 같은 생성 AI가 영향을 미칠만한 다른 산업은 무엇이 있고, 어떤 영향을 미칠 수 있을까요?



Reference

Transformer - 인코덤, 생물정보 전문위키 (incodom.kr)

Transformer는 이렇게 말했다, "Attention is all you need." (promedius.ai)

16-01 트랜스포머(Transformer) - 딥 러닝을 이용한 자연어 처리 입문 (wikidocs.net)

[오늘과학] "챗GPT, 질문자 지식에 따라 다른 답변 한다" : 동아사이언스 (dongascience.com)

챗GPT란 | 사용법, 문제점, 가능성과 산업 전망 - 코드스테이츠 공식 블로그 (codestates.com)


작성자: ITS 23기 김은수



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari