안녕하세요 독자 여러분, LLM(대형 언어 모델)의 매혹적인 세계에 대해 함께 알아보게 되어 기쁩니다. LLM의 개발은 다양한 분야에 걸쳐 사람들의 관심을 사로잡았습니다. 이 주제를 처음 접하신다면 잘 찾아오셨습니다. 이 블로그에서는 변환기, 해당 구성 요소, 작동 방식 등에 대해 살펴보겠습니다.
시작할 준비가 되셨나요? 뛰어들어보자!
변환기 모델은 자연어 처리(NLP) 작업에 널리 사용되는 일종의 딥러닝 신경망 모델입니다. Transformer 모델은 주어진 입력 데이터의 컨텍스트를 시퀀스로 학습하고 그로부터 새로운 데이터를 생성하는 전문가입니다. 최근 몇 년 동안 변환기는 많은 LLM(대형 언어 모델) 에서 기본 모델로 사용되었습니다.
트랜스포머 아키텍처는 2017년 6월 " Attention Is All You Need "라는 논문에 소개되었습니다. 변환기가 도입된 후 NLP 분야는 변환기 아키텍처를 중심으로 크게 발전했습니다. 많은 LLM(대형 언어 모델)과 사전 훈련된 모델이 변환기를 백본으로 사용하여 출시되었습니다. NLP 분야에서 변환기의 진화에 대한 간략한 개요를 살펴보겠습니다.
2018년 6월, 최초의 Transformer 기반 GPT (Generative Pre-trained Transformers)가 출시되었습니다. 같은 해 후반에 BERT (Bi-Directional Encoder Representations from Transformers)가 출시되었습니다. 2019년 2월 OpenAI는 GPT의 고급 버전인 GPT-2를 출시했습니다. 같은 해에 XLM 및 RoBERTa 와 같은 사전 훈련된 모델이 많이 도입되어 NLP 분야의 경쟁력이 더욱 높아졌습니다.
2020년부터 NLP 분야는 많은 새로운 사전 훈련 모델이 출시되면서 붐을 이루었습니다. 이러한 모델의 성장은 변압기 아키텍처에 크게 좌우되었습니다. 위의 내용은 목록 중 일부에 불과하지만 실제 시나리오에서는 변환기 아키텍처를 기반으로 개발된 모델도 많습니다.
변환기의 구조를 살펴보기 전에 먼저 몇 가지 기본 개념을 이해해 보겠습니다.
사전 훈련은 기계 학습(ML) 모델을 처음부터 훈련하는 행위입니다. 훈련 절차는 처음에 모델의 가중치를 무작위화하는 것부터 시작됩니다. 이 단계에서는 학습을 위해 방대한 양의 데이터가 모델에 공급됩니다. 일반적으로 이 교육 단계에는 비용과 시간이 많이 소요됩니다.
미세 조정은 도메인별 정보를 사용하여 사전 훈련된 모델에서 수행되는 훈련 절차입니다. 사전 훈련된 모델은 광범위한 지식을 얻었으므로 특정 도메인에 적합하지 않게 되었습니다. 이 과정에서 사전 훈련된 모델은 재훈련되지만 이미 일부 개념을 학습했기 때문에 비용이 절감됩니다.
사전 훈련된 모델을 미세 조정하기 위해 전이 학습 기술을 사용합니다. 전이 학습은 모델이 한 사용 사례에서 학습한 지식을 적용하여 다른 사용 사례의 추론을 예측하는 기계 학습 방법입니다.
변환기의 인코더는 데이터 시퀀스를 입력으로 사용하고 지정된 입력 시퀀스에 대한 벡터 시퀀스를 생성합니다. 인코더 모델은 내부에 존재하는 self-attention 레이어를 활용하여 이를 수행합니다. 나중에 이러한 self-attention 레이어에 대해 더 자세히 논의하겠습니다.
이러한 모델은 "양방향" 주의를 기울이는 것으로 자주 설명되며 자동 인코딩 모델이라고도 합니다. 인코더 모델은 주로 문장 분류 및 명명된 엔터티 인식(NER)에 사용됩니다.
인코더 전용 모델은 아키텍처에 인코더만 있는 변환기 모델입니다. 모델이 텍스트의 기본 표현을 이해하는 것을 목표로 하는 텍스트 분류와 같은 사용 사례에서 매우 효율적입니다.
변환기의 디코더는 일련의 벡터를 입력으로 사용하고 일련의 출력 토큰을 생성합니다. 이러한 출력 토큰은 생성된 텍스트의 단어입니다. 인코더와 마찬가지로 디코더도 많은 self-attention 레이어를 사용합니다. 디코더 모델의 사전 훈련은 일반적으로 문장의 다음 단어를 예측하는 것을 중심으로 진행됩니다. 이러한 모델은 텍스트 생성과 관련된 작업에 가장 적합합니다.
디코더 전용 모델은 아키텍처에 디코더만 있는 변환기 모델입니다. 텍스트 생성에 매우 효율적입니다. 디코더는 출력 토큰(텍스트) 생성에 특화되어 있습니다. 기계 번역 및 텍스트 요약은 디코더 전용 모델이 뛰어난 몇 가지 사용 사례입니다.
변환기의 self-attention 레이어를 통해 모델은 입력 텍스트의 단어 간의 장거리 종속성을 학습할 수 있습니다.
즉, 이 레이어는 주어진 입력 텍스트의 특정 단어에 더 많은 주의를 기울이도록 모델에 지시합니다.
모델은 입력 시퀀스에 있는 텍스트 쌍 간의 유사성 점수를 계산하여 이를 수행합니다. 그런 다음 레이어는 이 점수를 사용하여 입력 벡터의 가중치를 계산합니다. 이러한 레이어의 출력은 가중치가 적용된 입력 벡터입니다.
이제 인코더, 디코더 및 Attention 레이어의 기본 개념에 대한 아이디어를 얻었으므로 변환기의 아키텍처를 살펴보겠습니다.
변압기 모델의 구조는 아래 이미지와 유사합니다.
인코더는 왼쪽에 배치되고 디코더는 오른쪽에 배치됩니다. 인코더는 텍스트 시퀀스를 입력으로 받아들이고 벡터 시퀀스를 출력으로 생성하여 디코더에 입력으로 공급됩니다. 디코더는 일련의 출력 토큰을 생성합니다. 인코더는 self-attention 레이어로 쌓여 있습니다.
각 레이어는 입력 벡터를 취하고 이미 논의한 self-attention 메커니즘을 기반으로 가중치가 적용된 입력 벡터를 반환합니다. 가중치 합은 self-attention 레이어의 출력입니다.
디코더에는 self-attention 레이어 스택과 RNN(Recurrent Neural Network)도 포함되어 있습니다. Self-Attention 레이어는 인코더와 동일한 방식으로 작동하지만 RNN은 벡터의 가중 합계를 출력 토큰으로 변환하는 작업을 담당합니다. 따라서 이제 RNN은 가중치 벡터를 입력으로 받아들이고 출력 토큰을 출력으로 생성한다는 것이 명확해졌습니다. 간단히 말해서, 출력 토큰은 출력 문장에 존재하는 단어입니다.
Transformers에 대한 코드 수준의 이해를 얻으려면 Transformers의 PyTorch 구현을 살펴보시기 바랍니다.
Transformers는 대량의 데이터를 처리하는 데 탁월한 능력을 발휘하여 인공 지능(AI) 및 자연어 처리(NLP) 분야에 혁명을 일으켰습니다. Google의 BERT 및 OpenAI의 GPT 시리즈와 같은 주요 모델은 검색 엔진 및 텍스트 생성에 대한 혁신적인 효과를 보여줍니다.
결과적으로, 이는 현대 기계 학습에 필수적이 되어 AI의 한계를 뛰어넘고 기술 발전을 위한 새로운 기회를 창출합니다. 결과적으로, 이들은 현대 머신러닝에서 없어서는 안 될 존재가 되어 AI의 한계를 뛰어넘고 기술 발전의 새로운 길을 열었습니다.
즐거운 학습!
LLM(대형 언어 모델)에 대한 이 시리즈의 다른 기사를 참조하세요.