우리는 꽤 많은 주제를 살펴보았고, 지능형 애플리케이션을 짓는 방법을 탐구했다. 이제 앞선 장들에서 배운 것을 다시 찾아가고, 우리 여정의 다음 걸음을 본다. Neo4j가 지식그래프 구축에 어떻게 최적인지, 그리고 지능형 검색·추천 애플리케이션을 수월하게 짓도록 GenAI 생태계와 어떻게 통합되는지 되짚는다.
(:Section {n: 1})-[:RECAPS]->(:Journey)
GenAI와 Neo4j가 합친 힘
GenAI, 환각, 그리고 GraphRAG의 등장
1~3장에서 우리는 GenAI와 LLM의 진화가 어떻게 그림 속으로 들어왔는지, 그것이 자연스러운 상호작용과 사용의 수월함을 가능케 하며 기술을 어떻게 급발진시켰는지 보았다. 같은 능력이 — 그 작동 방식 탓에 — 믿을 만해 보이지만 실제로는 거짓일 수 있는 정보, 존재하지 않을 수 있는 정보를 내놓을 수 있다는 것도 보았다. 환각(hallucination)이라 불리는 현상이다. RAG가 이 환각의 축소를 어떻게 도울 수 있는지 보았고, 지식그래프로 들어가 그것을 RAG 흐름에 참여하도록 효과적으로 모델링하는 방법 — GraphRAG 접근 — 을 보았다.
GraphRAG는 진화하는 지식그래프를 통합함으로써 전통적 RAG보다 더 효과적이고 정확할 수 있으며, 그 지식그래프가 LLM을 수월하게 접지(ground)시킨다.
영화 지식그래프 위의 지능형 검색
4~6장에서 우리는 영화 지식그래프로 강력하고 지능적인 검색 경험을 짓는 실습 여정에 올랐다. 정형 데이터에서 출발해 Python으로 그래프를 모델링·구축했고, Haystack 프레임워크로 생성한 벡터 임베딩으로 그것을 풍성하게 만들었다. 그래프에 곧장 저장된 이 임베딩들이 GraphRAG 파이프라인의 유사도 검색을 이루도록 도왔다.
지식그래프의 힘과 벡터 검색을 함께 쓰며, 우리는 단순한 키워드 질의만이 아니라 결과를 가져오는 데 멀티홉 순회가 필요할 수 있는 복잡한 질문까지 답할 수 있는 하이브리드 검색 시스템을 만들었다. LLM과 GraphRAG의 통합을 거쳐, 문서 검색과 맥락 인지 이해를 모두 해내는 지능형 검색으로 나아갔다. 이 장들은 그래프의 정형화된 지식과 LLM의 표현력을 결합하는 일의 현실적 잠재력을 입증했다.
H&M 그래프 위의 개인화 추천
7~10장에서 우리는 GraphRAG를 지렛대 삼아 추천 애플리케이션을 지었다. LangChain4j와 Spring AI를 활용해 Java와 Spring 프레임워크로 GraphRAG 애플리케이션을 짓는 방법을 이해했다. 지능형 추천 애플리케이션을 지으려 여러 단계를 밟았다. 첫째는 H&M 고객 거래 데이터를 적재해 지식그래프를 짓는 일이었다. 다음의 중요한 걸음은 계절 관계를 더해 그래프를 증강하는 일이었다. 데이터를 더 알갱이 고운 방식으로 소비하도록 돕는 관계다. 그런 다음 이 계절 관계들을 GraphRAG 흐름의 일부로 써서, 주어진 계절의 고객 구매 요약을 임베딩과 함께 생성해 그래프를 더 많은 문맥으로 풍성하게 만들었다.
이 임베딩과 그래프 데이터 사이언스 알고리즘이 KNN 알고리즘의 도움으로 유사한 고객들 사이의 관계를 포착했다. 유사도 관계를 만든 뒤에는 커뮤니티 탐지 알고리즘으로 고객들을 커뮤니티로 묶어 더 나은 추천을 제공했다. 이 파이프라인이 단순한 벡터 검색 하나에 기대는 것보다 왜 더 나은 추천을 주는지도 보았다.
이 애플리케이션을 지을 때 우리는 GraphRAG를 최종 사용자가 소비할 텍스트의 생성이 아니라 지식그래프를 풍성하게 만드는 데 썼다. 더 나은 추천을 위해서다. LLM이 챗봇으로서만이 아니라, 데이터를 더 잘, 새로운 시각으로 이해하도록 풍성하게 만드는 일에서도 제 몫을 할 수 있음을 보여준 대목이다.
비교, 결정, 그리고 배포
11~12장은 구할 수 있는 다양한 클라우드 서비스에 집중했다. GenAI 애플리케이션을 위한 클라우드 선택을 돕는 상세한 비교를 그렸고, 마지막 장에서는 애플리케이션을 Google Cloud에 배포하는 방법을 시연했다.
다음으로, 이 책에서 논의한 것 너머로 나아가는 방법을 이야기한다.
(:Section {n: 2})-[:POINTS_TO]->(:NextStep)
책 너머 — 계속되는 배움을 위한 자료 탐험
우리는 그래프 데이터 모델링의 중요성을 단순한 예제들과 함께 논의했고 두 가지 구체적인 그래프 데이터 모델 예제를 보았지만, Neo4j가 더 나은 그래프의 구축을 어떻게 돕는지, 그 아키텍처가 지식그래프를 확장 가능한 방식으로 짓는 일을 어떻게 거들 수 있는지 이해해 두는 편이 현명할 것이다. Neo4j는 Neo4j 자체와 지식그래프, GraphRAG 구현을 더 배울 수 있는 다음 자료들을 제공한다.
- Neo4j Graph Academygraphacademy.neo4j.com에서 찾을 수 있다. Neo4j 개념을 이해하고 지식그래프를 짓는 풍성한 자료들이 담겼다. 이를테면 GenAI Workshop — GraphRAG 과정은 GraphRAG 원리를 이해하는, 따라가기 쉬운 워크숍을 제공한다.
- Neo4j GraphRAG
Python 패키지Neo4j는 쓰기 쉬운 GraphRAG Python 패키지를 제공한다. 공식 문서에서 더 읽을 수 있다. - Neo4j GenAI 생태계GenAI 생태계 통합은 neo4j.com/labs/genai-ecosystem에서 더 읽는다. Haystack, LangChain, Spring AI를 비롯한 프레임워크들과의 통합 문서가 담겨 있다.
이제 맺는말로 향하자.
(:Section {n: 3})-[:CLOSES]->(:Book)
맺는말
우리는 떠오르는 LLM 프레임워크들의 다양한 측면과, 이 프레임워크들로 더 나은 해법을 짓는 방법을 보았다. 이 기술은 흥미진진하고, 문제를 바라보고 푸는 방식에 새 문을 열고 있지만, 아직 초창기다. 많은 처리 능력을 요구하며, 우리가 찾는 서비스 수준 협약(SLA)의 응답 시간을 갖추지 못했을 수 있다. 이 접근으로 모든 문제를 풀겠다고 들뜰 수도 있겠지만, 주어진 문제를 푸는 데 정말 이 기술들의 지렛대가 필요한지, 아니면 더 합리적이고 효과적으로 풀 수 있는지 평가하는 일이 중요하다.
이를테면 많은 사람이 LLM의 능력에 들떠, 문제를 서술함으로써 데이터 모델을 — 그래프든 SQL이든 다른 것이든 — 생성하려 시도한다. 이것은 양날의 검일 수 있다. 다루는 데이터에 익숙하지 않다면, 생성된 모델을 검증하지 못할 수 있다. 데이터에 아주 익숙하다면, LLM이 놓치고 있을 데이터의 문맥과 뉘앙스를 우리가 더 잘 쥐고 있을 수 있다. 그러니 이런 방식으로 문제를 풀려 할 때 우리가 얻는 이득은 생각만큼 크지 않을 수 있다.
이것은 문제를 효과적으로 가르는 수술칼일 수 있음을 명심하라. 도끼가 아니다. 그러니 효과적으로 쓰라.
— Epilogue, Building Neo4j-Powered Applications with LLMs책은 여기서 끝나지만, 여러분의 여정은 끝나지 않아도 된다. 기초 지식과 도구, 작동하는 예제로 무장했으니, 이제 자신만의 GenAI 해법을 실험하고 확장하고 끌어올릴 준비가 되었다. 똑똑한 어시스턴트를 짓든, 맥락적 검색 엔진을 짓든, 개인화된 추천 시스템을 짓든 — 지능형 애플리케이션의 미래는 이제 여러분의 손에 있다.
생성형 AI와 LLM 분야의 최신 동향을 따라가려면 주간 뉴스레터 AI_Distilled(packt.link/Q5UyU)를 구독할 수 있다. 책에 관한 질문이 있거나 생성형 AI·LLM 토론에 참여하고 싶다면 Discord 서버와 Reddit 채널에서 같은 관심을 지닌 이들과 연결하고 나누고 협업할 수 있다.
계속 지어라. 계속 탐험하라.
그리고 무엇보다 — 계속 연결하라.
지식그래프와 생성형 AI의 힘으로, 아이디어와 데이터와 사람을.