danbibibi
article thumbnail

LLM(Large Language Model)이란?

  • Parameter 파일 + 실행 파일 (by Andrej Karpathy)
  • 결국 수많은 텍스트 데이터의 패턴을 익혁서 학습한 패턴을 바탕으로 대답을 생성
  • 파라미터 하나 당 보통 2byte(요즘은 좀더 경량화=양자화 해서 1byte 미만에 매칭되기도함), 파라미터 1B 모델이라면 20GB 용량
  • 20GB 모델 돌리려면, 20GB 정도의 ram 필요
  • (이전엔 모델이 크면 과적합이라 생각 > ) 2019년 말 OpenAI의 Deep Double Descent = 모델을 진짜 많이 키워보니 오히려 좋아지더라 

 

library

Browse Ollama's library of models.

ollama.com

> gamma3, qwen3 등

cursor AI
소프트웨어 개발자를 위한 AI 기반 코드 편집기
일반적인 코드 에디터에 인공지능을 통합하여, 보다 효율적으로 코드를 작성하고 디버깅할 수 있도록 돕는 것이 목적
🤖 LLM에서의 Emergence 사례
📌 GPT와 같은 모델에서 관찰된 Emergent 능력:
GPT-2까지는 어려웠던 능력이 GPT-3 이상부터 갑자기 등장
예: 산술 계산, 프로그래밍 능력, 체계적인 추론 등
모델 크기가 임계치를 넘으면서 비선형적으로 새로운 능력이 튀어나옴

📚 관련 논문:
"Emergent Abilities of Large Language Models" (Wei et al., 2022)
→ 성능이 선형적으로 증가하다가 어느 순간 갑자기 뛰는 지점이 있음

 

Simple LLM

  • 트랜스포머(Transformer) 아키텍처 기반
  • 입력된 문장을 이해하고, 그 다음 단어나 문장을 예측하여 출력 생성
  • 일반적으로 텍스트 생성, 요약, 번역, 질의응답 등에 사용
  • 입력/출력 모두 텍스트
  • 대규모 텍스트 데이터로 사전 학습됨 (예: 책, 웹사이트, 코드 등)
  • 대표 모델: GPT-2, GPT-3, BERT, RoBERTa

 

SLM (Small Large Language Model) 

  • 작지만 준수한 성능을 내는 LLM 모델
  • 경량화를 통한 훈련 비용/추론 비용 절감
  • 메모리 사용량 ↓, 속도 ↑, 배포 용이
  • 성능은 대형 LLM에 비해 제한적이지만 특정 도메인에서는 충분히 효과적
  • 최근에는 기업들도 온디바이스 AI로 SLM을 적극 채택 중 (ex 삼성, 애플)
  • 대표 모델 : TinyLLaMA, DistilBERT, MobileBERT, Phi-2, Gemma 2B

 

Multi Modal LLM

  • 여러 종류의 데이터를 Input으로 받을 수 있는 LLM 모델
  • 텍스트 외에도 이미지, 음성, 영상 등을 동시에 처리 가능
  • 여러 종류의 데이터를 하나의 모델에서 입력/출력으로 처리
  • 기존 텍스트 중심에서 확장된 형태
  • 인간처럼 복합적인 감각 이해를 목표
  • GPT-4V(ision): 텍스트 + 이미지 입력 가능
  • 대표 모델: Gemini 1.5, Claude 3, Flamingo (DeepMind), Kosmos-2, Gato (DeepMind)

 

Reasoning LLM

  • 추론하는 LLM
  • 모델의 출력 결과를 활용 (답변을 길게 내놓음 = 활용할 수 있는 가지 수가 많아짐)
  • 일반 LLM의 비해 ouput을 훨씬 많이 생성 (token을 많이 사용, computing resource가 많이 필요)

모델의 출력 결과를 활용
inference에 더 많은 시간 소요
잘 번역하는 것을 볼 수 있음

어떻게 추론을 많이하게 할까?
Modifying Proposal Distribution : reasoning 과정을 유도할 가능성이 큰 토큰의 생성 확률분포 조정(re-rank)
- System Prompt (<think>, <answer> 태그 + RL) + 강화학습

 

Agentic LLM

  • 기본적이 LLM과 달리 text를 넣었을 때, 함수를 실행시킬 수 있음
  • ex) “날씨 알려줘” → 일반 LLM: “오늘 서울의 날씨는 맑음일 거예요.”
    → Agentic LLM: 실제로 get_weather(city="Seoul") API를 호출해서 진짜 날씨 데이터로 답변

사실 기반 응답 모델이 "지어내는" 게 아니라 실제 데이터를 기반으로 응답 가능
복잡한 작업 자동화 검색, 계산, 데이터 분석, 이메일 전송 등 다중 단계 작업 자동 실행
도구 활용 능력 날씨 API, 계산기, 브라우저, 파일 시스템 등과 연동 가능
인터랙티브한 작업 흐름 사용자와 상호작용하며 목표 달성형 에이전트처럼 행동

 

Distillation

  • 대규모 모델의 reasoning 품질을 작은 모델로 학습시키는 방법
  • 두 모델이 같은 프롬프트를 받았을 때 student 모델이 최대한 teacher 모델의 토큰 확률 분포를 모방하도록 학습

 

 

벡터와 차원

  • 벡터 : 순서가 있는 순자의 나열
  • 각 벡터가 얼마나 유사한지는 각 점 간의 거리로 판단할 수 있음
  • [수학적 사실] 차원이 증가할 수록 각 점(데이터) 간의 거리가 멀어짐
  • 차원의 저주 : 공간의 차원이 높아질 수록 (max dist / min dist) 값은 1로 수렴 > 의미를 뽑아내고 분석하는게 어려워짐 > 딥러닝은 이런 것들을 잘 다룬 모델이라고 볼 수 있음 ( 고차원의 데이터가 들어왔을 때 이를 적절히 차원을 줄인 공간에 재배치 하는 과정이 포함되어있음)

최종적으로 선 하나만 그으면 개 고양이를 구분할 수 있도록 만듦

 

Encoder - Decoder 구조

  • input을 차원축소된 공간으로 재배치하고, 여기서 다시 일련의 연산을 통해 차원을 확대하는 Decoder를 붙임
  • ouput에는 input 차원과 동일한 차원을 설정하고, 특정한 학습을 시킴

 

 

딥러닝 모델의 학습 방법

  • 예측값과 정답값의 차이를 이용
  • 모델 학습(Gradient Descent) : 예측값과 실제 값의 차이로 손실함수(Loss Function)를 만들고, 각 파라미터로 손실함수를 편미분하면, 기울기가 나오는데, 이를 바탕으로 각 파라미터를 업데이트
  • 새 파라미터 = 이전 파라미터 - 상수(learning rate) * gradient
  • Backpropagation : Gradient Descent와 ChainRule 연산을 이용해 딥러닝 모델의 파라미터를 업데이트 하는 방법
  • 이 작업을 특정 기준에 도달할 때까지 반복함

 

 

Word2Vec

  • 단어를 고차원 벡터 공간에 임베딩하는 모델로, 비슷한 의미(근접한 위치)의 단어들을 가까운 벡터로 표현
  • 중간 파라미터 matrix를 단어를 나타내는 embedding으로 활용
  • 두 가지 대표적인 학습 방식
CBOW (Continuous Bag of Words) 주변 단어(문맥) → 중심 단어(빈칸) 예측 빈칸 채우기
Skip-gram 중심 단어 → 주변 단어 예측 힌트 하나로 주변을 유추

문장이 빈칸 단어를 예측하도록 학습

 

각 단어의 one-hot 벡터와 embedding matrix의 행렬곱이 각 단어의 벡터

Word2Vec은 문장 일부만 보고 예측하며, 전후 문장까지는 고려하지 못함!!
1. Word2Vec은 전후 문맥을 전체적으로 고려하지 않음
→ 단순히 주어진 짧은 주변 단어(context window)만으로 학습
2. 그 짧은 context 내에서 더 자주 등장한 패턴을 기준으로
→ 예: "this is a" 뒤에는 "ring"이 더 자주 나왔다면, 그쪽으로 embedding이 조정됨

🔁 그래서 나온 해결책: 문맥 양방향 모델들
▶️ 예: BERT (Bidirectional Encoder Representations from Transformers)
문장의 앞뒤 전체 문맥을 모두 보고 중앙 단어를 예측 (Masked Language Modeling) 예: “This is a [MASK] that I bought yesterday.” → 모델은 “ring”인지 “laptop”인지 앞뒤 문맥을 모두 보고 예측 가능

 

 

언어 모델

텍스트 데이터는 순서가 중요한, 시퀀스 데이터

RNN

  • 입력을 순서대로 처리하는 신경망 구조
  • 이전 정보(문맥)를 기억하면서 다음 단어를 예측함
  • 데이터를 차례대로 입력, 그 과정에서 모델에 텍스트 데이터의 입력순서가 반영됨
  • 장기 기억 어려움 (long-term dependency 문제)
  • 계산 느림 (순차 처리)

 

Seq2seq

  • Encoder-Decoder 구조로 latent space를 활용해서 input이 길어지더라도 정보 손실을 줄임
  • RNN을 두 개 연결해서 입력 시퀀스를 출력 시퀀스로 번역
    • Encoder: 입력 문장을 벡터로 요약
    • Decoder: 그 벡터를 기반으로 새로운 문장 생성
  • 문장을 벡터 하나로 요약하면 정보 손실 큼
    → 문장이 길어질수록 성능 저하

 

Attention

  • Decoder 파트에서 각 단어 생성 시 참조하는 Encoder 파트의 각 단어들 정보를 관련된 부분 weight을 키워서 생성 (중요한 부분에만 집중)
  • Seq2Seq의 단점 보완!
  • 디코더가 인코더의 전체 단어들을 "가중치"로 골라보게 함
  • 긴 문장도 효율적 처리
  • 어느 부분이 중요한지를 학습 가능

 

Transformer

  • Attention을 좀더 복잡하게 많이 쌓음
  • RNN/순차 구조를 완전히 제거하고, Self-Attention만으로 문장을 병렬 처리
  • Encoder: 입력 문장 분석 / Decoder: 새 문장 생성
    (이 구조는 번역기처럼 입력-출력쌍이 필요할 때)
  • 병렬 처리 가능 → 학습 속도 급증
  • 장기 의존성 처리에 매우 강력

 

Bert

  • 텍스트 분류, 감성분석, 질의응답, 텍스트 추출과 같은 다운스트림 NLP 테스크에서더 낳은 성능을 제공하는 것을 목표로 개발됨
  • Transformer의 Encoder만 사용
  • 문맥을 양방향으로 이해하는 사전학습 모델
  • 문장에서 일부 단어를 가려놓고 예측 ([MASK] 학습)
  • 문장 간 관계 예측 (NSP)
  • 문장의 의미 이해(분류, 추론, QA)에 강력
  • 검색, 감성 분석, 요약 등에 활용
  • 생성(텍스트 생성)에 적합하지 않음

 

GPT 

  • Transforemr의 자연스러운 시퀀스 생성 능력을 활용하여 인간처럼 읽고 쓸 수 있는 언어 생성 모델을 목표로 개발됨
  • Transformer의 Decoder 구조만 사용
  • 언어를 생성하는 능력에 특화
  • 한 방향(왼→오른쪽)으로 다음 단어를 예측
  • 대규모 데이터 사전학습 + 사후 튜닝(RLHF 등)
  • 강력한 텍스트 생성, 요약, 번역, 문답 등 거의 모든 NLP 작업 가능
  • 대화형 AI (ChatGPT) 기반

 

profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로