人脸识别与机器学习的硬件要求
机器学习微服务吃什么资源
Immich 的人脸识别和语义搜索都由 machine-learning 微服务承担。理解它怎么吃硬件资源,是买机器和调参数的前提。
人脸识别的工作方式是:每张新照片进来,微服务先用模型算出人脸的特征向量,再和已有的人物簇比对,决定归入已有分组还是新建一个。智能搜索同理,给每张照片算一段文字向量,之后你搜索时输入的短语也被转成向量,按距离找最近的照片。这些计算在照片入库时发生一次,之后查询只是向量比较,非常快。
所以硬件压力集中在两个时刻:第一次部署后的全库扫描,以及日常新增照片的增量处理。全库扫描是真正的重活,几万张照片在 CPU 上可能要跑大半天;之后每天新增几十张照片,几分钟就处理完,几乎无感。了解这一点,硬件预算就有的放矢了。
| 硬件资源 | 全库扫描时 | 日常增量时 | 说明 |
|---|---|---|---|
| CPU | 满载,多核有助于提速 | 占用很低 | CPU 可用但慢 |
| 显卡 | 大幅提速 | 占用很低 | 需要可用的显存 |
| 内存 | 模型加载占数 GB | 常驻占用 | 建议总共 8GB 起 |
| 硬盘 | 只读照片,写入数据库 | 占用很小 | 主要为随机读取 |
显卡:有用的加速,不必痴迷
如果机器有显卡,machine-learning 会自动用上,速度可以提升十几倍甚至更多。但这里有几个常见误区值得澄清。
误区一是以为必须上旗舰显卡。人脸识别用的模型并不大,一张入门级显卡、四五个 GB 显存就能流畅工作,二手市场几百元的卡足以满足全家相册的需求。误区二是以为没显卡就不能用。CPU 模式完全可以工作,功能上一模一样,只是首次全库扫描慢一些,对照片只有几万张的家庭用户来说,睡前让它跑,第二天早上差不多就好了。误区三是以为显卡越贵体验越好,实际上人脸识别模型的规模有限,超出某个档位之后再加钱只换来纸面参数。

买机器时的建议是:把显卡当作加分项而不是必选项。如果家里本来就有一台带显卡的小主机或淘汰的台式机,直接用;如果从零开始装机,优先把钱花在硬盘和内存上,显卡等以后有需要再加。另外要注意驱动层面的问题:显卡直通、驱动版本这些细节在 NAS 系统里偶尔会折腾人,如果没做过虚拟化直通,先翻一翻《自建 NAS 完全指南》 的相关章节再动手,能少走不少弯路。
模型可换:显存不够就用小的
Immich 的机器学习模型是可以替换的,这是它灵活性的体现。默认模型在效果和体积上取了平衡;如果显存紧张,配置里可以换成更小的模型,占用直接降一个档次。模型替换是改环境变量的事,改完重启微服务即可,不需要写代码、不需要重新部署整套服务。
模型选择的权衡很直观:模型越大,识别越准、向量越精细,占的显存和内存也越多;模型越小,资源省,但偶尔会出现识别不稳、语义搜索偏差的情况。对绝大多数家庭场景来说,默认或小一档的模型已经够用,不必盲目追大模型。常见的做法是先用默认模型跑全库,看人物分组是否准确、搜索是否跟手,再决定要不要换。

内存与 CPU 的基线
抛开 GPU 不谈,一台能舒服跑 Immich 的机器基线并不高。内存方面,server、redis、postgres、machine-learning 几个服务加起来常驻约 3 到 4GB,加上模型加载和缩略图生成时的峰值,8GB 是比较稳妥的起点,16GB 则几乎不会遇到瓶颈。CPU 方面,四核是最低限,机器学习在 CPU 上跑的时候多核收益明显,但日常增量处理对 CPU 几乎没有压力。
如果你打算在同一台机器上同时跑其他服务——影音库、下载工具、家谱应用之类——那内存预算要相应往上加。容器服务之间隔离归隔离,内存超了该卡还是卡,该停的还是停。一个实用判断法:先只起 Immich 跑两天,盯着监控面板里的常驻占用,再决定要不要挤别的东西进来,给突发留出余量。
一个容易被忽略的硬件是硬盘。Immich 会为每张照片生成缩略图,这带来一定的随机读写;postgres 存元数据,写入频率不高但很碎。把照片目录和系统放在同一块机械盘上能用,但滑动时间线时会明显感到涩。比较理想的做法是系统放固态盘、照片放机械盘这种常见组合,细节在存储规划一章展开。
| 组件 | 最低 | 建议 | 备注 |
|---|---|---|---|
| CPU | 双核 | 四核及以上 | CPU 跑识别时多核更明显 |
| 内存 | 4GB | 8GB 或 16GB | 模型加载额外占内存 |
| 显卡 | 无 | 入门级即可 | 有则加速,无则等时间 |
| 系统盘 | 任意 | 固态盘 | 提升缩略图与数据库响应 |
| 照片盘 | 任意 | 机械盘或更大容量 | 照片主要吃存储容量 |
给已经买好机器的读者一个定心丸:这张表是舒服线,不是生死线。双核 CPU 加 4GB 内存的网盒也能把 Immich 跑起来,功能一样不少,只是全库扫描要数着小时等。差距体现在体验上,而不是能不能用上。反过来,盲目堆硬件也不会带来额外收益——人脸识别模型就那么大,超出的性能都在空转。先用手头有的设备跑起来,性能瓶颈真出现了再升级,这是最经济的路径。
首次扫描之外的隐形开销
除了识别本身,Immich 在首次运行时还有一项重活:生成缩略图。每一张照片都要生成几个尺寸的小图,用于时间线快速滑动和网页端加载。这是纯 CPU 密集的任务,显卡帮不上忙,SSD 能明显提速。几万张照片的缩略图在固态盘上跑半个小时左右,在机械盘上可能要拉长几倍,这个差异在规划硬盘布局时值得考虑进去。
识别完成之后的日常就非常安静了。新增照片进来,机器学习微服务处理单张照片只需要几十毫秒,缩略图生成同样是单张级别。除非一次性导入几万张旧照片,否则你几乎不会注意到这套系统在干活。所以评估硬件时,真正要回答的问题不是跑得够不够快,而是第一次扫描你愿意等多久。
一个具体的数字感:五千张照片在较新的四核 CPU 上,全库扫描加缩略图大约十几分钟到半小时;同样的量级搁在十年前的老机器上,可能要两个小时往上。差别存在,但都在等得起的范围内。照片量翻十倍,时间也大致翻十倍,可以按这个粗略比例估算自己机器的等待时间。
顺带给个感性结论:照片在五万张以内的家庭用户,任何一台六年内的四核机器都能给你完整功能,区别只是首日等待时长。那些反复劝退新手的高性能焦虑,多半来自把首日峰值当成了常态——第二天之后,它安静得像不存在。

一个经常被问到的细节是:机器学习服务在没事做的时候占多少资源?答案是模型加载到内存后常驻,闲时几乎不消耗 CPU,显存占用保持在一个固定的小数字。不需要为了省电每天关掉它,开机自启挂着就好。给人脸识别做硬件预算,归根结底是在给第一次扫描买等待时长,这一点想通了,花钱的决策就不纠结了。
顺带说说部署形态的选择。同一台机器上既能裸装 Docker 直接跑,也可以在虚拟机里开一台 Linux 专门跑,两者功能完全一样。区别在于运维偏好:裸装省一层、性能损耗最小;虚拟机隔离更干净,出问题可以整体快照回滚。如果你打算让 NAS 一机多用、同时跑影音库和下载工具,虚拟机方式出问题时更容易止血。这部分展开内容可以参考《群晖 DSM 实用指南》 里容器与虚拟机的对比章节。
不同硬件组合的实际预期
把上面这些拼起来,几档典型配置的实际体验大致如下。

纯 CPU 的迷你主机是最经济的起点。部署完全一样,功能不缺,只是第一次扫描全库时耐心一点。带入门显卡的小主机是体验最均衡的选择,全库扫描十几分钟到半小时,之后日常无感。如果家里正好有高性能台式机长期开机,直接拿来跑也可以,它会让你忘记还有扫描这件事——唯一的提醒是电费账单。机器选型的展开内容可以翻《自建 NAS 完全指南》 的硬件章节,那里按预算分了几档可照抄的配置单。
硬件规划上若同时涉及内网穿透和外网访问,可以顺带读一读《软路由从入门到精通》,把网络入口一并规划好;群晖用户的具体操作差异可以参考《群晖 DSM 实用指南》 的容器与硬件直通部分。
说到底,这台机器平时最累的一天就是部署当天。给它算预算,与其按高峰配满,不如按稳态配够、把余量留给硬盘寿命和电费。
小结
人脸识别的门槛没有想象中高:显卡是加速器而不是入场券,CPU 也能跑完整功能;模型可换让显存预算变得灵活;8GB 内存加任意四核 CPU 就是够用的基线,硬盘布局对日常流畅度的影响反而最容易被忽视。下一章在动手之前,先把三件必须事先定好的事情说清楚。
延伸阅读
- 下一章《部署前要定的三件事》:目录结构、域名、账号体系先想好再装。
- 《自建 NAS 完全指南》:整机选型与硬盘搭配的细节。
