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:
◦
정의: 매 스텝마다 상위 개의 유력한 시퀀스 후보를 동시에 유지하며 탐색 진행
◦
특징: 최종적으로 개의 경로 중 전체 문장의 누적 확률이 가장 높은 것을 최종 결과로 선택함. 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 수식
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 ()을 적용하여, 아무런 정보가 없을 때 모든 클래스를 균등하게 예측하도록 확률값을 강제로 맞춰줌
◦
일 때, 기존 확률값의 역수를 취해 대각 행렬을 만들면 보정이 됨
◦
정답:
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
태스크용 분류기(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 |
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와 가장 유사한 작은 부분집합을 찾는 장치 | 유사도 함수 ()으로 점수화 |
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.


























































