ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

技术不是最重要的?真正决定成败的是问题定义与场景判断力

技术不是最重要的?真正决定成败的是问题定义与场景判断力 技术热词更新换代的速度已经快到让人有点恍惚。今天还在研究某个框架的源码明天又冒出一个号称要颠覆交互方式的大模型这周刚把推荐系统的排序模型调出一个点的提升下周就发现社区里已经有人在讨论完全不同的训练范式。作为一个在这行摸爬滚打了十多年、亲手做过算法模型、也带过技术团队的人我越来越强烈地感觉到一个反直觉的真相藏在心里我们终身追逐的技术、算法、模型这些恰恰是最不重要的东西。这句话乍一听像是技术人的自我否定但仔细拆解之后你会发现它说的其实是另一个维度的真相——真正决定一个项目成败、一个人能走多远的从来不是某个精妙的网络结构或某个炫酷的算法而是算法背后那些看不见的能力和判断。这篇文章不打算教你怎么调参也不打算推荐任何工具我只想从一个从业者的视角聊聊技术之外那些被我们忽视、却真正决定命运的东西。1. 技术更迭快到什么程度追新是一场注定跑不完的马拉松1.1 技术热词的年更定律我入行那年主流的声音还在讨论如何用SVM做分类随机森林还被当成“黑科技”中间这十几年深度学习从DNN到CNN到RNN到Transformer到各种大模型每一轮范式的切换都会把上一轮积累的很多具体经验清零同时催生出一大堆新的岗位和新的焦虑。你去看那些技术热搜词今天还是“剪枝算法”明天就成了“大模型微调技术”后天又是“谷歌新大模型暂不面向普通用户”这种资讯。这些词汇本身没有什么问题它们确实在推动行业往前走但如果你把“掌握最新技术”当成自己的核心竞争力那你永远都在追赶一个跑得比你快的人。我有个很深的体会五年前我花了很多个晚上研究某一种排序算法的优化技巧把它的时间复杂度、空间复杂度、边界条件背得滚瓜烂熟当时觉得这就是硬功夫。可是后来做了几个实际项目之后我发现那些技巧在真实系统里很少有用武之地——因为真实系统的瓶颈根本不在那。往往出现在数据质量、特征分布、业务规则变化、工程架构、甚至跨部门协作流程上。你精心优化的算法在小规模测试集上刷出来的漂亮数字放到生产环境里可能因为一个上游字段的取值错误就全线崩溃。这个规律不是某个行业的特例而是所有技术领域的共同宿命。你留意一下身边那些真正拿高薪、真正做出成绩的工程师他们几乎都不是那种“什么新框架都第一时间上手”的人。相反他们对旧技术的原理理解得非常透彻能够快速判断一项新技术本质上解决了什么样的问题然后决定要不要用、怎么用。这种判断力和“会不会用某个工具”是两码事。1.2 追逐工具的焦虑和追逐问题本质的安定我刚带团队的时候最怕遇到一种下属他简历上的技术栈写得满满当当从虚拟化技术到微服务治理从stablediffusion到langflow的自定义模型配置好像什么都会一点。但真把他放到一个具体的业务场景里比如“我们有个流程在高峰期特别慢你去看看怎么优化”他第一反应往往是“我要用哪个最新技术来解决”而不是“这个瓶颈到底在哪里、数据是什么样的、业务上哪一步是不能动的”。这两种思维模式的区别本质上就是“以技术为中心”和“以问题为中心”的区别。以技术为中心的人看到锤子就找钉子遇到什么问题都想着怎么套用自己学过的模型和算法以技术为中心的人先花大量时间理解问题本身搞清楚约束条件和评估标准然后再想“这个问题到底值不值得用复杂技术解决、有没有更简单的办法”。后者看起来不那么“先进”但做事的成率极高。我见过太多团队花了几周做一套很复杂的推荐系统模型最后发现业务上根本不需要那么高的精度一个简单的规则匹配就能覆盖80%的场景也见过反过来的例子业务方拿着一个模糊的“想要更精准的预测”需求过来如果技术人没有敏锐地把问题拆解清楚直接埋头去训练一个lightgbm回归模型最后出来的结果可能和预期南辕北辙因为对方真正的痛点是“想减少人工复核的成本”而不是“预测得更准”。2. 真正拉开差距的是定义问题的那张嘴和那双眼睛2.1 同样一句话需求有人听见噪音有人听见金矿做技术的朋友一定都经历过这种场景业务方跑过来丢下一句话“帮我们做一个智能化的功能”“把推荐效果提升一下”“给用户画像加个模型”。这句话听起来像是需求但实际上什么都不是。如果你拿这句话回去直接开始设计算法、搭建模型十有八九要做返工。我举个例子。有一段时间我们内部在讨论要不要引入一种新的排序算法来优化搜索结果。技术团队里的同事很兴奋列了一堆候选方案从暴力枚举到堆排序、从查找算法到局部放电仿真模型这类完全不相关的东西都被抛了出来。但我和业务方坐下来聊了三个小时之后发现用户真正不满的不是排序结果不够“智能”而是搜索结果里前几条总是广告和过时内容他们想要的是“可信”。排序算法根本不能解决这个问题需要的是内容时效性策略和基础的过滤机制。这就是“定义问题”的价值——它让你不做不该做的事也让你做真正该做的事。这里我想引入一个说法好的技术人就像翻译把业务方的真实意图翻译成技术方案。这个翻译过程依赖的技术很少依赖的却是倾听能力、质疑能力和拆解能力。你需要在对方含糊的描述里问出那几个关键问题你最想解决哪个指标这个问题现在是怎么处理的如果做成了你打算怎么用用户是谁场景是什么宁可多问三十分钟也不要急着写代码。因为你后面写代码、调模型、部署上线的成本是这三十分钟的几十倍甚至上百倍。2.2 场景理解才是技术落地的分水岭同样的一个模型放在不同的场景里完全可能是天壤之别。拿深度强化学习算法来说在游戏环境里它可以不断试错、不管代价地探索但在工业机器人技术或者医疗技术领域你根本不可能让模型在真实环境里反复试探一个错误的动作带来的损失是难以承受的。你如果只懂算法本身、不懂场景约束那你设计的奖励函数、安全边界很可能从一开始就是不成立的。我做过一个和数据预测相关的项目最初设想是训练一个模型来做趋势判断听起来特别“机器学习”。但真正深入场景之后我才发现这个领域的数据量少得可怜历史规律还经常被外部变化打断机器学习模型的泛化能力根本追不上场景的变化频率。最后我们用的其实是一个滑动窗口滤波模型——一个极简、几乎没有什么“技术含量”的方案效果却比那些复杂的深度学习模型好得多而且业务方能看懂逻辑、敢用。这件事给我上了一课技术选型不是越复杂越好而是越匹配越好。匹配的前提是什么是你对场景有足够深入的理解。而场景理解能力不在任何一本算法教材里。这个能力是可以刻意训练的。我给自己团队的要求是每个技术方案提交之前必须附一段“场景说明”用一段话讲清楚这个方案在什么条件下有效、在什么条件下会失效、业务上怎么样算成功。写不出这段说明的方案不管模型多漂亮我一律不批。这个习惯一开始阻力很大后面慢慢成了团队的核心竞争力——因为方案拿出来业务方看得懂合作方信得过落地阻力自然小很多。3. 数据敏感度和问对问题的能力藏在所有模型身后3.1 算法的上限由数据决定而数据问题的发现靠人机器学习从业者都知道一句话模型的上限由数据决定模型只是逼近这个上限。但很多时候我们把这话当成了耳旁风。真正到了项目现场大家更愿意花时间调自己的模型结构用更深的网络、更花哨的注意力机制却很少愿意仔细盯着数据本身看。数据敏感度是个什么感觉就是你拿到一张表、一段日志、一组特征的时候能本能地发现异常。比如某个字段的缺失率在近期突然升高了比如某个维度的取值分布和业务常识对不上比如训练集和上线时的特征分布发生了漂移。这些问题如果你发现不了后面所有的工作都是在沙滩上建房子。很多时候你以为自己的模型效果不好是算法不行实际上只是喂进去的数据早就“脏”了。我这里说个最常见的例子你在处理序列数据的时候如果没注意到时间戳存在重复或乱序那么你构造的seq2seq模型也好longformer中文模型也罢输入输出对根本就是错的再精妙的网络结构也等于零。如何训练这种敏感度我的经验比较笨也比较管用每次拿到新数据先不看统计报表而是手工抽样看五十到一百条原始记录一条一条看。这个过程看起来极其低效但会让你对“数据长什么样”产生直觉。看多了之后你遇到异常时会有第六感。这种第六感没法写进简历但它能救你无数次。3.2 问对问题比答对问题稀缺得多我们从小到大的教育训练的是“答对问题”的能力——题目给你了你算出正确答案。但真实世界和技术项目里最难的不是答对而是“提出那个正确的问题”。我给你说一个我自己犯过的错。有一段时间我想给内部工具加一个“智能推荐”的功能脑子里第一个念头就是搞一个协同过滤或者排序模型觉得不做点“算法”就对不起这个项目。后来被一个前辈问了一个问题“你真正想让用户发生什么行为如果你不做推荐现在的行为路径长什么样推荐要替代的是哪一段”这些问题问完之后我才意识到用户根本不需要推荐他们需要的是一个更好的搜索框和一组默认的排序规则。我盯了半天的“算法选型”压根是没找对战场。这种“问对问题”的能力放到技术团队的日常中就是需求评审会上你能不能在五分钟内把一个模糊的想法变成三个明确的选项是你在被大模型相关的信息轰炸的时候能分辨出哪些是真实可用的能力、哪些只是演示视频里的噱头是你在面对“技术矛盾”的时候能不被表面的方案之争带偏而是回到目标层找到真正的权衡点。这些能力每一项都不依赖某个具体的算法或者模型但少了它们算法和模型的价值会大打折扣。4. 从“我能做什么”到“我该做什么”技术人的角色跃迁4.1 技术能力只是入场券判断力才是天花板我观察过很多技术人的成长曲线发现一个有点扎心的规律在职业生涯的前几年拉开差距的主要是技术学习的速度和干活的速度但到了五年以后单纯拼技术已经很难拉开差距了。因为大家都会写代码、都会搭模型真正决定你能走多远的是你有没有判断力——判断什么值得做、什么不值得做、什么该深度投入、什么该果断放弃。这种判断力在技术决策里特别明显。比如说技术选型的时候摆在你面前的有好几种方案一种是特别新特别酷的框架社区热度很高一种是老牌的、稳定但是不那么性感的方案。很多年轻工程师倾向于选前者因为能学到东西、写简历好看但如果你站在项目和团队的角度去想你会优先考虑维护成本、团队熟悉度、生态成熟度。这个取舍没有绝对的对错但“站在哪个位置做取舍”直接反映了你的成熟度。我自己的体会是从“我能做什么”转变到“我该做什么”是一次心态上的断奶。前者的潜台词是“我有能力做这个所以我要做”后者的潜台词是“我做这个对目标有贡献所以我要做”。前者以自我为中心后者以系统为中心。一个团队里如果全是前者那会非常热闹但极其低效大家各自秀技术却没有人为最终结果负责。而想要成为后者你的视野就必须从代码和模型里拔出来去看业务、去看用户、去看成本。4.2 沟通协作和文档表达不是软技能是硬基础设施很多技术人有一种误解觉得“我只要技术强就够了沟通协作那些都是虚的”。但实际情况是技术越复杂、项目越大沟通能力就越重要。你想一下一个涉及多团队协作的大项目每个人负责的模块就像拼图的一块如果大家之间没有清晰的信息传递这些拼图根本拼不起来。你调出来的模型效果再好如果你不能用业务方听得懂的话解释清楚他们就不敢把这个模型接到关键流程里你设计的技术方案再完备如果你不能用文档把决策依据写清楚三个月后的维护者就只能靠猜。我和大家说一个具体场景你要部署一个模型到生产环境这个模型的输入是什么、输出是什么、在什么边界条件下会失效、异常时怎么降级这些信息如果没有形成文档一旦你休假或者换岗整个项目就会变成一团迷雾。我见过太多团队代码写得漂漂亮亮但没有任何人知道当初某个参数为什么这么设。这种项目表面上在运转实际上是非常脆弱的。我自己现在写技术文档有一套笨办法就是对每一个技术决策都强制写一段“为什么”的部分——我当时为什么这么选、考虑过哪些替代方案、是什么原因让我放弃了它们。这样做的好处首先是逼自己把问题想透其次是真的为以后的自己和同事降低认知成本。这是一笔非常划算的投入但很遗憾大部分技术人不愿意做觉得写文档是浪费时间。我理解这种心情因为我自己年轻时也这么想。但等你真正被“历史遗留问题”坑过几次之后你就会明白有些时间的“浪费”恰恰是最高效的投资。5. 用两个真实案例看技术之外的决定性因素到底是什么5.1 一个“很成功的模型”和一个“被废弃的系统”第一个案例是我刚带团队不久时候经历的一个项目。目标说起来很简单做一个更准确的预测模块给运营决策提供参考。技术团队里有个小伙子非常能干两周时间就训练出一个模型离线评估指标确实比老方法高了好几个百分点。大家都很兴奋业务方也点了头。但真正上线后意外出现了模型偶尔会输出一些业务常识上完全不可信的数值比如预测某个月的数据突然飙升而运营同事一看就知道那个月有特殊事件这个预测根本没有参考价值。我们后来排查下来发现问题不是出在算法上而是出在特征的构造和数据的清洗逻辑上。单纯靠模型去拟合数据学到的模式并不能理解业务上的“常规波动”和“异常事件”它只是机械地学习历史规律。最终我们采取的方案并不是把这个模型做得更复杂而是加了一层基于业务规则的过滤器把明显违背常识的预测值拦截掉。这个过滤器很朴素但正是这个朴素的东西让整个系统变得可用了。这个案例让我印象很深的是最后力挽狂澜的根本不是那个看起来很厉害的模型而是对业务场景的理解和一套朴素的规则。如果当初我们只是沉浸在“模型效果提升了几个点”的喜悦里而没有第一时间去怀疑数据层面的合理性这个项目大概率会变成一个上线即废弃的系统。5.2 一次“不需要技术”的技术方案第二个案例更有意思。有个合作方找到我们说想解决一个“搜索排序不合理”的问题。按常理这就是一个算法优化的活应该上各种排序模型。但我们深入了解之后发现合作方的核心诉求是“用户可以更快地找到他们想找的内容”而当时的搜索系统之所以体验差最大的问题是搜索结果页一次展示的信息太少很多有效信息被折叠得太深用户根本看不到。这哪里是排序算法的问题这分明是内容展示和信息架构的问题。我们最后的方案没有写任何一行算法代码只是重新调整了搜索结果页的布局、摘要的呈现方式以及把一部分动态内容提前加载。上线之后用户的搜索满意度直接上升了一截。合作方非常满意但我们自己也挺感慨如果当初拿着“算法优化”的方案去谈不仅解决不了问题还会让合作方觉得我们不懂业务。这件事之后我给自己定了一个规矩接到任何需求先不要想“我能用什么技术”而是先想清楚“这个需求真正要解决的是什么”。如果答案是“一张表格就能解决”那就不要搞一个数据中台如果答案是“一个规则就能覆盖大多数场景”那就不要急着上大模型。6. 如何把“技术不是最重要的”变成一套可执行的方法论6.1 定期做“问题复盘”而不是“技术复盘”很多技术团队都有复盘的习惯复盘什么呢大多是这次用了什么新技术、踩了什么坑、下次怎么改进。但我想建议大家换一种复盘方式把一个项目从头到尾重新看一遍重点不是看技术细节而是看决策链。当时的业务诉求是什么我们是怎么理解这个问题的中间有没有绕过弯路有没有更好的、更简单的问题定义方式如果重来一次我们在哪个节点可以更快地做出判断这种复盘方式练的不是技术能力而是问题定义能力和决策能力。技术能力可以通过学习获得但问题定义能力和决策能力必须靠一轮轮的反思和自我质疑才能内化成习惯。我自己坚持这个习惯已经好几年了感觉最大的收获是做事的框架越来越清晰越来越知道自己为什么要做一件事而不是被各路热词和潮流推着走。6.2 训练自己给别人讲清楚技术方案的能力这里有个很简单的训练方法把你正在做的项目分别讲给三种人听。第一种是你的同行他能听懂专业术语你能跟他聊实现细节第二种是你的业务方或者用户他不懂技术但关心成本和效果第三种是完全不了解这个领域的朋友你甚至要从零开始解释你解决的问题本身。这三种讲法完全不一样能把三种人都讲明白说明你不仅技术上想清楚了场景上也真的理解了。我知道有人会觉得这不是技术人该干的事但这是我的真心话那些看起来“会包装”的人之所以混得好不仅仅是因为他们擅长表现而是因为他们真的能把复杂的事情说清楚。而所谓“说清楚”本质上是你掌握的信息经过了一层深度加工。这层加工的过程会反哺你的技术判断力。我甚至建议年轻工程师有意识地多写写技术博客不为了流量就为了逼自己把想法结构化的表达出来。写出来的东西自己能看懂、别人也能看懂说明你真的想明白了写不出来往往是因为脑子里还有一坨浆糊。6.3 永远保留“这个技术不用行不行”的选项最后这个方法看起来有点反直觉当你想到一个很酷的技术方案时不要急着兴奋而是先反过来问自己如果不做技术还有没有别的办法达到目标这个问题特别管用因为它会逼着你跳出“手里有锤子就找钉子”的惯性。我承认有些问题确实只有技术才能解决比如海量数据的处理、复杂的模式识别、实时性要求极高的系统。但也有大量问题技术只是手段之一而且未必是最优的手段。就拿“智能化转型”来说很多传统场景里的“智能化”说白了只是一套把流程标准化的工具你用一个表格系统就能解决非要去上一个大模型微调技术成本高、见效慢、维护难最后大概率会烂尾。合理的做法是把“最简单可靠”当成默认选项只有当这个选项被证明不够用的时候才往上叠加更复杂的技术。这个原则听着很朴素但在行业里能坚守的人非常少。因为复杂技术往往意味着更高的预算、更大的团队、更漂亮的故事它天然具有诱惑力。但真正的专家敢于在所有人都在加码的时候保持克制敢于说“这个功能的第一个版本我们用最简单的方案就够了”。7. 回到标题技术不是最重要的那到底什么最重要写到这里我想试着直接回答标题里那个追问。技术、算法、模型为什么不是最重要的因为它们都是我们解决问题时使用的“弹药”但真正的战场从来不是弹药库而是对问题本身的理解、对场景的拿捏、对数据背后故事的好奇心、以及在复杂不确定性中做出决策的勇气和方法。如果非要我给一个排序我会说需求理解能力排在第一位数据敏感度排在第二位工程交付能力排在第三位算法模型能力排在第四位。这个排序可能和很多人的直觉不一样但它是被无数个项目验证过的。合作方最怕的不是你技术不行而是你做了一个他们根本不想要的东西团队最怕的不是模型效果差而是投入了巨大成本却偏离了真正的目标。我自己现在做技术评审的时候会非常残酷地把注意力放在最初的“需求描述”和长期的“运维成本”上至于中间那段用了什么算法和模型我反而看得比较轻。因为我知道只要问题定义对了、数据干净、评估标准清晰中等水平的算法也能做出有价值的产品反过来问题定义错了哪怕你用上了全世界最强的模型也只是在错误的方向上跑得更远而已。这些话听起来可能有些泼冷水尤其是对那些正满腔热血地学新知识、想着靠技术改变世界的年轻朋友。我给你们的建议是继续学技术继续探索新东西这些都是好的但请把它们当作内在的修炼而不是外在的标签。在你学每一个算法、看每一篇技术文档的时候都多问一句这个东西能用在哪里它解决了什么问题它还缺什么这些问题想得越多你手里的技术就越有灵魂。我在标题里说“我们一生追求的技术、算法、模型这些都不是最重要的”这句话不是说它们不重要而是说它们必须服务于更大的目的才有价值。那个更大的目的是你想解决的问题是你在乎的人是你愿意长期投入的方向。找到这个东西你所有的技术积累才会真正发光。
返回列表