查看容器日志,发现内存溢出
二娃奶爸程序员的深圳摸鱼与AI学习日常
晚上十点半,深圳南山。老二终于哄睡了,老大在隔壁房间跟拼音作业死磕。我端着杯泡了不知道第几水的枸杞茶,缩在书房的人体工学椅里,打开了Typora。
坐标深圳,周围腾讯系的公司扎堆,空气里似乎都弥漫着“毕业”和“优化”的味道。作为一个两个娃的奶爸,我早就过了那种为了一个并发QPS能跟架构师拍桌子、熬夜到凌晨三点的年纪了。现在我的核心诉求就俩字:稳当。嘴上喊着躺平摸鱼,但看着每个月的房贷和两个吞金兽的开销,我知道真躺平那就只能去送外卖了。所以,摸鱼归摸鱼,技术还得偷偷学,尤其是最近AI这阵风刮得太猛,不学点新东西,总觉得哪天会被后浪拍死在沙滩上。
说起最近学AI的契机,还得吐槽一下我们那个脑洞大开的产品经理老李。上周五快下班时,老李端着杯星巴克凑到我工位旁:“老王啊,我看竞品上了个智能客服,能直接根据咱们的内部文档回答用户问题,咱们下周也搞一个呗?很简单,调个API的事儿。”
我当时看着屏幕上那堆祖传的、连注释都没有的屎山代码,差点没忍住把机械键盘砸他脸上。调API?咱们那些业务文档散落在Confluence、飞书、甚至某些离职员工的本地Word里,格式乱七八糟,你让我怎么调?但吐槽归吐槽,需求还是得接。本来我想着自己用LangChain手搓一个RAG(检索增强生成)应用,但想想每天晚上回家还得给老二换尿布,实在没精力从头造轮子。于是,我在Github上疯狂搜刮,终于被我挖到了 MaxKB 这个宝藏开源项目。
MaxKB 主打就是一个开箱即用的知识库问答系统。对于我这种只想快点交差、早点回家陪娃的“CV工程师”来说,简直是救星。周末趁着俩娃去上兴趣班,我在家里的NAS上开始折腾部署。本来以为 docker-compose up -d 一把梭就完事了,结果现实狠狠给我上了一课。
容器启动后,MaxKB的Web服务一直在 Restarting。我熟练地敲下 docker logs -f maxkb-web 一看,好家伙,直接给我报了个 OOM killed。
docker logs --tail 100 maxkb-web
排查了一圈,发现是NAS的内存分配不够,加上MaxKB默认拉起的向量数据库和PostgreSQL太吃内存。赶紧去群晖后台把Docker的内存限制从2G调到了4G,顺便修改了配置文件,限制了数据库的最大连接数。
# docker-compose.yml 调整内存和连接数
services:
maxkb:
image: 1panel/maxkb
environment:
- PG_MAX_CONNECTIONS=50
deploy:
resources:
limits:
memory: 2G
重新拉起服务,看着日志里终于刷出 Started MaxKBApplication,我长舒了一口气。把飞书和Confluence里的文档通过MaxKB的后台同步过去,做了下分段(Chunking)和向量化。周一早上,我把链接甩给老李,他试了几个刁钻的业务问题,居然都答得有模有样。老李乐开了花,我也终于落得个世界清静,再也不用天天回答“那个接口在哪”这种弱智问题了。
搞定了MaxKB,我顺势深入研究了一下现在的AI生态。这就不得不提最近火出圈的 Sora 了。
老李当时看到Sora生成的视频后,又跑来找我YY:“老王,Sora这么牛,咱们能不能用它在后台自动生成营销视频?这样运营那边就不用天天催我们做素材了。”
我当时的内心是崩溃的,但作为技术人,我还是耐着性子给他科普了一下。其实,Sora这种文生视频模型,底层依然是Transformer架构结合了Diffusion模型,它把视频切分成一个个视觉补丁(Visual Patches)来处理。对于咱们做后端业务的程序员来说,去卷底层的算法和算力是不现实的,那是大厂AI Lab神仙们干的事。
但这引发了我的一些深度思考:在AI时代,程序员的核心竞争力到底是什么?
以前我们比拼的是谁写的CRUD更快,谁背的八股文更熟,谁能把Redis的持久化机制默写得一字不差。但现在,大模型写代码的能力已经越来越强,Copilot甚至能直接帮你补全一整个函数。如果我们的核心价值仅仅是“代码翻译机”,那被替代只是时间问题。
我觉得,未来的程序员更像是一个“AI架构师”或者“业务整合者”。就像我用MaxKB解决老李的需求,我不需要去手写向量检索的底层逻辑,也不需要去微调大模型,我需要的是:
- 深刻理解业务痛点(知道老李到底想要什么)。
- 具备技术选型和整合能力(知道用MaxKB能最快解决)。
- 工程化落地能力(解决OOM、处理数据清洗、对接现有系统)。
Sora也是一样,未来我们可能不需要自己去写复杂的视频渲染引擎,而是通过API调用Sora,结合我们的业务数据,去构建一个自动化的营销内容生成流。工具在变,但“用技术解决业务问题”的本质没变。
作为二娃奶爸,经历了这些,我的心态也发生了很大的变化。
以前刚毕业那会儿,总想着进大厂、拿高薪,为了一个技术难点能死磕到底。现在有了家庭,有了两个娃,我更加看重工作与生活的平衡(WLB)。摸鱼不是真摆烂,而是拒绝无意义的内耗。我不再去参加那些为了卷而卷的深夜技术分享会,而是把节省下来的时间用来陪伴家人,或者像现在这样,安静地写写博客,复盘一下最近学的新技术。
关于学习AI,我也总结了几点给同样想转型的兄弟们:
- 别去死磕数学和底层算法:除非你想转行做算法工程师,否则不要去啃那些厚厚的《深度学习》和线性代数。直接上手跑开源项目,看官方文档,结合自己的业务场景去用。
- 保持对新技术的敏感度,但不要焦虑:AI技术迭代太快了,今天出个Sora,明天出个Udio。不要试图去追赶每一个模型,掌握核心的Prompt Engineering、RAG架构、Agent设计思路,以不变应万变。
- 把AI当成你的副驾驶:不要把它当成竞争对手。用AI帮你写单元测试、生成SQL、优化正则表达式,把省下来的时间用来思考系统架构,或者早点下班回家给娃讲个睡前故事。
夜已经深了,隔壁老大的拼音作业终于写完了,老婆在喊我进去给老二冲奶粉。
今天就先聊到这吧。在这个充满不确定性的时代,作为程序员,我们唯一能确定的,就是保持学习的能力,以及守护好身边那个温暖的小家。代码写不完,但生活还得继续。各位奶爸、各位兄弟,咱们明天工位上见,记得保温杯里泡点枸杞,防脱洗发水也可以安排上了。

评论 0