neo4j 웨비나 후기: The Power of Knowledge Graphs for GenAI
neo4j 웨비나와 개인 프로젝트 경험을 통해 정리한 생각
종종 글로벌 기업들이 웨비나를 열거나 서밋같은 오프라인 행사도 여는데, 보통은 기업을 대상으로 하는 행사들이라 지금까지 참여해본 적은 없음. 시도는 했지만 초대는 못 받음.
레드햇서밋탈락ㅎㅎ
특히 오프라인은 안되는 듯?
근데 neo4j에서는 이러한 웨비나를 꽤 자주 열고, 진입장벽도 높지 않은 듯하다. 어렵지 않게 참여해볼 수 있었음. 주제는 The power of knowledge graphs for GenAI 이다.
내용은 AI 를 사용한 시스템에서 neo4j, 그래프 데이터들이 어떻게 활용될 수 있고 어떤 이점과 효과가 있는지에 대한 내용이었다.
예제로 나온 내용은 회사의 인사시스템에서, 직원들의 resume pdf를 ai에게 주고, 파이썬 개발자가 몇명이 있는지 찾아보라는 단순 사용이었음. 정형화되지 않은 데이터였기에 ai는 당연히 틀린 답을 내놓음.
여기에서 RDB와의 비교도 잠깐 나왔는데, 이런 데이터들을 정형화 시키는 방법에서 RDB를 사용할 경우, 추가적인 조인 테이블을 만들어 관리해야하지만 그래프 데이터베이스(neo4j)에서는 단지 관계만 추가하면 쉽게 사용이 가능하다고 덧붙였다. 또한 최적화도 문제로 꼽아주셨음.
neo4j의 MCP 서버를 사용하여 claude sonnect 4.5이 적절하게 처리하는지 확인할 수 있었고, 그 상태에서는 올바른 답을 찾아냈다. 더 어려운 질문들에 대해서도 해결이 가능했다.
예를들어, 회사 전체의 스킬과 역량에 대해 분석하라던가 아니면 특정 인물과 가장 비슷한 다른 인물을 찾는다던가.
neo4j에서 신규 AI Agent를 만들어서 코드없이도 어떻게 구축하고 사용하는지 예제도 들어주셨음.
별도 질문 시간에는,
- cypher로 정리해서 데이터를 넣어야 하는데 이걸 어떻게 했느냐
- 로컬 LLM 사용이 가능한지
- MCP 서버 사용 관련 질문이었는데, 잊었다..;
실제로 csv로 간단하게 작성하여 구축했다고 답변 하셨고 로컬 LLM도 사용이 가능하다 하셨음.
사실 예전에 하던 프로젝트에서 데이터를 정리해서 넣을 때, rdb sql, neo4j cypher 모두 작성해야만 했음. 근데 기획자분은 코딩과 구조에 대해선 잘 모르셔서 자체 dsl을 만들고 IR처럼 두고 자연어 -> llm -> dsl -> sql/cypher 추출하는 음 일종의 컴파일러 같은걸 만든적이 있었음. 그때가 생각나긴 했다. 사실 저렇게 데이터를 "정리해야만" 한다는 것 자체가 부담이라면 그냥 벡터DB가 유리할지도
MCP 포함하여 웨비나에서 보여준 모든 예제에 대해서는 깃허브로 공개도 해주셨다.
전체적으로 사용법 위주로 진행되었다. 엔터프라이즈 대상으로 하는 간단한 웨비나 였던 것 같기도 하다.
일단 생각보다 훨씬 재미있었고.. AI 사용, 특히 이를 위한 데이터셋 구축에 그래프 데이터베이스가 어떻게 사용될 수 있을지 잘 알게 되었다.
사실 neo4j는 일전에 게젤샤프트 프로젝트, 현재 진행중인 bookvoyage 프로젝트에서도 사용중이다.
특히 bookvoyage 프로젝트에서는 AI도 붙여서 추천 시스템을 구축하고 있었는데, AI가 실제로 추천하는 기능(최근 유저의 활동 트래킹을 근거로 제시해줌), 현재 데이터베이스 기반으로 neo4j와 ES가 협력하여 수행하는 기능이 별도로 있다.
지금 AI에게 제공해주는 데이터로 neo4j를 사용하고 있지는 않지만, 이렇게도 가능하다는 인사이트를 얻게 되었다.
그래프 DB vs 벡터 DB에 대한 개인적인 생각
개인적으로 또, 최근엔 AI 활용을 위한 데이터베이스로 벡터 데이터베이스가 더 많이 사용되는 거 같기도 함.
요즘엔 AI가 다루는 정보가 대부분 문장/의미/맥락 쪽으로 넘어갔기 때문에 고차원 데이터를 숫자 공간에서 즉시 찾기에 용이하기 때문이다. 그래서 유사도 검출에 강하다고 알고 있음.
RAG 구조가 대중화되면서 유저 질문 -> 벡터화 -> 관련 컨텍스트추출(후보군을 뽑는다던가) -> llm 답변
과 같은 형식으로 많이 짜여지는 것 같은데, 그래서 그쪽이 좀 뜨는 듯?
일단 꼭 정확하게 검색을 하고 싶은거면 그냥 es 쓰겠지만 그러한 추세는 아닌 듯 하다...
(AI 류에 문외한이라, 사실과 다르다면 말씀주세요)
하지만 벡터라는 것 자체가 인간이 보기에는 어떠한 이유로 그렇게 나왔는지 알기 어렵다.
그래프 데이터베이스는 이러한 부분엔 강하다. 패턴 매칭과 관계로 이유를 설명할 수 있기 때문에
이유야 사실 llm이 또 만들어주면 그만이지만, 만약 사용하던 llm을 바꾸거나 추천/검색/요약 등을 전부 같은 그래프로 처리하고 싶다면 neo4j와 같은 그래프데이터베이스가 도움이 될 것이라 생각이 든다.
하지만 또 전지전능한 건 아니고 특히나,
- 의미가 안정적이고
- 관계가 반복적으로 재사용 가능하고
- 추론 경로가 중요한 경우
에 사용이 좋을 것 같다.
앞으로도 종종 듣고 싶을만큼 괜찮았던거 같다.
또 신규 기능이나 이런걸 소개해주시는 부분에선 요즘 어떤게 확실한 추세인지 더 잘 알 수 있는 것 같다.