训练营开始两周之后,林晨发现了一个规律。钉钉群里最活跃的十个人,不一定是最快学会的,但一定是最肯花时间的。
他做了一个简单的统计:每天打卡学习时长超过四小时的有二十三人,两到四小时的有四十一人,低于两小时的有三十多人。低于两小时的那批人大多在第二周就退出了。他们没有主动退群,只是不再回复消息、不再提交作业,头像渐渐变成灰色。钉钉群里的活跃人数从一百降到了七十。林晨把退出的人名单单独拉了一个表,看了两遍,没有特别突出的特征,就是时间投入不够。
留下的七十人里,有几个让林晨印象深刻的。
一个叫赵刚,三十六岁,之前在一家跨境电商公司做后端开发。被裁之后在家待了三个月,然后进了训练营。他在群里问的问题最多,而且每次都带着代码截图来问。他问的是我这样做为什么不对,说明他真的在写代码,不是在看视频假装学习。林晨翻了一下他的作业提交记录,每天学习时间超过六小时,提交的代码量是群里第二多的。他的代码风格偏工程化,函数命名规范,注释写在关键逻辑的地方,看得出是做了十年Java后端留下来的习惯。
另一个叫李敏,三十二岁,之前是数据分析岗,想转AI工程方向。她是群里唯一一个把林晨的学习路径做成了思维导图的人。每一步学什么、用什么资源,全画在一张图上,发到群里分享。林晨看了那张思维导图,结构比他自己写的方案还清楚。节点之间的逻辑关系标注得明明白白,连他当年踩过的坑都标了红色警告标记。他给李敏发了一条私聊:思维导图做得不错,我下次答疑可以引用吗?李敏秒回:当然可以,林总。
还有一个叫王志远,四十岁,之前是某互联网公司的项目经理,管过二十多人的团队。他的技术基础最薄弱。python只学了两个月,连矩阵乘法都要重新看视频学。但他的执行力最强。每天早上六点起来学代码,学到八点半出门送孩子上学,晚上九点回家继续学到十二点。他的作业质量不是最好的,但每次都交,从不缺席。林晨翻了一下他的提交记录,十四天的作业一天没落,每天的提交时间都在晚上十一点到十二点之间。
林晨在第二次线上答疑的时候回答了王志远的一个问题:四十岁学AI还有机会吗?
他看着屏幕上王志远的头像,停了两秒。头像是一张穿着深蓝色衬衫的证件照,表情严肃,头发梳得很整齐。
面试官看的是你能做什么,不是你多大。三个月之后你的简历上应该有一个完整的AI项目。
王志远在群里回了一句:收到。
简短,没有多余的话。林晨看了一眼他的学号,一百个人里年纪最大的那个,也是最沉默的那个。他的作业从来不问为什么,只问怎么做。代码提交的时候注释很少,但逻辑是对的。
两周的训练营之后,林晨做了一次摸底测试。一百分的试卷,最高分九十二,最低分三十一,平均分六十七。赵刚拿了八十八分,李敏拿了九十一分,王志远拿了六十五分。
六十五分不算好,但也不差。对于一个四十岁、python只学了两个月的人来说,六十五分意味着他在用每天六小时的学习时间追赶别人两三年的积累。追赶的速度比林晨当年还快。
周六上午,他坐在书桌前整理测试结果。把每个学员的分数拉了一个表格出来,按学习时长和分数做了一个散点图。大部分数据点落在正相关区域内,学习时间越长分数越高。但有几个异常值:有人学了六个小时只拿了四十几分,有人学了两个小时拿了七十多分。他在这些异常值旁边加了备注,准备下次答疑的时候单独聊。
他还把试卷里的错题分布拉了一张图。概率论相关的题错的人最多,占错题总数的百分之三十八。其次是反向传播的计算题,错的人占百分之二十七。面试场景题反而错得不多,只有百分之十五。这些数据他存了下来,下一次答疑要调整重点。
苏婉端了一杯水过来,放在他桌上。
又在看训练营的东西?
嗯,摸底测试的成绩出来了。
怎么样?
大部分人在及格线以上。有几个学得很快的。
苏婉看了一眼屏幕上的散点图。那个四十岁的呢?
六十五分。
还行吧?
还行。比我想的好。林晨把表格往下拉了拉,指了一下王志远的那一行数据,你看,他的学习时长是最长的之一,分数在中游偏上。说明他的投入产出比还行,只是基础太弱,需要更多时间。
苏婉点了点头,没再问。她拿走他桌上的空杯子,回厨房去了。林晨听到厨房里水龙头打开的声音,然后是苏婉洗水果的动静。乐乐在客厅里看动画片,声音开得不大,隐约能听到片头曲的旋律。
林晨在手机备忘录上记了一行字:第三周开始项目实战阶段,赵刚和李敏分到同一组做量化交易项目,王志远单独跟一个NLp文本分类项目。
NLp文本分类的门槛比量化交易低,数据集公开,模型结构简单,适合用来打基础。王志远需要从更基础的开始练手,先把这个项目做通了,再考虑往更复杂的方向走。
他在备忘录里又加了几行:数学基础加一节概率论,框架部分重点推pytorch,项目阶段按岗位需求分组。
训练营的第三个周末,他在钉钉群里发了一段话:从下周开始进入项目实战阶段。每个人选一个项目方向,三个月内完成一个可以写进简历的项目。完成标准:能跑通、有Github地址。
群里又刷了一排消息。收到。终于要做项目了!林总,量化交易方向还可以报名吗?林晨没有逐条回复。他打开文档开始整理项目方向的参考列表。这份列表跟当年他自己学AI时做的项目列表类似,但更精简,每个项目都对应一个具体的岗位需求,做完了可以直接写进简历。量化交易项目对应金融科技岗,NLp文本分类对应搜索推荐岗,计算机视觉对应自动驾驶岗。他把每个项目的数据集、模型架构、验收指标都列了上去。
写了一半的时候他停下来,扫了一眼钉钉群里的问题。有人在问项目方向怎么选,有人在问量化交易需要什么数学基础,王志远发了一条:林总,NLp文本分类的项目用什么数据集?
林晨回了一句:Imdb影评分类,公开数据集,适合入门。
收到。
他继续写列表。写到晚上十一点,列表整理完了,一共十二个项目方向,每个方向都附了详细的技术栈和验收指标。他把列表发到群里,然后确认了一下时间。钉钉群的消息数是四百七十三条。他看了一眼,关了手机,走进卧室。
苏婉已经睡了,脸朝着墙那边,被子拉到肩膀。乐乐的房间门关着,里面没有声音。他躺下来,看了一会儿天花板,然后翻了个身,两分钟后睡着了。
第二天早上六点,他照常醒来。客厅里安安静静的,苏婉还在睡,乐乐的房间也没有动静。他走到书桌前,打开电脑,确认了一下投资账户的数字。一切正常,FinGpt v4在自动运行,没有异常。昨天的收益三千四百块,资金曲线继续向上。
手机上的钉钉群已经有新消息了。赵刚在群里发了一段代码,问有没有人能帮忙看一下为什么loss不收敛。下面已经有三个人回复了,李敏的回复最详细,附了一张学习率调整的示意图,标注了关键参数的调优方向。王志远没有说话,但他的作业提交记录显示今天凌晨五点他提交了第三周的第二次作业。
林晨看了一眼王志远的作业。代码跑通了,逻辑基本正确,只有一处变量命名不规范,把feature写成了feautre,拼写错误。他在作业下面留了一句评语:跑通了,变量命名注意一下规范。
然后他合上电脑,去厨房给乐乐热牛奶。厨房的窗户外面天还黑着,楼下的小区路灯亮着暖黄色的光。他把牛奶倒进锅里开小火,看着牛奶表面慢慢起了一层细密的泡泡。
苏婉的闹钟响了,卧室里传来她翻身的声音。林晨把牛奶从锅里倒出来,放到餐桌上。乐乐的饭盒还在冰箱里,他拿出来,把昨晚苏婉准备的菜装进去。
又是新的一天了。
那天晚上林晨在训练营的群里发了一条消息:第二期报名下周开始。消息发出之后五分钟,群里就有十几个回复,有人问时间,有人问费用,有人问能不能旁听。他一个一个回了。回完之后他看了一眼时间,十一点了。苏婉已经睡了,乐乐的房间灯也灭了,客厅的加湿器嗡嗡地响着,窗外远处传来一声汽车鸣笛。他关掉手机,躺下来,想着第二期的课程表应该怎么排。