검색 증강 세대: LLM을 유용하게 만드는 비밀을 공개합니다.

게시자
울랩 팀
켜기
2024년 2월 7일 3:41 PM

대규모 언어 모델(LLM)은 생각만큼 유용하지 않습니다.

오해하지 마세요: LLM은 강력합니다.

이러한 딥러닝 알고리즘은 대규모 데이터 세트를 사용하여 콘텐츠를 인식, 요약, 번역, 예측 및 생성할 수 있습니다. 

트랜스포머는 자연어 입력과 결과를 처리할 수 있는 강력한 신경 아키텍처인 트랜스포머를 기반으로 하며, 많은 자연어 처리 애플리케이션의 기반이 되고 있습니다.

챗봇, 코드 생성기, AI 작성자, AI 디자이너 등은 LLM을 사용하여 구축됩니다. 

이러한 기능은 매우 강력하지만, 그 한계를 이해해야만 그 유용성을 제대로 활용할 수 있습니다.

자세히 알아봅시다.

생성적 AI에서 대규모 언어 모델(LLM)의 중요한 역할

대규모 언어 모델의 한계를 파악하기 전에 제너레이티브 AI에서 언어 모델의 역할을 이해해야 합니다.

GPT-4와 같은 거물급 머신러닝을 포괄하는 LLM은 방대하고 복잡한 기술로, 놀랍도록 큰 규모로 인간의 언어를 이해하고 처리하며 생성할 수 있습니다. 간단히 말해, AI의 언어 능력이라고 할 수 있습니다.

짐작할 수 있듯이, 이러한 폭넓은 언어 이해력은 데이터 입력과 새로운 산출물을 통해 번창하는 제너레이티브 AI에 놀라운 영향을 미칩니다. 놀랍도록 명료한 공동 작업자가 방대한 양의 텍스트를 빠르게 흡수하여 새롭고 독특한 콘텐츠를 만든다고 상상해 보세요.

LLM을 입력하면 제너레이티브 AI가 사실적이고 그럴듯한 결과물을 생성하여 다양한 실제 애플리케이션에서 그 가치를 발휘할 수 있습니다.

즉, LLM의 품질에 따라 생성형 AI 결과물의 품질이 결정된다는 뜻입니다.

대규모 언어 모델의 한계

LLM은 강력하지만 그 기반이 되는 제품에 영향을 미칠 수 있는 한계가 있습니다.

대규모 언어 모델은 상태 비저장형입니다.

LLM은 이전 입력 또는 출력의 정보를 저장하거나 기억하지 않습니다.

업계에서는 정보를 기억하거나 저장할 수 없는 상태를 상태 비저장형이라고 하는데, 현재 입력만 사용하여 출력을 생성하기 때문에 챗봇과 같이 콘텐츠나 애플리케이션의 연속성이 필요한 작업에서 문제가 될 수 있습니다.

예를 들어 보겠습니다.

LLM에게 이름을 말한다고 가정해 보겠습니다. 물론 이름을 불러줄 가능성이 높습니다. 하지만 법학박사에게 당신의 이름이 무엇인지 물어본다면 정확한 답을 줄 수 없을 것입니다.

LLM은 사용자의 입력을 기억하지 못하므로 사용자가 모든 채팅에 해당 정보를 포함하지 않는 한 출력에 해당 정보를 포함할 수 없습니다.

이것이 의미하는 바는 매우 큽니다.

OpenAI의 ChatGPT를 사용하여 콘텐츠를 제작해 본 적이 있다면, 최상의 결과를 얻으려면 초기 입력 시간이 오래 걸린다는 사실을 알고 있을 것입니다.

모든 채팅에서는 상대방이 누구인지, 목소리 톤, 전문 지식, 좋아하는 주제, 좋아하는 글쓰기 스타일 등을 기억해야 합니다.

이러한 입력은 한 번만 제공할 수 없으며 ChatGPT는 이를 기억합니다. 올바른 결과를 얻으려면 모든 채팅에 이러한 정보를 포함시켜야 합니다.

대규모 언어 모델은 데이터 집합으로 제한됨

LLM은 최신 데이터나 진화하는 데이터가 아닌 학습 데이터 세트에서 얻은 지식으로만 작업할 수 있습니다.

머신러닝 모델에 새로운 이벤트나 독점 데이터에 대한 질문을 하거나 새로운 스타일 트렌드를 생성해 달라고 요청한다고 가정해 보겠습니다. 이 경우 모델이 부정확한 정보를 제공할 가능성이 높습니다.

업계에서는 이를 모델 환각이라고 하는데, 올바른 정보가 학습 데이터 세트에 포함되어 있지 않아 모델이 잘못된 정보를 제공하는 것입니다.

그 의미를 상상해 보세요!

기사나 그래픽을 작성하거나 챗봇에게 '교육적인' 추측을 위해 정보를 요청하는 것은 부정확한 정보를 사용하는 결과를 초래할 수 있습니다.

그렇기 때문에 특히 교육 데이터세트를 모르는 경우 LLM에서 얻은 모든 정보를 사실 확인해야 합니다.

검색 증강 세대를 통해 LLM을 유용하게 활용하기

이러한 한계를 극복하는 가장 기본적인 방법은 LLM이 데이터에 더 정확하게 응답하도록 하는 것입니다.

범용 모델은 매우 특정한 용도에 필요한 컨텍스트를 이해하는 데 도움이 필요합니다.

특정 네트워크의 사이버 보안을 개선하기 위해 ChatGPT에 법적 지침이나 도움을 요청하는 것은 좋은 징조가 아닙니다. 

정확한 답변을 생성하는 데 필요한 데이터 세트에 대한 학습이 이루어지지 않았습니다.

검색 증강 생성은 LLM의 응답 정확도를 높이는 가장 효과적인 방법입니다.

검색 증강 세대란 무엇인가요?

검색 증강 생성(RAG)은 생성 중에 LLM이 외부 정보 소스에 액세스할 수 있도록 하는 기술입니다.

이를 통해 LLM은 도메인의 사실, 증거 및 사례를 결과물에 통합하여 신뢰성과 정확성을 높일 수 있습니다.

보유하고 있는 PDF 형식의 책에 대한 질문에 답할 수 있는 LLM을 만들고 싶다고 가정해 보겠습니다.

RAG를 사용하면 해당 책의 텍스트로 구성된 데이터베이스를 쿼리하고 해당 정보를 사용하여 정확한 답변을 생성할 수 있습니다.

아래 이미지는 이 프로세스가 실제로 진행되는 모습을 보여줍니다.

출처: 검색 증강 생성(RAG): 이론에서 랭체인 구현까지

기본 RAG 시스템 아키텍처

LLM에서 RAG 시스템을 활성화하려면 세 가지 핵심 구성 요소가 필요합니다:

  • LLM 임베딩
  • 벡터 데이터베이스
  • 검색

각 구성 요소를 개별적으로 살펴보겠습니다.

LLM 임베딩

LLM 임베딩은 고차원 공간에서 단어 또는 토큰의 의미적 의미를 포착하는 벡터 표현입니다.

이를 통해 모델은 불연속형 토큰을 신경망이 처리할 수 있는 형식으로 변환할 수 있습니다. LLM은 훈련 중에 임베딩을 학습하여 동의어 또는 유추와 같은 단어 간의 관계를 포착합니다. 

출처: 머신러닝에서 임베딩의 힘

임베딩은 LLM이 사용하는 트랜스포머 아키텍처의 필수 구성 요소이며 모델과 작업에 따라 크기와 치수가 달라질 수 있습니다.

벡터 데이터베이스

LLM 애플리케이션은 일반적인 데이터베이스를 사용하지 않습니다. 임베딩으로 구성된 벡터 데이터베이스를 사용합니다.

벡터 데이터베이스는 임베딩을 활용하여 (자연어 처리 애플리케이션에서) 단어 간의 의미론적 의미와 관계를 기반으로 쿼리할 수 있는 고차원 데이터 세트를 생성합니다.  

출처: 벡터 데이터베이스: 개념 및 예제

반면에 기존 데이터베이스는 스칼라 데이터로 작동합니다. 검색은 논리적 지시를 통해 검색된 쿼리에 대한 정확한 답변을 기반으로 합니다. 이러한 데이터베이스는 의미론적 의미와 단어 간의 관계의 뉘앙스를 이해하지 못합니다.

검색

RAG 시스템의 마지막 단계는 검색입니다.

검색 단계에서는 입력한 프롬프트에 따라 벡터 데이터베이스에서 가장 관련성이 높은 정보를 찾습니다. 

이는 벡터 데이터베이스에서 유사도 검색을 수행한 다음 검색된 텍스트의 관련성에 따라 순위를 매기는 방식으로 이루어집니다. 

그런 다음 검색된 텍스트는 관련 컨텍스트를 제공하는 프롬프트와 결합되어 LLM으로 전달됩니다.

LLM의 사용성 개선

RAG는 진화하는 데이터 세트를 다룰 때 LLM의 기능을 향상시킬 수 있는 실용적인 솔루션을 제공합니다.

실시간 외부 지식을 응답에 통합하면 문맥상 정확하고 관련성이 높은 LLM을 만들 수 있으며, 이는 실제 애플리케이션에 큰 도움이 됩니다.

RAG를 통합하면 사용자 경험이 개선되어 고객이 만족하고 다시 생성형 AI 애플리케이션을 사용하게 됩니다.