查看原文
其他

心法利器[74] | 技术分享中的技术陷阱

机智的叉烧 CS的陋室 2024-04-24

心法利器


本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有

2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里:CS的陋室60w字原创算法经验分享-2022版


往期回顾

上期有谈到论文和现实落地中存在的差别(心法利器[73] | 科研和落地之间的差别),这一期我们则聚焦落地,平时我们会看很多技术分享,但实际上,内部还是会存在很多技术陷阱,那么这里有哪些陷阱,为什么会产生陷阱,以及怎么规避这些陷阱,相信这篇文章会给你答案。

叠个甲,纯属个人看法,求轻喷。

技术分享可能存在的问题

我其实也是一个很热衷看各种技术分享的人,直播可能比较少,更多各种文章,前沿重器系列不少文章的来源其实都是这些技术分享,但是本期是想和大家去聊一些技术分享中存在的陷阱的,所以重点说一下里面可能存在的问题吧。

首先,技术分享中很多内容不见得适合所有场景。近期看得比较多的就是一些预训练模型或者知识图谱的落地场景实践,但这里其实会有很多误导,让很多人以为这些东西很常见,然后日常使用中就很大胆地用到实际场景中了,结果就会出现“水土不服”的很多问题。预训练吭哧吭哧搞了一堆看着不错结果上不了线的例子,实在太多了。

其次,技术分享中一般会把很多其实比较基础常见却重要的东西给忽略。分享的重点一般是把关键或者创新的技术给展示出来,这样往往会把一些看着比较low但是不可或缺的东西漏掉,这可能会让读者也看不到这些关键的东西,例如推荐中需要花很大精力也有不错收益的用户画像,例如NLP中对基础模型的使用,词典维护等,其实都是很常见的东西,但是真没在几个分享里会提,这些对于基础技术还不太成熟的团队或者是新手,其实都可能会有一些误导。

这两个,是我认为大家需要比较关注的,在技术分享中可能存在的一些技术陷阱,新技术的吸收是可以的,但是无脑直接搬直接用,就可能要吃教训了。

产生这些问题的原因

不是说分享者大都不负责任,而是有很多客观地原因导致了产生这些问题。

首先,我感觉比较根源的原因是,分享这个东西,本身就有一定的外宣性质,人们所分享的,总会是一些熵比较大的东西,也就是信息量比较多的东西,常见的、基本的东西,一方面对于公司而言,这些东西没什么外宣价值,另一方面,希望去阅读的这些人也是希望能得到一些新东西,此时分享一些比较基础的内容价值就不是很大。没几个大厂分享会讲词典匹配、正则之类的,但是实际上大家都很心照不宣地在各个NLP系统中放这些东西。

其次,每个人分享者所面临的场景即使大类相似,内部也会有大量的不同,例如推荐下不同的用户群、用户量、用户生命周期下,呈现的性质就会不同,对于新产品用户使用还比较陌生的情况,和成熟产品下用户的行为,都是有很多不同的,直接照搬很多策略可能并不能生效。再例如,在NLP场景下,预训练可能是主流,这个对于很多大厂来说,用预训练模型可以说是比较简单的操作了,但是对于小厂或者新团队,很多基础技术不扎实,另外很多任务baseline都没有,数据也不行,那其实预训练的方案就不应该是首选。

再者,团队的基础能力会局限分享者的一些视角。越是完善的基础技术,往往会让团队里每个人的分工分的很细致,我们可以看到一些创业团队里很多人都是身兼数职的,这也是为什么“全栈”在很多创业公司受欢迎的原因,而当团队逐步完善后,每个人的工作就会细化,深度也会增加,而现在大部分的分享其实都是所谓的“大厂”在主导,他们每个人关注的点都可能比较深,但是不见得足够全面,这在一些分享里多少能够看得出来。举个例子,要做实时,那问题是这个实时其实并没有那么简单,算法的分享会聚焦怎么利用这个实时数据,但是却很可能会忽略工程上对实时数据的实现,这事对成熟团队来说很简单,但是对小团队来说可能并不容易。

我们应该如何看待

听分享,就是为了学习,我们知道学而不思则罔,因此,我们需要在学习过程中,运用自己的独立思考能力,尽可能地按需吸收自己所需要的东西。

所谓的新技术或者新方案,是建立在分享者所面临的问题下的,数据状况、性能需求、已有架构等问题都可能影响分享者的技术设计,所以,我们要立足于分享者的视角来尽可能理解,它是基于什么情况下做的设计,了解为什么要这么做,甚至是这么做的权衡和妥协也可以考虑,能多思考这些,非常有利于我们理解并吸收分享者的方案。

对方案的吸收,我们要主动去分析和判断方案的好坏,这是算法工程师非常重要的能力,我们在研读这些方案的时候,也需要考虑这些问题,基于上面我们对分享者的场景设想,其实能分析出一些方案的优缺点,这些提炼出来的优缺点,后续能为我们做方案选型提供重要的依据,一定不能盲目搬方案,这就是会出现水土不服的根源。当然,在一些情况可能分析不出来,有需要的话可以加上实验来辅助,然后通过case分析、数据分析等方式来确定其真实效果和优缺点。

可能会有人问,既然有些技术分享可能距离我们很远,听着不见得适合现在的我们,那是不是没必要看了,我的答案是否定的。我们总需要面临各种困难问题,学习各种分享是我们储备技术的重要途径,技术深度中很重要的一部分就是我们能在更多的复杂问题中能拿出解决方案,而不只是我们现在能解决什么问题。

另外,大家需要注意的是,所谓的分享,只是提供一种自己的解决方案,和所谓的“咨询”是不同的,分享者并不需要也很难充分考虑每个听众的所有问题,相反,分享应该是需要听众自己去吸收消化,如有需要,可以通过“咨询”的方式来进一步探索适合自己的解决方案。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存