乐于分享
好东西不私藏

搭建一套本地ai推理服务:从硬件到软件

搭建一套本地ai推理服务:从硬件到软件

写在前面

分享一下我当前用ai的软硬件配置和家用网络的解决方案,想自己搭建本地ai大模型的可以参考。注意,这是仅供学习研究的版本,非商用版。

一、一台家用电脑

windows游戏取向的要求配置即可:

  • cpu最少i5 第14代amd也可
  • 内存必须 r5,32G起步,最好是64G
  • 显卡算力必须支持cuda 12及以上,内存16g起步,越大越好
  • 存储最好用ssd,容量1T起步
  • 散热方面,cpu最好使用360水冷顶排侧排风扇(极限运行时显卡cpu温度会很高,压不住热就白搞了)

以下是我用的配置(入门级,除了主板,其他方面都需要升级)

  • 主板:华硕(ASUS)TUF GAMING B760M-PLUS WIFI II重炮手
  • cpu:英特尔(Intel)盒装 i5-14600kf (新配建议升级-换cpu-目标是更高的线程数核心数)
  • 显卡:华硕(ASUS)RTX 5060TI-O16G 大师 (新配建议升级-换卡-目标是支持cuda 12的情况下更大的大显存 32g为佳)
  • 内存:金百达 DDR5 6000 16Gx2 (新配建议升级-增加内存容量 64g为佳)
  • 水冷:鑫谷(segotep)冰尊360ARGB (新配建议升级-增加侧排风扇辅助散热)
  • 电源: 鑫谷(segotep)金牌 GM750w 全模组(新配建议升级-根据实际功耗再测算,电源冗余需要大于30%-因为厂家都会虚标)
  • 存储:金士顿 m.2 PCLE 4.0 NV3 1T (新配建议升级-最好2T起步,1T很容易就满了,2周就能搞满1T存储)

注意:

  • ai平台推理大部分都支持gpu+cpu,所以cpu内存也很重要,不要只看显卡
  • cpu一定要带集显(f),方便排查问题。一旦显卡出问题之后屏幕无法点亮,没法排查问题。我遇到过一次让显卡长时间跑大模型过热,主板触发保护,强制卸载了显卡驱动,这种情况如果没有cpu集显,你说说你怎么搞?(华硕牛掰,买华硕主板没错,华硕没给我打钱,但是真得亏了华硕,不然显卡肯定烧了) 说到这,我得说说散热问题:正常室温25度以下,用上面的配置,散热不是问题。但是那天我目测室温超过了30度,长时间跑模型,这个配置就压不住显卡的温度,室内需要开空调,或者保证通风良好。

二、为什么系统用windows

推荐windows 10 22h2,别手贱升级到win 11,忍住Microsoft的诱惑。 原因如下:

  • windowsn卡的支持最好,省去了各种显卡驱动、工具包等一系列乱七八糟的配置,基本皮夹客老黄都弄成了exe程序,一路无脑点下一步就完事。
  • 图片/音频/视频生成模型主流都用ComfyUI工作流,windows上无缝跑起来,省心加倍
  • 其他文字类模型安装Ollama搞定,也是超级省心

只需要你把正常的NVIDIA App安装好基本上就能跑,少数需要额外安装cuda、cudnn也是都是无脑简单。

至于有些人说要把自己本地的ai能力放到其他电脑上使用怎么办,有办法。

三、把本地的ai能力提供到远程上

现在本地windows 10已经具备各种ai能力了,如何在其他电脑上,甚至是像阿里云、腾讯云这些大厂ai提供商一样,随时随地方便调用。

远程调用有2个方向

  • 针对使用ComfyUI工作流的场景,使用windows自带的远程桌面,怎么开启自己搜,不在本文讨论范围。
  • 针对其他场景的,就需要ai转发平台了,推荐使用 new-api[1] 或 sub2api[2] 它俩使用其中一个就行,目前所有的ai中转主流都是这两个之一。我搞得有点早,用的是 new-api[3] ,现在新搞的话,推荐  sub2api[4]

到这之后,还剩下最后1个网络问题。本地电脑在内网中,外部网络根本访问不到。这里也有2个方案,各位自取。

第一种:常规网络路径

  • 找到你的宽带运营商,要求给你的宽带分配动态公网ip(有个法条规定电信业务有义务提供动态公网ip,而非城域网ip,你的诉求是合理合法的,电信不会刁难你,但是家用宽带无法开通80/443端口)。
  • 然后用你的宽带账号密码使用路由器拨号上网。尽量不要用自带光猫拨号,那玩意垃圾,老老实实当个光调制解调器就行了。
  • 如果你不知道你的宽带账号密码,同样打电话给你的宽带运营商。(不用路由器拨号也行,网络性能无法最大化而已)
  • 你的路由器上大概率有个叫ddns的玩意(这都没有的话可以把路由器扔了换一个),自带的解析延迟大概是4小时。可以让ai写个ddns脚本,延迟自己控制,简单易用。不展开了具体下次再说。
  • 这时候,你就可以使用路由器上的端口映射,或者dmz功能来映射你的远程桌面3389端口ai转发平台的端口了

这个方法的缺点只有1个,由于是动态公网ip,意味着你的ip会变,一般在凌晨1~3点左右会变

  • 如果你的路由器ddns非常拉跨,那就会导致你好几个小时通过外部网络都访问不到你的电脑。
  • 如果你是自己写的ddns脚本,就需要注册阿里云或者腾讯云,买一个域名,并且备案,然后这个ddns脚本会按你设置的频率检查你的公网ip变化,只要变了就会调用你的阿里云账户授权,把最新的公网ip解析到阿里云账户的域名dns解析记录上,只需要等待dns免费解析生效(免费版一般10分钟内)。

我用的就是这种,因为我还有一台机架式服务器,需要稳定的网络。这种方式解决网络问题是最彻底,最稳定的,可以把你的宽带上下行跑满。缺点就是很折腾。

第二种:邪修网络路径

  • 阿里云或者腾讯云买个服务器 那种轻量服务器就行,主要是带宽大
  • 然后安装这个 frp[5] ,配置自己看这个项目的文档,不在本文讨论范围
  • 记得打开你的服务器防火墙,放行基本的端口
  • 然后在家里电脑上也装个 frp[6]  ,同样配置自己看这个项目的文档,不在本文讨论范围
  • 然后就收工了。你可以让你的访问变成正常的httpshttp,因为服务器的80443端口是开放的

这个方案的缺点有2点:

  • 需要会整运维或者云计算服务,懂服务器,有一定网络知识,不然 frp文档看不懂,配个锤子,当然你可以让ai帮你配

  • 最终你访问的网络受制于服务器带宽,它本质上是点对点的隧道转发

    这种方案是另外一种体系,不管你本地网络环境是什么,只要你本地电脑可以连上你的阿里云服务器,那就可以成功。简单粗暴。

    上海贝锐花生壳就是这个原理。

四、总结

  • 我目前是使用电信光猫调制光信号,路由器拨号,禁用了自带的ddns,开启dmz

  • dmz 指向到机架式服务器中通过VMware虚拟化的一个liunx系统的内网ip地址上,后面所有的公网过来的流量都在这个liunx系统上通过nginx配置分流

  • VMware虚拟化的另一个liunx系统上运行docker化的 ddns脚本,1秒检查1次公网动态ip的变化解析到阿里云dns域名解析服务上。

  • 所有与ai无关的软件都在VMware虚拟化的liunx系统中运行,比如 new-api[7]  。让ai电脑只干ai的事情。

  • 我只需要使用阿里云上的域名正常访问即可,随时随地进入远程桌面或者ai调用

  • 后续切换ai模型也不需要有任何变化,通过域名访问到  new-api[8] 管理ai资源。

    个人公众号
参考资料
[1] 

new-api: https://github.com/QuantumNous/new-api

[2] 

sub2api: https://github.com/Wei-Shaw/sub2api

[3] 

new-api: https://github.com/QuantumNous/new-api

[4] 

sub2api: https://github.com/Wei-Shaw/sub2api

[5] 

frp: https://github.com/fatedier/frp

[6] 

frp: https://github.com/fatedier/frp

[7] 

new-api: https://github.com/QuantumNous/new-api

[8] 

new-api: https://github.com/QuantumNous/new-api