Search
🪄

[대학원] 고급 자연어 처리 수업 정리

1. NLP 기초

개체명 인식 (NER, Named Entity Recognition)

구조화되지 않은 텍스트에서 사람(PERSON), 기관(ORGANIZATION), 위치(LOCATION) 등의 개체를 찾아 사전에 정의된 카테고리로 분류하는 태스크

어휘 사전 크기 문제

너무 클 경우: 모델의 파라미터가 비대해져 계산 비용(Computation cost)이 매우 커지고, 데이터가 희소해지는 Sparsity Problem이 발생함
너무 작을 경우: 사전에 없는 단어를 처리하지 못하는 OOV (Out-Of-Vocabulary) 문제가 심화됨
해결책 (BPE, Byte Pair Encoding): 서브워드(Subword) 단위로 토큰화를 진행하여 OOV 문제를 완화하고, Low-resource 언어 학습에 효과적이라는 장점이 있음

Perplexity (혼란도)

언어 모델이 학습한 단어의 확률 분포가 입력 텍스트의 확률 분포와 얼마나 잘 일치하는지를 측정하는 평가지표

Decoding 전략

언어 모델이 텍스트를 생성(디코딩)할 때, 다음 단어를 선택하는 방식에 따라 결과물의 품질이 달라진다.
Greedy Search:
정의: 매 타임스텝마다 가장 확률이 높은 단어 하나만 선택하여 다음 단계로 넘어감
특징: 계산이 매우 빠르고 단순함
단점: 당장 눈앞의 최선만 고르기에 전체 문장 관점에서 보았을 때는 최적의 결과가 아닐 확률이 높음
Beam Search:
정의: 매 스텝마다 상위 kk개의 유력한 시퀀스 후보를 동시에 유지하며 탐색 진행
특징: 최종적으로 kk개의 경로 중 전체 문장의 누적 확률이 가장 높은 것을 최종 결과로 선택함. Greedy Search보다 연산량은 많지만, 전체 문장 관점에서 훨씬 더 최적에 가까운 고품질의 텍스트 생성 가능

2. RNN과 Transformer

RNN의 한계점

순차적(Sequential) 연산 구조로 인해 병렬 처리가 불가 ⇒ 속도 느림
입력 시퀀스가 길어질수록 앞부분의 정보가 소실되는 장기 의존성 문제 발생

Transformer 2가지 핵심 장점

1.
모든 단어를 동시에 처리하므로 병렬 연산(Parallel processing)이 가능함
2.
Self-Attention을 통해 거리에 상관없이 문맥을 파악하므로 장기 의존성 문제 해결함

Transformer Encoder 핵심 구조 요소

Multi-head Self-Attention: 문장 내의 단어들이 서로 어떻게 연관되어 있는지 가중치 계산
Positional Encoding: 병렬 처리로 인해 잃어버린 단어의 ‘순서(위치) 정보’를 임베딩에 더해줌

Dot-product Attention 수식

Attention(Q,K,V)=softmax(QKTdk)VAttention(Q, K, V) = softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V

3. 사전학습 언어 모델 (GPT, BERT, BART, T5, UniLM)

GPT (Generative Pre-trained Transformer)

트랜스포머의 Decoder 구조만을 쌓아올린 단방향 언어 모델임
사전학습 태스크: 이전 단어들을 바탕으로 다음 단어를 예측하는 Causal Language Modeling (인과적 언어 모델링) 또는 Left-to-Right Language Modeling을 수행함 (주어진 문맥의 과거 정보 ⇒ 미래 예측 형태)

BERT (Bidirectional Encoder Representations from Transformers)

MLM (Masked Language Modeling): 문장의 일부 토큰을 [MASK]로 가린 뒤, 주변 양방향 문맥을 보고 원래 단어를 예측함
NSP (Next Sentence Prediction): 두 문장이 입력되었을 때, 두 문장이 실제로 이어지는 문장인지 여부를 이진 분류로 예측함

BART (Bidirectional Auto-Regressive Transformers)

Encoder-Decoder 구조로 텍스트를 손상시킨 후 원본으로 복원하는 Denoising Autoencoder 방식으로 학습함
사전학습 태스크
Token Masking: 무작위 토큰은 [MASK]로 대체
Token Deletion: 무작위 토큰을 아예 삭제하여 모델이 지워진 위치를 찾도록 유도
Text Infilling: 여러 개의 연속된 단어(Span)를 하나의 [MASK] 토큰으로 대체
Sentence Permutation: 문서 내 문장들의 순서를 무작위로 섞음
Document Rotation: 문서의 시작점을 무작위 토큰으로 변경하여 문서를 회전시킴

T5 (Text-to-Text Transfer Transformer)

모든 NLP 태스크를 Text-to-Text 형태로 반환함
예시: 입력이 Thank you <X> me to your party <Y> week. 라면, 타겟(Target)은 노이즈 스팬(Span)을 복원하는 형태인 <X> for inviting <Y> last <Z> 가 됨

UniLM

단일 모델로 다양한 마스킹 기법을 사용하여 학습함
Left-to-Right LM: 자기 자신과 왼쪽 문맥만 Attend 가능 (우측 마스킹)
Seq-to-Seq LM: Source는 전체 Attend, Target은 왼쪽 문맥만 Attend

BPE (Byte Pair Encoding)

정의: 언어 모델이 단어를 어떻게 쪼개서 인식할지 결정하는 대표적인 Subword 토큰화 기법. 자주 함께 등장하는 문자 쌍(Pair)을 병합해 나가며 어휘 사전 구축함
장점:
1.
OOV (Out-Of-Vocabulary) 문제 완화: 사전에 없는 처음 보는 단어가 등장하더라도, 이를 더 작은 서브워드 단위로 쪼개어 처리할 수 있으므로 미등록 단어 문제(OOV)를 효과적으로 방어
2.
Low-resource 학습에 효과적: 학습 데이터가 부족한(Low-resource) 언어나 도메인에서도 단어의 형태소적 특징을 잘게 쪼개어 파악하므로 학습 효율이 매우 좋음

4. 프롬프팅 및 In-context Learning

In-context Learning (ICL)은 모델의 파라미터를 전혀 수정하지 않고, 주어진 프롬프트 내의 문맥(Context)만으로 새로운 작업을 수행하도록 하는 방법론이다. GPT-3의 논문 제목 “Language Models are Few-shot Learners”에서 알 수 있듯이, 이 개념은 LLM이 등장하면서 본격적으로 주목받기 시작함

주요 구성 요소

ICL을 제대로 수행하기 위해서는 모델에게 주어지는 프롬프트가 잘 구조화되어야 한다.
Demonstration: 모델이 학습해야 할 패턴을 보여주기 위해, 프롬프트에 포함되는 입력과 정답 쌍(Input-Label paris)임. “K-shot” 학습에서 K개의 예시를 보여주는 것이 바로 Demonstration임
Verbalizer: 모델이 예측한 텍스트 단어(토큰)를 우리가 실제 원하는 분류 레이블(Label)로 매핑해 주는 함수. 언어 모델은 궁극적으로 다음 ‘단어’를 예측할 뿐이므로, 그 단어가 어떤 의미인지 해석하는 기준이 필요함

편향성과 Calibration

ICL은 파라미터를 업데이트하지 않는다는 큰 장점이 있지만, 프롬프트의 구성 방식이나 모델 자체의 성향에 따라 예측 결과가 왜곡되는 편향(Bias) 현상이 발생할 수 있음
주요 편향의 종류
Common Token Bias: 사전 학습 과정에서 매우 자주 등장했던 단어(토큰)를 정답으로 더 자주 예측하려는 경향
Recency Bias / Majority Label Bias: 프롬프트의 맨 마지막(최근)에 위치한 Demonstration의 정답을 따라 하려는 경향
해결책: Calibration (편향 보정)
모델이 어떤 레이블에도 치우치지 않는 내용이 없는 입력(예: N/A or 빈칸)을 주었을 때, 모델이 ‘긍정’과 ‘부정’ 중 특정 클래스를 더 많이 예측한다면, 이는 편향된 상태임
이를 보정하기 위해 Affine Transformation (q^=softmax(Wp^+b)\hat{q} = \text{softmax}(W\hat{p} + b))을 적용하여, 아무런 정보가 없을 때 모든 클래스를 균등하게 예측하도록 확률값을 강제로 맞춰줌
b=[0 0]b = \begin{bmatrix} 0 \ 0 \end{bmatrix}일 때, 기존 확률값의 역수를 취해 대각 행렬을 만들면 보정이 됨
정답: W=[10.650010.35]W = \begin{bmatrix} \frac{1}{0.65} & 0 \\ 0 & \frac{1}{0.35} \end{bmatrix}

5. Parameter Efficient LM Tuning (PELT)

수백억 개의 파라미터를 가진 거대 언어 모델(LLM)을 특정 태스크에 맞게 미세조정(Fine-tuning)할 때 발생하는 비효율을 극복하기 위한 기법이다.
기존처럼 모델의 모든 가중치를 업데이트하는 Full Fine-tuning 대신, 대부분의 사전 학습된 가중치는 고정해 두고 아주 적은 수의 파라미터만 새롭게 추가하거나 학습하여 연산량, 메모리, 저장 공간을 극적으로 절약한다.

Adapter

Transformer 블록 내부의 서브 레이어(예: Feed Forward Network) 사이에 병목 구조를 가진 아주 작은 신경망 모듈을 직렬(Sequential)로 끼워 넣는 방식이다.
장점: 모델의 원래 지식을 보존하면서도 새로운 태스크를 적은 파라미터로 쉽게 학습할 수 있음
단점: 기존 네트워크에 직렬로 추가하기 때문에, 실제 추론 시 데이터를 통과시키는 단계가 늘어나 지연 시간 문제가 발생함

LoRA (Low-Rank Adaptation)

사전 학습된 거대한 가중치 행렬은 그대로 고정해 두고, 가중치의 변화량을 매우 낮은 랭크(Low-Lank)를 가진 두 개의 행렬(A, B)의 곱으로 분해하여 병렬로 학습하는 방식
장점:
학습해야 할 파라미터 수가 기하급수적으로 줄어듦
학습이 끝난 후, 학습된 작은 행렬을 원래의 큰 행렬에 단순히 더해주면 되기에 추론 시 추가적인 Latency가 전혀 발생하지 않음
단점: 적절한 랭크(Rank, r) 값을 찾아야 하는 하이퍼파라미터 튜닝이 필요함

Prefix-Tuning / Prompt Tuning

입력 시퀀스의 맨 앞단이나 각 트랜스포머 레이어의 Key/Value 값에 사람이 읽을 수 없는 학습 가능한 가상의 연속적 벡터(Continuous Prefix/Prompt)를 덧붙여 학습하는 방식
장점: 어댑터처럼 레이어를 깊게 만들지 않으므로 Latency 문제가 없으며, 태스크마다 다른 Prefix만 저장해두면 되므로 매우 가벼움
단점: 모델이 한 번에 처리할 수 있는 최대 시퀀스 길이(Context Window)의 일부를 가상의 Prefix가 차지하게 되므로, 실제 입력할 수 있는 텍스트의 길이가 줄어들 수 있음

6. Fine-Tuning

거대 언어 모델(LLM)을 우리가 원하는 특정 태스크(예: 감정 분석)에 맞게 튜닝(Fine-tuning)하는 두 가지 주요 접근법

Head-based Fine-Tuning

정의: 사전학습된 언어 모델의 꼭대기(Output)에 태스크에 맞는 새로운 분류용 헤드를 추가하여 학습시키는 전통적인 방식
과정: 감성 분석을 예로 들면, 문장이 들어오면 모델이 문맥 벡터를 뽑아내고, 새로 단 헤드가 이 벡터를 받아 긍정/부정 2개 클래스 중 하나로 분류하도록 전체 가중치 업데이트
단점: 사전학습과 다운스트림 태스크 간의 목적함수 간극이 존재함. 이 차이를 좁히기 위해 다량의 학습 데이터가 필요함

Prompt-based Fine-Tuning

p(yxin)=p([MASK]=M(y)xprompt)p(y|x_{in}) = p(\textbf{[MASK]} = \textbf{M}(y) | x_{prompt})
태스크용 분류기(Classification Head)를 새로 달아 학습하는 대신, 사전학습 태스크인 MLM(Masked Language Modeling)의 형태를 그대로 유지한 채 빈칸([MASK])을 맞추도록 유도하는 방식임
장점:
사전학습 지식의 100% 활용
Few-shot 성능의 극대화
단점: 템플릿과 생성된 단어를 레이블로 연결하는 Verbalizer를 어떻게 설계하느냐에 따라 성능 편차가 큼

7. Hallucination of Language Models

Types of Hallucination in Large Language Models

Faithfulness Hallucination (= Factual Consistency)
정의: 생성 텍스트가 입력 context(souce)에 충실하지 않음
기준점: 소스 내부의 사실
Ex) Context에는 2023년 10월인데 답은 “2006년 전쟁 선포”라고 함
Factualness Hallucination (= Factual Correctness)
정의: 생성 텍스트가 world knowledge에 비추어 틀림
기준점: 외부 지식
Ex) 달에 처음 걸은 사람은 닐 암스토롱인데, 다른 사람을 얘기함
발생 원인
데이터: 모순 및 부정확한 지식 / 반복 데이터로 인한 지식 편향
모델: autoregressive 특성 / exposure bias (학습-추론 불일치) / 부정확한 parametic knowledge

Hallucination Detection

1. QA-based Evaluation
아이디어: 생성된 요약으로 질문을 만들고, 그 질문에 원문과 요약이 같은 답을 내는지 비교
절차: 요약 Y로 질문 생성 → 같은 질문을 원문 X와 요약 Y에 각각 답변 → 답이 다르면 환각
2. Developing Checkers through Data Augmentation
목표: (Source, Text) → Score를 내는 metric을 학습
관건: consistent 샘플은 쉽게 확보되지만 inconsistent 샘플은 인위적으로 생성해야 함
방법
설명
예시
① Rule-based Substitution
사전(dictionary)으로 치환
entity(인명·기관), number(수치) 교체
② Mask-and-Fill
사전학습 LM으로 치환 ("Masking"→"Filling")
entity를 가리고 모델이 새 값으로 채움
3. LLM-based Evaluation
기법
핵심
특징
ChatGPT Evaluator
"요약이 기사와 일관적인지 판단하라" 프롬프트
미묘한 누락(half→삭제)을 오판하기도 함
SelfCheckGPT (EMNLP'23)
동일 쿼리로 N개 stochastic 샘플을 뽑아 원 응답과의 일관성 측정
Zero-resource·Black-box. 환각이면 샘플마다 답이 제각각
LM vs LM (Cross-examination)
다른 LM이 주장을 심문(질문 생성→후속 질문→사실 판정)
예: "결혼의 신=Hera" 주장을 심문해 틀림으로 결론
SelfCheckGPT
LM vs LM (Cross-examination)

Mitigating Hallucination

1. Retrieval-Autmented Generation (RAG)
외부의 권위 있는 지식을 검색해 응답 보강 → 최신성, 검증 가능성 확보
순서가 핵심: Information Retrieval → AI text generation (검색이 생성보다 먼저)
LLM-Augmenter: 외부 증거로 후보 응답 생성 → 환각 검증 → 피드백 생성 후 통과할 때까지 반복
2. Self-refinement through Feedback and Reasoning
생성→검증→교정을 반복하는 계열.
기법
메커니즘
Self-Refine
단일 모델이 Feedback Refine 루프를 돎
Chain-of-Verification (CoVe)
초안 → 검증 질문 계획 → 질문 답하며 사실 확인 → 검증된 최종 응답
CRITIC (ICLR'24)
외부 도구(검색·계산기·코드)로 Verify→Correct 반복. 정지: 최대 반복 / 2라운드 연속 동일
EVER
실시간 개념 병렬 검증(True/False/NEI) 후 교정. Intrinsic(모순) vs Extrinsic(검증 불가) 환각 구분
3. Post-editing (사후 교정)
생성이 끝난 뒤 오류 탐지 + 교정
예: "Don Clotworthy hit a jogger..." → 원문 근거로 David Crosby로 치환만 하면 됨
4. Context-aware Decoding
디코딩 단계 자체를 조정해 모델이 context를 신뢰하도록 유도
context 있을 때 vs 없을 때 분포 차이를 증폭하는 대조적 디코딩

8. Retrieval-based LMS

Retrieval-based LLM? (Definition & Motivation)

정의
기본적으로 언어모델: 다음 토큰 확률을 예측
차별점: 추론 시점에는 외부 datastore에서 검색(retrieve)함
지식을 LM 파라미터 안에 저장하는 대신 non-parametric index(외부 색인)에 저장
그래서 semiparametric / non-parametric model 이라고도 부름
왜 검색 기반인가
동기
설명
① 지식이 쉽게 낡고 갱신이 어려움
예: "트위터 CEO는?" → 모델은 cutoff 시점의 Jack Dorsey만 앎(실제는 Linda Yaccarino). knowledge editing은 아직 scalable하지 않음. 반면 datastore는 재학습 없이 갱신·확장 가능.
② 출력 해석·검증이 어려움
검색 결과로 지식 출처(source)를 추적interpretability & control 향상. (citation을 단 생성, Nakano'21·Menick'22·Gao'23)
배경 — 지식 집약형(Knowledge-Intensive) NLP
대표 태스크: open-domain QA, fact checking, entity linking
구조: Retriever → (Text Collection에서 근거 검색) → Reader → 답

추론 파이프라인: Datastore → Index → Search

추론은 세 요소로 구성됩니다.
요소
정의
핵심
Datastore
Raw text corpus
수십억~수조 토큰. 라벨 없음(not labeled), 구조화 안 됨(not structured / 지식베이스 아님)
Index
query와 가장 유사한 작은 부분집합을 찾는 장치
유사도 함수 (sim\text{sim})으로 점수화
Search
빠른 최근접 이웃 탐색(fast nearest neighbor search)
Datastore+Index+Search = Retrieval

검색 기반 LM의 분류: What / How / When

세 가지 축으로 모든 방법을 분류합니다.
선택지
What to retrieve?
Chunks(passage) / Tokens / Others
How to use retrieval?
Input layer / Intermediate layers / Output layer
When to retrieve?
Once / Every n tokens (n>1) / Every token
1. REALM (Guu et al. 2020)
(1) Retrieve stage
입력 x와 각 passage z를 인코딩 → 내적 상위 k개 선택
Wikipedia 13M chunks(passages, 논문에선 documents) 에서 fast nearest neighbor search로 k개 블록 검색
(2) Read Stage
검색된 각 z를 [MASK] z [SEP] 형태로 LM에 넣어 (P(y|x,z))를 얻고 가중 평균
전체 D 합산은 불가능 → 상위 k개 chunk만 근사(top-k 밖이면 0)
2. Retrieve-in-context LM
검색된 chunk를 입력 앞에 그대로 prepend해서 LM에 넣음
쟁점
a.
“q = x가 꼭 필요한가?” → 입력 전체가 아니라 뒷부분(최근 토큰)을 query로 쓰는 편이 “앞으로 올 토큰”과 더 관련됨
b.
“얼마나 더 자주 검색?” → 자주 검색할수록 perplexity 개선 (단, 추론 시간 비용 증가)
3. kNN-LM
검색을 다르게 사용: 데이터의 모든 토큰에 대한 non-parametric 분포를 출력 → “output layer”에서의 결합
직관: “datastore에서 다음 토큰에 가까운 토큰 = 우리가 가진 prefix에 가까운 prefix = 우리가 가진 vector에 가까운 vector”

세 모델 비교

방법
What
How
When
REALM (Guu 2020)
Text chunks
Input layer
Once
Retrieve-in-context LM (Shi/Ram 2023)
Text chunks
Input layer
Every n tokens
kNN-LM (Khandelwal 2020)
Tokens
Output layer
Every token
주의: 같은 접근(chunk·input layer)을 긴 입력·긴 출력 LM에 적용하면, 짧은 입출력의 REALM에선 덜 중요했던 문제가 부각됨 → 많은 chunk를 자주 검색하면 매우 비효율적

학습 방법

0. 왜 학습이 어려운가
Datastore가 너무 큼 → 학습 중 index를 갱신하는 비용이 막대함
LM 자체 학습도 매우 비쌈
1. 네 가지 학습 패러다임
방법
핵심 아이디어
① Independent Training
retriever와 LM을 독립적으로 학습. 서로 영향 없음
② Sequential Training
retriever를 먼저 학습 후 고정(fixed), LM을 retrieval에 의존하는 목적함수로 학습 (retriever엔 stop-gradient)
③ Joint + Asynchronous Index Update
retriever·LM 공동 학습. index가 "stale(낡은)" 상태를 허용하고 T 스텝마다 재구축
④ Joint + In-batch Approximation
공동 학습하되 full index 대신 "in-batch index"(배치 내 근사) 사용
2. Independent Training
(a) Sparse Retrieval: TF-IDF / BM25
단어 어후 ㅣ중첩(lexical overlap)을 희소 벡터로 표현
학습 불필요
(b)Dense Retrieval: DPR
query, passage를 각각 인코딩 → Maximum Inner-Product Search (MIPS)로 검색
대조 학습(Contrastive learning): positive는 당기고 negative는 밀어냄
장점
단점
off-the-shelf 모델 사용(추가 학습 불필요)
LM이 retrieval 활용하도록 학습되지 않음
각 부분을 독립적으로 개선 가능
retriever가 LM 태스크/도메인에 최적화되지 않음

Reasoning LLMs

Chain-of-Thought Reasoning

Chain-of-Thought (CoT): 최종 Output을 내기 위해서 reasoning step의 여러 번 순서
Chain-of-Thought Prompting: <input, output> → <input, chain of thought, output>

Developing Deepseek-R1-Zero

Group Relative Policy Optimization (GRPO)

PPO에서 critic(value model)을 제거하고, 그 자리를 ‘같은 질문에 대한 여러 응답 그룹의 상대 비교'로 대체한 강화학습 알고리즘
PPO의 critic 부담
표준 PPO는 Policy LLM, Reference LLM, Reward LLM, Value LLM 네 개를 굴림
여기서 Value LLM(critic)은: 1) 메모리 및 연산 2배, 2) 학습 난이도 높음, 3) 부정확한 신호
핵심 아이디어: Group-Relative Advantage
GRPO는 critic을 없애는 대신 이렇게 함:
각 질문 q에 대해 이전 정책 π_old로부터 출력 그룹 {o₁, o₂, …, o_G}를 샘플링함
보상 모델로 각 출력 그룹에 대한 점수 {r₁, …, r_G}를 매김
그룹의 평균을 빼고 표준편차로 나누어 advantage A_i를 계산함
즉 그룹 평균이 critic의 baseline 역할을 대신함
critic 네트워크를 완전히 제거하고 프롬프트마다 여러 출력을 샘플링해 그 그룹 평균을 critic의 대용으로 사용하는 것
얻는 이점
LM 백본에서 Value LLM을 학습하는 어려움을 회피
Value LLM 가중치를 메모리에 둘 필요가 없음
특히 R1-Zero가 인상적인데, SFT나 대량의 CoT 주석에 의존하지 않고, 베이스 모델에 직접 RL을 적용해 자기검증 및 반성 같은 정교한 추론 행동으로 스스로 발현시킴
한계점
Poor readability: 논리는 맞는데 읽기 어려움. 베이스 모델이 순수 RL(GRPO)만 적용했고, 보상은 규칙 기반(정답 보상 + 형식 보상) 뿐이었음. 보상이 오직 “정답인가 / 형식을 지켰는가”만 보기 때문에, 모델 입장에서는 사람이 읽기 좋게 쓸 유인이 전혀 없음
Lauguage mixing: 하나의 응답 이내에 영어와 중국어 둥 언어가 섞임

Developing Deepseek-R1

Rejection Samping and Supervised Fine-Tuning

Language Model as Agents

Short-term Memory

모델의 Context Window: short-term memory임
Context Window 안에 Conversation history + Question 포함됨

Long-term Memory

Memory Types

Using Tools to LLM

MCP (Model Context Protocol)

왜 MCP가 필요한가: Tool 사용의 고질적 문제
도구(tool)은 에이전트 프레임워크의 핵심 구성요소로, LLM이 세계와 상호작용하고 능력을 확장하게 해줌
그런데 API가 많아지면 도구 연결이 골칫거리가 됨. 각 도구마다 다음 세 가지를 수동으로 처리해야 함
1.
Manually tracked: 어떤 도구가 있는지 일일이 추적해 LLM에 먹여줘야 함
2.
Manually described: 각 도구의 JSON 스키마까지 포함해 직접 기술해야 함
3.
Manually updated: 도구의 API가 바뀔 때마다 손으로 갱신해야 함
MCP란 & 세 가지 구성요소
이 문제를 풀기 위해 Anthropic이 Model Context Protocol(MCP)을 개발함
MCP는 Weather 앱이나 GitHub 같은 서비스에 대한 API 접근을 표준화(standardize)함
1.
MCP Host: 연결을 관리하는 LLM 애플리케이션 (예: Cursor, Claude, OpenAI 등)
2.
MCP Client: MCP 서버와 1:1 연결을 유지 (서버 하나당 클라이언트 하나)
3.
MCP Server: LLM에 context, tools, capabilities를 제공 (GitHub, Database 등 외부와 연결)
Host Server 사이는 Unified API로 묶이고
Server 실제 서비스 사이는 각 서비스의 Custom API가 들어감
⇒ 덕분에 Host(LLM 앱)는 서비스마다 다른 API를 몰라도 되고, 서비스별 차이는 각 Server가 흡수함
MCP 동작 흐름: “최근 커밋 5개 요약”
1.
발견 단계 (Discovery): “어떤 도구가 있지?”
a.
사용자가 프롬프트를 Host에 전송 (send prompt to host)
b.
Host (+ Client)가 Server에 사용 가능한 도구 목록 질의 (list all available tools)
c.
Server가 도구 목록을 반환 (return tools): /list_commits, /update_commits, /pull_request, …
2.
호출 단계 (Invocation): “도구를 골라 실행한다”
a.
Host가 프롬프트 + 도구 목록을 LLM에 전달 (send prompt + tools to LLM)
b.
LLM이 /list_commits사용하기로 선택 (use /list_commits)
c.
Client가 그 호출을 Server에 전달 (communicate /list_commits)
d.
Server가 실제 GitHub에 대해 실행 (use /list_commits)
e.
GitHub → Server로 결과 반환 (return results)
f.
Server → Client로 결과 + 사용한 도구를 반환 (return results + tool used)
3.
종합 단계 (Synthesis): “결과로 최종 답을 만든다”
a.
Host가 프롬프트 + 도구 출력을 LLM에 전달 (send prompt + tool output to LLM)
b.
LLM 출력을 Host로 반환 (return LLM output to Host)
c.
최종적으로 LLM이 결과를 파싱해 사용자에게 답변 생성

Multi-Agent Collaboration

Multi-modal LLMs

ViLBERT

Vision Transformer

CLIP (Contrastive Language-Image Pre-training, OpenAI 2021)

생성 모델이 아니라 이미지-텍스트 정렬 모델임
Dual-encoder: 이미지 인코더(ViT or ResNet)와 텍스트 인코더(Transformer)가 각각 입력을 공유 임베딩 공간으로 매핑
대조 학습(Contrastive): 약 4억 개 웹 image-text 쌍으로 학습. 배치 N개에 대해 NxN 유사도 행렬을 만들고, 대각선의 매칭 쌍은 코사인 유사도를 높이고 나머지는 낮추는 대칭적 InfoNCE 손실 사용
Zero-shot 분류: "a photo of a {class}" 같은 텍스트 임베딩과 이미지 임베딩을 비교해 라벨 없이 분류
역할: CLIP의 ViT 인코더가 이후 LLaVA, Llama 3.2-V 등의 비전 백본으로 재사용됨

LLaVA

가장 단순하면서 이후 VLM의 표준 아키텍처가 된 구조임
구성: CLIP ViT-L/14 (frozen) → Projection → LLM(Vicuna/LLaMA)
연결 방식:
1.
비전 인코더 출력을 projection으로 LLM 임베딩 차원에 맞춰, 시각 토큰을 텍스트 토큰처럼 입력 앞에 prefix로 붙임
2.
입력층(input-layer) 결합
Projection: LLaVA-1.0은 단일 linear layer, LLaVA-1.5는 2-layer MLP로 업그레이드
2단계 학습:
1.
Feature alignment: 비전/LLM은 frozen, projection만 학습
2.
Instruction tuning: projection + LLM을 end-to-end 학습

Llama 3.2-Vision

LLaVA와 연결 철학이 정반대인 점
백본:
1.
사전학습된 Llama 3.1 텍스트 모델 위에, ViT-H/14 비전 인코더로 이미지 표현을 추출
2.
Vision adapter로 frozen 언어모델에 통합
연결 방식 - Cross-attention 어댑터:
이미지 인코더의 시각 토큰과 언어모델 토큰 사이에 cross-attention 층을 삽입하며
이 층은 코어 언어모델의 self-attenion 4개마다 한 번씩 적용됨
즉 시각 정보를 prefix가 아니라 LLM 중간층에 주입
무엇이 frozen? 어댑터 학습 시 Image Encoder 파라미터는 업데이트하되 언어모델 파라미터는 의도적으로 고정해, 텍스트 전용 성능을 그대로 보전

Qwen 2.5-VL

"native 해상도 ViT + window attention + MLP merger + M-RoPE(절대시간)로 이미지·문서·비디오를 통합.”
구성: LLM(Qwen2.5) + Vision Encoder(재설계 ViT) + MLP 기반 Vision-Language Merger의 세 컴포넌트
Vision Encoder:
native dynamic-resolution ViT를 scratch부터 학습
Window Attention 도입: native 해상도를 유지하면서 연산량을 크게 절감
대부분 층은 지역적 window attention을, 일부 층만 전역 attention을 적용하며 RMSNorm과 SwiGLU 사용
MLP Merger(토큰 압축):
인접한 4개 패치 특징을 공간적으로 묶어 concat한 뒤 저차원으로 투영해 텍스트 임베딩과 정렬
긴 시간 토큰 시퀀스의 효율 문제 완화

Open-source Large Language Models

Muse Spark (After LLaMA)

"별도 인코더 없이 처음부터 멀티모달로 설계한, Llama 4급 성능을 1/10 연산으로 내는 Meta의 비공개 에이전트 모델.”
10배 연산 효율: Llama 4 Maverick과 동등 이상 성능을 FLOPs 한 자릿수 절감으로 달성
진정한 Omnimodal: Text, Audio, Image, Video를 처음부터 (ground-up) 통합 + 별도 인코더를 없애 정보 병목 제거
에이전트 및 생태계 준비: 복잡한 다단계 자율 워크플로우 최적화, Instagram 등 Meta 핵심 플랫폼에 깊이 통합

Qwen Series

유연한 아키텍처: 0.6B~235B+의 넓은 모델 스펙트럼. Dense와 MoE 변형을 모두 제공
매끄러운 태스크 전환: 고난도 추론용 “thinking mode” (수학, 코드)와 자연스러운 대화용 “non-thinking mode”를 동적으로 전환
핵심 강점:
1.
추론, 코드 생성 대폭 향상
2.
창작, 롤플레잉, instruction following 우수
3.
복잡한 에이전트 기반 태스크
다국어: 100개 이상 언어의 번역, instruction following 지원

Grouped Query Attention

Mixtral and Mixture of Experts

“50대의 추교현이 20대의 추교현에게 감사할 수 있도록 하루하루 최선을 다해 살고 있습니다.”
The End.