佬什么时候面的
点赞 5

相关推荐

04-30 08:02
东南大学 C++
一、基本情况 / 实习经历1.你先做一下自我介绍。2.你大二就去字节实习了吗?3.你能简单介绍一下你在字节实习做的项目吗?________________________________________二、字节实习项目:端上特征平台 / 性能优化4.你们这个端上特征平台里的“特征”具体指什么?5.客户端上的特征和服务端上的特征有什么区别?6.你在实习中做的两块优化,具体分别是什么?7.这两块优化分别解决了什么问题?8.你觉得这里面的难点主要在发现问题,还是在方案设计和落地?9.设备特征缓存为什么可以做分层?10.你们是怎么确定 2 秒、10 秒、90 秒这类分层缓存策略的?11.业务方怎么感知或使用这套缓存频率配置?12.这些设备特征的规模是固定的吗?13.你做的特征 SQL 优化具体是怎么做的?14.这里的时间戳在 SQL 里具体是什么条件?15.为什么这些 SQL 可以合并处理?16.你们为什么要在端上做特征处理,而不是全部上报到云端处理?17.端上做特征处理,最终是给哪些场景使用的?18.你这个特征平台和抖音、头条这些业务之间的关系是什么?19.业务方如果需要自定义特征,是怎么接入你们平台的?________________________________________三、AI 投资分析系统 / 多 Agent 设计20.你能介绍一下你做的 AI 投资分析系统吗?21.这个系统从用户输入到输出投资建议,大概是什么流程?22.你为什么要把系统拆成多个 Agent,而不是单 Agent?23.你这样拆成多个子 Agent,会不会导致信息割裂,反而影响最终分析效果?24.你觉得你现在这个多 Agent 方案主要问题在哪里?25.如果让你继续优化这个投资分析系统,你会怎么改它的 pipeline?26.你会怎么降低这个系统里的幻觉和噪声问题?27.你觉得投资分析系统里的“证据链完整性”应该怎么保证?28.除了证据链,你觉得最终“投资建议生成”这一层应该怎么设计规则或决策机制?29.你理解的“闭环”是什么?30.如果要让这个投资分析系统真正形成闭环,你觉得还缺哪些能力?31.用户反馈信号应该怎么作用到你的系统里?32.长期记忆、短期记忆和用户画像在这个系统里应该怎么设计?33.你觉得用户反馈信号应该怎么转成 reward 或权重更新?34.你提到意图识别和 plan,那你怎么保证这条链路本身的一致性?________________________________________四、高并发 AI 聊天系统35.你做的高并发 AI 聊天系统,里面“高并发”和“AI 聊天”结合起来,有什么特别值得讲的地方?36.你为什么会做这个项目?
点赞 评论 收藏
分享
04-29 12:34
已编辑
河海大学 C++
投完简历,做了测评,AI 面试都还没做。没想到星期一 4 点投完论文,早上十点多组会的时候就给我发腾讯客户端一面。C++ 八股左值和右值区别。突然问这么简单的一下有点懵,然后大概答了一下左值、将亡值、纯右值,然后强调了一下左值的所有权,转移时用 move。TCP 三次握手和四次挥手,简单说了下三次握手和四次挥手流程,提了一下捎带机制和挥手的时候发送剩余数据。智能指针。提了一下 shared_ptr,强调了应该优先用在所有权明确时优先 unique_ptr,顺带提到了 shared_ptr 存在的循环引用问题。追问怎么解决循环引用,回答 weak_ptr 以及shared_ptr 引用某个对象时所有权意味着主从关系,若 A、B 相互引用,造成析构时引用计数无法正确归零。然后解释 weak_ptr 是弱化的所有权,一方面起到观察作用,另一方面是引用控制块由于是智能指针共享的,其中的弱引用计数也起到了 RAII 的作用,可以让引用计数块正确析构。虚表是什么。有 virtual 函数的类就是虚类,类中除了自己定义的成员还有一个虚表指针指向虚表,表里面有虚函数入口地址和 RTTI 信息,RTTI 信息用于 dynamic_cast 的时候判断类型。追问虚类内存布局,举了个例子,对于一个没有成员的类,大小 1 字节(约定是这样),若其中包含了虚函数(特别提了一下成员函数不占用类的空间,全局一份),就会在类成员的基础上加上一个虚表指针,这时候类的大小是 8 字节(64 位),也就是一个指针的大小。还好之前有看过 LLVM 的 IR,对这个比较熟。知道哈希吗,怎么实现。通过一个哈希函数将一个大的集合映射到一个小的集合,实现 K-V 的存储,由于是大集合映射到小集合,所以存在哈希冲突。一般有线性探测、拉链、再次哈希的方案。STL 里哈希表是用的拉链 + 红黑树。追问红黑树。答曰红黑树是 AVL 的改进版本,AVL 要求左右子树高度差最大为 1,红黑树放宽了这个限制。由于怕拷打红黑树的操作,遂补充一句红黑树的插入删除时间太久没接触有点记不清了。进程和线程区别。进程是操作系统资源调度的单位,堆、文件句柄(描述符)等资源都托管在进程中,线程是操作系统调度的最小单位,本质是一个在 CPU 核心上运行的函数。由于这个问题过于简单,怕没有亮点,遂延伸到 Windows 的进线程模型是比较标准的,而 Linux 实际上并没有真正意义上的进线程,只有任务(task_struct),任务从行为上类似于线程,task_struct 中有 thread_struct 在上下文切换时存储 CPU 的通用寄存器值、段寄存器值等,此外还有一些额外的信息标识进线程组来贴合进线程的概念。然后又延伸到 Linux fork,fork 时仅 fork 一个 task,实际上并没有 fork 进程的所有线程,若在 fork 时其他 task 调用 malloc 等内部申请锁的函数会导致 fork 后的 task 死锁,因为其他的 task 已经不存在的,还提了一下 chrome 源码中的一些关于 fork 的注意事项。滔滔不绝讲了半天面试官说不要延伸太多。什么是线程同步。懵逼二度,不知道从哪里说起。和面试官确认了一下讲了数据竞争问题,mutex 是阻塞原语可以实现互斥访问,条件变量是同步原语,可以在某个条件不满足的时候阻塞,等到条件满足时由其他线程唤醒,比如生产者消费者问题。还提到了原子变量和内存屏障也能部分地实现同步,由于之前面试官说不要延伸,遂打住。项目相关:有一个操作系统内核实现(没问)还有一个几十个 stars 的游戏工具项目,主要是用在游戏里自动刷任务的,讲了一下项目架构。C++ 实现的控制器里面塞了个自己部署的深度学习模型做推理,判定状态后实时交给 Lua 执行器执行,Lua 执行器里封装了 Logitech G Hub API,由于标准库仅支持 string、math、table,缺少协程,遂用了一点 tricks 实现了简易协程用来在命令变更时切换任务。为了让用户使用方便还做了个前端。Skills 了解过吗。不了解,但知道 Agent,做过一些相关的横向、纵向研究,然后谈了一下 AI Agent 构建的一些流程。面试官说可以了解一下 Skills。算法。面试官挑了半天,给了一道 Leetcode hard 的并查集 Redundant Connection II,人直接炸了。撕了半天,面试官又给了一道(没看)说能做出来一个就行。由于第一道已经写了一点,遂继续尝试。写了半天,运行之后发现结果不对,感觉寄了。面试官说思路是对的,就直接让我过了(人也太好了)。反问。问客户端做什么,说是 QQ。正好了解过,就问 QQ NT 这个架构是怎么做跨平台的,几年前 Linux 根本没有 QQ 用,现在除了 Wayland 下面有点小问题,X11 基本体验上和 Windows 没区别。答曰 Electron.js 加上底层封装库。问底层封装是不是做成动态链接库给上层调用,答曰是,我附和说跟 vscode 有点像。日常实习,接不接受 base 深圳。之前投一堆简历都没啥动静,这会压根不挑了。---分割线---二面:问了我做的那个游戏工具项目,然后纯聊天,最后给了个链表去重。三面:让我讲了做的游戏工具项目,讲了二十多分钟,最后给了个 AI Coding。目前流程到 HR 面,感觉快看到曙光了。
钦某:能看出来大佬很强
查看19道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务