聞樂(lè) 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
Claude Code源碼泄漏的余波,還在AI圈持續(xù)發(fā)酵!
說(shuō)起來(lái)還挺反常,Claude幾乎Contribute了所有RAG記憶項(xiàng)目,結(jié)果泄露的代碼卻顯示——
它自己壓根沒(méi)在用主流的RAG技術(shù)??
![]()
這就很矛盾了,Anthropic在官方文檔和技術(shù)博客里,一直明確提到支持RAG檢索。
![]()
而它“棄用”傳統(tǒng)RAG的玩法,其實(shí)恰恰也說(shuō)明了一個(gè)問(wèn)題:現(xiàn)有的RAG解決方案,性能并沒(méi)有達(dá)標(biāo)。
從2023年起,混合檢索就成了記憶引擎的標(biāo)配邏輯,向量+關(guān)鍵詞、加權(quán)排序……這些套路不斷迭代。
但隨著AI記憶場(chǎng)景越來(lái)越復(fù)雜,傳統(tǒng)RAG的瓶頸也徹底暴露,明明叫記憶引擎,卻還在干著搜索引擎的活兒,只會(huì)匹配相似文本,做不到真正的理解,更談不上聯(lián)想推理。
那怎么辦?答案很簡(jiǎn)單——
推倒,重來(lái)。
回頭看AI記憶的演化路徑,脈絡(luò)其實(shí)非常清晰:
第一代是直接硬塞全量上下文,就像通讀日記;第二代依靠向量+關(guān)鍵詞匹配,類(lèi)似查字典,可是只能找到相似內(nèi)容,抓不住真實(shí)關(guān)聯(lián);
現(xiàn)在,第三代記憶模式已經(jīng)來(lái)了。
能夠自主聯(lián)想、推理、跨結(jié)構(gòu)建立關(guān)聯(lián)的認(rèn)知模型
![]()
中國(guó)團(tuán)隊(duì)自研架構(gòu)領(lǐng)跑Benchmark
讓AI能夠?qū)崿F(xiàn)推理與聯(lián)想,大家都知道跨粒度記憶的有效組織是關(guān)鍵。
簡(jiǎn)單點(diǎn)說(shuō)就是讓AI能同時(shí)處理細(xì)顆粒的事實(shí)和粗顆粒的上下文,還能在它們之間自由跳轉(zhuǎn)(切換關(guān)聯(lián))。
但這個(gè)問(wèn)題正是2023到2026年間,整個(gè)記憶引擎行業(yè)難以突破的核心瓶頸。
不過(guò)最近,我們觀察到一個(gè)平均年齡19歲的中國(guó)年輕團(tuán)隊(duì),心流元素,給出了可行解法——
M-FLOW,憑借自研的圖路由Bundle Search架構(gòu),實(shí)現(xiàn)了benchmark的現(xiàn)象級(jí)領(lǐng)先。
對(duì)比Mem0、Graphiti、Cognee等主流方法,M-FLOW在多輪對(duì)話(huà)、長(zhǎng)期記憶、多跳推理三大核心場(chǎng)景下,性能優(yōu)勢(shì)顯著。
- 對(duì)齊Mem0的官網(wǎng)benchmark測(cè)試(LoCoMo),領(lǐng)先Mem0 36%;
- 對(duì)齊Graphiti的官網(wǎng)benchmark測(cè)試(LongMemEval),領(lǐng)先Graphiti 16%;
- 在長(zhǎng)期事件演變測(cè)試(EvolvingEvents)中,領(lǐng)先Cognee 7%,領(lǐng)先Graphiti 20%。
![]()
△測(cè)試未做任何篩選,采用行業(yè)通用Benchmark
深度測(cè)評(píng)之后,可以更清晰地看到在覆蓋寫(xiě)入、檢索、預(yù)處理、知識(shí)組織等環(huán)節(jié)等29項(xiàng)能力維度中,M-FLOW在絕大多數(shù)關(guān)鍵維度上都實(shí)現(xiàn)了完整支持。(下圖可上下滑動(dòng)完整查看)
![]()
尤其在圖增強(qiáng)檢索、指代消解、多粒度索引等決定記憶質(zhì)量的核心能力上表現(xiàn)突出。
這份成績(jī)的背后,其實(shí)可以看到的是M-FLOW架構(gòu)帶來(lái)的系統(tǒng)性?xún)?yōu)勢(shì):
- 檢索環(huán)節(jié)不依賴(lài)LLM,能夠?qū)崿F(xiàn)毫秒級(jí)響應(yīng);
- 在超大記憶量場(chǎng)景下,依然能保持接近常規(guī)Benchmark的穩(wěn)定表現(xiàn);
- 業(yè)內(nèi)首個(gè)支持指代消解的記憶引擎,讓AI對(duì)信息的理解更貼合人類(lèi)思維(指代消解是指能區(qū)分事件中的“他”和“它”)。
![]()
而且基本沒(méi)什么使用門(mén)檻,部署流程非常簡(jiǎn)單,在具備Docker環(huán)境時(shí)只需要一行代碼就能完成接入。
![]()
當(dāng)然了,雖然上手簡(jiǎn)單,但在部署之前,咱也先來(lái)說(shuō)說(shuō)大家好奇的問(wèn)題:
M-FLOW是怎么做到的?
答案其實(shí)還是開(kāi)頭的那句話(huà):推倒,重來(lái)。
與當(dāng)前行業(yè)里大量同質(zhì)化的記憶方案不同,M-FLOW并不是用LLM輔助檢索來(lái)抬高Benchmark分?jǐn)?shù),也不是簡(jiǎn)單疊加功能。
準(zhǔn)確說(shuō),它是從根本上重構(gòu)了AI記憶的組織與使用體系。
讓記憶會(huì)關(guān)聯(lián)、能推理
事實(shí)上,所有RAG系統(tǒng)都會(huì)面臨的一個(gè)問(wèn)題是,給定用戶(hù)查詢(xún),如何精準(zhǔn)定位存儲(chǔ)的相關(guān)知識(shí)?
主流方案的邏輯很直接,就是將文檔切塊、向量化后存入向量庫(kù),檢索時(shí)按余弦相似度排序。
這種方式本質(zhì)上只回答“哪段文本和查詢(xún)語(yǔ)義最接近”這一個(gè)層級(jí)的問(wèn)題,對(duì)簡(jiǎn)單事實(shí)查找的效果還不錯(cuò),但在復(fù)雜場(chǎng)景中會(huì)完全失效,因?yàn)椋?/p>
- 答案跨文檔分布:文檔切塊間缺乏結(jié)構(gòu)性連接,無(wú)法將分散在不同文檔中的關(guān)聯(lián)信息整合;
- 查詢(xún)與存儲(chǔ)粒度不匹配:宏觀問(wèn)題檢索到瑣碎片段,微觀問(wèn)題匹配到籠統(tǒng)摘要;
- 同實(shí)體異語(yǔ)境割裂:兩份文檔討論同一實(shí)體但語(yǔ)境不同時(shí),向量空間中距離遙遠(yuǎn),無(wú)法建立關(guān)聯(lián)。
究其原因,是因?yàn)?strong>平坦向量檢索丟棄了知識(shí)的內(nèi)在結(jié)構(gòu)
它能判斷文本與查詢(xún)的相似度,卻完全不清楚這段文本在整個(gè)知識(shí)體系中的拓?fù)湮恢谩?/p>
在這一點(diǎn)上,M-FLOW以圖路由檢索替代傳統(tǒng)平坦檢索,核心邏輯圍繞分層知識(shí)拓?fù)湔归_(kāi),其核心洞察是:
不止找到“匹配的文本”,更要定位匹配點(diǎn)所屬的完整知識(shí)結(jié)構(gòu),再對(duì)整個(gè)結(jié)構(gòu)進(jìn)行評(píng)分。
倒錐結(jié)構(gòu)設(shè)計(jì)
M-FLOW將所有攝入的知識(shí)組織為一個(gè)四層有向圖,形成一個(gè)倒錐(inverted cone):
![]()
這個(gè)結(jié)構(gòu)的方向性是反直覺(jué)的:在傳統(tǒng)的知識(shí)圖譜或分類(lèi)樹(shù)中,越往下越具體。
但在M-FLOW中,搜索的“入口在錐尖”(細(xì)粒度的Entity和FacetPoint是最容易被向量搜索精確命中的),而搜索的“目標(biāo)在錐底”(Episode是最終返回給用戶(hù)的知識(shí)單元)。
信息流從尖銳的匹配點(diǎn)向下匯聚到寬廣的語(yǔ)義落點(diǎn)。
這打破了“從上到下瀏覽”的傳統(tǒng)檢索范式。
用戶(hù)不是在層級(jí)中逐層縮小范圍,而是系統(tǒng)在最尖銳的點(diǎn)上捕獲信號(hào),然后沿圖結(jié)構(gòu)向下傳播到它所歸屬的完整語(yǔ)義單元。
![]()
這是一個(gè)從細(xì)到粗的過(guò)程,先在最尖銳的點(diǎn)上捕獲信號(hào)精準(zhǔn)瞄準(zhǔn),然后沿圖結(jié)構(gòu)向下傳播到它所歸屬的完整語(yǔ)義單元。
圖路由Bundle Search的工作方式
當(dāng)查詢(xún)到達(dá)時(shí),系統(tǒng)不是簡(jiǎn)單地找到最近的節(jié)點(diǎn)。
它通過(guò)評(píng)估圖中所有可能到達(dá)每個(gè)Episode的路徑,找到最優(yōu)的Episode。
階段一:在錐尖廣撒網(wǎng)
查詢(xún)被向量化后,同時(shí)在七個(gè)向量集合中搜索,從錐尖到錐底覆蓋每一層。每個(gè)集合返回最多100個(gè)候選。
最容易被精確命中的是錐尖處的節(jié)點(diǎn),一個(gè)Entity名稱(chēng)、一個(gè)FacetPoint的斷言。
這些細(xì)粒度錨點(diǎn)的語(yǔ)義極度聚焦,向量距離小。
錐底的Episode摘要也可能被命中,但因?yàn)檎Z(yǔ)義更寬泛,匹配通常不如錐尖精確。
階段二:投影到圖中
這些錨點(diǎn)被用作進(jìn)入知識(shí)圖譜的入口節(jié)點(diǎn)。
系統(tǒng)提取它們周?chē)淖訄D,邊、鄰居、連接關(guān)系,然后擴(kuò)展一跳鄰居。
這將一組孤立的向量命中點(diǎn)轉(zhuǎn)化為一個(gè)連通的拓?fù)浣Y(jié)構(gòu)。
階段三:從錐尖向錐底傳播代價(jià)
這是核心步驟,也是圖路由Bundle Search的本質(zhì)——
在錐尖捕獲信號(hào),沿圖邊向錐底傳播,在Episode處匯聚評(píng)分。
對(duì)于子圖中的每個(gè)Episode,系統(tǒng)評(píng)估從錨點(diǎn)到達(dá)它的所有可能路徑:
![]()
每條路徑的代價(jià)由三部分構(gòu)成:
- 起始代價(jià),錨點(diǎn)的向量距離(信號(hào)的尖銳程度);
- 邊代價(jià),沿途每條邊的向量距離(連接關(guān)系與查詢(xún)的相關(guān)度)加跳躍懲罰;
- 未命中懲罰,邊沒(méi)有被向量搜索命中時(shí)的默認(rèn)高代價(jià)。
Episode的最終得分是所有路徑中的最小代價(jià)。
三大打破常規(guī)的設(shè)計(jì)
1.邊也攜帶語(yǔ)義,成為主動(dòng)過(guò)濾器
傳統(tǒng)知識(shí)圖譜中,邊(圖譜中節(jié)點(diǎn)之間的連線(xiàn))只是作為類(lèi)型標(biāo)簽,比如’works_at’、’located_in’,不參與語(yǔ)義檢索。
查詢(xún)一個(gè)圖時(shí),你要么遍歷邊,要么忽略邊,因?yàn)檫叡旧聿粩y帶可被搜索的語(yǔ)義。
而M-FLOW中,每條邊都附帶自然語(yǔ)言描述文本,這些文本會(huì)被向量化、同樣參與搜索。
這意味著邊不再是被動(dòng)連接器,而是主動(dòng)的語(yǔ)義過(guò)濾器。
![]()
在代價(jià)傳播階段,系統(tǒng)不僅知道兩個(gè)節(jié)點(diǎn)之間存在連接,還知道這條連接關(guān)系本身與當(dāng)前查詢(xún)有多相關(guān)。
這樣一來(lái),即便一條邊的兩個(gè)節(jié)點(diǎn)都被搜索命中,只要這條邊本身的語(yǔ)義和查詢(xún)無(wú)關(guān),就會(huì)被判定為高代價(jià),從而直接切斷這條不合理的關(guān)聯(lián)路徑。
2.取路徑最小代價(jià),而非平均代價(jià)
為什么取最小值呢?團(tuán)隊(duì)主要考慮到一個(gè)檢索哲學(xué)——一條強(qiáng)的證據(jù)鏈就足以證明相關(guān)性。
一個(gè)Episode可能關(guān)聯(lián)10個(gè)Facet,但9個(gè)與查詢(xún)都無(wú)關(guān)。
傳統(tǒng)方式會(huì)平均所有路徑代價(jià),這就會(huì)讓無(wú)關(guān)路徑拉高分?jǐn)?shù);
而M-FLOW只看那條最好的路徑。
只要有一個(gè)Facet通過(guò)低代價(jià)路徑連接到查詢(xún),這個(gè)Episode就應(yīng)該被檢索到。
這也對(duì)應(yīng)了人類(lèi)記憶的工作方式,比如你想起一件事,通常是因?yàn)槟骋粋€(gè)線(xiàn)索足夠強(qiáng)烈,而不是因?yàn)樗芯€(xiàn)索都指向它。
3.懲罰直接命中,偏好精準(zhǔn)錨點(diǎn)路徑
這是最反直覺(jué)的設(shè)計(jì),當(dāng)查詢(xún)直接匹配了Episode摘要時(shí),系統(tǒng)反而對(duì)這條路徑施加額外懲罰。
懲罰最直接命中的原因是,它們和很多查詢(xún)看起來(lái)相關(guān)。
一個(gè)關(guān)于項(xiàng)目管理的Episode摘要,可能和任何提到項(xiàng)目或管理的查詢(xún)都有不錯(cuò)的向量距離。
但這種匹配是寬泛的、缺乏焦點(diǎn)的,這其實(shí)也反映了眾多RAG系統(tǒng)檢索噪聲的根本原因。
M-FLOW系統(tǒng)的設(shè)計(jì)偏好,是優(yōu)先選擇從錐尖(FacetPoint、Entity)出發(fā)的精確路徑。
即使多走幾跳,也優(yōu)先選擇它,直接的Episode命中只在沒(méi)有更好替代路徑時(shí)才勝出。
這樣就確保了檢索結(jié)果的精確性——不是什么都沾點(diǎn)邊的寬泛摘要,而是有具體證據(jù)鏈支撐的Episode。
拓?fù)湔撟C
要說(shuō)這套機(jī)制為什么有效,根本優(yōu)勢(shì)還是在于圖拓?fù)渚幋a了向量本身無(wú)法捕獲的知識(shí)組織結(jié)構(gòu)
多粒度均可找到錨點(diǎn)。比如問(wèn)“數(shù)據(jù)庫(kù)遷移發(fā)生了什么?” 這類(lèi)宏觀問(wèn)題時(shí),系統(tǒng)會(huì)直接匹配到Episode摘要。
雖然會(huì)受到直接命中懲罰,但因?yàn)闆](méi)有更精確的錐尖路徑,這條結(jié)果依然會(huì)勝出。
而像“P99目標(biāo)是否低于500ms?” 這類(lèi)精確問(wèn)題,則會(huì)強(qiáng)匹配一個(gè)FacetPoint,從錐尖經(jīng)過(guò)兩跳到達(dá)Episode,極小的起始距離讓整體代價(jià)非常低。
系統(tǒng)不需要人為選擇粒度,倒錐拓?fù)鋾?huì)自動(dòng)在最合適的層級(jí)找到錨點(diǎn)。
跨文檔實(shí)體橋接。當(dāng)“張博士在MIT工作”出現(xiàn)在文檔A,“MIT發(fā)表了量子計(jì)算突破”出現(xiàn)在文檔B時(shí),兩個(gè)Episode會(huì)共享同一個(gè)Entity節(jié)點(diǎn):MIT。
用戶(hù)查詢(xún)MIT時(shí),錐尖命中該實(shí)體,代價(jià)會(huì)同時(shí)向下傳播到兩個(gè)Episode,從而從兩個(gè)獨(dú)立文檔中拿到關(guān)聯(lián)結(jié)果,不需要LLM做額外推理,圖結(jié)構(gòu)本身就完成了橋接。
![]()
結(jié)構(gòu)噪聲過(guò)濾。在傳統(tǒng)平坦檢索中,很多語(yǔ)義相似但主題無(wú)關(guān)的文本片段會(huì)排在前面。
而在Bundle Search中,任何片段都必須沿著邊追溯到某個(gè)Episode。
如果沿途的邊和查詢(xún)語(yǔ)義無(wú)關(guān),路徑代價(jià)會(huì)迅速升高,讓不相關(guān)結(jié)果自然下沉。
圖結(jié)構(gòu)本身,就是一層強(qiáng)大的語(yǔ)義噪聲過(guò)濾器。
代價(jià)傳播即推理。圖中的每一條路徑,本質(zhì)上都是一條推理鏈——
查詢(xún)匹配這個(gè)事實(shí)→事實(shí)屬于這個(gè)維度→維度屬于這個(gè)事件。
路徑代價(jià)量化了這條推理鏈的緊密程度,系統(tǒng)在2–3跳內(nèi)就能完成輕量級(jí)多跳推理,檢索階段不需要調(diào)用LLM。
自適應(yīng)置信度
并不是每一層向量集合對(duì)每個(gè)查詢(xún)都同樣可靠。
系統(tǒng)會(huì)為每個(gè)集合計(jì)算兩個(gè)指標(biāo),絕對(duì)匹配強(qiáng)度與區(qū)分度,然后把集合分為“節(jié)點(diǎn)類(lèi)”和“邊類(lèi)”,按置信度動(dòng)態(tài)分配權(quán)重。
比如某一次查詢(xún)中,Entity集合的置信度明顯高于Facet集合,系統(tǒng)就會(huì)自動(dòng)提高Entity路徑的影響力。
它不是用固定權(quán)重,而是根據(jù)本次搜索中哪個(gè)粒度的命中更可信,實(shí)時(shí)調(diào)整檢索策略。
一個(gè)額外的調(diào)節(jié)機(jī)制
還有一個(gè)額外的調(diào)節(jié)機(jī)制是,當(dāng)某個(gè)Facet與查詢(xún)向量距離極小、高度吻合時(shí),系統(tǒng)會(huì)顯著降低這條路徑上的邊代價(jià)和跳躍代價(jià)。
邏輯很直觀,如果一個(gè)Facet已經(jīng)幾乎完美匹配查詢(xún),那么它到Episode的連接基本就是可靠的,不需要再通過(guò)邊語(yǔ)義反復(fù)驗(yàn)證。
除此之外,系統(tǒng)還包含查詢(xún)預(yù)處理、并行多模式調(diào)度、結(jié)果裁剪等機(jī)制……
所以總結(jié)來(lái)看,M-FLOW的檢索并不是向量搜索+圖數(shù)據(jù)庫(kù)的簡(jiǎn)單疊加,圖本身就是檢索機(jī)制
中國(guó)記憶引擎后發(fā)先至?
在國(guó)內(nèi),外置記憶遠(yuǎn)沒(méi)有國(guó)外的關(guān)注度高,然而M-FLOW團(tuán)隊(duì)不做同質(zhì)化堆砌,實(shí)現(xiàn)了國(guó)產(chǎn)在該領(lǐng)域的從無(wú)到有,并且性能領(lǐng)先世界、還堅(jiān)持開(kāi)源開(kāi)放……
其實(shí)很多初次接觸記憶引擎的人都會(huì)有一個(gè)直觀困惑,人類(lèi)的回憶難道不是尋找相關(guān)信息嗎?為什么AI的記憶,卻總是在找文本形態(tài)相似的信息?
這個(gè)最普遍的問(wèn)題,恰恰是AI記憶解決方案的核心癥結(jié)。
從初代全量上下文硬塞式記憶,到第二代向量+關(guān)鍵詞的檢索式記憶,AI始終停留在文本形態(tài)匹配,離真正的理解與聯(lián)想相去甚遠(yuǎn)。
而M-FLOW用圖結(jié)構(gòu)重構(gòu)了AI記憶的底層邏輯,解決了記憶圖譜的粒度與聯(lián)系問(wèn)題,讓AI記憶完成了從形態(tài)相似匹配到聯(lián)想與推理的跨越。
而且值得一提的是,這個(gè)項(xiàng)目是由一支平均年齡19歲、從常青藤輟學(xué)的團(tuán)隊(duì)獨(dú)立開(kāi)發(fā)的。
在AI圈里,天才少年的故事總是備受矚目。在這次技術(shù)突破之后,我們也想知道:
這群年輕人,未來(lái)又可以走多遠(yuǎn)呢……
項(xiàng)目地址:https://github.com/FlowElement-ai/m_flow
產(chǎn)品網(wǎng)站地址:https://m-flow.ai
公司地址:https://flowelement.ai
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.