반응형
반응형
반응형

1. 임베딩(Embedding)이란 무엇인가?

임베딩은 단어나 문장(텍스트), 이미지, 음성 등 비정형 데이터를 숫자 벡터 공간에 매핑하는 기술이다.

목적은 간단하다.

  • 컴퓨터가 처리 가능한 형태(벡터)로 바꾸고
  • 의미적 유사성을 수학적으로 계산할 수 있게 만드는 것

즉, 임베딩은 데이터를 의미 기반 벡터로 바궈주는 AI의 눈이라고 보면 된다.


2. 임베딩이 필요한 이유

기계는 텍스트나 이미지를 직접 이해하지 못한다.

하지만 벡터 형태로 바꾸면 다음이 가능해진다.

  • 유사도 검색(semantic search)
  • 분류(classification)
  • 클러스터링(clustering)
  • 추천(recommendation)
  • 검색 기반 QA(RAG)

고성능 AI 모델의 중심에는 항상 "좋은 임베딩"이 있다.


3. 임베딩의 종류

임베딩은 크게 다음 4가지로 나눌 수 있다.

범주 예시
텍스트 임베딩 Word2Vec, GloVe, BERT, GPT 임베딩
문장 임베딩 Sentence-BERT, OpenAI Embeddings
이미지 임베딩 CNN feature, CLIP, ViT Embeddings
음성 임베딩 MFCC, wav2vec 2.0, Whisper Embeddings

아래에서 각각을 심층적으로 분석한다.


4. 텍스트 임베딩 (Word Embeddings)

4.1 고전적 방식: Word2Vec, GloVe, FastText

(1) Word2Vec (CBOW / Skip-gram)

  • 구글이 개발
  • 단어의 분포적 가설(distributional hypothesis)에 기반
  • 목표: 비슷한 문맥에 등장하는 단어 → 비슷한 벡터

장점

  • 빠름
  • 단어 의미 간 유사성이 잘 드러남
  • 유명한 "king - man  + woman = queen" 예제

단점

  • OOV(out-of-vocabulary) 문제
  • 다의어 처리 불가 ("bank"= 강둑/은행)

(2) GloVe (Global Vector)

  • 스탠포드 개발
  • Word2Vec은 "지역적 문맥"만 학습하지만 GloVe는 "전역 동시 등장 행렬 통계"까지 활용

장점

  • 더 정교한 의미 파악
  • 유의미한 벡터 공간 구조

단점

  • 여전히 단어 단위, 문맥 반영 한계

(3) FastText

  • Facebook 개발
  • subword 기반
    → "apple", "apples", "appl" 등을 분해하여 단어 구성 기반 임베딩 생성 가능

장점

  • 희귀 단어·오탈자·신조어 처리에 강함

단점

  • 문맥(문장 전체 의미) 파악은 낮음

4.2 현대 방식 : Contextual Embeddings (BERT, GPT)

(1) BERT 임베딩

  • 단어 하나도 문맥에 따라 벡터가 달라짐
  • 예: "bank" (강둑 vs 은행) → 서로 다른 의미 벡터 제공

장점

  • 문맥을 반영한 고성능 임베딩

단점

  • 느리고, 모델이 무거움

(2) GPT / OpenAI Embeddings

GPT 계열은 sentence-level, document-level 의미 추출에 특화된 임베딩 제공

  • text-embedding-3-large
  • text-embedding-3-small

장점

  • 문장 의미 유사도 최고 성능
  • 검색(RAG)에 최적화

단점

  • API 기반 사용이 많고 모델 이해도 필요

4.3 텍스트 임베딩 예제 코드 (Python)

Word2Vec (gensim)

from gensim.models import Word2Vec

sentences = [["i", "love", "tensorflow"], ["i", "love", "python"]]
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1)

print(model.wv["love"])

 

BERT 기반 Sentence-BERT

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-MiniLM-L6-v2")
emb = model.encode("임베딩은 AI에서 매우 중요하다.")
print(emb.shape)

5. 이미지 임베딩 (Image Embeddings)

이미지는 픽셀(고차원 데이터)이므로 이를 벡터(예: 512-dim)로 변환하는 과정이 필요하다.

5.1 CNN 기반 특징 추출

ResNet, VGG 같은 CNN 분류기의 마지막 FC layer 직전 벡터를 임베딩으로 사용

 

장점

  • 비교적 안정적, 빠름

단점

  • 텍스트 의미와 결합 어려움

5.2 Vision Transformer (ViT)

이미지를 patch 단위로 분해하여 transformer 인코딩

 

장점

  • 이미지 전체의 전역 정보 반영

단점

  • 훈련 비용 큼

5.3 CLIP Embedding - 텍스트·이미지 멀티모달 시대의 시작

OpenAI가 개발, (이미지↔텍스트) 의미 공간 통합 모델

  • 동일 벡터 공간에서 이미지와 텍스트 비교 가능
  • 검색, 이미지 캡션, Zero-shot 분류 등 활용 가능

장점

  • 이미지 전체의 전역 정보 반영

단점

  • 훈련 비용 큼

5.4 이미지 임베딩 코드 예제 (CLIP)

import torch
import clip
from PIL import Image

model, preprocess = clip.load("ViT-B/32")
image = preprocess(Image.open("cat.jpg")).unsqueeze(0)

with torch.no_grad():
    img_emb = model.encode_image(image)

print(img_emb.shape)

6. 음성 임베딩 (Audio / Speech Embedding)

음성은 시간적 신호이기 때문에 텍스트/이미지와는 처리 방식이 다르다.

6.1 전통적 방식: MFCC, Spectrogram

MFCC(Mel-frequency cepstral coefficients)

  • 음성을 스펙트럼으로 변환한 후 압축한 특징
  • 음성 인식 전처리로 널리 사용

장점

  • 계산량 적고 빠름

단점

  • 의미(semantic)를 담지 못함

6.2 딥러닝 기반: wav2vec 2.0, HuBERT, Whisper

wav2vec 2.0

  • 음성 → Transformer 인코딩
  • 벡터가 "말소리의 의미 + 내용 정보"를 포함

Whisper Embedding (OpenAI)

Whisper 모델은 음성을 텍스트와 유사한 semantic embeddings 공간에 매핑

 

장점

  • 언어/억양/소음 환경에 강함
  • 음성을 다국어 semantic space로 변환 가능

6.3 음성 임베딩 예제 코드 (wav2vec 2.0)

from transformers import Wav2Vec2Model, Wav2Vec2Processor
import torch
import torchaudio

processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2Model.from_pretrained("facebook/wav2vec2-base-960h")

speech, _ = torchaudio.load("sample.wav")
inputs = processor(speech, return_tensors="pt", sampling_rate=16000)

with torch.no_grad():
    emb = model(**inputs).last_hidden_state

print(emb.shape)

7. 임베딩 비교 정리

임베딩 종류 장점 단점 주요 모델
텍스트(단어) 빠르고 단순 문맥 반영 낮음 Word2Vec, GloVe
문장 임베딩 문맥 기반 의미 반영 모델 크기/속도 BERT, SBERT
이미지 임베딩 시각 특징 잘 잡음 텍스트와 직접 결합 어려움 ResNet, ViT
멀티모달(CLIP) 텍스트↔이미지 공간 통합 매우 큰 모델 CLIP
음성 임베딩 의미 정보 포함 리소스 많음 wav2vec 2.0, Whisper

8. 임베딩의 실제 활용 사례

Semantic Search

문서 검색, 이미지 검색

추천 시스템

사용자 행동 → 벡터 변환 → 유사도 기반 추천

챗봇 → RAG

임베딩 기반으로 문서를 검색하여 답변 성능 향상

멀티모달 AI

이미지·텍스트·음성을 하나의 벡터 space에서 처리


9. 결론

임베딩은 AI에서 데이터를 이해하는 핵심 기술이다.

텍스트, 이미지, 음성 모두 벡터로 변환함으로써 의미 기반 연산이 가능해지고

검색·추천·분류·추론 등 대부분의 AI 시스템이 임베딩에 기반해 움직인다.

 

오늘날의 AI 성능 차이는 곧 임베딩의 품질 차이라고 해도 과언이 아니다.

반응형
반응형

RAG는 검색 증강 생성으로
LLM이 문서를 보고 답변을 주는 구조를 의미

LLM이 스스로 아는 지식 + 외부 문서에서 검색한 지식을 결합해서 답하는 방식

 

LLM은 범용 지식을 학습하는 것이기 때문에 

  • 최신 정보 반영 불가(학습 이후 발생한 데이터 반영 불가, cut-off 문제)
  • 사내 문서(학습되지 않은 영역 답변 불가)
  • 환각(할루시네이션, hallucination) 발생
    ㄴ잘못된 정보 제공

이 문제 구조를 해결하기 위해 나온 구조 → RAG


RAG의 핵심 아이디어

LLM이 모르는 정보는 외부 문서를 참조해서 답변 생성

  1. 사용자가 질의 전달
  2. 질문→벡터 변환
  3. 문서(사내 문서, PDF, DB 데이터 등)를 벡터 기반으로 검색
  4. 검색된 문서 일부를 LLM에게 전달
  5. LLM은 검색된 문서 내용을 기반으로 답변 생성

RAG를 구성하는 컴포넌트

RAG의 필수 구성 요소 4가지

 

1) Embedding (임베딩 모델)

    - 텍스트를 컴퓨터가 이해할 수 있는 숫자 벡터로 바꾸는 역할

  • BAAI/bge-m3
  • text-embedding-3-large
  • e5-large

 

2) Vector DB (벡터 검색 DB)

   - 문서 조각들을 벡터 형태로 저장하고 검색하는 DB

  • Chroma
  • Qdrant
  • Weaviate
  • Pinecone
  • Elasticsearch + Vector

3) Retriever (검색기)

   - Vector DB에서 "질문과 가장 관련 있는 문서 Top-K" 가져오는 역할

 

4) LLM (답변 생성)

   - 검색된 문서를 읽고 "그 문서를 기반으로 답변을 생성하는 모델"

  • GPT-4o
  • Claude
  • Qwen2.5
  • Llama2.5

전체 flow

 

[질문] → [임베딩] → [벡터DB에서 관련 문서 검색] → [LLM에 문서+질문 전달] → [답변 생성]

 

tip: 문서를 잘 파싱 및 청킹해야하고, LLM이 좋아야 꽤 나이스한 답변을 함

반응형

'인공지능' 카테고리의 다른 글

CUDA(Compute Unified Device Architecture)  (0) 2025.12.03
AI 강의  (0) 2025.11.24
A2A(Agent2Agent) protocol  (0) 2025.11.19
MCP(Model Context Protocol) - AI 시대의 새로운 표준 인터페이스  (0) 2025.11.19
LLM(Large Language Model)  (0) 2025.11.18

+ Recent posts