我試過好幾次,想把照片從云端存儲服務里搬出來,但最終都滾回去了。谷歌相冊和蘋果手機自帶的相冊,那種打磨程度真的很難超越。存文件這件事從來不是問題,問題出在存完之后。我能打出“海灘”兩個字,就把所有海灘照片翻出來;點一張臉,就能看完一個人十五年的變化。這部分,我的家庭實驗室一直做不好,直到我往這套系統里塞了一張獨立顯卡,Immich瞬間變得好用了不少。
Immich這套軟件本身,從紙面上看早就達到了“夠用”的水平。大家容易忽略的是,讓它用起來像谷歌相冊的那些功能——智能搜索和人臉識別——背后靠的不是免費算力。智能搜索的工作原理,是把每一張圖喂進一個叫CLIP的模型里,生成一個嵌入向量,相當于給照片內容打上一串數字指紋,這樣以后你就能用文字描述來搜圖,而不是靠文件名。人臉識別則要對整個照片庫單獨跑一遍檢測流程。這兩件事都屬于批量機器學習任務,而在我那臺裝著酷睿i7-6700K處理器的小服務器上,它們跑得慢悠悠的。
![]()
對于一顆2015年發布的四核Skylake架構芯片來說,它能撐住我扔給它的幾乎所有自托管任務,唯獨Immich有點重。它技術上確實能跑Immich的機器學習作業,但速度慢到幾乎沒有實用價值,尤其是我這個體量的照片庫。我把任務啟動起來,第二天再去看,進度條幾乎沒怎么動。于是搜索功能一直是個擺設,而搜索一旦沒用,就正是我一次次退回谷歌相冊的原因。
往機器學習容器里塞進一張GTX 1070之后,計算邏輯被徹底改寫了。在CUDA加速的加持下,原本以天為單位計算的嵌入生成和人臉檢測任務,一夜之間就能跑完。任務跑完之后,文字搜索和人臉搜索都變成了瞬間響應的事,因為真正吃算力的部分發生在建立索引的階段,而不是你輸入查詢的時候。當然,這一下并非沒有代價,配置過程中碰到的麻煩事不少。1070這張卡用的是帕斯卡架構,而帕斯卡在這里過的是借來的日子。更新版本的cuDNN——也就是Immich依賴的英偉達機器學習容器所調用的加速庫——已經直接放棄了對帕斯卡的支持。我的卡到現在還能用,完全是因為Immich的維護者刻意鎖定了一個舊版的cuDNN,保持這些老GPU的存活空間。這件事本身也相當折騰人,并且要求你把顯卡驅動維持在一個稍微過時的版本上。帕斯卡需要的是舊版驅動和舊版CUDA工具棧,不是最新版,一旦升級,Immich一定會崩。
把功能跑通是一碼事,和它們朝夕相處是另一碼事。谷歌相冊最黏人的地方,恰恰藏在日常交互的細微之處。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.