【字节跳动】【番茄小说】数据策略工程师
字节跳动
字节的面试算是体验最好的,泪目了。
投递2024-02-27
内推投递。
- 番茄小说,数据策略工程师。
一面2024-03-01
1小时30分
- 自我介绍
- 看了你的博客,感觉你对技术有追求(大概是这个意思)。你一般怎么样去学习新的知识?
- 目前有哪些正在学习的东西?
- 介绍项目1。
4.1. 介绍数据、模型、介绍LRP的流程。
4.2. 是否有除了GNN外提取特征的方法(在你们的数据上)。
- 介绍项目2。
5.1. 介绍预训练的策略。
5.2. 如何判断预训练任务有效?为什么就选了这两个?
- 介绍项目3。
6.1. 介绍Deepwalk。
6.2. 介绍KMeans的流程。KMeans中初始聚类中心的初始化策略?是否尝试过除欧式距离外的距离评估方式?
6.3. 是否有尝试过其他的非基于随机游走的方法?如果使用,你觉得对你们的项目有什么提高?
- 详细介绍Transformer encoder。
7.1. 多头自注意力机制全流程。为什么缩放点积注意力需要处理特征维度?
7.2. 介绍LayerNorm。LayerNorm的位置区别。
7.3. 介绍FFN层。
7.4. 有哪些位置编码?区别?
(1)在原始Transformer论文中使用的是正余弦位置编码(不可学习)
(2)Bert、GPT中使用的是可学习位置编码。
(3)大模型常用的旋转位置编码Rotary。
做题:
- leetcode *************。 之前做过,秒了。
- leetcode ***************************
设计一个增加、删除、随机获取一个元素都为O(1)的算法。添加的数满足:(1)正整数、无重复。
两个哈希表,一个线性表。两个哈希表分别记录:
(1)记录目前存在的数。
(2)记录该数在线性表的位置。位置 -> 元素。
线性表用于随机获取元素。
(1)随机获取元素,时间复杂度为O(1)。
(2)删除元素,通过与末尾元素互换,时间复杂度为O(1)。
反问:
- 业务?
搜索、大模型应用。
- 对应届生有什么期望?
算法、数据结构扎实。对技术有追求、最好对我们的业务有了解、不了解也没有关系。
二面2024-03-07
1小时10分左右
- 自我介绍
- 讲一下Transformer(讲了Encoder、Decoder)
- Transformer为什么需要多头?
- 还了解哪些注意力(讲了Longformer、MQA、GQA)
- 多头注意力的计算量如何?GQA呢?
- 为什么要有残差连接?
- 预训练项目用了哪些预训练方法?还有试其他的预训练方法吗?
- BERT用了哪些预训练方式?
- 讲一下有哪些类似BERT的改进。(讲了一个ALBERT)
- 了解大模型吗?了解哪些?
- 讲一下LoRA是怎么做的。(快讲完了,被面试官打断了,面试官应该明白我在说啥了吧)
- LoRA用在Transformer的哪个层?
- 了解强化学习吗?PPO?
- Dict底层是怎么实现的?(答:Dict从我的了解来看,它是一个哈希表。但是Python是怎么实现的我不太了解)(面试官:你说对了,它底层是一个哈希表)
- Dict是线程安全的吗?
做题:
- Pytorch实现Self-Attention。
- 好像做过,应该是leetcode的中等题,估计分数在1500~1700。
给定长度为m
的不重复的字符集合a = {'a', 'b', 'c', 'd'}
,以及长度为n
的字符串b = "tbabcdskpo"
。
定义“好子数组”为 字符串b
中的一个子数组满足,长度为m
且子数组的字符不重复。求第一个“好子数组”的起始下表。
解:滑动窗口 + 哈希表 经典滑动窗口,而且窗口长度还是固定的。
反问:
-
工作时间何如? 早上10点半,晚上9点半
-
流程如何? 3面技术面+HR面
10分钟后收到通过。。
三面2024-03-11
没过,回答的比较烂,从我看来主要是两个方面,一个方面是个人项目还不够了解,知其然而不知其所以然,另一方面是具体业务的场景没有经验,回答比较直接。
50分钟
- 自我介绍。
- 介绍项目3
2.1 项目的难点在哪?
2.2 GNN做需要多少的内存?
- 介绍项目2
3.1 为什么要用Transformer?
3.2 之前的没有类似的研究做这个吗?
3.3 和GNN的预训练模型做过对比吗?
- 场景题:小说下面有一些评论,我们希望实现一个功能:根据一些标签来筛选评论。
做题:
完美洗牌算法:设计一个算法将一组扑克牌打乱。******************
#番茄小说##字节##复盘面经#谨纪念我从2023-08-22以来长约半年的校招历程