年初的时候领导和我有一场谈话,末了他推荐我学习一下AI方面的知识。

而我的下意识反应是:Python 不够优雅,依靠缩进的动态语言像是乱糟糟的涂鸦,对于一个工程师来说就是陷入泥潭,只会让把自己弄得脏兮兮,而不会得到任何好处。

但彼时我陷入自我怀疑和精神内耗中,我当然想改变这一切,于是我说,好。

自我锚定

按照过去的习惯,我开始审视自身以确定自我状态,无论是精神状态还是身体状态。身体状况是很容易客观评价的,因为医生不会说谎,指标项的某个数值也不会说谎,精神状态则难以衡量。

互联网上很多学习博主或健身博主会教导人们,只要每天抽出一到两个小时出来,人生会发生巨大的变化。从直观上来说,每天抽出一个小时比例并不高,它可能只占1/24。但事实上它暗含的环境因素要求非常高,因为它要求的不仅仅是时间,而是[精力]。如果人们有贷款,有一份重压的工作,有做不完的家务,有嗷嗷待哺的婴儿需要照顾,那么很难有心力抽出一小时来试图改变自己。所以珍贵的不仅是时间,为了基础的物质保障,通常情况下人们都会出卖自己精力最充足的八小时。单从这一点看,可支配的额外时间和精力才弥足珍贵。而自我怀疑和精神内核会消耗这些为数不多的时间和精力。

《软技能:代码之外的生存指南》中有这么一段话:

大多数软件开发人员从职业生涯一开始就犯了几个严重的错误,其中最大的错误莫过于不能把自己的软件开发事业当作一桩生意来看待。

这种心态对于管理职业规划至关重要。因为只有你开始把自己当作一家企业去思考时,你才能开始作出正确的商业决策。如果你已经习惯领取一份固定的薪酬,这很容易导致你产生另一个心态——你只是在为某家公司打工。

把雇主当作你的软件开发企业的一个客户吧。当然,你可能只有这么一个客户,你所有的收入都是从这一个客户得来的,但是这种诠释雇佣关系的方式可以将你从仰人鼻息的弱势地位转换成为自我治理和自我引导的主动地位。

现实中其实很难保证这种心态,开发者看似与雇佣者留有讨论的余地,但对于技术栈的选型及实现方案却没有决定权。更让人遗憾的是这种决策权被非专业人士以及自喻为该领域专家的管理层牢牢把握在手中,残酷的是开发者却要承担其方案设计缺陷的技术债务。

在这种情况下个人认为《被讨厌的勇气》中所提及的”课题分离”要更为适用。因为这已经不是个人所能控制的,将自己的精力耗在别人应承需求中是另一种浪费,当然这样的例子比比皆是,第一步则需要学会如何从中脱离开来。

年初的时候随手写过一句话:

可能从事技术岗位的工作者就是这样,回顾过去一年发现自己技术没有显著提高,或没达到期望目标就会变得焦虑。

单看这句话很容易将自我怀疑和精神内耗归咎于技术没有提高。这是深层次的原因吗?作为一个软件开发人员,我并没有把自己的软件开发事业当作一桩生意来看待,按照预想的职业生涯规划,在工作五年后应该要拿到高级软件开发工程师的头衔,事实上呢?我并没有,于是在我写下这段话时就已经陷入了自我怀疑。

那么只要拿到了这个头衔我就会满足吗?或者技术提高才能平衡心底的自我怀疑?如果留在旧司,我确信不到五年的时间就能拿到这个头衔,事实上第三年我就离开了那家公司,但要说我离开后技术就停滞不前倒也太过苛刻。

简单且表面的答案往往过于狭隘,在评估自己的精神内核时,容易犯的错误就是不够客观。如果受雇于某一家公司,上司和同事的评价,绩效的考核,头衔,职级的升迁……这些都会形成一套评价框架无时无刻影响着框内的每个人。遵从规则固然能获得某些好处,但过于在意这些则会潜移默化地影响自我,从而随波逐流——这就是规则制定者的目的。

回到本节的[自我锚定]初衷,是为了建立一个相对稳定的精神内核。大部分高质量输出的博主在提及加班,无法拥有业余时间来提升自己的技术,了解更多的知识的情况下,只有一种建议:逃。

当然也可能出现不同的声音:因为家庭,经济等原因需要这份薪资不错的工作,而甘愿忍受某种意义上的压榨。作者本人同样表示理解,并在本节开篇中写好了开脱词。

语料库/训练/微调/输出

在生成式人工智能中[预训练]加[微调]的方式训练神经网络模型成为现在的主流,经过几十年的技术发展,有一个简单实用的方式就是通过增加模型的数据量和计算资源,从而增强模型的性能。当计算资源和算力成本到达某种瓶颈时,语料库的重要性又凸显出来,相同规模的模型下语料库的质量越高,输出质量也就越高。当OpenAI与Reddit达成协议,使用其内容用于模型训练;腾讯使用微信公众号内容训练模型;优质的互联网内容成为争夺的下一个目标。

如今信息已经不是什么稀缺资源,各种载体丰富了信息的展示,移动互联网推动了信息的传播,在抬抬手就能获取各式信息的年代,如何过滤无用信息反而成为关键技能。

《学会提问》这本书倒是容易被书名所蒙骗,最初以为是讲述提问技巧,如何促进沟通,但通篇讲述的却是如何构建批判性思维。这在构建语料库时这非常有用,学习如何辨别文章或图书的质量是最基础的门槛。

回到本篇文章主旨,“像AI一样训练自己”听起来有点标题党了,AI的优势在于海量的信息存储和快速检索,人类在几十年的持续学习中积累的信息量无法与之相提并论。但AI无法真实理解词句代表的意义,模型输出的一字一顿更像是计算概率的过程,它根本不在意输出词句背后表达的意义,它只是在单纯猜测。普通人在经历过长达十几年的教育后,至少先天比AI更了解这个真实的世界。

如果从AI训练的过程中抽象出一些概念对应到真实世界,在训练AI时通常需要[算力]为基础,在现实生活中[算力]更像是第一节中所提及的时间,精力,注意力。预设的词汇库对应着人类第一母语;语料库的构建则需要更为严格的筛选,机器可以24小时运转,人类的可支配时间则相对捉襟见肘。

模型训练是反复调整权重的过程,意图让向量化的词句流经神经网络后计算出输出的概率。普通人通常在接受十几年的教育中学会“如何学习”,即使不知道如何学习,“一万小时”理论也足够作为一剂强心针。

微调反而要麻烦的多,模型在训练时通过人工干预来矫正参数,而人类在经受训练时,如果没有相关领域的”教练”这一类角色来替代,则会难以评判当前水准。有一个方式是:让AI来评估。Turning the Tables on AI 这篇文章提出不要问AI问题,让AI问你问题。通过AI询问正在编写的内容的问题,强迫自己用清晰的语言表达真正想说的话。IA中提到,如果将每一个想法都外包出去,会错过很多成长的机会。

这点非常有意思,在AI和各类信息泛滥的时代,各种程序的目的就是解决用户问题,以节省用户时间为目的。这篇文章给出另一个思路,让AI询问人类问题,以训练人类建立更好的思维体系。细究之下不无道理,AI比人类要更为客观,也更有耐心,并且不会让输出者感到羞耻。

输出的方式可能是各式各样的,这取决于训练的内容及目的,健身可以从体重,体脂率,外观上直观的表现出来;英语学习可以从阅读理解,口语对话体现;写作可以从输出的文章数量和字数反应;质量的提升则异常缓慢,只有回过头再看过去才会发现这种变化。

不过也无需焦虑,模型的训练同样需要时间,算力和大量金钱,即使这样各界依然认为AI是朝着好的方向在发展。

后记

在学习深入理解Transformer自注意力机制时,像训练AI一样训练自己这个想法已经初具雏形,当看到IA的Turning the Tables on AI更是有种不谋而合的味道。

当丢弃晋升的欲望,不再在乎绩效的衡量以及他人的评价,稳固精神内核后才能自我剖析,通过写作时逐字逐句的斟酌来训练自己的思想,这种感觉相当不错。最近网络上充斥着”心流”,”松弛感”这样的词汇。即使未曾读过心学方面的书籍,但这种向上的感觉相当不错,能感受到自己在一点点成长,精神内核也在一点点稳固,精神状态恢复得相当不错。

从念头的迸发,到提笔写下本篇文章开头部分,再到后记已经隔了好几个月。从本篇文章的风格来看也可以分为三个阶段,第一阶段是对自身的思考,第二阶段是自我训练的心得,第三阶段是自我评判以确定下一个自我训练的目标。

在此期间作者本人陷入一场无意义的加班,那些被透支的精力不仅会消耗写作的激情,还会打断前进的欲望,恢复精神重新出发都变成了一种勇气。在写到这行文字时,作者本人已经提交了离职,也算是做到了”身体力行”。

当整理好情绪重新出发时,对自我的了解也会更深些,这点很有意思,从个人的经验来说,人们有时候不知道自我追寻的是什么,但必须要知道坚决拒绝的那一部分。

希望未来的日子里,多读书,多写自己想写的代码,享受过程。