上海稀宇极智科技有限公司

收藏
人工智能
20-99人
A轮
上海

9

在招职位

52

面试经验

0

真题试卷

上传简历
此刻你想和大家分享什么
职位类型
全部
最新
热门
05-14 14:13
已编辑
浙大宁波理工学院 Java
minimax面筋 后端开发整体流程:问项目+手撕算法+反问 问答环境半个小时,手撕出了bug调了一会,全程一个小时不到点1.面试官做自我介绍,然后我做自我介绍2.讲一下项目当中的excel批量导入你是怎么做的(答线程池+redis兜底,防阻塞) 追问:redis兜底怎么兜,在这里面起到什么作用,为什么不起线程来兜底,redis定时任务怎么实现的3.说一下submissionthreadlocal的实现原理 追问:submissionthreadlocal是如何在微服务,多机环境下传递线程上下文的(其实这玩意只能单机,面试官估计也是抱着疑问而不是考察的态度在聊) 追问:你为什么用这个东西,直接...
孤傲电竞花美男:作为这家公司提前实习被毁约的其中之一,说点真心话吧:如果你能力很强(学历很好也算),能够在一两个月内达到跟同组的社招同事们差不多的水平,那可以去卷的,因为从我了解的,这家不仅仅只卡了我一个人,还认识一个中科院的算法大佬,在那里实习了好几个月,春节期间都在加班只休了一天,毕设都没时间写,但 4 月被告知产出不够,直接让走人。当然公司的同事都比较好,只不过培养体系和方式真的不适合应届生
点赞 评论 收藏
分享
腾讯NLP 1.跨模态对齐有哪些方式?为何逐渐不使用Q-Former?2. Baichuan2 - 7B模型架构是怎样的?其位置编码如何实现?与Qwen家的位置编码实现有何不同?3. 了解Qwen - VL吗?其架构如何?有何独特之处?4. Adapter、P - tuning和Lora之间的区别与联系是什么?5. 数据集如何构建与评测?6. 数据集评估过程中遇到哪些困难?如何解决?7. RAG检索内容是否相关?有无进行Rerank或其他操作?8. 对Agent有何看法?9. 了解强化学习DPO吗?与PPO有何区别?有什么好处?10. 谈一谈大模型完整训练过程及每一阶段的作用。混元大模型团队1.Qwen 和 DeepSeek 有什么区别?2.为何大家都开始探索 MoE 架构?MoE 相比 Dense 有什么好处?3.用 LoRA 微调过 Qwen,是否全量微调过?两者性能表现有何对比?4.用 DeepSpeed 微调过 Qwen2 - 72B,ZeRO - 1、ZeRO - 2、ZeRO - 3 三个模式的区别是什么?用 DeepSpeed ZeRO - 3 微调 Qwen2 - 72B 时,每一张卡占用显存大概是多少?为什么?5.除了 DeepSpeed,还用过哪些优化方法?6.知道 LoRA 的原理吗?A 和 B 两个矩阵怎么初始化?了解过其他初始化方法吗?7.讲一下大模型训练和推理的流程,SFT 和 RLHF 的作用分别是什么?8.在 RLHF 中,目前主流的强化学习算法有哪几个?写出损失函数的表达式。9.对 RLHF 了解多少?讲一下 RLHF 的流程。之前有用 RLHF 做过模型对齐吗?在做对齐时,为什么 SFT 之后还要做 RLHF?只用 SFT 可以吗?10.知道哪些强化学习算法?除了 PPO 和 DPO,DeepSeek 用的 GRPO 相比于 GPT 的 PPO 做了哪些改进?11.微调 Qwen 时,数据是怎么构造的?有用到什么数据清洗方法?数据配比是怎么做的?CSIG腾讯地图1. 进行自我介绍,聊简历上和大模型相关的项目(约5分钟)。2. 讲一下LORA的基本原理。3. 了解主流的开源大模型吗?如Llama、Qwen、deepseek。4. 对Python的熟悉程度如何,能用pytorch写一下多头注意力机制吗?5. C++的代码能力情况(较随意聊) 。6. 手撕代码:反转链表和合并有序链表。7. 反问问题:    - 腾讯地图做的大模型应用是什么?    - 对Manus的看法是什么? 百度文心一言1. PPO 与 GRPO 的区别,分别介绍它们的优势与缺点。2.DPO 对齐训练的曲线是怎么样的,正例的概率会提升吗?参考这个知乎回答。3.Deepseek - R1 里面不仅推理能力很好,而且文采能力也很好,这是个开放问题,如何让模型的文采能力也很好呢?4.deepseed 介绍。5.deepspeed 的每一段的通信比较,zero3 分别是 0 和 2 的多少倍,1.5 倍。6.DPO 如何解决回答过长的问题,除了正则。7.开放问题:为什么现在大家都在关注于大模型的推理能力 reasoning。8.对于一个 base model 如何增强大模型的 reasoning 能力。9.DPO 除了长度问题还有其他的问题吗?与问题 2 对应,reward hacking?都没有奖励模型了。10.说一下 simpo 的原理,它是怎么解决 dpo 微调序列过长的问题的。minimax1.大模型算法中模型参数量每个部分有多少?2.你了解哪些评估 minimax 大模型算法的手段?3.如何评估 minimax 大模型算法中多模态模型的输出质量?4.对于 minimax 大模型算法的数据集,如何提高质量?如何利用 gpt 辅助提升数据集质量?5.有哪些方法可以提升 minimax 大模型算法中预训练模型的质量?
点赞 评论 收藏
分享
         不知道这个系列可以更新多久,我预期是希望逐步整理所有的我认为有价值的问题,趁着还有时间,多复盘一下,大概每篇更新四五个问题,在精不在多。         如果大家觉得有用欢迎点赞收藏送花!1.(Minimax二面)react的单向数据流怎么理解,有什么好处?        当时对这个概念了解的不太深入,没回答好,下来复盘我觉得可以按照如下思路展开。        首先这个问题想回答好就需要理解几个概念:什么是数据流?什么是单向?为什么要设置成单向的?咱一个一个看看        react组件中最常用到的数据有两类:state和props,state是组件内部自行维护的,props是父组件传给子组件的,下面说的数据我理解都指的是props。        数据流:也就是数据在不同组件或节点之间的流动,比如a数据(引用类型)被b节点引用,又被b传递给c,那么a数据改变后会影响b,从而影响c,这就叫数据流。但是这种流动是双向的,因为如果在b或c修改了这个数据,其他的也会变化。        单向:在react中,单向是”自顶向下“的,也就是react规定了数据的流向是从外层组件向内层组件进行传递和更新的,而内层组件是无法直接修改props影响外层的。        那么为什么要用单向的形式?如果内层的组件可以通过修改props来修改外层的数据,那么外层使用到这个数据或者其他使用到这个数据的地方都会造成数据更新,UI渲染也会改变,这会造成数据紊乱和不可控。所以为了更好的可控性,react设计了单向数据流。        除此之外还有一个好处,所有的数据更新是单向的,那么出现问题的时候会更好溯源,因为修改数据的链路是确定的,排查起来顺着调用链就可以一层一层找到问题了。2.(快手二面)如果用户传了一个很大的excel要解析,如何处理比较好?web worker如何和主线程通信?        首先这个问题可以泛化到很多复杂计算上,而不只是excel解析,其次可以延申展开一些东西。‘        web worker是JS里难得的多线程。        在 HTML5 中,工作线程的出现使得在 Web 页面中进行多线程编程成为可能。众所周知,传统页面中(HTML5 之前)的 JavaScript 的运行都是以单线程的方式工作的,虽然有多种方式实现了对多线程的模拟(例如:JavaScript 中的 setinterval 方法,setTimeout 方法等),但是在本质上程序的运行仍然是由 JavaScript 引擎以单线程调度的方式进行的。在 HTML5 中引入的工作线程使得浏览器端的 JavaScript 引擎可以并发地执行 JavaScript 代码,从而实现了对浏览器端多线程编程的良好支持。HTML5 中的 Web Worker 可以分为两种不同线程类型,一个是专用线程 Dedicated Worker,一个是共享线程 Shared Worker。两种类型的线程各有不同的用途        和主线程之间的通信是通过postMessage来进行的。简单的说,主线程用postMessage向webworker推送消息,子线程用onMessage接受并处理,处理完之后在子线程内调用postMessage将结果返回给主线程,主线程同样用onMessage接受。具体内容请查阅MDN文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers3.(灵犀互娱一面)多个web worker如何保证顺序?        还好当时面试官只是提了一嘴,没让我解答。        这个问题属于上面的问题的延申版本,其实没了解过具体方式也能猜个七七八八(类比文件切片上传之类的)。要想保证顺序,最简单的方式就是在给不同web worker分配任务时附带上一个唯一编号,在web worker处理完返回结果时也将这个编号一起发回给主线程,在主线程中按顺序重组。        查了一下,webworker自身也提供了all和race等方法,这些其实就是在promise的基础上封装的(想来也正常,毕竟不同线程,肯定要异步返回)。有一个很详细的知乎文章,有兴趣的uu们自行查阅哈:https://zhuanlan.zhihu.com/p/41431253#:~:text=web-worker4.(快手二面)setInterval准确吗?        感觉大家可能也看过,但是这个问题还是比较有意思的。        答案是不准确,为啥呢?        嵌套的 setTimeout 相较于 setInterval 能够更精确地设置两次执行之间的延时。        下面来比较这两个代码片段。第一个使用的是 setInterval:        let i = 1;        setInterval(function() {          func(i++);        }, 100);        第二个使用的是嵌套的 setTimeout:        let i = 1;        setTimeout(function run() {        func(i++);          setTimeout(run, 100);        }, 100);        对 setInterval 而言,内部的调度程序会每间隔 100 毫秒执行一次 func(i++)(图1),时间开始计算的位置是调用内部方法的那一刻,因此第一次方法结束到第二次开始之间的时间间隔其实是小于100ms的,这就是为啥他不准确。        再看看setTimeout(图2)。时间开始计算的位置是内部方法调用结束的时刻,也就是说两次方法之间的时间间隔是准确的100ms。好处在于如果内部方法调用的耗时比较长,那么这个方法也能确保两次调用之间的时间间隔。        延申:如果setInterval的内部函数执行耗时大于设定的时间间隔咋办?        在这种情况下,JavaScript 引擎会等待 func 执行完成,然后检查调度程序,如果时间到了,则 立即 再次执行它。极端情况下,如果函数每次执行时间都超过 delay 设置的时间,那么每次调用之间将完全没有停顿。5.(百度一面)语义化标签如果没加样式,跟div、span这些非语义化标签有啥区别?        这个就看大家对语义化标签的理解了。首先肯定能想到的一点就是更方便理解,看到header就知道是顶,看到aside就知道是侧边栏,但是这些任务div都能完成,区别在哪?        1.即使在没有CSS的情况下,HTML页面也能呈现出很好地内容结构、代码结构。语义标签具有默认的CSS,比如html5之前的h1、h2等等就是语义化标签,他们表示几级标题;虽然我们在html没有引入任何css时,我们仍然可以看到h标签有字体放大加粗的效果。 实际上,html本身是没有表现的,我们看到例如 h1标签是粗体,字体大小2em,加粗;strong是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的        2.不仅人更容易看懂,也更利于机器看懂,对SEO更友好。再次感谢大家的点赞收藏和花花
点赞 评论 收藏
分享
        一直面试只能让你把会的背的更熟,但想进步还是得回头看看不会的问题。        今天回顾一下我遇到的一些有价值的问题,结合我自己的一些理解对这些问题尝试解答一下,相信对大家一些知识的理解也会有些帮助(有问题的话欢迎指出)。有用的话感谢大家点赞收藏送花~1.(滴滴提前批二面)Vue开启了keep alive之后会经历哪些生命周期?缓存了什么东西?        这个点我自己是没有仔细思考过的,当时面试官提问vue的生命周期,我提到了Vue开启keep alive前后生命周期的不同,面试官拓展的问了这个问题。        背八股的时候都背过,使用<keep-alive></keep-alive>组件包裹后可以在切换路由的时候不必销毁组件。并且会多出两个生命周期:activated和deactivated。其中activated在组件渲染的时候执行,deactivated在组件隐藏时执行,因此将这两个生命周期对比mounted和beforeDestory来学习。组件在初次渲染的时候会经历从beforeCreate到mounted这整个阶段,在后续切换的过程中则只会经历activated,随后的beforeUpdate和updated都会经历,隐藏时经历deactivated,最后销毁的时候才会经历beforeDestory和destoryed。        那么缓存了什么?我们知道在mounted阶段,虚拟DOM转为真实DOM,此时data,method,虚拟DOM都有了;而activated阶段可以不经历前面的钩子,直接挂载DOM,说明keep-alive缓存了虚拟DOM,并且还有所有的数据/方法,也就是缓存了组件实例。        如果面试阶段没有见过这个题,可以从每个生命周期干了什么开始联想,其中走到mounted阶段拥有了什么,那么actived阶段就也会有这些。2.(4399一面)http1.1的情况下,一个网页的图片是一张一张加载还是一批一批加载的?        首先回顾一下http1.1的特性:    ● 默认长连接,新增响应头Connection:keep-alive字段,保持TCP连接不断开    ● 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回    ● 缓存处理:新增catch-control字段    ● 断点传输机制。文件传输时如果遇到网络故障,可以从已经上传/下载好的地方继续请求,不用从头开始        其中第二点提到的管道化基本可以解答整个问题,虽然可以发送多个请求,但是返回的顺序还是有序的。因此虽然TCP最大连接数有6~8个,但是返回时还是顺序返回的。        但是需要注意,如果严谨一点的话还是要考虑一下预加载的情况。例如,当浏览器解析到 HTML 中的<link rel="prefetch">标签时,它可能会提前发起对指定资源(包括图片)的请求,这样在真正需要显示该图片时,可能已经加载完成或者部分加载,从而在一定程度上出现看似一批加载的情况。3.(Minimax一面)eval和new Function的this指向问题:        eval的this指向可以看这篇,很详细:https://ayk.moe/articles/javascript-change-this-in-eval-function/index.html        简单的说:eval函数只要是在全局直接运行或者是通过一个函数调用执行、作为对象属性被调用执行这种间接的执行方式,他的指向都是全局作用域。他不能直接被call/bind/apply改变this指向,改变的思路是在eval外面包一层函数,改变外面这个函数的this指向。        new Function:使用 new Function 创建的函数,它的 [[Environment]] 指向全局词法环境,而不是函数所在的外部词法环境。因此,我们不能在 new Function 中直接使用外部变量。        如果你对这块不熟悉,来看看这个:https://zh.javascript.info/new-function4.(Minimax二面)React:在if else里书写hooks,为什么不可以?        我用我自己比较容易理解的话术来简述一下关键原因,这里面的具体细节还是比较复杂的,有兴趣的牛u可以找找资料了解一下。        react的fiber树有两颗:        current fiber树: 当完成一次渲染之后,会产生一个current树,current会在commit阶段替换成真实的Dom树(可以看成虚拟dom转真实dom)。        workInProgress fiber树: 即将调和渲染的 fiber 树。再一次新的组件更新过程中,会从current复制一份作为workInProgress,更新完毕后,将当前的workInProgress树赋值给current树。        workInProgress tree上有一个memoizedState属性,在函数组件中,memoizedState在一次调和渲染过程中,以链表的形式存放hooks信息。        每一个hook函数执行,都会产生一个hook对象,里面存放了hook的当前信息,然后会以链表的形式串联每个hook对象,并赋值给workInProgress的memoizedState。        每次组件更新的时候,会先复制一份current tree到workInProgress tree,此时在workInProgress上进行更新。一旦在条件语句中声明hooks,在下一次函数组件更新,hooks链表结构,将会被破坏(某个节点可能被跳过),current树的memoizedState缓存hooks信息,和当前workInProgress不一致,如果涉及到读取state等操作,就会发生异常。                以上很多是自己的理解,可能讲述不准确但有助于自己理解,欢迎评论区留言指出错误~
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务