别再死磕工具链了,定义问题的能力才是 AI 工程师的真正护城河
在很多公司内部,AI 项目的失败路径惊人地一致——在启动阶段,工程师没有花足够的时间去观察业务场景,而是习惯性地直接套用某个成熟的模型方案。比如,面对一个复杂的推荐需求,很多人的第一反应是去调某个开源的 Transformer 变体,或者尝试增加几层 Attention 机制,结果模型指标在测试集上刷得很高,但上线后对业务指标的提升几乎为零。这就是典型的“用技术方案掩盖问题定义缺失”。
一个典型的坑是很多工程师习惯于“沉默地解决问题”。遇到不理解的业务逻辑先悄悄 Google,开会时没听懂就习惯性点头,然后等到凌晨一点一个人死磕代码。这种习惯看似勤奋,实际上在扼杀创造力。创造力并不是什么天赋异禀的“发明”,而是一种解决问题的习惯。如果你在讨论阶段不敢抛出那些看似“愚蠢”的问题,你永远无法触及那个非显而易见的最佳解。
我们可以从 AI 的底层逻辑来反思这一点。本质上,AI 所有的能力都源于一种极致的“连接能力”。推荐系统是将用户的过去行为与未来的选择连接起来;而像 GPT-4 这样的 LLM,则是将数千亿个 Token 的模式连接起来。我们构建的所有 AI 系统,其实都在自动化地执行“连接碎片信息”这个动作。如果作为工程师的我们,失去了观察细节、连接信息的习惯,那么在工具链被进一步自动化的今天,被 AI 替代将是必然的结果。
在实操层面,我建议大家在写第一行代码之前,强迫自己进入一个“定义阶段”。
举个具体的例子,当你面对一个预测任务,如果报错信息显示 ValueError: Input contains NaN 或者模型在验证集上出现严重的过拟合,大多数人的习惯是立刻去写一行 df.fillna() 或者增加 Dropout(0.5)。但一个具备“定义能力”的工程师会停下来问:为什么数据中会出现 NaN?这个缺失值是随机丢失(MCAR)还是具有某种业务含义的系统性缺失?如果直接填充,是否掩盖了业务逻辑中的关键漏洞?
这种对问题的深挖,决定了你是在做“参数调优”还是在做“问题解决”。工具层面的东西——无论是 PyTorch 的版本更新,还是各种封装好的 AutoML 框架——迭代速度极快,学习成本在降低。但如何在复杂的业务噪音中,精准地定义出那个能被模型解决的数学问题,这才是 AI 无法替代的竞争力。
总结来说,不要让工具掩盖了思考。在追求代码运行速度和模型精度之前,先问问自己:我定义的问题,真的是业务最核心的痛点吗?