為 Marginalia 搜尋引擎開發 NSFW 過濾器
我正在為 Marginalia 搜尋引擎開發一個 NSFW 過濾器,這主要是應 API 使用者的要求,我最終採用了從頭實現的單隱藏層神經網路方案,以在搜尋引擎所需的處理速度與分類準確性之間取得平衡。
背景
Marginalia Search 是一個專注於探索非主流網路內容的獨立搜尋引擎。開發者 Viktor 最近分享了為該引擎開發 NSFW(成人內容)過濾器的技術歷程。由於搜尋引擎必須在 CPU 上高效運行,開發者捨棄了主流但沉重的 Transformer 模型,轉而嘗試 Fasttext 庫,並最終採用自行開發的單隱藏層神經網路,結合 LLM 標記樣本與人工特徵工程來平衡過濾精準度與運算速度。
社群觀點
在 Hacker News 的討論中,社群對於這種在資源受限環境下實作過濾機制的方法展現了高度興趣。針對過濾器的實際應用,Uruky 的開發者詢問了參數設定的具體差異,開發者解釋目前的過濾機制分為三個等級:完全不篩選、僅過濾已知黑名單,以及結合新開發神經網路的進階過濾模式。初步測試顯示,這種新方法雖然並非完美無缺,但確實能顯著提升搜尋結果的純淨度。
關於資料標記的準確性,有討論者好奇網站是否會透過 Meta 標籤進行自我標記。開發者指出,網路上的 Meta 標籤資訊通常品質低劣且不可信,但在法律規範下,某些特定字串如美國法典中的「18 USC 2257」反而是極為強大且可靠的成人內容訊號。此外,也有用戶開玩笑地詢問是否能提供「僅限 NSFW」的篩選模式,反映出使用者對於搜尋引擎靈活性的不同需求。
在技術實作層面,社群成員探討了嵌入模型(Embedding models)在搜尋引擎中的角色。有觀點認為,如果搜尋引擎本身已經使用了嵌入技術,那麼在嵌入向量上應用決策樹(如 Catboost)通常能取得不錯的效果。雖然現代的微調模型如 ModernBERT 在效能上可能無法滿足 Marginalia 對於 CPU 運算速度的嚴苛要求,但社群普遍認同開發者目前採用的「特徵工程結合簡單神經網路」是一種成本極低且推論效率極高的折衷方案。
延伸閱讀
- UT1 Blacklists:文中提到的網域過濾基礎清單。
- Fasttext:由 Meta 開發的快速文本分類庫。
- Ollama 與 Qwen 3.5:開發者用於自動化標記訓練資料的開源大型語言模型工具。