RAG Needs a Map: Using GraphRAG to Retrieve Connected Context โ Nyah Macklin, Neo4j
ํ ์ค ํต์ฌ
์ด ์์์ ๊ธฐ์กด ๋ฒกํฐ RAG์ ํ๊ณ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ง์ ๊ทธ๋ํ๋ฅผ ๊ฒฐํฉํ GraphRAG๋ฅผ ์๊ฐํ๊ณ , Neo4j Aura์ GraphAcademy ์ค์ต์ผ๋ก ์ฐ๊ฒฐ๋ ๋ฌธ๋งฅ์ ๊ฒ์ํ๋ ์์ด์ ํธ๋ฅผ ์ง์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์ํฌ์ ์๊ฐ ๊ธฐ์กด RAG ๊ฒฝํ ์์ค์ ๊ฐ๋จํ ์ ๊ฒํ ๋ค, GraphRAG์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ฒ์ ์ ํ๋ ์ฌ๋๋ ๋ฐ๋ผ์ฌ ์ ์๋๋ก ์ค๋์ ๋ชฉํ๋ฅผ ์ค์ ํ๋ค. ๊ทธ๋ํ ์ด๋ก , ์ปจํ ์คํธ ์์ง๋์ด๋ง, AI ๊ฑฐ๋ฒ๋์ค์ ์์ ์ฑ ๊ด์ ์์ ์ ์ฐ๊ฒฐ๋ ๋ฌธ๋งฅ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ์ง๋ ํจ๊ป ์ ์ํ๋ค.
-
3:07
GraphAcademy์ ์ํฌ์ ์ค๋น ์ค์ต์ GraphAcademy๋ฅผ ํตํด ์งํ๋๋ฉฐ, ๊ณ์ ์์ฑ๊ณผ ์ํฌ์ ๋ ธํธ๋ฅผ ๋ฏธ๋ฆฌ ์ค๋นํด ๋๋ ํ๋ฆ์ ์๋ดํ๋ค. ๊ฐ์์์ด ์๋๋ผ ์ง์ ํค๋ณด๋๋ก ๋ฐ๋ผ ๋ง๋๋ ํ์์ ๋ฌด๋ฃ ํ์ต ํ๋ซํผ์ด๋ผ๋ ์ ์ ๊ฐ์กฐํ๋ค.
-
5:18
Aura ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ ์ค์ต์ ์ฌ์ฉํ Neo4j Aura ๋ฌด๋ฃ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , OpenAI API key์ ์ฐ๊ฒฐ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ ธํธ๋ฅผ ์ค๋นํ๋ค. ๋น์ฉ์ด ๋๋ ์ธ์คํด์ค๊ฐ ์๋๋ผ ๋ฌด๋ฃ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ ์ ๋ ํจ๊ป ์๋ดํ๋ค.
-
7:07
๋ฒกํฐ์ ๊ทธ๋ํ ๋ฌธ๋งฅ ์ฌ๊ณผ ์์๋ฅผ ํตํด ๋ฒกํฐ๋ ๊ธฐ๊ณ ์นํ์ ํํ์ด๊ณ , ์ง์ ๊ทธ๋ํ๋ ์ธ๊ฐ์ด ์ดํดํ๋ ์์ฑ๊ณผ ๊ด๊ณ๋ฅผ ํจ๊ป ๋๋ฌ๋ธ๋ค๋ ์ฐจ์ด๋ฅผ ์ค๋ช ํ๋ค. RAG์์ ํฌ๋ช ์ฑ๊ณผ ์ค๋ช ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ค๋ฉด ๋จ์ ์๋ฒ ๋ฉ๋ง์ด ์๋๋ผ ๊ทธ๋ํ ๋ฌธ๋งฅ์ด ๋์์ด ๋๋ค๋ ์ ์ ๋ณด์ฌ์ค๋ค.
-
9:13
๊ด๊ณ์ ์ค๋ช ๊ฐ๋ฅ์ฑ ํ ์ด๋ธ ์กฐ์ธ์ด๋ ๋ฒกํฐ ๊ฒ์๋ง์ผ๋ก๋ ๋ฐ์ดํฐ์ ์ฐ๊ฒฐ ๊ตฌ์กฐ๋ฅผ ์ถ์ ํ๊ธฐ ์ด๋ ต๊ณ , ๋ณต์กํ ์ง์์์๋ ์ฑ๋ฅ๊ณผ ์ค๋ช ๊ฐ๋ฅ์ฑ์ด ์ฝํด์ง ์ ์๋ค๊ณ ์ง๋๋ค. ์ง์ ๊ทธ๋ํ๋ ๋ ธ๋์ ๊ด๊ณ๋ฅผ ๋ฐ๋ผ ์ด๋ํ๋ฉฐ ๊ณผ๊ฑฐ ์์ฌ๊ฒฐ์ ์ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ ์ ์๊ฒ ํด ์ฃผ๋ฏ๋ก, ๊ธ์ตยท์๋ฃยท๋ฒ๋ฅ ๊ฐ์ ๊ท์ ์ฐ์ ์ ํนํ ์ ๋ฆฌํ๋ค.
-
11:38
RAG์์ GraphRAG๋ก ์ผ๋ฐ RAG๋ ๋ฌธ์๋ฅผ ์ฒญํฌ๋ก ๋๋๊ณ ์๋ฒ ๋ฉํด top-k ๋ฌธ์๋ฅผ LLM์ ์ ๋ฌํ๋ ๊ตฌ์กฐ์ด๋ฉฐ, GraphRAG๋ ์ฌ๊ธฐ์ ์ง์ ๊ทธ๋ํ๋ฅผ ๊ฒ์ ๊ฒฝ๋ก์ ํฌํจํ๋ค. ์ฆ, ๊ฒ์ ๋จ๊ณ๊ฐ ๋จ์ ์ ์ฌ๋ ๊ธฐ๋ฐ์ด ์๋๋ผ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ๋ฐ๋ผ ํ์ฅ๋๋ค๋ ์ ์ด ํต์ฌ ์ฐจ์ด๋ค.
-
13:00
์ฐ๊ฒฐ๋ ๊ฒ์์ด ๋์์ด ๋๋ ๊ฒฝ์ฐ ๋จ์ ๊ฒ์ ์์ง ์์ค์ ์ง๋ฌธ์๋ ๋ฒกํฐ RAG๊ฐ ์ถฉ๋ถํ์ง๋ง, ์ฌ๋ฌ ๋จ๊ณ์ hop์ด ํ์ํ ์ง๋ฌธ์ด๋ ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์ข ํฉํด์ผ ํ๋ ์ง๋ฌธ์์๋ GraphRAG๊ฐ ๋ ๊ฐํ๋ค. ์ค์ ๋ก๋ ๋ฒกํฐ์ ๊ทธ๋ํ๋ฅผ ๋์ฒด ๊ด๊ณ๊ฐ ์๋๋ผ ๋ณด์ ๊ด๊ณ๋ก ํจ๊ป ์ฐ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ด๋ผ๊ณ ์ ๋ฆฌํ๋ค.
-
16:11
๊ฒ์๊ธฐ ์ ํ๊ณผ ์ํคํ ์ฒ retriever๋ ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์์ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ฐพ์์ค๋ ํต์ฌ ๊ตฌ์ฑ ์์์ด๋ฉฐ, ์ ๋ ฅ๋ ์ง๋ฌธ์ ๋ฐํ์ผ๋ก ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ์์ ๋งฅ๋ฝ์ ๋์ด์จ๋ค. Neo4j๋ full-text search, vector search, Cypher retriever๋ฅผ ์ง์ํ๋ฉฐ, ๋ด์ค ์ฑ๋ด ์ฌ๋ก๋ฅผ ํตํด APIยท๋ฌธ์ยท์ง์ ๊ทธ๋ํ๋ฅผ ํจ๊ป ์ฎ๋ ์ํคํ ์ฒ๋ฅผ ์๊ฐํ๋ค.
-
18:42
์ง์ ๊ทธ๋ํ ๊ธฐ์ด ์ง์ ๊ทธ๋ํ๋ ํ์ค ์ธ๊ณ์ ์ํฐํฐ์ ๊ทธ ๊ด๊ณ๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ํํํ ๊ฒ์ด๋ฉฐ, ์ฌ๋๋ ๋ ธ๋๊ฐ ๋๊ณ ๋๋ฃ ๊ด๊ณ๋ ๊ด๊ณ๋ก ๋ชจ๋ธ๋งํ ์ ์๋ค. ์ด ๋จ์์ ์ดํ์ ๊ทธ๋ํ ๊ตฌ์ถ ์ค์ต์ ์ํ ์ต์ํ์ ๊ฐ๋ ์ ํ ๋๋ฅผ ์ ๋ฆฌํ๋ ์ญํ ์ ํ๋ค.
-
20:18
์ํฐํฐ์ ๊ด๊ณ ์ถ์ถ ์ง์ ๊ทธ๋ํ ๊ตฌ์ฑ์ ๋ฐ์ดํฐ ์์ง, ์ฒญํน, ๋ฒกํฐํ, ์ํฐํฐยท๊ด๊ณ ์ถ์ถ, ๊ทธ๋ํ ์์ฑ์ ์์๋ก ์งํ๋๋ค. LLM์ JSON ํ์์ ์ถ์ถ ํ๋กฌํํธ๋ฅผ ์ฃผ๋ฉด ์์์ ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋ ธ๋์ ๊ด๊ณ๋ฅผ ๋ง๋ค์ด ๊ทธ๋ํ๋ฅผ ์กฐ๋ฆฝํ ์ ์๋ค.
-
23:08
Python ํจํค์ง์ Codespace ์ค์ graph-rag-for-Python ํจํค์ง๋ฅผ ์ฌ์ฉํด ์ง์ ๊ทธ๋ํ ๊ตฌ์ถ๊ณผ ๊ฒ์์ ์งํํ๋ฉฐ, GitHub Codespaces๋ก ๋ฐ๋ก ์ค์ต ํ๊ฒฝ์ ์ฐ๋ค. .env ํ์ผ์ Aura ์ฐ๊ฒฐ ์ ๋ณด์ OpenAI ํค๋ฅผ ๋ฃ์ด์ผ ํ๋ฉฐ, ๋ฌด๋ฃ Aura ์ธ์คํด์ค๋ฅผ ์ฐ๋ ๊ฒ์ด ์ค์ต์ ์ ์ ๋ค.
-
27:32
ํ๊ฒฝ ํ ์คํธ test_environment.py๋ฅผ ์คํํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ๊ณผ OpenAI ํค ์ค์ ์ด ์ ์์ธ์ง ํ์ธํ๋ค. ํ ์คํธ๊ฐ ํต๊ณผํด์ผ ์ดํ์ ๊ทธ๋ํ ์์ฑ๊ณผ ์์ด์ ํธ ์ฐ๊ฒฐ์ด ๋ฌธ์ ์์ด ์งํ๋๋ค.
-
28:40
์ง์ ๊ทธ๋ํ ๋น๋ ์คํ knowledge graph structured builder๋ฅผ ์คํํด Aura ์ธ์คํด์ค ์์ ์ค์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๋ค. ์์ฑ๋ ๊ฒฐ๊ณผ๋ Neo4j ์ฟผ๋ฆฌ ํ๋ฉด์์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์ค๋ณต ์คํ ์์๋ ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ์๊ธธ ์ ์์ด ์คํ ์ํ๋ฅผ ์ธ์งํด์ผ ํ๋ค.
-
30:53
๋ ธ๋์ ๊ด๊ณ ์ดํด๋ณด๊ธฐ ์์ฑ๋ ๊ทธ๋ํ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ธํ๊ณ , ๋ ธ๋์ ๊ด๊ณ๋ฅผ ์ง์ ํด๋ฆญํด ๋ฐ์ดํฐ ๋ด์ฉ์ ๊ฒ์ฌํ ์ ์๋ค. ๋จ์ํ ๊ทธ๋ฆผ์ด ์๋๋ผ ์ฟผ๋ฆฌ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ผ๋ ์ ์ ํตํด ์ง์ ๊ทธ๋ํ์ ์ค์ฉ์ฑ์ ๋๋ฌ๋ธ๋ค.
-
32:16
Aura ์์ด์ ํธ ํ์ฑํ์ ์์ฑ ์กฐ์ง ์ค์ ์์ generative AI assistance์ Aura agent ๊ธฐ๋ฅ์ ํ์ฑํํ ๋ค, ํน์ Aura ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ์ ์์ด์ ํธ๋ฅผ ๋ง๋ ๋ค. ์ด ์์ด์ ํธ๋ GraphAcademy ์ฝ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ทธ๋ํ RAG ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ์ค๋ช ๊ณผ ์ง์๋ฌธ์ ์ค์ ํ๋ค.
-
36:51
๋ฒกํฐ ์ธ๋ฑ์ค ๋ง๋ค๊ธฐ ์์ด์ ํธ์ ์ ์ฌ๋ ๊ฒ์์ ๋ถ์ด๊ธฐ ์ํด ๋จผ์ ๋ฒกํฐ ์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ํ๋ค. ์ด ์ธ๋ฑ์ค๋ Cypher ์ฟผ๋ฆฌ ์ฐฝ์์ ์คํํ๋ฉฐ, ์ดํ similarity search ๋๊ตฌ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ธฐ๋ฐ์ด ๋๋ค.
-
40:14
๊ฐ์ ์ ์ฌ๋ ๊ฒ์ ์ค์ lesson content๋ฅผ ๊ฒ์ํ๋ ๋๊ตฌ๋ฅผ ์ถ๊ฐํ๊ณ , chunk embedding ์ธ๋ฑ์ค์ top 5, OpenAI์ text-embedding-3-small, 1536 ์ฐจ์์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ค. ์ฌ๊ธฐ์ ํต์ฌ์ ๋จ์ ๊ฒ์์ด ์๋๋ผ ๊ฐ์ ๋ด์ฉ์ ๋ฒกํฐ๋ก ์ฐพ์ ์์ด์ ํธ์ ๋ต๋ณ ๊ทผ๊ฑฐ๋ก ํ์ฉํ๋ ๊ฒ์ด๋ค.
-
42:22
์ฐ๊ฒฐ๋ ๊ทธ๋ํ ๋ฐ์ดํฐ ๋ฐํ ์์ด์ ํธ๊ฐ ๋ต๋ณํ ๋ ๋ ธ๋์ ์ ์๊น์ง ํจ๊ป ๋ฐํํ๋ Cypher ์ฟผ๋ฆฌ๋ฅผ ๋ฃ์ด, ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๊ทธ๋ํ ๊ตฌ์กฐ์ ์ฐ๊ฒฐ๋๋๋ก ๋ง๋ ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฌธ์ ์ ์ฌ๋ ๊ฒฐ๊ณผ์ ๊ทธ๋ํ ๊ด๊ณ ์ ๋ณด๋ฅผ ๋์์ ํ์ฉํ ์ ์๋ค.
-
44:12
์์ด์ ํธ ํ ์คํธ์ ์ถ์ฒ ํ์ธ ์์ฑ๋ ์์ด์ ํธ์ ์ง๋ฌธ์ ๋์ ธ GraphAcademy ์ฝ์ค ์์ ์ ๋ณด๋ง์ ๋ฐํ์ผ๋ก ๋ตํ๋์ง ํ์ธํ๋ค. ๋ต๋ณ๊ณผ ํจ๊ป ์ถ์ฒ๊ฐ ํ์๋์ด, ๋ชจ๋ธ์ด ์ด๋์ ๊ทผ๊ฑฐ๋ฅผ ๊ฐ์ ธ์๋์ง ์ถ์ ํ ์ ์์์ ๋ณด์ฌ์ค๋ค.
-
45:48
์์ ๊ฐ์ ๊ทธ๋ํ์ ๋์กฐ ์ง๋ฌธ์ด ๋จ์ ๊ฒ์์ด ์๋๋ผ ์ง๊ณ์ ํฉ์ฐ์ ์๊ตฌํ ๋๋ ์์ด์ ํธ๊ฐ ๋์ํ๋์ง ํ์ธํ๋ค. ๊ทธ๋ํ๋ฅผ ๋ค์ ์กฐํํด ์ค์ lesson ์์ ๋น๊ตํจ์ผ๋ก์จ, ์ค๋ณต ์ ์ฌ๊ฐ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค ์ ์๋ค๋ ์ ๋ ํจ๊ป ๋๋ฌ๋๋ค.
-
47:55
ํ์ดํ๋ผ์ธ ์ฝ๋ ์ดํด๋ณด๊ธฐ knowledge graph structured builder ์ฝ๋์์ OpenAI LLM, embeddings, fixed-size splitter, Neo4j driver๊ฐ ์ด๋ป๊ฒ ๊ฒฐํฉ๋๋์ง ์ดํด๋ณธ๋ค. ์ง์ ๋ ๋ ธ๋ ํ์ ๊ณผ ๊ด๊ณ ํ์ , chunk size, overlap, CSVยทPDF ์ ๋ ฅ์ด ๊ทธ๋ํ ์์ฑ ๋ก์ง์ ์ด๋ป๊ฒ ์ด๋๋์ง ์ดํดํ๋ ๊ตฌ๊ฐ์ด๋ค.
-
51:07
์ถ๊ฐ ํ์ต๊ณผ ๋ง๋ฌด๋ฆฌ GraphAcademy์ Cypher fundamentals๋ฅผ ๋ค์ ํ์ต ๊ฒฝ๋ก๋ก ์ ์ํ๊ณ , ๊ด๋ จ ๋ฐ์ ๊ณผ ๋ถ์ค ์ฐธ์ฌ ์ ๋ณด๋ฅผ ์๋ดํ๋ค. ํต์ฌ ๋ฉ์์ง๋ GraphRAG๊ฐ ์ ํ์ฑ, ๊ฐ๋ฐ ์ฉ์ด์ฑ, ์ค๋ช ๊ฐ๋ฅ์ฑ์ ๋์ด๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐ๋ ๋ฌธ๋งฅ์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ์ ์ด๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ๋ฒกํฐ ๊ฒ์๋ง์ผ๋ก ๋ตํ๊ธฐ ์ด๋ ค์ด ์ง๋ฌธ์ ๋๊ฐ ์ฌ๋ฌ hop๊ณผ ๊ด๊ณ ์ถ์ ์ด ํ์ํ๋ฐ, ์ด๋ GraphRAG๋ฅผ ๋ถ์ด๋ฉด ๊ทผ๊ฑฐ ๊ฒฝ๋ก๊น์ง ํจ๊ป ์ค๋ช ํ ์ ์๋ค.
- ์ง์ ๊ทธ๋ํ์ ํ์ง์ ์ถ์ถ ํ๋กฌํํธ์ ์คํค๋ง ์ค๊ณ์ ํฌ๊ฒ ์ข์ฐ๋๋ฏ๋ก, ์ฒ์๋ถํฐ ๋ ธ๋ยท๊ด๊ณ ํ์ ์ ์ ํํด ๋๋ ๊ฒ์ด ํ๊ฐ์ ์ค์ด๋ ๋ฐ ์ค์ํ๋ค.
- ์ค๋ฌด์์๋ ๋ฒกํฐ ์ธ๋ฑ์ค์ ๊ทธ๋ํ ์ง์๋ฅผ ๋ถ๋ฆฌํ์ง ๋ง๊ณ ํจ๊ป ์ค๊ณํด์ผ ํ๋ฉฐ, ๊ฒ์ ๊ทผ๊ฑฐ์ ์ถ์ฒ๋ฅผ ๋ฐํํ๋๋ก ํด์ผ ์ด์ ์ ๋ขฐ๋๊ฐ ๋์์ง๋ค.