既然 AI 能写代码,我就让它重写 Rembg Pro 的核心

既然 AI 能写代码,我就让它重写 Rembg Pro 的核心。这念头是在玉林路那家蹄花店里冒出来的,面前那碗奶白的汤还在冒热气,隔壁桌几个老哥在用四川话摆龙门阵,声音洪亮,节奏安逸。我盯着手机屏幕上那个报错的 Python 环境,突然觉得,我他妈在北京上海深圳卷了十几年,图个啥?不就图能有一天,在成都这种地方,一边吃着蹄花,一边让 AI 给我打工吗?

可安逸是毒药。尤其是对 Flovico 这个 IP 来说。我搬来成都快一年了,最大的感受是,这里的“慢”不是懒,是一种巨大的、沉甸甸的精神能量。它不催你,但它会包裹你,软化你那些在北京养成的、锋利的 deadline 焦虑。早上十点才陆续开门的咖啡馆,下午河边一坐就是半天的茶摊,晚上九点以后才真正热闹起来的火锅店。这种节奏,和我脑子里那个必须日更、必须追热点、必须保持技术敏感度的“Flovico”是剧烈冲突的。我经常在深夜写代码的时候,听到楼下传来搓麻将的哗啦声,那一刻不是觉得吵,而是恐慌——我怕自己被这种声音腌入味了,怕我的产品嗅觉钝了。

所以重写 Rembg Pro,更像是一种对抗。对抗那种下沉的安逸感。原版的 Rembg 用 PyTorch,抠图效果不错,但部署起来就是一坨屎,依赖地狱,CUDA 版本冲突,Docker 镜像动不动就几个 G。我想把它核心的 U²-Net 模型用 ONNX 固化下来,用更轻量的推理引擎跑,最好能封装成一个简单的 HTTP API,扔到云函数上,按次计费。这活儿放以前,我得自己啃模型转换,调试那些见了鬼的算子兼容性,没一个礼拜下不来。

但现在,我让 GPT-3(那时候还没 ChatGPT,用的是 OpenAI 的 API)给我列步骤。Prompt 得极其具体:“我有一个 PyTorch 训练的 U²-Net 模型文件 ‘isnet-general-use.pth’,目标是转换为 ONNX 格式,并优化用于 CPU 推理。请写出完整的 Python 脚本,包括:1. 加载模型并设置为 eval 模式;2. 构造一个示例输入张量;3. 使用 torch.onnx.export 进行转换,需要指定输入输出名称和动态轴;4. 使用 onnxruntime 进行简单验证。” 它给的代码骨架基本正确,但魔鬼在细节:模型里有自定义的 GroupNorm 层,ONNX 导出时老报错;动态轴设置不对,导致后面推理时输入尺寸被锁死。我还是得一行行调试,但至少,它把我从“该从哪里开始”的茫然里拽了出来,直接进入了“这里有个坑”的实战。

调试到凌晨三点,窗外早就安静了,连麻将声都没了。我站起来活动僵硬的脖子,看着黑漆漆的窗外,突然想起下午在浣花溪公园,看到那些退休大爷提着鸟笼子慢悠悠走的样子。那种“时间不是资源,时间是背景”的状态,让我羡慕又警惕。Flovico 的商业模式,本质是贩卖“效率”和“可能性”,这需要持续的、高强度的焦虑感作为燃料。而成都,正在悄无声息地抽走我的燃料。

平衡?可能根本不存在平衡。只有一种切换。白天,允许自己被成都的节奏泡着,去人民公园喝茶发呆,观察那些真正在生活的人,让紧绷的神经稍微生锈。到了晚上,就像现在,必须把自己强行摁回那个“北漂产品经理”的躯壳里,用具体的、硬核的技术问题(比如 ONNX 算子支持列表)来制造紧迫感,来喂养 Flovico。让 AI 写代码,不是为了偷懒,是为了把节省下来的脑力,用在更残酷的思考上:当技术平民化的洪流来了,我这个人肉电池,到底还能提供什么独特的、无法被替代的“能量”?

蹄花的油腻还留在胃里,代码的报错还挂在终端。这种分裂感,可能就是未来几年的常态。用安逸来蓄能,用焦虑来放电。至少,重写后的 Rembg Pro 核心,模型文件从 200M 瘦身到了 47M,在无 GPU 的机器上,单张图推理从 3 秒降到了 800 毫秒。这个实实在在的数字,比任何关于“平衡”的哲学思考,都更能让我今晚睡着。

© 版权声明
THE END
喜欢就支持一下吧
点赞56 分享