벨루가 블로그
벡터 데이터베이스 vs 그래프 데이터베이스 차이
S
SangYeon_Lee
👍
1
최근 검색 증강 생성(RAG: Retrieval Augmented Generation)에 대한 관심이 급증하고 있습니다. 이 기술에 대한 기대와 함께 실망도 많습니다. 문서나 데이터를 나누는 방법에서부터 임베딩 방법, 그 외 전처리 및 후처리 등 다양한 방법이 문제 해결에 적용될 수 있습니다. 하지만 일반적인 RAG 기술을 적용할 때는 생각보다 만족스러운 결과를 얻지 못하는 경우가 많습니다. 이번 글에서는 벡터 데이터베이스와 그래프 데이터베이스의 차이를 예시를 통해 가볍게 설명해 보고자 합니다.
대규모 언어 모델(LLM)을 핵심 애플리케이션에 도입하려는 경우, LLM의 예측 불가능한 특성으로 인해 부정확한 추론이나 명백한 오류 같은 문제가 발생할 수 있습니다. 이는 정확성, 설명 가능성, 신뢰성을 중시하는 기업들에게 큰 문제로 다가옵니다. 이러한 문제를 극복하기 위해 검색 증강 생성이 주요 고려 사항이 됩니다. 지식 그래프와 벡터 데이터베이스는 검색 증강 생성을 구현하기 위한 잠재적인 솔루션으로 주목받고 있습니다. 그렇다면 LLM에 보다 정확하고 신뢰할 수 있으며 설명 가능한 기반을 제공하는 것은 무엇일까요?
LLM 기반 구축을 위해 지식 그래프와 벡터 데이터베이스 중 하나를 선택할 때 고려해야 할 몇 가지 핵심 요소를 살펴보겠습니다.
복잡한 질문에 대한 답변
질문의 복잡성이 높을수록 벡터 데이터베이스가 빠르고 효율적으로 결과를 반환하기 어려워집니다. 쿼리에 더 많은 주제를 추가하면 데이터베이스가 원하는 정보를 찾기 힘들어집니다.
예를 들어, 지식 그래프와 벡터 데이터베이스 모두 "우리 회사의 CEO는 누구인가?"라는 질문에 쉽게 답변할 수 있지만, "지난 12개월 동안 최소 두 명의 구성원이 투표를 기권한 이사회 회의는 무엇인가?"와 같은 질문에는 지식 그래프가 벡터 데이터베이스보다 더 빠르게 답변할 수 있습니다. 벡터 데이터베이스는 벡터 공간 내 주제들의 유사성을 기반으로 답을 찾을 가능성이 높지만, 지식 그래프는 관계를 통해 정확한 정보를 찾아 반환합니다.
완전한 응답 얻기
벡터 데이터베이스는 유사성 점수 및 사전 정의된 결과 제한에 의존하기 때문에 답변을 반환할 때 불완전하거나 관련 없는 결과를 제공할 가능성이 있습니다. 예를 들어, "윤선도가 쓴 모든 책을 나열하시오"라는 질문에 벡터 데이터베이스는 다음과 같은 결과를 반환할 수 있습니다.
불완전한 제목 목록 (사전 정의된 제한이 너무 낮음): 예를 들어, 결과 제한이 3으로 설정되어 있고 윤선도가 쓴 책이 10권이라면, 벡터 데이터베이스는 3권의 책 제목만 반환하고 나머지 7권은 누락됩니다.
윤선도의 모든 제목과 다른 저자의 일부 제목 (사전 정의된 제한이 너무 높음): 반대로, 결과 제한이 20으로 설정되어 있고 윤선도가 쓴 책이 10권이라면, 벡터 데이터베이스는 윤선도의 모든 책 10권과 함께 다른 저자의 책 10권을 추가로 반환할 수 있습니다. 이는 사용자가 원하는 정보 외에 불필요한 정보까지 포함되어 검색 결과의 정확성을 떨어뜨립니다.
사용자 또는 개발자가 모든 가능한 쿼리에 대한 사전 정의된 제한을 알 수 없기 때문에 벡터 데이터베이스만으로 정확한 답변을 얻는 것은 쉽지 않습니다. 그래서 결과를 이용해 LLM에 보내어 다시 응답을 생성합니다.
반면, 그래프 데이터베이스를 사용한 지식 그래프는 엔티티가 관계에 의해 직접 연결되므로 각 엔티티마다 관계 수가 다릅니다. 지식 그래프는 정확한 답변만 검색하여 반환합니다. 이 경우 지식 그래프 쿼리는 윤선도가 쓴 모든 책만 반환하고 다른 것은 반환하지 않습니다. 다만, 그래프 데이터베이스의 단점은 초기 데이터베이스를 잘 구축해야 한다는 점입니다.
신뢰할 수 있는 응답 얻기
벡터 데이터베이스는 두 개의 사실 정보를 연결하여 부정확한 추론을 할 수 있습니다. 예를 들어, "제품 관리 팀에는 누가 있습니까?"라는 질문에 벡터 데이터베이스는 제품 팀이 생성한 문서(사실)에 대한 빈번한 댓글 액세스 권한(사실)이 있는 사람이 제품 팀에 속한다고 잘못 추론하여 결과에 이름을 반환할 수 있습니다. 그래프 데이터베이스로 구현한 지식 그래프는 노드와 관계를 사용하여 조직 내 사람들의 관계를 식별하기 때문에 제품 팀에 속한 사람만 반환합니다.
지식 그래프 쿼리는 연결된 정보의 흐름을 따라가므로 응답이 일관되게 정확하고 설명 가능합니다.
벡터 데이터베이스의 장단점
장점:
고차원 벡터 공간에서의 유사성 검색에 강점이 있습니다.
다양한 종류의 데이터를 빠르게 검색하고 분석할 수 있습니다.
특정 유형의 검색 쿼리에서 높은 성능을 보입니다.
단점:
복잡한 관계형 쿼리에는 적합하지 않을 수 있습니다.
사전 정의된 제한에 의존하여 불완전한 결과를 반환할 가능성이 있습니다.
초기 설정 및 튜닝이 필요할 수 있습니다.
그래프 데이터베이스의 장단점
장점:
복잡한 관계형 쿼리에 강합니다.
데이터 간의 명확한 관계를 기반으로 정확한 결과를 제공합니다.
설명 가능성이 높아 신뢰할 수 있는 응답을 얻을 수 있습니다.
단점:
초기 데이터베이스 구축이 복잡하고 시간 소요가 큽니다.
대규모 데이터에서 성능 문제가 발생할 수 있습니다.
특정 쿼리 유형에서는 성능이 떨어질 수 있습니다.
결론적으로, 벡터 데이터베이스와 그래프 데이터베이스는 각각의 장단점이 있으며, 사용 사례와 요구 사항에 따라 적합한 솔루션을 선택하는 것이 중요합니다. RAG를 구현할 때도 이러한 점을 고려하여 최적의 방안을 찾는 것이 필요합니다.
Subscribe to 'velugadoc'
Welcome to 'velugadoc'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to 'velugadoc'!
Subscribe
👍
1
Staff_Veluga
Garnter 연구로 살펴보는 생성형 AI 기술과 사례
우연히 Garnter의 연구를 보게 되었습니다. Source: Gartner Data & Analytics Summit Conference (2024), How to Make Your Data AI-Ready and Why It Matters. 여기서 전 현재 가장 많은 관심을 가지고 있는 생성형 AI 부분을 좀더 살펴보고 싶었습니다. 미디엄에 이를 잘 정리해 주신 분(Do Not Use LLM or Generative AI For These Use Cases)이 있는데요. 이를 토대로 다시 정리를 해보고자 합니다. 현재 우리에게 가장 많이 알려진 ChatGPT, Claude, Gemini, Midjourney, 등은 모두 생성형 AI 분야 입니다. 그리고 많은 분들이 이를 어떻게 활용할지 데이터는 어떻게 준비할 지 고민일 것입니다. 사실 생각보다 정말 내가 원하는 기술과 데이터는 꽤 손이 많이 가는게 현실인데 시행 착오도 많을 수 있어 방향을 확인하는데 도움이 될 것 같습니다. Gartner 연구에 따르면 AI 기술 적용 사례를 12가지로 나누고 있습니다. 예측/추정 가장 일반적인 사용 사례 중 하나입니다. 어떤 제품을 판매하고 있고 판매 데이터와 판매 활동과 관련될 수 있는 다른 기능들을 모두 수집했다고 가정해 보겠습니다. 그런 다음 머신러닝 알고리즘을 사용하여 향후 판매량을 예측할 수 있습니다. 자율 시스템 AI를 사용하여 우리를 위해 지능적으로 무언가를 수행하는 자율 시스템을 구축할 수도 있습니다. 한 가지 예로 AI 기술이 내장된 드론을 사용하여 송전선로의 일상적인 점검을 수행하는 것을 들 수 있습니다. 계획 때로는 상호 의존성과 제약이 많은 복잡한 시스템에서 작업해야 할 때가 있습니다. 계획 사용 사례는 이점을 극대화하고 영향을 최소화할 수 있는 최선의 계획을 찾는 것입니다. 예를 들어, 도시 지역의 교통 데이터를 분석하기 위해 AI를 사용할 수 있습니다. 그런 다음 도로 프로젝트를 진행 중인데 알고리즘이 일일 교통량에 미치는 영향을 최소화하기 위해 언제 어디서 작업해야 하는지 알려준다고 가정해 보겠습니다. 의사 결정 인텔리전스 이 유형의 사용 사례는 인사이트와 예측을 제공하여 의사 결정 프로세스를 개선하는 것을 목표로 합니다. 자율 시스템과의 차이점은 이 사용 사례군은 자동으로 의사 결정을 내리는 것이 아니라 사람이 의사 결정을 내릴 수 있도록 돕는다는 것입니다. 이는 일반적으로 특정 선호도나 기업가 정신을 고려해야 하는 결정이기 때문입니다. 추천 시스템 널리 적용되고 성숙한 사용 사례 유형입니다. 이 사용 사례는 사용자가 구매할 만한 제품이나 좋아할 만한 음악을 추천하는 것입니다. 세분화 / 분류 때때로 우리는 우리가 다루는 대상의 특성을 모를 때가 있습니다. 따라서 엔티티를 여러 범주나 수준으로 분류하여 인사이트를 얻을 수 있는지 확인하고자 합니다. 예를 들어, 대출 신청자의 속성에 따라 저위험, 중위험, 고위험으로 분류하기 위해 AI를 사용할 수 있습니다. 지능형 자동화 이 유형의 사용 사례는 AI와 자동화 기술을 결합하여 제조와 같은 일부 비즈니스 프로세스를 개선하는 것을 목표로 합니다. 최근 화두 중 하나인 '디지털 트윈'이 여기에 속합니다. 예를 들어, 제조 공장의 모든 센서 데이터로 모델을 학습시켜 며칠 전에 조업이 시작될 때 미리 경고를 보낼 수 있습니다. 인식 이 사용 사례 유형은 일반적으로 시각, 소리 및 기타 환경 데이터와 같은 감각 데이터에 의존하는 경우를 말합니다. 예를 들어, 도로에 설치된 카메라가 운전 위반 행위를 감지하는 것이 이 사용 사례 유형에 속합니다. 이상 징후 감지 때때로 프로세스가 잘못되었지만 우리가 인지하지 못하는 경우가 있습니다. 예를 들어, 전력망은 수백 개의 발전기로부터 에너지를 공급받을 수 있습니다. 그 중 하나가 다운되면 쉽게 알아차릴 수 있습니다. 하지만 그 중 10개가 동시에 변동한다면 알아차리기 어려울 것입니다. AI는 이러한 미묘한 이벤트를 감지하여 관제실에 알릴 수 있습니다. 대화형 사용자 인터페이스 이 사용 사례군은 최근 제너레이티브 AI 기술의 성장으로 인해 화제가 되고 있는 분야이기 때문에 친숙하게 느껴질 수 있습니다. 이 사용 사례 자체는 콜센터나 고객 지원 센터의 챗봇에 의해 잘 정의될 수 있습니다. 인공지능은 수많은 제품 문서를 사용하여 학습하고, 문제가 발생했을 때 고객의 질문에 답할 것입니다. 일반적으로 간단한 지원 티켓에 대해서는 사람의 개입이 필요하지 않습니다.
Staff_Veluga
데이터 임베딩을 향상시키는 문서(데이터) 정리법 FAQ
우리가 업무나 일상에서 작성하는 보고서에서 복잡한 구조의 표들은 많은 경우 AI에 그대로 이해되기 어렵습니다. 이런 경우 따로 엑셀이나 스프레드 시트 등에서 해당 내용을 AI가 이해할 수 있는 구조로 정리하여 학습 시키면 해당 정보를 정확하게 이해하여 답변하게 하실 수 있습니다. (가장 뛰어난 GPT4-o 모델의 경우도 표의 구조를 제대로 이해하지 못하고 캐롯 손보 등의 내용을 누락하여 잘못 작성하는 것을 볼 수 있습니다.) 그렇다면, 벨루가에 문서 학습을 잘 시키기 위해서는 어떻게 데이터를 정리해야할까요? 기존의 문서관리 글에서도 정리되어 있지만, 그동안 많이 받은 질문들을 토대로 FAQ를 정리해보았습니다!:) Q1: 데이터를 어떻게 구조화해야 하나요? PDF를 그대로 학습시키고 싶으실 경우, 글자 크기에 유의해주세요. 제목은 큰 글씨로 작성해야지 주제라는 것을 이해합니다. 빈 행과 열이 있어서는 안됩니다. 빈칸도 되도록 아님, 해당 없음 등으로 채워두시는게 좋습니다. 엑셀 파일에서 대분류에 너무 지엽적인 키워드가 들어가게 되면, 해당 표의 모든 내용에 관련 태그가 붙게 됩니다. 대분류에는 지나치게 상세한 키워드 대신 일반적인 키워드(예: 분류, 구분, 주제)를 사용하세요. 병합 된 셀이 있으면 이해하기 어렵습니다. 꼭! 병합된 셀은 풀어서 내용을 중복 입력하세요. 첫 번째 행은 반드시 대분류로 채우세요. 표의 구분/대분류가 변경될 경우 새로운 시트를 만드세요. Q2: 데이터 길이에 제한이 있나요? 내용이 많이 긴 pdf, docs 파일의 경우 시트에 청크 단위로 질문과 답변들의 정리가 필요합니다. len() 함수를 사용해 작성한 글자 수를 확인하실 수 있습니다. 시트에서 각 행이 2000자를 넘지 않도록 주의하세요. 긴 내용은 주제를 나누어 똑같은 태그로 나누어 입력하셔도 좋습니다. 시트 개수에는 제한이 없으므로 필요시 여러 시트를 만들어 사용하세요.
😍
1
Staff_Veluga
🐳벨루가 카카오톡 채널 정식 오픈
안녕하세요! 여러분:) 저번 주부터 벨루가에 합류하여 벨루가의 소식을 전해드리고 있는 스태프_벨루벨루입니다🐣 벨루가의 6/25 최신 업데이트 소식을 통해 카카오톡 채널 커머스카드 기능도 추가했다는 소식을 전해드렸습니다. 그리고 이번에 벨루가 자체 카카오톡 채널도 오픈하게 되어 벨루가 챗봇을 카카오톡에서도 써보실 수 있게 되고, 카카오톡 채널 소식을 통해 더 활발히 공유드릴 수 있게 되었습니다🎉🎉 💌벨루가 카카오톡 채널을 오픈했습니다!! 벨루가랑 친구하실 분~?🙋‍♂️🙋🙋‍♀️💞 벨루가 카카오톡 친구 추가를 해주시면, 앞으로 벨루가의 중요한 소식들과 이벤트들을 놓치지 않으실 수 있습니다🙌 👇아래의 링크를 눌러서 지금 바로 친구추가 해주세요🤗👇
👍
2