国内

智谱AI (AI院)(日常实习)

没有代表性。

2023年10月中旬参加的面试。当时 GPT-4 刚刚发布半年,智谱的 ChatGLM 刚刚结束 3.0 版本的训练。当时公司算法团队还在赛尔大厦的老工区里。

我觉得线下面试或许能聊得更深,所以选择了线下面。面试也很随意,面试官是 GLM 三剑客的 shaw,也是我后来的 leader。没有 coding test,只是看了看我的简历,听了听自我介绍,问了问 persona chat 的项目。现在看来,也是缺人。因为那份简历现在看来是不堪入目。

字节跳动 (Seed-Vision) (日常实习)

2025.9
非 Topseed,普通seed打工人。
也不是很有代表性。

HR 加 vx 联系的我,说看了我的简历,知道我在上面那家公司实习过,然而我是真不记得什么时候投过节子了…过了几天,说我方向不匹配…我请HR帮忙询问其他组是否有机会,歪打误撞进的该组。
团队想做统一生成与理解,diffusion 的同学已经很多了,缺视觉理解的人,所以招我进去。

一面
-自我介绍
-项目介绍+提问
-业务提问:视频生成,如何在没有收集到用户反馈的情况下提升视频生成的质量?(我答的多次生成让用户自己选,但之后熟悉业务后,发现面试官不是这个意思)
-代码:VLM的多头注意力(都这么问了,肯定要对视觉做特殊处理吧,例如视觉部分双向注意力,文本部分 causal,就是 LLaViT 的 motivation。我是这么写的,面试官似乎也是这么想的,但面完后仔细一想,wok,qwen2.5-VL 压根没考虑这个,在 LLM 部分直接梭哈全部 causal…)

二面
自我介绍
项目介绍+提问
VLM 训练过程
RoPE 为什么会有复数的形式?
Qwen2.5-VL 如何处理多模态位置编码?
Qwen2.5-VL 为什么把图像复制一份?(为了兼容视频理解)
Deepseek NSA 了解不?
MoE 了解多少?
Transformer 从头到尾讲一下
讲讲对RL的认知
你觉得我还考你代码吗?(不考了吧,在赶 ICLR 没时间刷题)

总结(面试加分项):
以下几点虽然标注了重要性比例,但每一项都缺一不可。

  • 实事求是(T0 级别重要性)
    • 会就说会,不会硬编会被直接pass,因为面试官比想象的要更忙碌,都希望应聘者干爽利落;
  • 方向匹配(70%);
    • 不要告诉面试官自己学习能力强,在大厂的疯狂迭代过程中,学习能力在熟练工面前不值一提;
  • 口齿清晰,思路清晰 (15%);
  • 主动展现自己的价值(15%)
    • 讲清自己跟别人的差异在哪里,有什么不可替代的(想想大厂怎么 PUA);
      • 不可否认,一段高质量的项目经历(例如参与某个模型的研发,一个出色的开源项目)比一篇又一篇的论文更值钱;
    • 讲清自己对团队的项目能产生哪些价值,试图去颠覆面试官的认知
      • 一定要主动输出自己的认知,让面试官学到新知识,而不是知乎小红书上的面经;
      • 或许也能拓宽自己的认知。例如当时大家都觉得 Deepseek 那套 RLVR 屡试不爽,但面试官告诉我在 video RL 领域根本无法设计可验证的奖励,reward hacking 问题仍待解决;

高瓴创投 (?创新科技方向) (日常实习)

2025.3
朋友内推。
当时对 video gen 没啥了解,谁知后面真去做了。

一面
自我介绍
你觉得未来比较好的赛道是什么?
有没有比较看好的企业?(生数科技)
生数科技技术领先多少?
字节骆怡航怎么去生数当CEO了?那他们CEO去哪儿了 hhh? (投资圈不应该比我更八卦才对么hhh) deepseek最大的亮点是什么?
为什么推理能力强?数据是怎么造出来的?
怎么跟技术人员沟通交流,跟哪些人交流?
有没有产品经历?
有没有跟海外企业的交流?
有没有创业打算?
想来高瓴学什么,技术还是技术+商业?

二面(挂)
10-15min Presentation+15-20min 面试 Presentation题目:请推荐一个华人团队的AI产品公司或者AI技术公司(可以从团队、技术方向、产品体验等方面推荐),制作简短的PPT进行展示

分析:个人认为他们更想要博士即将毕业,对AI专业十分了解但毕业后想转去高投资的那些人,而不是我这种徘徊在技术和商业之间的能不能毕业都未知的研究生(其实当时是对GL有点慕强,且刚停止家教,想找个工作挣点外快去见对象)。

海外

MATS (Anthropic)

不是 Anthropic,是 MATS 项目里 Anthropic 的 mentors 发起的 coding screen。不是Leetcode算法题,而是一个小的工程项目。项目一般是要实现一个系统(一个类)的功能(类的属性及方法),只涉及逻辑上的,不会涉及具体的前后端,也就是说只要有 Python 编程基础即可(MATS的 coding screen 只允许 Python),无需掌握特定领域的知识(不涉及第三方库的使用)。
我参加过两次(因为第一次信息上传有误,所以重新申请了一次),第一次是写一个员工管理系统,第二次是写一个银行账户管理系统,大同小异。这里我以银行账户管理系统为例进行介绍。
限时 1.5h 的 coding screen 分为4个 level,每一个 level 需要用到前面 level 的内容,也就是一步一步实现整个系统,难度依次递增。

  • Level I

    • 内容
      • 实现账户注册 def register
      • 实现存钱 def deposit
      • 实现转钱 def transfer
    • 分析
      • 首先要设置一个实例属性self.account: dict,键为账户id,值为账户信息,例如: self.account[account_id] = {"balance": 0, "income": 0, "withdraw": 0, "pay": []}
      • 账户注册就是往self.account里加元素
      • 存钱就是balance += amount
      • 转钱要注意留存一下支出记录,也就是转钱账户的withdraw += amount
  • Level II

    • 内容
      • 实现支出最多的账户的获取 def top_spenders:返回列表,每个元素是字符串"account_id(withdraw)",按支出从大到小排序,如果支出相同,按字母表顺序排序
    • 分析
      首先获取一个列表
      accounts = [{"id": account, **info} for account, info in self.account.items()]
      然后对accounts进行排序:
      accounts.sort(key=lambda x: (-x["balance"], x["id"]))
  • Level III

    • 内容
      • 实现支付 def pay:支付后的24小时后,银行会按支出的2%返钱给账户
      • 实现支付状态查询 def get_payment_status
    • 分析
      • 这里有一个动态的逻辑,就是返钱的操作不是立即生效的,所以要在任何操作之前查询一下账户状态。例如在每次支付前,要看看余额是否大于要支出的金额,而查询余额时又要考虑上一次支出后银行的返现是否已经到账。根据上述分析,要先实现一个状态查询的功能。
      • 首先我们规定,每一次支出都要有记录,例如:
        self.account[account_id]["pay"] = {"payment_id": "payment_1", "amount": 200, "start": 4, "cashback": False}
        这里start指的是支出操作发生时的timestamp,单位为毫秒,cashback是银行返现的状态。每次查询状态时,要看当前的时间戳与支付时的时间戳之差是否大于24小时,然后决定是否往账户里打钱。
      • 支付不再赘述
  • Level IV

    • 内容
      • 实现账户合并
      • 实现余额查询
    • 分析
      • 都很简单,但是手慢,第二个函数没写完

得分技巧与注意事项:

  • 具体功能可以先不实现,先把特殊情况处理掉,如if account_id not in self.account: return None这种情况,能够cover很多测例了;
  • 测例通过数跟最终得分没有必然联系。例如我前三个level满分,第四个level得分800/1000,但最终得分为520(分数范围为 200~600)。这与 CodeSignal 的评价体系有关,具体见官网说明