字节提前批AML 机器学习系统开发工程师 一二面凉经

timeline: 7.27投递 7.28约的7.31一面,8.2约的8.3二面,8.4感谢信,hr说知识深度不足,表达能力不够强。

想想还是该对最近的面试做一个复盘,整理一下当时的问题与自己想的一些答案,如有错误请各位大佬指出

一面 7.31

  • 介绍项目
  • tcp和udp的区别,各有什么优缺点和应用场景
  • tcp是一个面向连接的可靠的字节流协议,要使用tcp协议,首先双方需要通过三次握手建立连接,因此tcp只能建立点对点的连接,其次tcp的数据是以字节流的方式去发送的,而tcp也是一个可靠的传输协议,它通过首部校验和,超时重传,序号和确认应答机制来保证消息的可靠性。
  • 而udp是一个面向无连接的不可靠的数据包协议,使用udp协议无需建立连接,因此可以实现一对多的广播机制,使用udp消耗的资源也因此更少,但udp不存在可靠传输机制,有数据包丢失的风险,因此只有在哪些能够容忍数据包丢失的场景才使用udp。
  • tcp的缺点是,因为需要实现可靠的机制,因此需要更大的首部消耗和资源消耗,因此可能会导致延迟;同时,因为它字节流的特性,可能会导致TCP粘包的出现。TCP一般用于需要保证可靠性的场景,如文件传输,以及用于实现HTTP和HTTPS。
  • 而udp的优点则是延迟和资源消耗低,但是存在不可靠性,可能丢包。UDP一般用于包总量较少的通信如DNS,或是视频、音频等需要延迟较低的通信场景。
  • tcp如何实现可靠传输
  • tcp的数据会被分片成最适合发送的数据块,即进行mss分片,再传输给网络层
  • 确认应答机制,tcp的每个数据包都有序列和确认号,确保数据按序发送,同时用于确认之前收到的数据包。
  • 校验和机制,tcp在首部中将会保存其信息的校验和,接收方收到之后可以根据校验和检验内容有无差错
  • 流量控制和拥塞控制,控制包发送的速率防止包的丢失。
  • 输入url的解析过程
  • 这个过程里我们首先需要解析url,确定它使用的应用层协议和服务器的域名。首先去查看浏览器缓存中有没有,如果有的话直接返回,没有的话就需要去服务器端获取。
  • 为了将请求发送到服务器,首先要向DNS服务器发出DNS请求,先在本地DNS服务器里查看有无DNS缓存,有的话直接返回缓存的ip地址,没有的话就依次询问根服务器,顶级服务器和权威服务器,获得域名对应的ip地址。
  • 当我们获得ip地址,我们接下来就可以构建网络请求,在网络协议栈中依次构建http请求,tcp头部,ip头部和mac头部,通过arp协议,找到转发的下一跳mac地址,直到最终转发到我们请求的服务器,服务器的网络协议栈获取这个数据包后,会对它进行逐层的解析,解析其mac头部,ip头部,tcp头部并最终获得这个http请求,服务器处理请求后再以相同的方式返回
  • 如何设计一个key-value数据结构,如何拓展,如何实现并发安全
  • key-value数据结构即哈希表,我们可以参考常用哈希表的结构去实现这个数据结构,为了实现O(1)的查找效率,底层数据结构应该采用顺序性且可随机访问的结构去存储,可以使用一个数组储存数据,哈希函数可以设计为对数组的长度取模,数组的索引为该key对应的哈希值。
  • 如果发生哈希冲突需要扩容,我们可以使用链表存储数据,在数组的每个位置存储一个指向链表的指针,或继续使用哈希数组存储冲突的数据,对key进行再哈希以确定最终的存储位置,在原来的数组中存储指向该数组的指针。
  • 算法:岛屿数量,合并区间

二面8.3

  • 自我介绍
  • 问第一个项目(NLP应用)的模型细节
  • 问实习
  • 如何实现机器的跨队列部署(如果某个标签的机器不够用于该任务的分配,那么怎么去实现调度到其他机器上)
  • 这个时候可以考虑不采用Label selector的硬过滤,使用节点亲和性来实现,在节点亲和性里添加尽量调度到某个标签上的规则。因为在k8s上创建pod时,初始化的Pod会由scheduler调度,首先对label selector的规则进行过滤,过滤掉不合适的节点。如果使用label selector来做选择的话,那么该任务就会等待机器资源的释放。在过滤后scheduler会计算机器的优先级来进行节点分配,优先分配满足亲和性的节点,如果找不到满足节点亲和性规则的节点,调度器会忽略该规则,于是可以实现把分配在某个标签上的机器,调度到其他机器上。
  • 优先分配整机还是剩余的机器是怎么去实现的
  • 这个可以通过控制scheduler的优先级选项来实现,设置为leastRequestedPriority会尽量分配到空闲资源更多的主机,设置为MostRequestedPriority优先调度到已经使用过的Node上,实现碎片资源的分配。
  • 如何排查超时pod
  • 首先排查网络组件Calico或者Flannel的状态是否是Running,如果状态存在异常,则从日志中提取中心信息进行分析。
  • 检查Pod的网络环境,测试Pod与Pod之间的连通性,再测试Pod与Node之间的连通性
  • 抓包检测是否存在异常的状态。
  • mysql题
  • 给了一个文件,筛选错误码=400的IP地址,用任意语言实现(猜想是希望用shell脚本实现,但我不会,用了python

大概回忆一下是这样的)

用shell实现

grep HTTP_CODE=400 error.txt | awk '{print $2}' | sort | uniq

全部评论
算法工程师问的问题居然这么杂吗
点赞 回复 分享
发布于 2023-08-15 10:12 北京
没有性能优化的问题吗
点赞 回复 分享
发布于 2023-08-16 09:50 山西
同岗位同凉
点赞 回复 分享
发布于 2023-08-16 15:48 上海

相关推荐

头像
11-01 19:45
已编辑
门头沟学院 算法工程师
一切都从昨天下午原以为是KPI的一面开始,没想到直接开出意外惊喜一面:自我介绍,然后讲了刚投的一篇1区论文的工作,分析整体的框架、具体的技术细节,常见的反问点(为什么这么设计、为什么有效,相比于之前的工作,主要好在哪里、最核心的贡献是什么)面试官自称是NLP背景的,然后问了一些常见的视觉和多模态大模型的模型结构、损失函数设计、训练及推理过程等(面试官有可能是故意扮猪吃老虎哈哈)Coding:最接近的三数之和;共享屏幕本地IDE,秒了一个n^2logn的做法,让进一步优化,最优解是双指针;不过面试官觉得编码能力应该可以,实现很快,提示完直接让过了原本以为月底发一面是KPI,结果面试官问我后面还有没有时间,现场约二面,等面试官进会议二面:自我介绍,二面面试官非常重量级(进会议的title和面试的深度广度全都拉满了)首先很深入了聊了相当多关于MLLM的内容:介绍一些MLLM的现状,再选一个近期的多模态大模型,介绍相较于CLIP、LlaVA早期版本进行了哪些改进: Qwen技术点比较多,之前没系统整理过,说了自己还有点印象的Intern-VL2,不过上次看Intern-VL2的论文已经是三个月前了,大概只答上两点比较核心的。然后继续深挖目前多模态大模型在数据层面相较于之前的改进,这个没答上来之后被面试官深挖了LoRA,可以说LoRA的每一个细节的角落全都被挖的干干净净,还有不少开放性思考题,甚至比上次小鹏CV大模型一面面试官挖的还狠得多。不过上次被拷打之后就很系统地整理了LoRA的相关内容,勉强答得还行吧以后再不能当git clone侠了。然后面试官针对我的专业背景(统计),深挖了几个ML、DL相关的数学层面的问题,有让共享屏幕开白板写过程和推导(不是特别难,不过挺新颖的,秋招还是第一次面试被问到这种类型的问题);紧接着针对我的Nature子刊工作中用到的Gaussian Graphical Model,讲了其与传统ML模型、神经网络和大模型的差异、区别和各自的优劣势。最后是一些相对开放性的问题:你是如何使用现代的LLM产品提高工作、学习和编码效率的?为什么这种方式有效果?LLM、LVM、MLLM未来发展的方向和前景大概是怎样的?整个二面的问题不止这些,太多了,又深又广,很多具体已经记不太清了,而且回答的过程中几乎都有进一步反问,深挖了很多东西二面面完,面试官也是直接当场联系三面面试官三面:自我介绍,三面面试官更是整个集团的技术大佬,NLP相关经验非常丰富,整场面试问的内容也偏NLP相关,我之前几乎0 NLP相关经验,汗流浃背了可以说,不过好在基础还行,凭自己的做CV和MLLM的积累,基本都答上了首先介绍了之前lab实习中做的LLM剪枝优化迁移的工作,然后深挖了相关的技术细节,不过刚聊完电脑音频直接罢工了,重新约到11.1下午11.1下午完整描述CLIP的原理、架构、工作过程、怎么对齐、怎么做image caption完整描述transformer输入一个文本序列如何做下一句预测的全过程,深挖了tokenize、位置编码、MHA、FFN、损失函数、输出转换各个部分接着从我项目经历中有关传统ML的经验出发,问了一些ML相关的八股,难度不大然后是偏主管面的一些内容:对工作环境的期望、自身性格优缺点等反问环节逮住大佬问了目前MLLM的相关业务和技术现状;最后是关于面试流程上的一些问题总体体验非常棒的三轮面试拷打深度广度强度高,但是也学到了非常多的东西,这也算是对自己能力的一种认可吧现在想想当初9月份面试难度远不及现在的团子、阿里、得物、理想,却被面挂了,可能还是简历不如现在优化的好,没能突出自己的优势,也没有勇气直接投更匹配自己的岗位吧(当初为了求保底,基本都投的机器学习、数据挖掘这种最“泛”的算法岗,或许应该早点鼓起勇气直接投自驾、MLLM和CV的)。今天看到牛u们团子开奖,各种sp、ssp,确实感觉羡慕+遗憾。最后许愿一个HR面吧 #秋招#  #算法工程师#  #牛客创作赏金赛#  #新浪#
查看13道真题和解析 牛客创作赏金赛
点赞 评论 收藏
分享
最近没有新增的面试了,该挂的都挂了好像我的秋招结束了,就这么滴吧,摆烂了快手——数据挖掘1. 做题——最长公共子序列2. 简历介绍实习、项目3. 项目技术1. fasttext原理,层次softmax,树构造2. LSTM更新公式3. mapreduce 原理和阶段4. minhash原理,LSH实现1. 可以优化的地方,sentence-bert精召5. BERT原理、维度、词表大小,模型结构、位置编码类型4. 反问1. 工作内容和工作性质,上下游,需求方式2. 如何沉淀技术栈和方法论【挂】快手二面——数据挖掘1. STAR法则说项目2. 八股1. 一句话概括precesion、recall、AUC指标和应用场景2. 一句话概括LR、随机森林、GBDT的区别、3. word2vec原理3. 反问1. 从问题上看重视思路,这种筛选流程是怎么样的1. 社招看经验2. 校招看基础4. 做题:无【挂】字节一面——NLP算法,挂1. 介绍项目1. 怎么做的CoT、SFT2. SFT数据集怎么构建2. Minhash原理,召回优化,怎么做语义去重1. embedding聚类,怎么聚,怎么评估聚类效果,怎么进行采样1. 超大规模聚类怎么选取类别2. 采样方案,如何保留长尾数据3. fasttext原理和选型原因4. Qwen系列模型和GPT2的diff5. deepspeed多个阶段参数分布6. 写题:最长递增子序列,老哥手把手教我写,人很好,还是把我挂了长安综合面1. 聊到哪里算哪儿,为什么选择长安2. 怎么看待大模型3. 长安在大模型领域可能的应用4. 研究方向长安技术面1. 介绍项目2. lora原理3. SFT有什么经验【拒】长安offer,给的少,拒京东 记错时间,错过一面了荣耀一面——AI工程师1. 讲项目2. 各种模型、微调各个阶段loss飞了可能的原因和解决办法荣耀二面1. 问专业研究方向2. 劝我年轻读博华为1面——AI软件开发1. 随意唠嗑2. 复盘笔试题目3. 手写最小路径4. transformer八股漫谈华为2面1. 谈数据处理流程、长尾问题发现和优化2. 数据飞轮怎么建设3. 写题华为3面1. 聊年龄专业房价发展2. 画饼3. 聊末位淘汰 和 手里做出选择的原因pdd 一面1. 怎么验证实验效果 scaling law, 策略组验证2. 训练框架1. 大量数据,魔改megtron2. 小批量,deepspeedPDD二面 忘了,工程题PDD三面 介绍项目,无反问,写链表重排题目 #我的失利项目复盘#
查看53道真题和解析 我的失利项目复盘
点赞 评论 收藏
分享
15 91 评论
分享
牛客网
牛客企业服务