Skip to content

Instantly share code, notes, and snippets.

@farrrr
Created March 11, 2026 04:14
Show Gist options
  • Select an option

  • Save farrrr/effd6ed272c785ff7fae0683d8394bb8 to your computer and use it in GitHub Desktop.

Select an option

Save farrrr/effd6ed272c785ff7fae0683d8394bb8 to your computer and use it in GitHub Desktop.
Mem0 Self-Hosted Model Evaluation Report

Mem0 Self-Hosted Model Evaluation Report

日期: 2026-03-10
目的: 評估 self-hosted Mem0 的 LLM extraction 與 Embedding retrieval 最佳組合
約束: 不儲存任何資料到 Mem0 Cloud,純 API 呼叫測試


Executive Summary

經過兩輪 LLM 萃取測試(Phase 1 v1: 2 模型, Phase 1 v2: 4 模型 × 15 對話)和兩輪 Embedding 檢索測試(Phase 2 v1: 2 模型 × 20 查詢, Phase 2 v2: 4 模型 × 28 查詢),最終決策如下:

角色 首選 備選
LLM Extraction Gemini 3.1 Flash-Lite($0.25/$1.50 per 1M tokens) Claude Haiku 4.5($1.00/$5.00)
Embedding OpenAI text-embedding-3-large($0.13 per 1M tokens) Gemini embedding-001

預估月費(首選組合):~$1.70/月(vs Haiku + 3-small 的 ~$6.20)


1. 測試環境與方法

1.1 測試資料

15 段模擬對話,涵蓋所有實際工作領域:

ID 主題 特性
1 公司治理 + 人事 法律條文、人事變動
2 財務建模 數字密集(EBITDA、噸數、FOB 價)
3 基礎設施 + 網路 技術術語、設定值
4 法規 + 環保 許可證號碼、日期、流程
5 AI 平台 + 模型選擇 模型名稱、技術比較
6 HR + 薪資結構 職等、金額、百分比
7 跨國業務 人名(日文)、品質標準
8 寒暄 + 雜訊 有用資訊混雜閒聊(媽祖廟、天氣)
9 Docker + 容器管理 worker ID、指令
10 資金 + 增資 股數、面額、認購價
11 憑證管理 路徑、權限值
12 OPNsense + 防火牆 IP、端口、MTU
13 記憶系統決策 架構選型、設定參數
14 UniFi + 網路設備 硬體型號、VLAN
15 混合語境 多客戶比價、協商底線

1.2 評估指標

LLM Extraction: 人工評估 5 維度

  • 完整性:是否遺漏重要事實
  • 正確性:數字、名稱是否準確
  • 精簡程度:是否避免冗餘
  • 中文語感:是否自然流暢
  • 關係保留:人事變動、因果關聯是否完整

Embedding Retrieval: 28 題自動評估

  • Precision@1(P@1):第一筆結果是否命中
  • Recall@5(R@5):前五筆覆蓋多少期望主題
  • 6 個題型分類分析

1.3 用量估算基礎

  • 日均訊息量:~108 則/天(來自 Gateway 日誌 Mar 4-9 平均)
  • 預估萃取呼叫:50-80 次/天
  • 每次 token 量:~1,500 input + ~500 output

2. Phase 1: LLM Extraction 評估

2.1 候選模型

模型 Input/1M Output/1M 特性
Claude Haiku 4.5 $1.00 $5.00 Non-thinking, stable
Gemini 2.5 Flash-Lite $0.10 $0.40 Non-thinking, cheapest
Gemini 3.1 Flash-Lite $0.25 $1.50 Non-thinking, preview (3/3 發布)
Gemini 3 Flash ~$0.30 ~$2.50 Built-in thinking, preview
GPT-5 Nano $0.05 $0.40 Reasoning model
GPT-5 Mini $0.25 $2.00 Reasoning model
GPT-4.1 Nano $0.10 $0.40 Non-thinking

2.2 早期淘汰(Phase 1 v1 + 延遲測試)

GPT-5 Nano / GPT-5 Mini — 淘汰

  • 延遲:14.20s / 15.06s(8-10 倍慢於替代方案)
  • 原因:Reasoning model,max_completion_tokens 包含 reasoning tokens,無法關閉 thinking
  • max_completion_tokens=1000 時 content 為空(reasoning 吃掉全部額度),需 8000+
  • 結論:reasoning model 根本不適合 fact extraction

Gemini 2.0 Flash — 淘汰

  • 所有變體(gemini-2.0-flash-001-exp)均回傳 404
  • 已 deprecated,被 2.5 系列取代

Claude Haiku 4.5 (thinking mode) — 不採用

  • 延遲:3.92s(比 non-thinking 的 1.86s 慢一倍)
  • 品質無明顯提升,不值得額外延遲

2.3 延遲基準(單次萃取)

模型 延遲 Reasoning Tokens
Gemini 2.5 Flash-Lite 1.46s 0
GPT-4.1 Nano 1.62s 0
Claude Haiku 4.5 1.86s 0
Haiku 4.5 (thinking) 3.92s yes
Gemini 2.5 Flash 3.96s yes (built-in)
GPT-5 Nano 14.20s 1,600
GPT-5 Mini 15.06s 960

2.4 Phase 1 v2 完整測試(4 模型 × 15 對話)

延遲統計

模型 平均 最快 最慢 σ 穩定性
G2.5 Flash-Lite 1.10s 0.72s 3.24s 0.63s ⚠️ 有異常
Claude Haiku 4.5 1.36s 0.83s 1.66s 0.22s ✅ 穩定
G3.1 Flash-Lite 1.46s 1.05s 1.72s 0.20s ✅ 很穩定
Gemini 3 Flash 4.00s 3.16s 5.51s 0.66s ❌ thinking 拖累

品質比較(關鍵差異)

對話 7(跨國業務 — 人事變動追蹤):

項目 Haiku 4.5 G2.5 Flash-Lite G3.1 Flash-Lite
田中→山本 ✅ 一行帶變更 ⚠️ 拆成兩行,漏了田中 ✅ 一行帶變更
  • Haiku:「XXX Steel 的窗口負責人從田中部長換成山本課長」
  • G2.5L:「XXX Steel 的窗口負責人換了。新的…是山本課長。」(丟失前任資訊)
  • G3.1L:「XXX Steel 的負責人已由田中部長更換為山本課長。」

對話 8(寒暄雜訊 — 關鍵決策過濾):

項目 Haiku 4.5 G2.5 Flash-Lite G3.1 Flash-Lite
媽祖廟不宜簽約 ✅ 保留 漏掉 ✅ 保留
天氣雜訊 ⚠️ 保留 ⚠️ 保留 ⚠️ 保留
  • G2.5 Flash-Lite 把「媽祖廟建議這個月不宜簽約」當雜訊過濾掉,但這是 MOU 延期的決策原因
  • 這是最嚴重的品質缺陷:過度過濾導致因果關係斷裂

對話 15(混合語境 — 多客戶數據完整度):

項目 Haiku G2.5L G3 Flash G3.1L
條數 11 9 10(截斷) 11
大園汽電共生價格 ✅ 有 ❌ 漏 ✅ 有

G3.1 Flash-Lite 是唯一與 Haiku 一樣完整保留全部 11 條 fact 的模型。

萃取風格比較

  • Haiku 4.5: 偏口語、簡潔(「改成」「沒問題」),但資訊完整
  • G2.5 Flash-Lite: 簡潔但有遺漏風險,用句點結尾
  • G3 Flash: 正式但冗長,每行帶完整主語重複
  • G3.1 Flash-Lite: 最佳平衡 — 正式、精簡、帶實體前綴(「公司名」「XXX Steel」),句點結尾,結構化

2.5 Phase 1 決策

模型 完整性 精簡度 速度 月費 判定
G3.1 Flash-Lite ⭐⭐⭐ ⭐⭐⭐(最精簡) 1.46s ~$1.50 🥇 首選
Claude Haiku 4.5 ⭐⭐⭐ ⭐⭐ 1.36s ~$6.00 🥈 備選
Gemini 2.5 Flash-Lite ⭐⭐(遺漏) ⭐⭐⭐ 1.10s ~$0.53 ❌ 品質不足
Gemini 3 Flash ⭐⭐⭐ ⭐(冗長) 4.00s ❌ thinking 拖慢

3. Phase 2: Embedding Retrieval 評估

3.1 候選模型

模型 維度 價格/1M tokens 來源
OpenAI text-embedding-3-small 1,536 $0.02 OpenAI API
OpenAI text-embedding-3-large 3,072 $0.13 OpenAI API
Gemini gemini-embedding-001 3,072 免費(AI Studio) Google API
Qwen3-Embedding-8B 4,096 $0.10 Fireworks AI

排除的模型:

  • text-embedding-004(Gemini)— 404,已被 gemini-embedding-001 取代
  • Nomic nomic-embed-text-v1.5(Fireworks)— 不可用
  • Qwen3-Embedding-0.6B — 在 Phase 2 v1 中已證實中文品質不足
  • Qwen3-Embedding-4B — 無 serverless API 可用

3.2 查詢設計(Phase 2 v2 — 28 題)

類別 題數 測試目標
直接查詢 (1-5) 5 精確匹配:「固污許可證到期日」
同義詞改寫 (6-10) 5 語義泛化:「公司賺多少錢」→ EBITDA
關聯查詢 (11-14) 4 跨主題關聯:「誰負責 SRF 出口品質」
跨語言 (15-18) 4 中英/簡繁混用:「董事长是谁」「container stuck」
時序查詢 (19-24) 6 時間相關:「最近換了什麼」「下週要做什麼」
複雜推理 (25-28) 4 多步推理:「產能跟客戶量能不能匹配」

所有查詢使用 G3.1 Flash-Lite 萃取的 100 條 facts 作為語料庫。

3.3 結果

總排名

排名 模型 P@1 Recall@5
🥇 OpenAI text-embedding-3-large 82.1% 240.5%
🥈 Gemini gemini-embedding-001 75.0% 240.2%
🥉 OpenAI text-embedding-3-small 71.4% 212.2%
Qwen3-Embedding-8B (Fireworks) 53.6% 179.8%

各題型表現(P@1)

題型 3-large Gemini 3-small Qwen3
直接查詢 100% 80% 80% 80%
同義詞 100% 100% 80% 40%
關聯查詢 100% 100% 100% 25%
跨語言 100% 100% 100% 100%
時序 33% 17% 17% 50%
推理 75% 75% 75% 25%

關鍵發現

  1. text-embedding-3-large 全方位最強: 直接/同義詞/關聯/跨語言全部 100%,比 small 有系統性提升
  2. Gemini embedding-001 是合格備選: Recall 與 large 幾乎相同(240.2% vs 240.5%),P@1 差 7 個百分點
  3. Qwen3-Embedding-8B 有 embedding 退化問題: 「申請流程需於 EMS 系統同步登錄」這條 fact 與大量不相關查詢 sim > 0.6,嚴重干擾排序。8B 已是 Qwen3 Embedding 系列最大尺寸(系列只有 0.6B / 4B / 8B),品質問題是訓練層面的
  4. 時序查詢是純 vector search 的天花板: 所有模型在「最近換了什麼」「下週要做什麼」這類查詢上 P@1 ≤ 33%。Vector similarity 無法理解時間語義,需要 Graph Memory 或 metadata filtering 才能解決

3.4 Phase 2 決策

模型 P@1 月費估算 判定
OpenAI text-embedding-3-large 82.1% ~$0.20 🥇 首選
Gemini embedding-001 75.0% 免費 🥈 備選
OpenAI text-embedding-3-small 71.4% ~$0.03 ⚠️ 可用但弱
Qwen3-Embedding-8B 53.6% ~$0.15 ❌ 品質不足

4. 最終建議

4.1 Self-Hosted Mem0 組合

元件 首選 備選 備註
LLM Extraction Gemini 3.1 Flash-Lite Claude Haiku 4.5 G3.1L 品質 ≈ Haiku,成本 1/4
Embedding OpenAI text-embedding-3-large Gemini embedding-001 large 比 small 僅貴 $0.17/月
Graph Memory Neo4j 解決時序/關聯查詢的必要元件
Reranker bge-reranker-v2-m3 Shiro TEI 已有
Vector DB PostgreSQL + pgvector 避免額外 infra

4.2 預估月費

組合 LLM Embedding 總計/月
首選 G3.1 Flash-Lite ~$1.50 3-large ~$0.20 ~$1.70
備選 Haiku 4.5 ~$6.00 Gemini embedding ~$0 ~$6.00
全 Haiku(舊方案) Haiku 4.5 ~$6.00 3-small ~$0.03 ~$6.03

4.3 部署計畫

  1. 繼續使用 Mem0 Cloud(enableGraph=true)觀察 2-4 週
  2. 確認 G3.1 Flash-Lite 從 preview 轉 GA(穩定性確認)
  3. 在 Docker VM (10.10.10.100) 部署:FastAPI + PostgreSQL pgvector + Neo4j
  4. 並行運行 Cloud + Self-hosted,品質對齊後切換

4.4 風險與緩解

風險 影響 緩解
G3.1 Flash-Lite 是 preview,可能下架或改價 LLM 萃取中斷 已測試 Haiku 備選,可即時切換
Gemini embedding-001 pricing 未定 成本可能增加 已測試 3-large 備選
時序查詢 ceiling 記憶檢索品質 需 Neo4j Graph Memory 才能突破
Qwen3 embedding 品質差 無法用開源本地 embedding 接受外部 API 依賴

5. 淘汰模型清單

模型 淘汰原因 階段
GPT-5 Nano Reasoning model, 14.2s 延遲, max_completion_tokens 包含 reasoning Phase 1 v1
GPT-5 Mini 同上, 15.1s 延遲 Phase 1 v1
Gemini 2.0 Flash 所有變體 404, deprecated Phase 1 延遲測試
Haiku 4.5 (thinking) 3.92s 延遲, 品質無提升 Phase 1 延遲測試
Gemini 2.5 Flash-Lite 漏掉決策資訊(媽祖廟)+ 人事前任 Phase 1 v2
Gemini 3 Flash 4.0s 延遲 (built-in thinking) Phase 1 v2
Qwen3-Embedding-8B P@1=53.6%, embedding 退化 bug Phase 2 v2
Qwen3-Embedding-0.6B 中文品質不足 Phase 2 v1(Shiro TEI 測試)
text-embedding-004 404, deprecated Phase 2 v2 模型偵測

6. 原則 Takeaways

  1. Reasoning models 不適合 fact extraction — thinking overhead 10 倍延遲,無品質提升
  2. 便宜不等於差 — G3.1 Flash-Lite 是 Haiku 1/4 價,品質幾乎相同
  3. 便宜也不等於好 — G2.5 Flash-Lite 最便宜但會漏重要資訊,不可接受
  4. 永遠保留測試過的 fallback — 避免 primary 故障時重跑整套評測
  5. Vector search 有天花板 — 時序和因果查詢需要 Graph Memory,不是 embedding 品質的問題
  6. 開源 embedding 仍落後 — Qwen3 8B(系列最大)P@1=53.6%,商用 API 82.1%,差距巨大

附錄

A. 測試腳本位置

用途 路徑
Phase 1 v1 腳本 artifacts/reports/mem0-eval/eval_llm_extraction.py
Phase 2 v1 腳本 artifacts/reports/mem0-eval/eval_embedding.py
Phase 2 v2 腳本 artifacts/reports/mem0-eval/eval_embedding_v2.py
Phase 1 v1 結果 artifacts/reports/mem0-eval/phase1_results.json
Phase 1 v2 結果 artifacts/reports/mem0-eval/phase1_results_v2.json
Phase 2 v2 結果 artifacts/reports/mem0-eval/phase2_results_v2.json
延遲測試腳本 /tmp/latency_test.py, /tmp/latency_test2.py, /tmp/latency_test3.py

B. API 端點與金鑰

服務 端點 金鑰位置
OpenAI https://api.openai.com/v1
Anthropic https://api.anthropic.com
Gemini https://generativelanguage.googleapis.com/v1beta/openai/
Fireworks AI https://api.fireworks.ai/inference/v1
OpenRouter https://openrouter.ai

C. 模型定價參考(per 1M tokens, 2026-03-10)

模型 Input Output
Claude Haiku 4.5 $1.00 $5.00
Gemini 3.1 Flash-Lite $0.25 $1.50
Gemini 2.5 Flash-Lite $0.10 $0.40
Gemini 2.5 Flash $0.30 $2.50
GPT-5 Nano $0.05 $0.40
GPT-5 Mini $0.25 $2.00
GPT-4.1 Nano $0.10 $0.40
text-embedding-3-small $0.02
text-embedding-3-large $0.13
Qwen3-Embedding-8B (Fireworks) $0.10
Qwen3-Embedding-8B (OpenRouter) $0.01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment