본문 바로가기
IT일반

RAG 임베딩 모델과 LLM의 모델이 달라도 동작하는 이유. 궁금하죠?

by 바이트뉴클리어스.넷 2025. 3. 18.
반응형

RAG이란?

RAG는 '검색 보강 생성'으로 번역되며, AI 모델이 질문에 답할 때 관련된 정보를 외부 데이터베이스나 문서에서 검색(Retrieval)하고, 이 정보를 바탕으로 답변을 생성(Generation)하는 방식을 의미합니다. 최근 GPT와 같은 대형언어모델(LLM)의 정확성을 높이기 위한 방법으로 많이 활용됩니다. '래그' 라고 발음 합니다.

 

기존 언어모델이 매번 데이터를 업데이트할 수 없기때문에 최신 정보를 벡터화해서 그 정보를 기반으로 AI의 답변을 보강하는 방식입니다.

그런데, 생각해 보면, LLM도 임베딩을 하고, RAG를 위한 데이터도 임베딩을 해서, 같이 사용한다면, 같은 언어모델의 방식으로 임베딩이 되어야 할 것 같은데, 다른 언어모델로 임베딩을 해도 동작을 합니다. 왜!? 일까요??

결론 부터

  • 임베딩 모델과 LLM이 다르더라도 작동은 잘 됩니다.
  • 그러나 사용하는 임베딩 모델의 차이에 따라 실제 검색 결과와 성능(정확성, 관련성 등)에 차이가 있을 수 있습니다.

왜 이런 차이가 있고, 그럼에도 불구하고 다른 모델끼리 연동하여 사용 가능한지, 그 이유를 자세히 설명드리겠습니다. 천천히 따라와 보세요.


🧩 임베딩(Embedding)의 본질적 역할

임베딩은 텍스트를 고차원 공간의 벡터로 변환해주는 과정입니다.

이때 중요한 것은 텍스트 간 의미적 유사성을 잘 나타내도록 학습된 공간을 만드는 것입니다.

  • 임베딩 벡터는 보통 수백~수천 차원의 실수로 구성된 벡터입니다.
  • 이 벡터의 각 차원(dimension)은 모델이 자체적으로 학습한 의미적 특성(semantic feature)을 나타냅니다.

핵심은,
임베딩은 "유사한 의미의 텍스트"가 서로 가까운 벡터 공간에 위치하도록 학습된다는 것입니다.


🧩 임베딩 모델마다 벡터가 달라지는 이유

동일한 텍스트 청크를 입력하더라도 다른 모델에서는 벡터가 다르게 나옵니다. 그 이유는 다음과 같습니다:

  • 학습 방법과 데이터 차이
    • OpenAI의 임베딩은 GPT 시리즈와 유사한 데이터와 방식을 사용하여 학습합니다.
    • Sentence Transformers는 문장 간 유사도에 특화하여 별도의 데이터로 학습된 것입니다.
  • 모델 구조와 목표 차이
    • 임베딩 모델마다 사용하는 Transformer 구조와 손실함수(loss function)가 다릅니다.
    • 목적에 따라 특성 공간을 다르게 표현하므로 서로 다른 벡터를 생성합니다.

따라서 같은 텍스트라도 벡터는 다를 수밖에 없습니다.


🧩 LLM이 임베딩 벡터를 직접 참조하지 않는 이유

여기서 가장 중요한 핵심이 있습니다.

  • RAG에서 LLM은 임베딩 벡터 자체를 입력으로 받는 것이 아닙니다.
  • LLM은 임베딩 벡터로 검색된 원본 텍스트(자연어)를 입력으로 받습니다.

즉, 실제 RAG에서의 작동 방식은 다음과 같습니다.

사용자 질문 → [임베딩 벡터로 유사 텍스트 검색] → 검색된 텍스트 → LLM 입력 → 답변 생성

 

이 프로세스에서 LLM의 역할"임베딩 벡터가 아니라, 자연어 문장(검색된 청크)"을 보고 질문에 대한 답을 만드는 것입니다.

즉, LLM과 임베딩 간의 연결점은 임베딩 자체가 아니라 "텍스트(청크)"입니다.
임베딩 벡터는 오직 검색(Retrieval) 단계에서만 쓰입니다.


🧩 임베딩이 다르면, 검색 결과가 달라지는 것은 맞음

다만, LLM과 임베딩 모델의 차이가 결과에 영향을 주지 않는다는 의미는 아닙니다.

  • 임베딩 모델이 다르면 검색 정확도가 달라질 수 있습니다.
  • 정확도 차이로 인해 LLM의 답변 품질에 간접적인 영향을 줄 수 있습니다.

다시 말하면,

  • 임베딩 모델이 좋지 않으면 엉뚱한 텍스트가 검색될 가능성이 커지고,
  • 결과적으로 LLM이 이상한 답변을 생성할 가능성이 높아집니다.

그러나, 임베딩 벡터 자체가 LLM 입력에 들어가지 않기 때문에 임베딩 자체의 숫자적 차이는 LLM의 문장 생성 프로세스에 직접적인 영향을 미치지는 않습니다.


🎯 현실적으로 고려할 포인트

실제 서비스를 만들 때는 다음을 고려해야 합니다:

고려 사항 현실적 결론

임베딩과 LLM의 일치 완벽한 일치는 필수가 아님 (작동 자체에는 무관)
검색 정확성 임베딩 품질이 중요 → LLM과 유사한 학습 데이터를 가진 모델이 유리함
모델 간 호환성 모델 간 토큰화(tokenizer)가 유사한 경우 성능 향상 가능

 

즉, 실제로 RAG를 최적화하려면 임베딩 모델을 최대한 좋은 품질의 것으로 선정하는 것이 중요합니다. 하지만 반드시 LLM과 제조사가 같거나 모델 계열이 같아야 하는 것은 아닙니다.


✅ 결론적으로

  • 임베딩과 LLM은 독립적으로 동작합니다. LLM은 임베딩 벡터를 직접 보지 않기 때문입니다.
  • 임베딩 모델이 달라도 RAG는 동작합니다. 그러나 임베딩의 품질은 검색 품질과 결과의 정확성에 영향을 줍니다.
  • 현실적으로 LLM과 비슷한 데이터로 학습된 임베딩 모델을 사용하는 것이 성능상 가장 좋은 선택입니다.

이해가 되셨을까요? 다음에도 유익한 내용으로 찾아뵙겠습니다.

 

감사합니다.