# 友達課程:GraphRAG backed by Neo4j - 課程筆記 ## 前言 * 為什麼主題叫做 GraphRAG backed by Neo4j? * Graph Theory - 最根本的數學理論,研究由「節點」和「邊」所構成的結構 * Graph algorithm - 解決特定問題的具體方法或步驟 * KG - 數據模型,重點在於「語意(semantics)」 * Graph database - 儲存和查詢圖結構數據的資料庫技術 * Neo4j - 圖結構資料庫產品 * GNN - 深度學習模型結構 - 圖結構? - message passing - 來自 Belief propagation 演算法,其中節點透過邊傳遞資訊來進行推理,GNN借用了這個概念,讓神經網路的計算也能沿著圖結構流動。核心思想就是:圖上的計算 = 結構化的訊息交換 * GraphRAG - 利用知識圖譜來增強LLM ## 工程師 & 技術者 ### 「火力展示」 * Websocket, SSE - 還沒弄好 * Microk8s - 還沒弄好 ### 「快速展示實作內容」 * 資料輸入 * Named entity recognition * Structured data * Un-structured data * Local LLM hosting * LangChain call LLM * LangChain function call ### 「工程師技術者結語」 * GraphRAG 不只有 GraphRAG ### 「技術 Review」 * GQL 有如 SQL 的標準了 - 24' * Neo4j 和 SurrealDB 都是滿足 ACID,不像 MySQL、MS server * 一定一定一定要看 XiuXiu 學長的這一篇!MUST! * 以 graph structure representation 的 KG,總需要好的容器來承載 — graph database * 靜態儲存 → 容易驗證 * 動態儲存 → 目前不可懂 * https://www.anthropic.com/research/tracing-thoughts-language-model * https://www.neuronpedia.org/ * 所以,要雙腦思維 ### 「腦部模型」 有趣的研究一:雙過程 - 創意來自「刻意控制」還是「自動聯想」? * 「Dual-process contributions to creativity in jazz improvisations: An SPM-EEG study」 * Dual-process theory * 發現一:高品質演奏與「左腦」有關 * 發現二:關鍵轉折!當「經驗」被納入考量 * 排除了經驗因素後,高品質的演奏反而變成了右腦 * 觀察到左腦活動其實是「經驗」的產物 * 發現三:專家與新手的大腦運作模式截然不同 * 資深專家:大腦活動更集中在後腦區域 - 這支持了他們依賴已經內化、自動化的演奏技巧 * 資淺新手:右腦活動明顯更強 * 右腦擅長:新奇、不熟悉 * 左腦擅長:常規、已掌握 * 我的觀念:趕快內化,因為騰出空間讓大腦呼吸 ### 「靜態 - 動態」 * 靜態動態化 * 具備「動態」能力的靜態模型 — 原型:Unified-environmental-adaptive dynamic framework 的 人資打卡系統 * 常說:系統要告訴你我能做什麼? * 動態靜態化 * 具備「靜態」能力的動態模型 * 常說:反過來系統要說我不能做什麼? --- ## 課程 ### 「圖論 - 七橋問題延伸」 * Leonhard Euler 1707-1783 * 奇數點:只可以有2個才有解 * 偶數點:隨便選都可以走完 * 計算機科學 * 作業系統資源分配圖 * Compiler 語法樹 * 電腦網絡 - topology structure * 分析結構,非暴力計算 * 複雜問題有結構了 * KG * 能夠表達 → 核心模型 * 知識推理 * 關鍵字搜索 → 關係查詢 ### 「Graph algorithm」 * BFS * DFS * Dijkstra’s algorithm * for finding the shortest paths between nodes in a weighted graph ### 「KG」 * What Is a Knowledge Graph? https://neo4j.com/blog/genai/what-is-knowledge-graph/ * 展開來想:這只是先定義,回想當時候 GPT3.5-instruct 出來,然後搞知識圖譜和知識提煉的人當場傻了,冷靜了下來後才知道我們的時代來了。 — 這就是雙腦思維 ### 「Graph database」 * Graph database 不等於 graph algorithm * Youtube - How are Graph Databases So Fast ?? (Neo4j) | Systems Design Interview 0 to 1 with Ex-Google SWE https://www.youtube.com/watch?v=Sdw_D-Gllac ### 「Neo4j」 * 4j 就是 for Java * Dijkstra Single-Source Shortest Path https://neo4j.com/docs/graph-data-science/current/algorithms/dijkstra-single-source/ ### 「Cypher」 * What is Cypher? https://neo4j.com/docs/getting-started/cypher/ ### 「RAG」 * LeanRAG: Knowledge-Graph-Based Generation with Semantic Aggregation and Hierarchical Retrieval * HiRAG - Retrieval-Augmented Generation with Hierarchical Knowledge * 所以,從規劃層面,你應該就很清楚上面的東西應該怎麼去做開發和嘗試 --- ## 實作 ### 「Neo4j」 * Neo4j Aura * On-premise * 直接啟動 JVM 也行 * Docker image * Podman image * Neo4j Desktop 2 --- ## 核心 * AI 領域是心法快50年都不變,但技法一直在迭代的領域 * AI 落地開發者需集全角色語一身:數學家、工程師、導演、編劇、廠務 * AI 解決方案是醫-病關係:強大的醫療團隊就是三位一體 --- ## 其他 * Youtube - An Introduction to Graph Neural Networks https://www.youtube.com/watch?v=aFnHYEv71U4