介绍
我是即将毕业的学生,来自一所相当不错的大学,这是一个校园内的机会,并且没有对专业或GPA的限制(真是令人惊讶)。
这是我第一次去高频交易(HFT)公司面试,完全不知道会有什么情况。
第一轮本应是一个基于传统算法的编程测试,但不知何故被取消了,取而代之,筛选完全依据简历。从大约160名申请者中,有4人(包括我自己)被选中进行面试。
不得不说我真的挺高兴的,因为事实确实如此,这真的发挥了很大作用,因为我对数据结构和算法一窍不通(后面我会再多说几句)
在公布入围名单后,同一天进行了面试,我是当天第一个接受面试的人。
第一轮:技术面试环节
这始于对我以及我的暑期实习经历的简单介绍,面试官问我作为暑期实习生在(YC,即“Y Combinator”)的工作和贡献,然后讨论了一些基本的机器学习概念,比如什么是RNN和CNN,以及两者之间的区别。
然后有人要求我解释我的项目(该项目基于量化),它是一个高频交易(HFT)系统,可以为用户提供关于特定公司股票表现的见解,并从高频交易者的角度告诉你哪个是安全的赌注。我使用了crewAI创建了三个代理,分别是研究分析师代理、投资组合经理代理和风险经理代理(现在想想,这可能不是个好主意)。我使用Serper API获取公司股价的最新新闻以及最近可能影响股价的决定。所有这些都在本地通过llama3运行(我只是懒得安装llama3.1),所以就用了之前几个月就装好的llama3,然后生成一个报告,最后报告详细记录了每个代理的每一步和决策的最终结果。
我使用了基于CoT(链式思维)的指令提示来榨取每个代理的最佳性能并最小化错误生成,最终生成的报告可以通过Google Translate API翻译成243种语言。
这把采访的重点转向了生成式AI的话题。
我被问了关于Transformer架构的所有细节,从头到尾它是如何工作的(幸好没有要求推导过程,真是谢天谢地),前一天晚上我读了《注意力就是你所需要的》,早上又看了3b1b关于这个主题的视频,所以我回答得相当轻松。我解释了每个步骤背后的思考过程,并解释了每个变量和参数在方程式中的意义。
他看起来挺开心的
然后我被问到了一个机器学习系统设计的任务。
这真的让我紧张坏了,因为我从来没有准备过任何关于系统设计的问题,更不用说为HFT公司AI研究岗的面试做准备了。
我需要为高频交易(HFT)设计一个股市预测模型,我需要考虑哪些约束条件,以及在每一步中需要使用哪些算法以最小化损失并考虑所有其他影响因素。尽管我使用了最基本的方法,但我更加专注于数据清洗和预处理。我可以自由选择任何可用的模型和库/框架,考虑到所有的特殊情况。
我看不出他的反应,有点害怕。
然后有人问了我关于抽样偏差的问题,我知道那指的是什么,但不记得确切的定义。所以我诚实地告诉他我明白他的意思,但记不清确切的定义了(面试紧张中)
他然后开始问我关于概率相关的谜题,这些谜题我记不清楚了,但我确定应该是他即兴想出来的,因为我面试后试着找这些谜题,但没能找到。这些谜题非常简单,我确定我都答对了所有题目,所有谜题都是基于二项式分布类型的。
第一轮结束时,我问他一些关于公司的问题,以及他最好地回忆起在那里的经历。
28小时之后,我得知自己是唯一通过第一轮的人,另外三个人在第一轮就被淘汰了。
在理想的世界里,我本应该超级兴奋地认为我几乎稳了,但事实却是完全相反,我怕他们根本就不会雇用我们学校的任何人,因为学生没达到他们的期望(相信我,这种情况在校内已经发生过几次)
第一轮面试进行了大约45分钟
准备最后一轮比赛
下一轮安排在第一轮两天后,我请了两天假,除了研究从机器学习的起源到现在的所有内容,什么都没做。向Arthur Samuel、Geoffrey Hinton和Yann LeCun致敬。
我重新复习了我的整个工程微积分课程大纲(微分方程见鬼去吧),并且我还复习了计算机科学基础知识(比如面向对象编程、数据库管理系统、计算机网络等),其中CCN是指计算机网络。我复习了一些Python和C++特定的问题(因为大多数对冲基金使用这些语言,你知道的),当然,有些对冲基金也用Scala或Ocaml,不过你知道的。
我确实准备得太充分了,但这个时候我不会轻易放弃。不仅在校园内被35多家公司拒绝,还有无数其他公司,我知道我必须尽一切可能拿到这份 offer。
第二轮面试:技术与人力资源环节(也就是最后一轮)
这一轮讨论主要集中在GenAI应用上,比上一轮短得多。第一个问题是关于RAG代理的机器学习系统设计的问题,我很容易地解释清楚了,接着他问我如何减少大语言模型的幻觉。
之后我们就聊得有点冷,我问了他们在这儿的感觉如何之类的
充分准备确实让我更有信心了
结果是在晚上才送到的,比预期晚了一天
结果是:成为实习生
校外住宿选项
我差不多有三个校外实习 offer,分别来自两家YC初创公司和一家普通初创公司(所有都是机器学习相关的职位),本来是打算去其中任何一个的,但因为地点对我来说是个大问题,所以我把它们都留作备选。
正如俗话说的,“只要结局好,一切都好”。
常见问题(因为我的推特私信中有90%是关于这个问题或相关话题,所以我不得不回应一下)
- 多少DSA算合适/你做了多少DSA呢?
我真的非常不擅长数据结构和算法的面试。我要对你实话实说,从我上大学开始,我对它就从来没有感兴趣过。大二刚开始时,我也只做了一点点,但在大三结束时,我就基本上放弃了。我学的足以应付一些基本的问题,但在严肃的算法面试中,我完全不行。我可以打赌,你们中有90%的人比我更擅长数据结构和算法。
多少题够用?从我的朋友和同行来看,我觉得大约300到400题已经足够,对于90%的面试来说。
你是怎么学习机器学习的?
一直在谷歌搜索我不懂的东西,通过阅读和实现论文来发现新事物,这差不多就是我过去六个月一直在做的事情。我知道很多人期待着某个突然让我明白的隐藏资源,但实际上并没有这样的资源。我更喜欢从基础知识开始学习,亲自上手实践。
话说回来,我理解每个人都是不同的
谷歌和微软等大公司提供了许多结构化课程,他们已经在GitHub上开放了他们的全部生成式人工智能课程
Andrej Karpathy以及他的播放列表絕對是經典,你一定得關注。
GitHub - microsoft/generative-ai-for-beginners: 21 节课,开始学习如何使用生成式 AI 进行构建……🔗 https://microsoft.github.io/generative-ai-for-beginners/ …GitHub对于想要更结构化地图的人,Saurabh Kumar的这条推文是一份很好的指南。
你可以在这里查看原文: https://x.com/drummatick/status/1728438723275374760
- 如何申请机器学习工程师的实习机会?
冷邮件推销/网络交际并希望碰巧成功,这真的是一场纯粹靠运气的游戏。
言简意赅,没人有空读你的大作,所以要简短明了。
4. 我来自XYZ大学,我能成为MLE(机器学习工程师)吗?
你要成为自己认为值得的人,不要让我或任何人为你做这个决定,你不仅仅是你的学历或专业领域定义的
你做过哪些项目?
一个基于量化(quant)的项目和一个使用我的母语且经过微调的大型语言模型,在过去平均每月下载量约为50次。
你未来有什么计划吗?
- 我一定要提高我的数据结构与算法(DSA)和竞争编程的技能,在实习开始之前,我打算完成Striver的DSA和CP清单,至少完成一半。
- 提高我的网页开发技能(我的网页开发技能真的很差)
- 提高我的数学和物理能力
- 在一家AI公司找到一份技术写作的职位
- 做一个牛逼的机器学习项目
如果你看到这里,真的谢谢你!给你一块小饼干 🍪
希望这篇帖子能像我写它时那么有趣
记住,直到生命的最后一刻,失败都是心理层面的。
共同學習,寫下你的評論
評論加載中...
作者其他優質文章