[心得] 我做了一個輕量語義搜尋引擎

看板Soft_Job (軟體人)作者 (無聞)時間3周前 (2025/11/19 09:01), 3周前編輯推噓3(3039)
留言42則, 5人參與, 2周前最新討論串1/1
PipOwl:可嵌入任何 Python 專案的輕量語義搜尋引擎(核心約 10KB) PipOwl 是從我大型語義專案中抽離出來的 最安全、最不敏感、最容易被整合的一層。 它的定位是: 輕量語義搜尋引擎(Mini Semantic Engine) 純 Python 實作,不含 C/C++ 原生模組 額外依賴皆為常見 NLP 套件(numpy / sentence-transformers) 可用於 CLI / API / Chatbot / IME本地即時執行(接近輸入法候選速度) 適合做:語句相似度、意圖比對、快速原型開發 安裝方式:pip install pipowl GitHub:https://github.com/galaxy4552/Pipowl PyPI:pip install pipowl 如果你對中文語義系統、向量表示、或極簡的 semantic engine 有興趣,歡迎一起討論。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.167.188 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1763514061.A.5E0.html ※ 編輯: galaxy4552 (114.136.167.188 臺灣), 11/19/2025 09:09:45

11/19 09:33, 3周前 , 1F
all-MiniLM-L6-v2?有試過EmbeddingGemma-300m?現在中文那
11/19 09:33, 1F

11/19 09:34, 3周前 , 2F
個embedding model是最推薦的?
11/19 09:34, 2F

11/19 10:36, 3周前 , 3F
上次-新酷鷹的事,有沒有後續...?
11/19 10:36, 3F

11/19 10:40, 3周前 , 4F
我比較偏向做語義引擎 / pipeline 的研究
11/19 10:40, 4F

11/19 10:41, 3周前 , 5F
所以沒有大量 benchmark 各種模型。
11/19 10:41, 5F

11/19 10:41, 3周前 , 6F
PipOwl 把 embedding layer 抽掉,想塞哪顆MODEL都行
11/19 10:41, 6F

11/19 10:42, 3周前 , 7F
回lchcoding 謝謝你記得 這個就是後續 目前還在開發
11/19 10:42, 7F

11/19 10:59, 3周前 , 8F
理解,晚上看
11/19 10:59, 8F

11/19 19:16, 2周前 , 9F
依賴sentence-transformers,強調核心 10KB有意義嗎。 直
11/19 19:16, 9F

11/19 19:16, 2周前 , 10F
接用sentence-transformers不就好了。
11/19 19:16, 10F

11/19 19:18, 2周前 , 11F
認真看了一下,就是sentence-transformers再包一層,有必
11/19 19:18, 11F

11/19 19:18, 2周前 , 12F
要嗎。
11/19 19:18, 12F

11/19 19:24, 2周前 , 13F
預設模型,還是中文能力特別差的all-MiniLM-L6-v2,真的蠻
11/19 19:24, 13F

11/19 19:24, 2周前 , 14F
外行,又多餘的套件。
11/19 19:24, 14F

11/19 19:27, 2周前 , 15F
結論:套殼 sentence-transformers。
11/19 19:27, 15F

11/19 19:31, 2周前 , 16F
其實 pipowl 的重點不在重造 Sentence-Transformers
11/19 19:31, 16F

11/19 19:32, 2周前 , 17F
本體還是用 sentence-transformers 沒錯 但我的目標是
11/19 19:32, 17F

11/19 19:32, 2周前 , 18F
把整條 embedding pipeline (前處理、向量化
11/19 19:32, 18F

11/19 19:33, 2周前 , 19F
normalization、top-k、API 統一化…)
11/19 19:33, 19F

11/19 19:33, 2周前 , 20F
都包成應用層能直接用的三行程式
11/19 19:33, 20F

11/19 19:36, 2周前 , 21F
all-MiniLM-L6-v2 當預設只是demo用 不是核心設計
11/19 19:36, 21F

11/19 19:42, 2周前 , 22F
謝謝你深挖 也很感謝你花時間看程式碼
11/19 19:42, 22F

11/19 19:42, 2周前 , 23F
速度這塊我自己實測過體感會比一般直接寫SBERT順很多
11/19 19:42, 23F

11/19 19:43, 2周前 , 24F
你把實務上需要根據需求,需要調整的部分,例如怎麼清洗文
11/19 19:43, 24F

11/19 19:43, 2周前 , 25F
字,相似度怎麼算,都包起來了,不能直接調整,確實很難用
11/19 19:43, 25F

11/19 19:43, 2周前 , 26F
。sentence-transformers 不封裝這些東西,就是為了實務上
11/19 19:43, 26F

11/19 19:43, 2周前 , 27F
方便調整。
11/19 19:43, 27F

11/19 19:46, 2周前 , 28F
如果是直接砍掉 sentence-transformers,從pytorch層級,
11/19 19:46, 28F

11/19 19:46, 2周前 , 29F
輕量封裝,取代sentence-transformers,對我會比較有幫助
11/19 19:46, 29F

11/19 19:46, 2周前 , 30F
11/19 19:46, 30F

11/19 19:49, 2周前 , 31F
理解你的需求,這裡的定位真的不太一樣。
11/19 19:49, 31F

11/19 19:49, 2周前 , 32F
pipowl-open 是做「開箱即用的語意搜尋」
11/19 19:49, 32F

11/19 19:50, 2周前 , 33F
目標是讓工程師不用碰到清洗、相似度公式
11/19 19:50, 33F

11/19 19:51, 2周前 , 34F
encode cache 等細節 快速把 SBERT pipeline
11/19 19:51, 34F

11/19 19:51, 2周前 , 35F
接進應用程式。
11/19 19:51, 35F

11/19 19:53, 2周前 , 36F
你說的那確實是另一種方向 pipowl 不是瞄準那一塊
11/19 19:53, 36F

11/19 19:53, 2周前 , 37F
定位不太一樣而已,完全理解你的 point
11/19 19:53, 37F

11/19 19:54, 2周前 , 38F
謝謝友善回應
11/19 19:54, 38F

11/19 19:57, 2周前 , 39F
您剛剛分析的細節,其實能感受到您真的很有能力。
11/19 19:57, 39F

11/19 20:00, 2周前 , 40F
我後面其實還有做一些更底層的向量技術
11/19 20:00, 40F

11/19 20:00, 2周前 , 41F
等更穩定後會開放
11/19 20:00, 41F

11/20 04:43, 2周前 , 42F
講到關鍵字大神要從美國跳出來了
11/20 04:43, 42F
文章代碼(AID): #1f7HRDNW (Soft_Job)
文章代碼(AID): #1f7HRDNW (Soft_Job)