본문 바로가기
AI/LLM

[LLM] LLM 101 - 초보자를 위한 대규모 언어 모델 기초

by 데이터 벌집 2024. 1. 16.

인공 지능(AI)은 현대 기술의 가장 혁신적인 분야 중 하나로, 기계가 인간처럼 사고하고 학습하며 문제를 해결할 수 있도록 하는 것을 목표로 합니다. AI의 발전은 다양한 하위 분야로 나뉘며, 각 분야는 특정 목적과 기능을 가지고 있습니다. 머신 러닝(ML)과 딥 러닝(DL)은 AI의 핵심 기술로, 데이터로부터 학습하여 성능을 개선하는 능력을 가지고 있습니다. 자연어 처리(NLP)는 기계가 인간의 언어를 이해하고 생성하는 능력을 포함하며, 생성형 AI는 새로운 콘텐츠를 만들어내는 데 집중합니다. 이 모든 요소는 현대 기술 환경에서 AI가 얼마나 중요한 역할을 하는지를 보여줍니다.

LLM 101 - 언어모델 기초


AI (인공 지능)

AI는 Artificial Intelligence(인공 지능)를 의미합니다. 이는 기계가 사람처럼 생각하고, 배우며, 문제를 해결할 수 있도록 프로그래밍된 시뮬레이션을 말합니다.

예시:

  • Machine Learning (ML, 머신 러닝): AI의 부분 집합으로, 특정 작업에 대해 명시적으로 프로그래밍되지 않고 데이터로부터 학습하고 성능을 개선하는 것을 포함합니다.
  • Deep Learning (딥 러닝): 머신 러닝의 하위 분야로, 데이터의 복잡한 패턴을 학습하고 표현하기 위해 지능형 알고리즘을 사용합니다.
  • Natural Language Processing (NLP, 자연어 처리): 기계가 인간 언어를 이해하고 해석하며 생성할 수 있도록 하는 데 중점을 둡니다.

 

AI, ML, NLP, DL과의 관계, 출처: https://www.nomidl.com/natural-language-processing/difference-between-deep-learning-and-natural-language-processing/


Generative AI (생성형 AI)

생성형 AI는 새로운 콘텐츠를 생성할 수 있는 인공 지능 유형을 말합니다. 이는 코드(Co-Pilot), 이미지(Dalle-E), 텍스트(ChatGPT), 오디오 또는 비디오와 같은, 인간이 만든 콘텐츠와 유사하거나 그것을 모방할 수

있습니다. 전통적인 AI 시스템이 특정 작업에 집중하거나 잘 정의된 문제를 해결하는 데 초점을 맞춘 반면, 생성형 AI 모델은 훈련 중에 대규모 데이터셋에서 배운 패턴과 특성을 기반으로 새로운 데이터를 생성할 수 있습니다.

 

 

예시:

  • Generative Adversarial Networks (GANs, 생성적 적대적 네트워크): GANs는 생성기와 판별기 두 개의 신경망으로 구성됩니다. 생성기는 새로운 데이터 인스턴스를 생성하고, 판별기의 업무는 실제 데이터와 생성된 데이터를 구분하는 것입니다. 이 두 네트워크는 경쟁적으로 훈련되며, 훈련이 진행됨에 따라 생성기는 현실적인 데이터를 더 잘 생성하게 됩니다.
  • Variational Autoencoders (VAEs, 변분 오토인코더): VAEs는 입력 데이터를 낮은 차원의 표현 (잠재 공간)으로 인코딩한 후 다시 디코딩하여 새로운 데이터를 생성하는 오토인코더 모델의 한 유형입니다. 잠재 공간은 학습된 확률 분포에서 샘플링하여 모델이 새로운 데이터 포인트를 생성할 수 있게 합니다.
  • Transformers and Language Models (트랜스포머 및 언어 모델): OpenAI의 GPT (Generative Pre-trained Transformer)와 같은 모델들은 트랜스포머 아키텍처를 사용하여 입력에 제공된 맥락을 기반으로 인간과 유사한 텍스트를 생성합니다. 이 모델들은 자연어 생성 작업에서 인상적인 결과를 달성했습니다.
  • Recurrent Neural Networks (RNNs, 순환 신경망): RNNs는 텍스트나 음악 생성과 같은 생성적 작업에도 사용될 수 있습니다. 데이터의 순서와 맥락이 중요한 순차적 데이터에 특히 적합합니다.

 

생성형 AI, 출처: https://aws.amazon.com/blogs/enterprise-strategy/how-technology-leaders-can-prepare-for-generative-ai/


언어 모델 (Language Model) 🌐📚

 

언어 모델은 인간의 언어를 이해하고 생성하기 위해 설계된 인공지능 모델입니다. 이 모델의 주요 목표는 주어진 상황에서 단어 시퀀스의 발생 가능성을 예측하는 것으로, 이는 일관되고 문맥에 적합한 언어를 이해하고 생성하는 데 필수적입니다.

 

언어 모델은 일반적으로 책, 기사, 웹사이트, 소셜 미디어 게시물과 같은 대량의 텍스트 데이터를 통해 훈련되며, 이를 통해 단어와 구문 사이의 통계적 패턴과 관계를 학습합니다. 이러한 학습 과정을 통해 모델은 언어의 문법, 구문론, 의미론을 파악할 수 있습니다.

 

대규모 언어 모델 (Large Language Model, LLM) 🤖

 

대규모 언어 모델은 방대한 양의 데이터에 기반하여 훈련되고, 수많은 매개변수를 포함하는 인공지능 모델을 지칭합니다. 이러한 모델은 인간의 언어를 높은 수준으로 이해하고 생성하는 데 목표를 두고 있습니다. 대규모 언어 모델은 일반적으로 딥러닝 모델의 한 부류로, 특히 트랜스포머(Transformer)와 같은 구조를 기반으로 합니다.

 

가장 유명한 대규모 언어 모델의 예로는 OpenAI가 개발한 GPT-3가 있습니다.

트랜스포머 (Transformers) 🚀

트랜스포머 구조는 시퀀스에서의 의존성을 이해하기 위해 자기 주의(self-attention)를 사용하는 딥러닝 모델입니다. 이는 장거리 관계를 효율적으로 처리하고 다양한 자연어 처리(NLP) 및 기타 시퀀스-대-시퀀스 작업에서 최첨단 결과를 달성하는 데 도움을 줍니다.

 

자기 주의는 모델이 시퀀스 내 각 단어의 중요성을 다른 모든 단어에 비해 가중치를 두고 평가할 수 있게 하는 핵심 메커니즘입니다. 이는 각 단어가 처리과정에서 얼마나 중점을 두어야 하는지를 나타내는 주의 점수를 계산합니다. 트랜스포머는 병렬로 작동하며 쉽게 확장할 수 있습니다.

 

사용 사례 예시:

  1. 기계 번역 (Machine Translation) 🌍📝
    • 트랜스포머는 한 언어로 된 입력 문장을 받아 다른 언어로 해당 번역을 생성하는 기계 번역 작업에 널리 사용됩니다.
  2. 텍스트 요약 (Text Summarization) 📄✂️
    • 긴 문서를 읽고 핵심 정보를 포착하며 문맥과 의미를 유지하는 간결하고 일관된 요약을 생성하는 데 뛰어납니다.
  3. 언어 이해 및 질문-응답 (Language Understanding and Question-Answering) 💬🔍
    • 감정 분석, 명명된 개체 인식, 질문-응답 시스템과 같은 자연어 이해가 필요한 작업에 사용됩니다.

 

 

텍스트요약, 기계번역, 언어 이해 및 질문 응답 으로 사용할수있는 LLM


인코더/디코더 구조 (Encoder/Decoder Architecture) 🔁

  • 인코더 (Encoder): 트랜스포머 구조에서 입력 시퀀스를 처리하고, 단어 간의 의미와 관계를 포착하는 고차원 표현을 생성하는 부분입니다.
  • 디코더 (Decoder): 기계 번역과 같은 작업에서, 인코더의 표현과 자기 주의 (self-attention) 메커니즘을 사용하여 인코딩된 입력을 기반으로 출력 시퀀스(예: 번역)를 단어별로 생성합니다.

 

출처: Transformer encoder-decoder model diagram (Attention is all you need)

 

  1. 입력 (Inputs): 각 단어는 해당 단어를 나타내는 숫자(토큰)로 대체됩니다.
  2. 임베딩 (Embedding): 각 단어는 벡터화됩니다. 단어 시퀀스와 단어 간의 관계를 나타냅니다.
  3. 인코더 (Encoder): 멀티 헤드 자기 주의를 사용하여 단어의 중요성과 관계를 나타내는 다양한 옵션을 계산합니다.
  4. 피드 포워드 네트워크 (Feed Forward Network): 모든 토큰에 대한 확률을 계산합니다.
  5. 소프트맥스 출력 (Softmax Output): 모든 확률 중에서 가장 높은 점수를 찾습니다.

영어 문장 "Hello, how are you?"를 한국어로 번역하는 과정 예시 🇬🇧➡️🇰🇷

  • 입력 텍스트 및 토큰화 (Input Text and Tokenization):
    • 첫 번째 단계는 입력 문장을 개별 단어 또는 부단어로 토큰화하는 것입니다. 각 토큰은 특정 단어 또는 부단어를 나타내며 고유한 정수 ID에 매핑됩니다.
    • 예: 5432 (Hello), 1235 (how), 8734 (are), 2349 (you)
  • 입력 임베딩 (Input Embeddings):
    • 토큰들은 임베딩이라는 밀집 벡터 표현으로 변환됩니다. 이 임베딩들은 입력 시퀀스의 각 단어의 의미를 포착합니다.
    • 예를 들어, “Hello”는 [0.25, -1.02, 0.76], “how”는 [-0.12, 0.89, -0.34]로 표현될 수 있습니다.
  • 위치 인코딩 (Positional Encoding):
    • 트랜스포머는 시퀀스 내 단어의 순서를 본질적으로 이해하지 못하기 때문에, 임베딩에 위치 인코딩이 추가됩니다. 이 위치 인코딩은 문장 내 단어의 위치에 대한 정보를 전달합니다.
  • 인코더-디코더 구조 (Encoder-Decoder Architecture):
    • 기계 번역에서 트랜스포머는 인코더-디코더 구조를 사용합니다. 인코더는 입력된 영어 문장을 처리하고, 디코더는 해당 한국어번역을 생성합니다.
  • 인코더 내 자기 주의 (Self-Attention in the Encoder):
    • 인코더는 자기 주의 메커니즘을 사용하여 입력 문장을 분석하고, 각 단어를 처리할 때 관련 단어에 주의를 기울입니다. 이는 단어 간의 의존성을 파악하고 문장의 맥락을 이해하는 데 도움이 됩니다.
  • 인코더 표현 (Encoder Representation):
    • 자기 주의 과정 후, 인코더는 영어 문장의 고차원 표현을 출력합니다. 이 표현에는 단어의 의미와 관계에 대한 정보가 포함됩니다.
  • 디코더 내 자기 주의 (Self-Attention in the Decoder):
    • 디코더에서는 이미 생성된 한국어 단어들과 인코더 표현을 분석하기 위해 자기 주의를 사용합니다. 디코더는 이미 생성된 출력의 중요한 부분과 인코더에서의 관련 정보에 주의를 기울이며 다음 단어를 생성합니다.
  • 디코딩 및 출력 (Decoding and Output):
    • 디코더는 인코더 표현과 이미 생성된 한국어 단어를 참조하며 단어를 하나씩 생성합니다.
    • 모델은 문장 종료 토큰을 생성하거나 사전에 정의된 최대 길이에 도달할 때까지 디코딩을 계속합니다.
  • 탐욕적 또는 빔 탐색 (Greedy or Beam Search):
    • 디코딩 중 모델은 탐욕적 접근 방식을 사용하거나, 빔 탐색을 통해 여러 후보 번역을 고려하고 가장 가능성 있는 시퀀스를 선택할 수 있습니다.
  • 출력 텍스트 및 디토큰화 (Output Text and Detokenization):
    • 생성된 한국어 토큰은 다시 인간이 읽을 수 있는 텍스트로 변환되어, 예를 들어 "안녕, 잘 지냈어?" (영어 "Hello, how are you?"의 한국어 번역)와 같은 번역된 문장을 결과로 제공합니다.

 

Machine Translation

AI 기술의 놀라운 진보는 우리 삶의 많은 부분에 혁신을 가져왔습니다. 인코더/디코더 구조와 같은 복잡한 아키텍처는 기계 번역에서 중요한 역할을 하며, 이는 언어 장벽을 극복하는 데 크게 기여합니다. 대규모 언어 모델(Large Language Model, LLM)과 같은 고급 시스템은 텍스트 요약, 질문-응답 시스템 등 다양한 분야에서 활용됩니다. 이러한 기술의 발전은 지속적으로 우리의 생활 방식을 변화시키며, AI의 미래는 더욱 밝고 다양한 가능성으로 가득 차 있습니다.