BELLA QNA는 과연 어떻게 다를까요? 확실한 건, BELLA QNA의 훌륭한 검색 과정은 범용 LLM의 한계를 극복하는데에 결정적인 역할을 한다는 사실입니다. BELLA QNA의 주요 스펙과 기능을 본격 해부합니다.
ChatGPT 출시 이후, 챗봇은 단순히 정해진 시나리오에 따라 반복적인 답변을 제공하는 수준을 넘어 질문에 맞는 자연스러운 답변을 때마다 새롭게 생성하여 응답하는 수준으로 발전했습니다. 이에 많은 기업들이 ChatGPT와 같은 LLM을 기반으로 한 챗봇 도입에 큰 관심을 보이고 있는데요.
그러나, 다음과 같은 한계점으로 인해 즉각적인 도입에 어려움을 겪고 있습니다:
이에 지난 2023년 6월, 스켈터랩스는 대규모 언어 모델(LLM)의 가능성을 기업에 접목하기 위해 "BELLA(벨라)–Business Empowering LLM Application"를 론칭했습니다.
이 브랜드 제품 중 하나인 “BELLA QNA(벨라 큐나)”는 위와 같은 범용 LLM의 한계를 극복해 기업 환경에서의 활용을 위해 개발된 Q&A 챗봇 솔루션입니다.
이번 블로그 글에서는 BELLA QNA(벨라 큐나)의 ▲주요 스펙 ▲핵심 기능, 그리고 ▲벨라 큐나를 기업 서비스 형태로 접목하는 과정에 대해 자세히 살펴봅니다.
📖 목차
• BELLA QNA의 주요 구성요소 및 서비스 형태 요약
• BELLA QNA의 핵심, 검색 과정 해부
• BELLA QNA를 기업 서비스에 접목하는 과정
💡 BELLA QNA Overview
2024년 2월 기준, 현재까지 제공된 벨라 큐나의 주요 구성요소 및 서비스 형태는 아래와 같습니다:
🔅 벨라 큐나는 OpenAI ChatGPT 3.5 turbo 모델을 활용합니다.
벨라 큐나는 2023년 하반기부터 OpenAI의 ChatGPT 3.5 turbo 모델을 기반으로 한 RAG LLM 서비스를 제공하고 있으며, HyperClova X와 같은 국내 파운데이션 모델과도 연동될 예정입니다.
🔅 벨라 큐나는 SaaS 솔루션입니다.
문서 데이터의 추가, 삭제 및 관리와 질문-답변 처리를 위한 외부 API를 포함하여, 앱, 웹, 메신저 플랫폼 등 다양한 서비스 채널에 LLM 기반의 채팅 서비스를 적용할 수 있습니다. 또한, 백오피스를 통해 대화 설정, 히스토리, 통계 등의 사용 데이터에 접근할 수 있습니다.
🔅 벨라 큐나는 Text 데이터를 기반으로 질의응답을 제공합니다.
현재 txt와 docx, pdf 파일 업로더, 그리고 plain text와 html 형식에 대한 문서 추가 API를 지원합니다. 추후 csv(Excel), 콘텐츠 DB 등 다양한 데이터 형식의 지원이 계획되어 있습니다.
🔅 벨라 큐나는 검색 증강 생성(RAG) 기반 질의응답 대화 솔루션입니다.
문서 데이터 내에서 질문에 대한 유력한 답변 정보를 검색하고 이를 바탕으로 답변을 생성합니다. 가령 “~에 대해서 알려줘”, “~에 대한 관련 정보가 있을까?” 등 문서 안에 있는 정보를 묻는 질문에 가장 정확한 답변을 할 수 있도록 최적화되어 있습니다.
💡 BELLA QNA의 핵심, 검색 과정 해부
벨라 큐나가 특별한 이유는 바로 ‘검색’ 과정에 있습니다.
검색 과정을 강화하기 위해 벨라 큐나는 벡터DB 생성, 하이브리드 검색 활용, Retrieval-Augmented Generation(RAG) 등의 다양한 방식을 활용하고 있는데요. 벨라 큐나의 검색 과정을 강화하는 주요 장치들을 자세히 살펴보도록 하겠습니다.
1. Vector DB 생성
→ 한 줄 요약 : 벨라 큐나는 벡터DB를 답변에 활용할 정보 문서들을 적재하고, 의미적으로 가장 연관성 높은 출처를 검색할 수 있는 구조를 갖춘 데이터 Pool 로 활용합니다.
우선 벡터DB란, 데이터를 벡터(숫자의 배열) 형태로 저장하고 검색하는 데이터베이스입니다. 사람이 언어로 표현하는 정보를 컴퓨터가 이해할 수 있는 숫자의 집합으로 변환하여 저장하는 것이죠. 이렇게 하면 컴퓨터는 텍스트, 이미지, 소리 등 다양한 형태의 데이터를 유사성에 기반하여 빠르게 검색할 수 있습니다.
다음은 벨라 큐나의 벡터DB가 생성되는 과정입니다:
🔅 Text Extracting(텍스트 추출)
벨라 큐나 백오피스의 소스 관리 도구를 통해, PDF나 TXT, DOCX 같은 문서 파일을 업로드할 수 있습니다. 또한, 문서 추가 API를 사용하여 플레인 텍스트나 HTML 문서를 바로 업로드할 수 있습니다. 이후 업로드된 문서에서 순수 텍스트 데이터만을 추출해 저장합니다. 예를 들어 HTML 문서의 경우, 의미 있는 콘텐츠만을 남기고 불필요한 부분(예: 광고심의필)은 삭제합니다.
🔅 Chunking(청킹)
문서를 특정 크기의 토큰 단위로 조각(Chunk)내는 작업입니다. 토큰 크기는 검색 성능과 비용 효율을 고려해 결정됩니다. 문서가 부자연스럽게 끊기지 않도록, 마침표나 줄바꿈을 기준으로 나눕니다. *LLM 사용료는 토큰 당 가격으로 과금됨
🔅 Embedding(임베딩)
OpenAI의 Embedding 모델을 활용하여 문서 조각(Chunk) 들을 임베딩합니다. 예를 들어, '사과는 맛있다'라는 문장을 [0.1, 0.7, -0.3]과 같은 숫자 배열로 바꾸는 것이 임베딩 과정입니다. 이후 임베딩된 각 조각에 출처 문서의 유효기간, 카테고리, 용도 등의 메타데이터를 포함하여 데이터베이스에 저장합니다.
2. Hybrid Search 활용
→ 한 줄 요약 : 벨라 큐나는 키워드 검색과 시맨틱 검색의 장점을 결합한 방식인 하이브리드 검색을 활용합니다.
‘하이브리드’라는 명칭에서도 알 수 있듯, 하이브리드 검색은 Keyword search와 Semantic search로 각각 도출된 연관 정보 랭킹(Ranking)을 일정 비율로 종합해 최종 검색 결과를 얻는 방식인데요.
Keyword search와 Semantic search는 각각 어떤 검색 방식인지 알아보고, Hybrid Search가 어떠한 방식으로 검색의 정확성과 관련성을 최적화하는지 살펴봅니다.
🔅 Keyword Search(키워드 검색)
검색을 위해 입력된 단어/문구가 가장 많은 횟수로 등장한 출처 문서/정보를 골라내는 방식입니다. 이 방식은 전통적인 검색 방식으로, 사용자의 질의 내 각 단어가 문서 내에서 얼마나 많이 등장하는지를 기반으로 합니다. 다시 말해, 사용자의 질문에 있는 단어가 벡터DB 내 문서에서 자주 등장할수록 해당 문서를 더 관련성이 높은 것으로 평가합니다.
🔅 Semantic Search(시맨틱 검색)
텍스트의 의미를 분석하여 검색하는 방식입니다. 질의와 문서 각각을 임베딩으로 변환한 후, 이 임베딩 사이의 유사도를 계산하여 관련성을 평가합니다. 특정 단어의 단순 사용 빈도가 아니라, 의미적으로 유사한 텍스트를 기준으로 문서를 검색합니다.
🔅 Hybrid Search(하이브리드 검색)
하이브리드 검색은 키워드 검색과 시맨틱 검색의 장점을 결합한 방식입니다. 키워드 검색과 시맨틱 검색을 각각 수행하여 검색 결과에 대한 순위를 매기고, 이를 '알파(alpha)' 값으로 결정된 특정 비율로 혼합해 최종 순위를 도출하는 방식입니다. 키워드 검색 결과에 더 많은 가중치를 주거나 반대로 시맨틱 검색 결과에 더 많은 가중치를 줄 수 있습니다.
예를 들어, 알파가 ‘0’인 경우, 검색 결과는 오직 키워드 검색에 기반합니다. 알파가 ‘1’인 경우, 검색 결과는 오로지 시맨틱 검색에만 의존합니다. 알파가 ‘0.5’인 이 경우, 키워드 검색과 시맨틱 검색의 결과가 동등한 비율로 혼합됩니다. 이는 두 방식의 장점을 고루 취하는 방식으로, 질의에 포함된 키워드의 빈도와 문서의 의미적 유사성을 모두 고려합니다.
벨라 큐나는 하이브리드 검색 방식을 채택함으로써, 검색의 정확도와 관련성을 모두 향상시키고, 사용자 질문에 대한 가장 정확하고 관련성 높은 답변을 제공할 수 있습니다.
3. Hallucination 방지
→ 한 줄 요약 : 벨라 큐나는 거짓 답변을 하지 않기 위해, 다층적인 Hallucination 방지 장치를 적용하고 있습니다.
🔅 Retrieval-Augmented Generation(RAG)
RAG는 질문에 맞는 답변을 벡터DB에 저장된 문서에서 검색할 수 있도록 합니다. 이 과정은 LLM이 검증된 정보를 기반으로 답변을 생성하도록 함으로써, 부정확한 정보로 인한 환각 현상을 최소화합니다. 한 마디로, 답변을 생성만 하는 것이 아니라, 기업의 데이터와 목적에 맞는 정확하고 신뢰할 수 있는 정보를 제공할 수 있게 도움을 줍니다.
🔅 주어진 문서에서만 답을 찾도록 강제하는 답변 반환 프롬프트
벡터DB 내에 적절한 문서가 없는 경우, 답변을 강제로 생성하지 않습니다. 대신, '모르는 것은 모른다고' 솔직하게 답변하거나, 더 많은 정보가 필요하다는 것을 사용자에게 알릴 수 있는 프롬프트를 적용했습니다. 이를 통해 무분별하게 답변만을 위한 답변이 생성되는 것을 방지하고 신뢰도를 유지할 수 있습니다.
🔅 질문 연관성이 확실한 문서만 콕 집어 남기는 Consensus 과정
검색된 문서 목록에서 질문과 관련성이 높은 문서만을 선별하여 사용합니다. 이 과정은 불필요하거나 관련 없는 정보를 걸러내어, 답변의 정확도와 관련성을 높입니다.
🔅 출처 포함 답변 제공
모든 답변에는 출처 문서 정보를 포함시켜, 답변의 근거를 명확히 합니다. 만약 출처가 없는 답변이 생성되면, 시스템은 재검색을 통해 관련성 높은 정보와 출처를 찾아 답변을 업데이트하거나, 관련 정보가 명백히 없는 경우에는 정보가 더 필요하다고 안내할 수 있습니다.
💡 마치며
확실히, 훌륭한 검색 과정은 범용 LLM의 한계를 극복하고 우수한 답변을 도출하는 데 결정적인 역할을 합니다.
벨라 큐나는 '검색' 과정에 특별히 주목하며, 답변 생성, clear context, 사용자 설정, 정보 보안 등 여러 대화 스펙을 갖추고 있지만, 가치있는 답변과 좋은 경험을 선사하는 근간이 되는 것은 바로 검색입니다. 앞서 언급한 벡터DB, 하이브리드 검색, RAG, 프롬프팅과 같은 기술과 기능들은 모두 우수한 답변을 위한 중요한 요소입니다.
스켈터랩스는 기업들이 LLM을 효과적으로 활용할 수 있도록 검색 과정을 지속적으로 최적화하고 개선하는 데 주력하고 있습니다. BELLA QNA를 통해 사내 문서를 업로드하고, 기업만의 LLM 기반 맞춤형 질문 답변 챗봇을 구축해보는 것은 어떨까요? 기업에 특화된 인사이트와 지식을 바탕으로 고객 및 직원에게 더 정확하고 유용한 정보를 제공할 수 있을 것 입니다.