好文分享 — 我不小心做出了迷因圖搜尋引擎
“I accidentally built a meme search engine” 分享如何做出以圖找圖的功能,作者拿來應用在用迷因圖去找類似的迷因圖,也有分享其 GitHub repository 給大家參考。
該文也是 1 個利用 OpenAI 提供的模型(model),將以往要花費較多時間、精力的一件事變得相對簡單的明顯例子!
簡單來說,以圖找圖可以拆解成 3 個步驟:
- 準備大量的圖片。這個步驟就需要做一些網路爬蟲囉。
- 把大量的圖片轉換成可以比較的向量或者 embedding。
- 將大量的圖片向量存起來供搜尋之用。第 3 個步驟就需要 ChromaDB, Pinecone, Faiss 等 vector database 的幫忙。
搜尋時則是先將欲搜尋的圖以相同的 embedding 模型轉換成 embedding 之後,再對 vector database 進行查詢,以找出相似的 embeddings 與相應圖片並顯示給使用者。
以往第 2 個步驟就需要花費不少時間、精力,甚至要訓練模型做圖片向量轉換,但現在可以藉由 OpenAI 的 CLIP 模型將圖片轉為向量,而且 CLIP 甚至也能將文字轉為向量,所以還可以做到用文字搜圖!但如果你的圖很特殊,跟 CLIP 所使用的訓練資料不一樣的話,仍可能要尋求別的方式或者訓練自己的模型。
p.s. 除 OpenAI 的 CLIP 之外,也有 Open Source 版的 OpenCLIP 可以使用