目录
- 投递渠道
- boss直聘
- 官网
- 邮箱内推
- 面试准备
- leetcode
- 八股
- 深挖项目
- 自我介绍
- mock
- 面试技巧
- 答不出来怎么办
- coding
- 反问
- 复盘
- 技术交流群
- 用通俗易懂方式讲解系列
节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学.
针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。
汇总合集:
《大模型面试宝典》(2024版) 发布!
我的bg:985大三,nlp/llm/多模态方向,无论文无实习但项目比较多,相关知识基本都是自学,拿到了百度、字节、腾讯的算法实习 offer。不算国庆的话整个时间跨度大概三周。
我会按照倒序的方式分成两到三个部分来分享经验,包括投递和面试、简历和项目、学习路线和资料。这篇是第一部分,即投递和面试的部分。
这个部分是建立在你已经有一定相关知识基础和相关项目的基础上的,通过短期的突击和准备,能够在面试中发挥最大的效果。
关于怎么学习相关知识,怎么找项目,做项目我之后也会分享,可以关注一下我,也欢迎文末加入我们社群直接交流。
投递渠道
投递的渠道主要是boss直聘、官网投递、以及邮箱内推,其中大部分都是在 boss 上投递的。
boss直聘
优势:非常方便,点一下就能投递简历,可以直接和hr/算法老师直接沟通,比如我的 mentor 就是直接在 boss 上面招人,而且进度相对会推得比较快。
需要注意:在填写电子简历时,最好填写详细一些,因为对方直接看到的是你的电子简历,只有同意你发送简历后才能看到你的PDF简历。此外,可以设置自定义的投递申请语更好一些,比如将自己的学校、年级和技能点写入其中,会比默认的“我想了解一下xxx岗位的具体情况”更好一些。
类似的网站还有实习僧,但是体感算法实习岗位没boss多也没那么方便,所以我大部分就用的boss。
官网
比较麻烦,需要填很多东西,大部分都要做测评,像腾讯的甚至要做一两个小时。我怕麻烦所以就没怎么投官网的,只有boss上没有的公司才会去官网投。但官网投的好处就是能够很清晰地看到进度,以及挂了的话简历会重新流回池子里面,可能会有别的组捞起来。
邮箱内推
这个渠道也比较好,因为大部分都是算法老师本人在招,简历可以直接达组内邮箱。一般这种需求都比较急,所以通过的概率也比较大。可以关注一下AI求职这个公众号,以及知乎/小红书上的相关信息。(多搜一下就会给你推荐)
面试准备
leetcode
leetcode这部分不用特别担心,我也没刷多少(50道 ➡️ 找实习的时候一个星期七八十道),但是遇到的都做出来了。首先是题一般不会很难,基本都是easy或者medium;其次如果你前面面得不错这部分是不会为难你的,主要看的是思路和非常基础的代码能力。
如果像我一样时间紧迫的话,主要要熟悉数组、字符串、哈希、链表、二叉树、二分、动态规划和双指针这些常考题型就行,回溯和图之类的都可以放掉。具体可以刷leetcode hot100或者leetcode 75(我刷的是这个因为题比较少),按part刷,一开始可以先看答案理解一下套路,再多做几道类似的题巩固;有掌握不好的地方可以去看星主的《大模型面试宝典》相关part加深一下理解,这个题目比较多讲解也比较详细。
其实面试也不一定考 coding,考 coding 也不一定考 leetcode,我当时第一个面试的时候就刷了两天题就去面了,结果也没考算法题让我写了f1 score的计算过程。所以leetcode不用分配太多精力,也不用特别重视和焦虑,我反正是看八股看不下去了就做几道题放松心情这样子。
八股
八股大概可以分为:ml基础+领域知识+有可能会问 pytorch、huggingface、linux 等
如果是面dl岗位的话,机器学习基础可以不用复习得很深入,因为一般不太会问。重点可以放在通用概念上,比如过拟合、欠拟合、梯度爆炸和梯度消失等,其他像SVM和随机森林就可以不用看了。
领域八股可以看星主梳理的,特别详细;岗位jd可能也要求掌握特定的模型或者领域知识,可以针对性复习一下。
我当时是做一个文档来梳理对应的知识点,这个过程快的话两三天,慢的话一周就可以做得差不多;完成后在每次面试之前都重新回顾一遍进行复习,面试之后复盘也可以把不清楚的知识添加到文档中,不断完善自己的知识体系。
如果你也是nlp/大模型方向可以参考一下我的思路:
- nlp 基础知识/模型
- transformers
- BERT
- GPT
- 大模型架构对比、常用PEFT方式
- CoT、RAG、Hallucination、Agent等最新进展
我认为比较重要的就是 Transformers 一定要深入了解,因为就基本都会问,然后还应该清楚类似的不同模型之间的区别,以及这些区别可能带来的优劣势,比如 GPT 和 BERT 之间的差异。
总的来说,这部分也不用特别焦虑,因为大部分公司都不会狠狠拷打八股(除了字节),一般都是根据项目去进行延伸,所以把项目相关的知识给弄清楚就好了。
深挖项目
深挖项目这部分是最最重要的,因为其它问题都不一定会问,但是项目是一定会被问到的。
首先,按照这样的思路梳理项目:项目背景和目标(什么领域、需要解决什么问题、相关的工作有哪些) ,为了达成目标做了哪些工作(团队的工作+你的贡献) + 最终成果。
重点在于强调你的个人贡献,对于你参与的part一定要非常非常清楚,并且最好有深入的思考:为什么选择了这种模型而不是其他模型?做了哪些尝试和研究?有没有遇到什么问题?同时,对于其中涉及的知识点也应该按照准备八股那样深入了解。
即使项目并不是很 solid 也没有关系。比如,我的一个项目的部分根本没有evaluation,但是我提前进行了相关的调研,因此在面试官问到的时候我可以及时提出改进方法:“我了解到相关的评价指标有xxx,可以通过怎样的方式去做 evaluation,只是我们当时因为xx的原因没有做”。这样做可以让一个看似平平无奇的项目更具吸引力,同时也能展示你的理解和思考能力。因此,务必提前思考项目中的潜在问题,而不是直接承认不足。
最后,要特别准备一个你认为最出色、最具挑战性的项目。因为不同的面试官有不同的方式,有些可能会问到所有项目,而有些可能只会让你选择一个重要项目进行详细介绍。因此,选择一个你认为最出色的项目进行深入了解,投入更多精力准备,确保在每个面试官提问时都能自信应对。
自我介绍
自我介绍是仅次于项目的最重要部分,通常限定在一分钟左右。
首先,用一句话简洁地介绍自己,包括学校、年级、专业和方向。
然后,重点突出你的项目经验,一定要详略得当,不要重复简历内容。主要思路是:我在这个项目做了什么+提升了什么能力 (e.g. 我在伯克利的时候有一个xxx的nlp项目,主要积累了全流程的nlp项目经验,包括数据获取、数据处理、模型训练等),不用太长一句话就好。如果项目太多,可以选择三四个你认为最重要的来介绍,可以按照重要性或时间顺序来排序。
自我介绍需要非常非常熟练,因为它很大程度上决定了面试官对你的第一印象。你也可以通过这个part着重强调某些项目,来引导面试官进入你想讨论的话题。
mock
当你所有都准备得差不多的时候,就可以找人帮你mock啦。这一步也非常关键,因为可以通过他人的视角来发现一些你自己没有察觉到的问题。可以找同学也可以找经验比较丰富的学长学姐,或者找小红书/海鲜市场的付费咨询,这里就不做广告了。
总之,mock帮我发现了两个非常重要的问题:
- 自我介绍太长,没有重点,基本就是在念简历(后面就改成上述的一分钟的形式)
- 当回答自己不太清楚的问题时,我的答案没有清晰的逻辑体系,缺乏系统的问题分析思路。在意识到这两个问题并针对性改进后,我对面试更加自信了,整个面试水平也有了一定的飞跃。
面试技巧
最重要的就是不要紧张,不要当作是在考试或者面试官在审判你,大部分面试官都是很nice的,所以把面试当成一次和大厂算法工程师友好的交流和展示自己的机会就好啦。如果真的很紧张,可以在面试之前做几道题,或者重新过一下简历和自我介绍来warm up,缓解一下紧张的情绪。
另外,一面的面试官很大可能是你之后的 mentor,所以不妨在面试官观察你的同时也通过他问的问题观察一下面试官,看看他的水平怎么样,毕竟一个好的 mentor 对于你的实习体验是很重要的。
答不出来怎么办
首先不要慌张,如果有相关的熟悉的领域可以说“我不太清楚xxx,但是我知道xxx”把面试官引导到自己熟悉的领域上。
如果是比较泛的问题可以采用一个系统的思路,从数据处理 → 模型结构 → 模型训练 → 评估这样的角度去回答,比如如果被问到怎么避免梯度消失,或者怎么优化你的模型就可以用这样的思路。
实在不知道的话,就老实地不知道,本来我们也不可能什么都知道嘛。只要基础知识了解得足够清楚,也不会因为一两个问题不会就刷掉你的。
coding
首先不要急着写,先和面试官交流清楚对题目的理解,比如有没有边界条件,需不需要自己写类和用例等等;交流之后再开始构思解题思路,有了清晰地思路后,再次与面试官沟通,确认自己的思路是正确的。最后一步才是写代码,写完之后,最好自己写几个用例测试一下。
总之就是不要闷头就写,注重与面试官的交流,因为他其实更关注的是你的思路;如果写不出来没事,跟面试官交流一下自己当前的想法,再寻求一点提示,一般他们都是很愿意给你帮助的。
反问
这里其实非常重要,千万不要说“我没有问题了”,这样可能会显得你对这个岗位没有兴趣然后挂掉。而且如果前面的面试表现不好,通过这个环节也有可能挽回一些局面。分享我常问的几个问题:
- 介绍一下你们组的业务方向和主要项目
- 实习生的工作内容
- 我有什么需要改进的地方吗?
问题1、2和你在公司的工作内容和体验息息相关,一定要提前了解清楚。通过面试官的回答,你可以大概知道他们是做什么的,你感不感兴趣,有没有dirty work,对实习生的培养如何,这也会成为你之后选择offer的一个重要因素。问题3是一个含蓄问面评,可以看到面试官的态度,其次也能知道自己哪里表现得好哪里表现得不好,方便之后复盘。
复盘
最后就是复盘部分,每次面试之后,最好总结一下自己表现好和不好的地方,对于没答上来的问题,应该查漏补缺,深入了解相关知识,以便在下次面试中更好地应对类似问题。如果是项目不清楚,也要去进一步深挖和熟悉项目细节。
通过不断的复盘和改进,每次面试都能有新的收获,逐渐提升自己的面试技能,使自己越来越得心应手,离获得offer的目标也会越来越近。
投递和面试部分大概就是这样啦,谢谢你看到这里,也祝你早日拿到offer!
技术交流群
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了大模型算法岗技术与面试交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2040,备注:技术交流
用通俗易懂方式讲解系列
- 用通俗易懂的方式讲解:自然语言处理初学者指南(附1000页的PPT讲解)
- 用通俗易懂的方式讲解:1.6万字全面掌握 BERT
- 用通俗易懂的方式讲解:NLP 这样学习才是正确路线
- 用通俗易懂的方式讲解:28张图全解深度学习知识!
- 用通俗易懂的方式讲解:不用再找了,这就是 NLP 方向最全面试题库
- 用通俗易懂的方式讲解:实体关系抽取入门教程
- 用通俗易懂的方式讲解:灵魂 20 问帮你彻底搞定Transformer
- 用通俗易懂的方式讲解:图解 Transformer 架构
- 用通俗易懂的方式讲解:大模型算法面经指南(附答案)
- 用通俗易懂的方式讲解:十分钟部署清华 ChatGLM-6B,实测效果超预期
- 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain
- 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统
- 用通俗易懂的方式讲解:最全的大模型 RAG 技术概览
- 用通俗易懂的方式讲解:利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序
- 用通俗易懂的方式讲解:使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA
- 用通俗易懂的方式讲解:面了 5 家知名企业的NLP算法岗(大模型方向),被考倒了。。。。。
- 用通俗易懂的方式讲解:NLP 算法实习岗,对我后续找工作太重要了!。
- 用通俗易懂的方式讲解:理想汽车大模型算法工程师面试,被问的瑟瑟发抖。。。。
- 用通俗易懂的方式讲解:基于 Langchain-Chatchat,我搭建了一个本地知识库问答系统
- 用通俗易懂的方式讲解:面试字节大模型算法岗(实习)
- 用通俗易懂的方式讲解:大模型算法岗(含实习)最走心的总结
- 用通俗易懂的方式讲解:大模型微调方法汇总