홈으로 돌아가기

대형 언어 모델: 기초와 실습

이 기사는 n-gram부터 트랜스포머 기반 LLM까지 언어 모델의 진화를 설명합니다. 토큰, 매개변수, instruct 및 다중모달 버전을 설명합니다. 실습을 위한 Colab에서 Qwen 실행 코드 제공.

기초부터 LLM: 트랜스포머, 토큰, Qwen 실행
Advertisement 728x90

대형 언어 모델의 기초: 기초부터 실전까지

언어 모델은 주어진 맥락에서 다음 토큰의 확률을 추정합니다: P(w_t | w_1, ..., w_{t-1}). 이는 LLM을 포함한 모든 현대 시스템의 핵심 원리입니다.

개발은 세 단계를 거쳤습니다:

  • 통계적 n-gram: 2–3단어 시퀀스의 빈도를 계산합니다. 빠르지만 장거리 맥락과 의미를 무시합니다.
  • 벡터 임베딩 (word2vec, GloVe): 단어를 다차원 공간의 점으로 표현하며, 거리가 의미적 유사성을 반영합니다.
  • Transformers: 어텐션 메커니즘으로 먼 토큰 간 연결을 고려하여 깊은 텍스트 이해를 가능하게 합니다.

Transformers는 일관된 텍스트를 생성할 수 있는 LLM의 기반이 됩니다.

Google AdInline article slot

대형 언어 모델의 규모

LLM은 규모가 다릅니다: 훈련 데이터는 수천억 토큰, 파라미터는 7B에서 175B까지. 파라미터는 통계적 언어 패턴을 포착하는 신경망 가중치입니다.

7B–14B 모델은 양자화된 형태로 GPU에서 로컬로 실행할 수 있습니다. 더 큰 모델은 클러스터가 필요합니다. 대규모에서 LLM은 언어학뿐만 아니라 텍스트에서 인코딩된 지식—사실부터 논리까지—을 포착합니다. 이는 챗봇, 분석, 생성을 위한 기반 모델입니다.

지시 및 대화형 LLM

기본 LLM은 토큰을 예측하지만 항상 작업을 따르지는 않습니다. Instruct 모델은 지시-응답 쌍으로 파인튜닝되며 RLHF를 사용합니다: 인간 평가가 예의와 일관성을 위한 선호도를 형성합니다.

Google AdInline article slot

결과: ChatGPT, Claude, Gemini 같은 대화 시스템. 쿼리를 명확히 하고, 응답을 구조화하며, 추론을 설명합니다.

토큰화와 컨텍스트 윈도우

LLM은 토큰—서브워드 단위(단어, 형태소, 구두점)—로 작동합니다. 토크나이저는 코퍼스에서 어휘를 구축하며 빈번한 시퀀스를 병합합니다.

과정:

Google AdInline article slot
  • 텍스트 → 토큰.
  • 토큰 → 임베딩.
  • 모델 입력.

컨텍스트 윈도우—토큰 제한(예: 128k). API 비용과 생성은 토큰당 청구됩니다. 단어 길이 ≠ 토큰.

주요 생성 파라미터

  • Temperature: 무작위성 제어. 낮음(0.1–0.3)—결정론적 응답. 높음(0.8+)—창의성, 하지만 환각 위험.
  • Max tokens: 출력 제한, 무한 생성 방지.

파라미터는 작업에 맞게 조정: 프로덕션에서 안정성, 브레인스토밍에서 다양성.

LLM의 멀티모달리티

멀티모달 모델은 텍스트, 이미지, 오디오, 비디오를 통합합니다. 다른 모달리티의 토큰을 공유 공간으로 투영합니다.

예시: GPT-4o, Gemini, Claude 3. 기능:

  • 이미지 설명.
  • 차트/테이블 분석.
  • 시각 쿼리에 대한 응답.

이는 LLM을 범용 시스템으로 확장합니다.

실전: Google Colab에서 Qwen 실행

실험을 위해 오픈 모델을 사용하세요. Qwen2.5-3B-Instruct—텍스트 전용, Qwen2.5-VL-3B-Instruct—멀티모달. 품질은 독점 모델보다 낮지만 프로토타입에 충분합니다.

텍스트 모델

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
import textwrap

model_name = "Qwen/Qwen2.5-3B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(model_name)

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)

prompt = "Explain prostymi slovami, that takoe bolshaya yazykovaya model."

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=150,
    temperature=0.7
)

generated_tokens = outputs[0][inputs["input_ids"].shape[-1]:]
answer = tokenizer.decode(generated_tokens, skip_special_tokens=True)
print()
print(textwrap.fill(answer.strip(), width=80))

출력은 3B 파라미터만으로도 일관된 설명을 보여줍니다.

멀티모달 모델

마찬가지로 Qwen2.5-VL-3B-Instruct를 로드하고 이미지를 입력으로 전달합니다.

주요 요점

  • LLM은 n-gram에서 어텐션이 있는 transformers로 진화했습니다.
  • 규모(파라미터, 데이터)가 창발적 능력과 지식을 가져옵니다.
  • Instruct + RLHF가 작업 준수를 보장합니다.
  • 토큰이 제한을 정의: 컨텍스트 윈도우, 비용.
  • 멀티모달리티가 모달리티를 단일 공간으로 통합합니다.

— Editorial Team

Advertisement 728x90

다음 읽기