본문 바로가기
전공공부

AI에 대한 이해 - LLM이란 뭔가?

by 시아나 2025. 5. 18.

LLM(Large Language Model)

방대한 텍스트 데이터를 학습하여 자연어를 이해하고 생성하는 인공지능 모델

ChatGPT가 LLM을 기반으로 동작하는 서비스이다.
ChatGPT가 사용하는 GPT-4 모델이 대표적인 LLM이다.

LLM의 주요 특징

  • 대규모 데이터 학습: 십억 개의 단어, 문장을 포함한 방대한 데이터를 학습
  • 자연어 처리(NLP) 능력 : 텍스트 분석, 번역, 감정 분석 등 다양한 자연어 작업이 가능
  • 사람과 비슷한 언어 생성 : 마치 사람이 대화하는 것처럼 자연스러운 텍스트를 만들어낼 수 있음

LLM은 Transformer라는 딥러닝 아키텍처를 활용해서 작동
Transformer : 문맥 이해가 아닌 텍스트 내 단어 간의 관계를 계산하는 것

  • 질문을 받으면 다음에 나올 가능성이 가장 높은 단어를 선택함.

Transformer 아키텍처는 2017년에 논문 “Attention is All You Need"에서 처음 등장한 아키텍처로 자연어 처리(NPL, Natural Language Processing) 개념에서 혁신을 가져온 구조이다.

 

  • 기존 RNN/LSTM(딥러닝 모델)보다 병렬처리가 가능하고 자연어에 대한 이해와 생성 성능이 뛰어나다.

Transformer의 기본 구조

1. 입력 임베딩 (Input Embedding)

입력 문장을 토큰 단위로 쪼갠 뒤, 각 토큰을 고정된 차원의 벡터로 변환함.

토크나이징 방법 : 공백 기준 토크나이징, Subword 토크나이징, Character 단위 토크나이징
토큰으로 자른 텍스트에 고유한 ID를 부여하여 숫자(벡터로 변환해서 처리)
ex) 나는 학교를 간다 ⇒ 나는, 학교를, 간다 ⇒ 154, 983, 465

위치 정보를 위해 Positional Encoding을 추가함. (왜냐하면 Transformer는 순서를 모름)

Positional Encoding
Transformer는 입력을 한꺼번에 병렬처리하기 때문에 입력의 순서를 알 수 없음
때문에 위치 정보를 벡터에 인위적으로 추가하는 Positional Encoding 작업을 한다.
→ 같은 단어라도 문장에서의 위치에 따라 다른 벡터 값을 가지게 됨
  • 단어위치Positional Encoding 벡터
나는 0 [0.0, 1.0, 0.0, 1.0]
학교에 1 [0.8415, 0.5403, 0.0099998, 0.99995]
간다 2 [0.9093, -0.4161, 0.0199987, 0.99980]

 

2. Self-Attention 메커니즘

문장 내의 각 단어가 자신과 다른 모든 단어의 관계를 학습함.

핵심 개념: 단어의 의미는 문맥(Context)에 따라 달라지므로, 다른 단어들과 얼마나 중요한 관계인지 계산함.

⇒ 문장 순서에 관계없이 병렬 연산가능

  • 입력 토큰 → 임베딩 벡터
  • 각 단어에서 세 개의 벡터 생성:
    • Query (Q): 내가 찾고 싶은 것 (중심 단어)
    • Key (K): 내가 어떤 기준에 부합한지 ex) 주어, 목적어, 동사
    • Value (V): 실제 전달할 정보
    • Q,K,V 예시 - “철수가 밥을 먹었다.” / “먹었다”를 기준으로 처리를 할 때
      • Query(Q)
        단어 Query (Q) 의미
        먹었다 "누가 무엇을 먹었는지 알고 싶다" (중심 단어)
      • Key(K), Value(V)
        단어 Key (K) 의미 Value (V) 의미
        철수 "나는 사람이야" (주어 정보) "철수가 주어야"
        "나는 음식이야" (목적어 정보) "밥이 목적어야"
        먹었다 "나는 동사야" "동작이 일어났음"
  • Query · Keyᵗ → 유사도(주의 점수) 계산
  • Softmax 적용(가중치 분포도) → 중요도 확률 분포로 만듦
  나는 학교에 간다
나는 0.222 0.098 0.679
학교에 0.269 0.150 0.581
간다 0.127 0.030 0.843
- 이 가중치를 Value에 곱해서 합산      

 

→ 문맥이 반영된 새 벡터가 됨

3. 멀티헤드 어텐션 (Multi-Head Attention)

Self-Attention을 여러 "머리(head)"로 동시에 수행해서,

각각 다른 방식으로 단어들 간의 관계를 파악하고, 그 결과를 합치는 방식.

⇒ 다양한 시각에서 문맥을 이해할 수 있다.

  • 예시
Head1 Head2 Head3 ...
주어-동사 집중 목적어-형용사 집중 시제 정보 집중 ...

⇒ 각 Head에서 Self-Attention을 수행하고 / 모든 Head의 출력을 Concat (연결) 한다.

⇒ 최종적으로 하나의 출력을 선형으로 변환하여 다음 Layer로 전달한다.

4. Feed Forward Network

각 토큰에 대해 독립적으로 작동하는 작은 신경망 (MLP)

⇒ 위치별 비선형 변환가 특징 추출을 한다.

⇒ 어텐션이 잡아낸 단어간 관계를 각 위치별로 독립적으로 더 복잡한 표현을 학습하는데 도움을 줌

어텐션이 주변 단어들과의 관계를 연결해줬다면, FFN은 그 연결된 정보를 더 깊게 해석하고 다듬어서 ‘단어 하나하나의 의미를 더 명확하게 만들어주는 작업을 함.

⇒ 어텐션이 찾아낸 관계를 받아서 각 단어의 정보를 더 똑똑하게 가공해주는 역할

 

5. 레이어 정규화 & 잔차 연결 (Residual + LayerNorm)

학습 안정성 향상, 깊은 네트워크에서도 정보 손실 없이 전달 가능

잔차 연결은 ‘입력을 그대로 더해줘서 정보 손실 막고 학습 쉽게’
레이어 정규화는 ‘출력 벡터 값을 일정하게 맞춰서 안정적인 학습’

 

정리하자면

  • 입력 임베딩 (Input Embedding)을 통해 텍스트로 들어온 질문을 수치 벡터로 전환하고
  • Self-Attention 메커니즘을 통해 각 단어들이 서로 어떻게 연관되는지 계산한다.
  • 멀티헤드 어텐션 (Multi-Head Attention)을 통해 다양한 관점에서 Sefl-Attention을 진행한다.
  • Feed Forward Network을 통해 각 단어의 정보를 더 깊게 가공하고
  • 레이어 정규화 & 잔차 연결 (Residual + LayerNorm)를 통해 습을 안정화시키고 정보 손실을 줄인다.

 

  • 문장의 병렬 처리가 가능 → 훈련 속도가 빠름
  • 문맥을 훨씬 길게 반영 가능 → 긴 문장, 문서도 잘 이해함
  • 이후의 모든 LLM (BERT, GPT, T5 등)의 기반이 됨

 

LLM을 특정 분야에 전문적으로 사용하기 위한 기술들

1. Fine-Tuning (미세 조정)

  • 이미 사전 학습된 LLM을 가져와서, 특정 분야 데이터(예: 금융, 의료, 법률 등)로 추가 학습
  • 모델이 그 분야 전문 용어, 문체, 지식을 더 잘 이해하도록 만듦
  • 적은 양의 데이터로도 효과를 볼 수 있지만, 데이터 품질과 양이 중요

⇒ 퓨어한 데이터가 대량으로 필요하기 때문에 시간적, 자원적인 비용이 많이 필요하다.


2. Domain Adaptation (도메인 적응)

  • Fine-Tuning과 비슷하지만, 기존 모델의 일부 파라미터만 조정하거나 도메인 특화된 토큰화도 적용
  • 학습 효율을 높이고 과적합을 방지

3. Prompt Engineering (프롬프트 설계)

  • 모델 자체를 바꾸지 않고, 입력 문장(프롬프트)을 잘 설계해서 원하는 답변을 유도
  • 간단한 분야 맞춤형 사용법

4. LoRA / PEFT (Parameter-Efficient Fine-Tuning)

  • 전체 모델을 다 학습하지 않고, 일부 파라미터만 조정해 빠르고 비용 적게 미세 조정
  • 대형 모델을 효율적으로 분야 특화 가능

5. Retrieval-Augmented Generation (RAG)

  • 외부 전문 지식 DB에서 필요한 정보를 찾아서 모델에 함께 제공해 답변 정확도 높임
  • 도메인 지식 업데이트를 쉽게 할 수 있음

⇒ LLM에 질문을 할 때 질문과 함께 관련된 전문 데이터를 함께 제공하여

⇒ 마치 LLM에 전문적인 데이터를 학습시킨것과 같은 효과를 줄 수 있다.

'전공공부' 카테고리의 다른 글

BFF (Backend For Frontend)와 MSA  (5) 2025.07.20
2025.06.15 this의 원리와 예시  (0) 2025.06.15
JavaScript의 클로저와 실행 컨텍스트  (0) 2025.04.08
JavaScript 엔진과 동작원리  (0) 2025.03.31
Command 패턴  (0) 2025.03.29