百度提前批测开三面(发面经攒人品,许愿许愿)(隔天早上9点发面评邮件了,据说发面评就是过了三面,许愿许愿)

度子都是好人, 面试官是个很好的人,全程就聊了聊项目,然后聊了聊ai ,聊得很愉快,就结束了

许愿, 给我过吧,求求了。

一开始,我看这位大佬似乎头发有点稀疏(难道这是程序员的归宿), 我以为会很难,结果很常规,好人呐,给我过吧。许愿,许愿

  1. 当时为什么选择了java 这个方向呢(昨天刚问)

    1. 回答: 大一时尝试了各个方向,比如python做爬虫,比如用c做一些开发。后面还是觉得 java对于web开发的生态更加好,也是觉得java更加符合我的预期
  2. 那你平时是会使用到一些ai工具吗

    1. 回答: 是的, 我会在学习上去使用,以及 编程上 cursor 开发前端
  3. 当时为啥选择要写这样一个项目呢(昨天问过了)

    1. 回答: 我最开始接触ai 是coze 平台,当时还是免费版,可以做一些系统提示词,知识库这些,我就做一个智能体出来,给我身边的同学使用。然后后来chatgpt出了学习模式,有一位大佬就把提示词给弄出来了, 我就尝试在各个类似coze平台上去设置这个提示词,也是用到了百炼平台,spring ai alibaba也是出了1.0 ,看到别人做了一个智能体出来, 我也在想,我能不能做一个出来呢,于是我就开始尝试,然后参考别人的项目,最后也是磕磕绊绊给完成了
  4. 你这个模型采用的是哪个, 是调用api 还是自己搭的, 收费大概什么样子

    1. 回答: 千问-plus , 是调用阿里的, 收费,平台注册每个模型有100wtoken。
  5. 你的这个ai助手, 似乎流式输出有点问题 ,回答没有完就结束了,这个可能是什么原因

    1. 回答: 可能是前端的原因, 我看他的实现是 将数据先存到列表中, 然后再从列表中输出,形成一个打字机的样式
  6. 那你的协议是什么呢

    1. 回答: sse , 服务器主动向客户端发送
  7. 你用的过程中 也遇到这个问题了吗

    1. 回答: 我做了一些简单的测试,没有太长的一些对话
  8. 现在主流开发ai 的语言是python ,你当时为什么没有选择使用python来实现这个,还是说你更熟悉java

    1. 回答: 一方面是比较熟悉, 另一方面 我一开始选择java,就是java它对web开发更友好,但是ai发展,以及其他的语言的出现,比如go ,php ,让java开发web优先级不是那么高。如果说能用java来开发ai,说不定会进一步的提高java 的地位,然后也是看到spring ai 的出现,就想体验一下用java开发ai 到底能开发到什么程度
  9. 你一直说是java 开发web 更友好, 你是从哪方面考虑的呢

    1. 回答: 一个是他的生态比较好,springboot一统天下之后,各种对于springboot的依赖层出不穷,比如我的oj判题系统中,使用到了docker java 这样一个库,它就是用来在java 中用编程的方式来实现对java的操控 。 另一个是他的学习路线比较清晰,从servlet-> springboot ,能逐步感受到web开发的一个更新迭代这样
  10. 那你知道哪些公司在用java

text
复制代码
1. 回答: 最大的肯定是阿里, 然后美团 , 然后可能滴滴也在用, 其他的不太了解了
text
复制代码
2. 面试官: 你说的java开发web ,就是jsp ,spring 这些, 其实这些还是比较重的,属于j2ee的范畴了, 其实我们去写一些中小规模的项目,可能使用php或者golang更多一点,没有必要去用java,当然使用java也会更好,但是其实是你自己的选择问题了, 对于服务端,可能golang 可能性能会更好。 因为现在的开发不是十年前了, 现在都是前后端分离了,后端其实用什么接口其实无所谓的。

11. 你简历里提到ReAct模式, 那什么是ReAct模式呢(老生常谈了)

text
复制代码
1. 主要是分层次。首先是一个 BaseAgent ,在这里做了: 做了状态管理, 记忆管理,最大步数限制, 以及agentic loop 的实现: 判断如果没有达到最大步数/ai的状态没有达到结束的状态,就会循环。循环中执行 单次执行,然后这个单次执行 是在ReActAgent 抽象类中, 这里实现了 单次执行的方法 step,在方法中主要是调用think 与act 方法, 这两个方法是交给了toolcallAgent,toolCAllAgent 实现了think 与act 方法, think方法是:调用一次ai,通过cot思维链提示词,让他进行思考,选择出他要调用的工具,将结果存储到ChatResponse中,交给act方法,act 方法中 获取所有要执行的工具, 然后设置记忆,然后调用ai执行工具,并将结果记录到记忆中。再次循环这样子

12. 你为什么选择openmanus 呢,比如说能够实现ReAct这种很多比如langchain

text
复制代码
1. 回答: 当时manus 大火, 然后非常戏剧性的 一个小团队就把这个东西给复现出来了, 然后就知道了这个东西(笑) 2. 面试官: 你是从今年开始去了解ai开发的知识是吧,那我就理解了,因为其实langchain当时在23年是最火

13. 你觉得openmanus 在应用性/可移植性上有什么问题吗

text
复制代码
1. 回答: 因为他的请求,包括记忆管理这些都是他们自己去实现的。 那如果说出现了更好的方式 ,那你就需要对这个代码进行调整。对于一些配置的话,他是需要去改动源代码什么的

14. 你简历上有三个项目, 那你在这些项目中遇到的最大的困难是什么(前面一直问的问题,一招鲜也是)

text
复制代码
1. 回答: 分布式登录的解决 和ai 记忆版本上的解决

15. 从这些项目中觉得你获得的最大的成就是什么

text
复制代码
1. 回答:比如说我学习docker ,那我在学习过程中 就认为docker 只是方便我们进行部署的一个中间件。 通过oj 系统这个项目,我发现它居然是可以做代码沙箱的。 做项目这件事情让我缩短了理论与实践之间的一个差距, 让我发现了这些技术栈他的其他用途, 看到你从一个想法,最后做到一个能在网页上正常访问的一个网站,去给到我身边的同学去使用。他们会夸我大佬呀什么的(笑)

16. 微服务与docker之间有什么关系吗

text
复制代码
1. 回答: docker 对于微服务的部署会更好, 微服务是多个模块,使用docker compose就可以实现快速部署

17. 有一台自动售货机要上市了,让你设计测试用例,你怎么设计(想遍了所有会遇到了bug,刷过的面试题中要注意的东西)

text
复制代码
1. 回答: 功能上: 首先要打开柜门, 你要人脸识别, 那这个就需要测试。 比如 一个照片, 一个人,两个人一起,没有人的情况, 两个人比较像,如何辨别,同时使用多台同时进行一个人的信息获取,会不会出现问题 2. 然后就是打开柜门,你要拿东西,然后结算。 那结算的金额是否正确: 不拿东西,拿一个东西,拿多个东西,拿走大部分 3. 然后付钱这个动作, 如果有很多人同时去付钱,能不能正确完成,金额上: 一个物品是不是一个物品的价格,两个物品是不是两个价格相加,如果有优惠卷,那如何处理 4. 还有程序在机器上能不能兼容,会不会出现运行一段时间,不能正常运行 5. 如果说网络不太好,用户进行了支付操作,出现了网络波动,那这个你是如何处理的,如果支付失败,那是会要求重新支付,还是有其他办法 6. 用户往里面放一些自己的东西,那你会不会给一些提醒 7. 还有 比如: 多个用户同时支付, 那性能上会不会有影响,比如返回速度迅速变慢 8. 如果使用异步做订单处理,那延迟不能太长 9. 尝试将服务器打崩, 看他会不会有高可用的考虑:比如redis集群,nacos集群。 还有就是报错了,那是直接把错误的堆栈信息发给前端,还是有一个固定的策略。 10. 用户的流量比较大的情况下,有没有做限流,比如用户频繁开关门, 11. 有没有做熔断降级, 比如出现了一个重大bug,比如金额计算出现了问题,那有没有一个处理直接截断这个服务,使用代替方案,或者直接返回服务不可用 12. 日志记录上: 有没有问题 13. 如果 有人直接调用接口,会不会直接修改了金额。对接口做一个测试,比如用户信息为空, 或者用户信息错误,有没有做处理 14. 如果把人脸识别这个步骤当做是登录操作,那我不登录能不能直接调用接口。如果存储信息用的是session,那有没有将session与售货机的ip绑定在一起。如果使用token有没有做重放攻击的处理 15. 面试官说思路还挺全,测的还挺全

18. 如果没有红绿灯的十字路口,你要如何安全通过(这块不好,其实我准备时见到这个题了,但我是懒狗,没做,别骂了)

text
复制代码
1. 回答:让出租车载一下你 2. 后面反问了这个问题: 天桥 , 警察, 绕路

反问

  1. 您觉得ai未来发展方向可能是什么 , 编程方向的

    1. 我先说了: 可能上下文长度(详细见高顿java实习的一面)
    2. 面试官: 目前ai编程确实会有问题, 我们让ai做的更多的一个事就是辅助编程,ai能生成的可用代码可能只是一个片段,或者某个函数,或者单个类。 至于单项目,这个目前来看还是有难度的,这个不单是上下文的大小问题。 其实现在的上下文可能100万,200万,那这 100 万中, 工具调用要占用一部分,系统提示词要占一部分,安全性的检测要占一部分,还有你对话上下文多次交互这些东西。所以其实真正可用的token其实没有很多。真正可用的可能40-50% 那样,那提示词能不能完全解决, 比如我提示词扩大到1000万,能不能解决 ,也很难。 因为现在大模型在训练使用了海量数据, 整体的生成步骤是缺少上下文的信息,包括你的个人的编程习惯问题,你整体的架构设计的拆解,你整体的交互过程,那这些都是上下文。你缺少这些,实际上生成的是通用化的,生成的是类似的代码,比如我写一个vue项目,和他写一个vue项目,基本上大致代码是相似的,但是我和他在架构上的拆解,编码风格,我们是不一样的,我们要把这些告诉他,他只有知道这些,才能生成符合个人风格的这些代码。 这是从上下文来说了。
    3. 另一个就是从知识的角度,你不能把你所有的代码都丢给ai,让他学习你的风格,你的习惯,他可能也学不到。你要明确告诉他你的风格,你的人设,你喜欢怎么去拆分。 一方面是上下文,另一方面就是通过一些精简的知识去告诉他,这会减少一部分上下文的消耗。
    4. 目前来看, 我其实并不觉得上下文不会无限增长,因为目前来看的话100万的上下文其实已经到顶了,再去增加更多的上下文,对于整体的投资回报比(roi)来说,比如延迟的要求,并没有一些增进,因为你的上下文越多,你消耗的K-Vcache就会越多,那你整个推理花费的时间就会越多,那你花费的能源就会越多,你计算资源就会越多。 他与整体的roi 不是一个正比的,甚至会降低,这是资源上。
    5. 另一个是从整个的压缩性能上来看,你更多的上下文,意味着你要有更好的压缩算法,transform 这种架构,他的核心原理就是去做压缩,将你所有输入的token去压缩成一个token,然后拿这一个token去fin 的算法中去预测下一个token,选一个概率更高的。 那你很容易把一个10万20万的token压缩成一个,那100万我们也可以压缩,那1000万你怎么去压缩,就算能压缩,压缩也意味着线性丢失,在整个transform一定是有损压缩,不会是无损压缩,对吧,所以说上下文无限大,那要求你的压缩算法的性能无限的好,这个目前是不现实的。即便是100万token,我们能看到,你的上下文越多,反而输出的性能会越差,为什么呢,就是说他的压缩算法,压缩性能出现问题了,他会丢失很多信息。这可能与自注意力机制有很大关系。我觉得其实增加上下文来提示模型性能,不是一种特别好的方式,可能会有其他的更好的方式比如: 通过多轮的交互,一轮搞不定,我可以多轮,多轮可能不限制2 3 轮,可能20轮,30论 这些优化的过程中,会涉及到上下文的压缩,记忆的能力等等的一些过程。所以整体目前来看,编码这块,还是做辅助会更好一点
    6. 当然很多公司它可能在做让ai去生成项目,这种可能对于从0-1 是可以的,但是从1-100 的项目,涉及到多个团队,多个人,多种编码风格,目前来看还是有很大的挑战。反正这一块也是后续去看吧,可能不只是上下文的关系,可能是多个方面都需要研究与探索的
  2. 您觉得未来,程序员的核心竞争力还是什么。因为ai发展,会有一种 比如 : 都有ai了,我还学技术干什么呢

    1. 回答: 你可以去类比无人车: 你有没有发现所有买车的人,买无人车,或者其他车,他都需要有驾照。 ai它如何考核呢
    2. 所以即使在有大模型的情况下。 编程也不可能变成一个没有门槛的事情。你可以找你的文学系的同学,让他去使用cursor去生成一个很简单的冒泡排序,让他去调试,让他去把这个弄懂,给你讲出来,他能吗,很难。 因为这里面涉及到你的专业素养,你才能用相关的工具去做这个事情,这里面比如说debug的问题,环境的问题,不同版本的问题,编译器的问题。他不是说你有了大模型他都给你解决了,这是理想态,那现实中遇到的情况不是这样子的。 那大模型这么火,视频大模型这么火,也不是说人人都用大模型成为导演了,你在去看工具的发展,ps已经这么强大,便利的了, 也不是所有的人都会做批图,做设计。所以你要从多个方面去考虑
    3. 那其实在程序员这块,代码他是分层次的,最底层是操作系统级别的,架构级别的,在往上是中间件,包括nginx ,在网上是页面级别,增删改查级别的。我们刚才提到的,大部分都是停留在增删改查这个级别的。 那你有见过哪中间件是使用大模型来生成的,比如redis 对吧,有见过哪个底层操作系统是ai生成的,你也很难对吧。 还有复杂子系统 比如视频领域,f one 拍个 ,他很大,大模型能不能搞定它。他是很难的,因为整个项目是在不断迭代更新的,这是很庞大的,不是说写一次就完事了

最后也是聊得很开心。

许愿,许愿百度。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
认真的眼前
作者分享
406状态码的解决
3
26届 目前刚入职实习 想问 实习和秋招 如何同时进行 。 有没有佬有建议的
4
目前有两份实习offer --- 1. 清大科越, 北京 规模比高顿要小 有住宿 150/天 一个月可能3300这样 电力系统这方面的开发工作 ,他们的产品:基于电力大数据智能分析的全周期负荷预测和新能源功率预测 系统,电网调度系统, 技术栈也是java 这些, 我去到的是一个70人的团队 有转正机会(秋招从实习生中挑,他是这么说的,可能画饼) 有人带 至少3个月 --- 2. 高顿教育 上海 算是中厂 有住宿,4000一个月,但是前两个月要900住宿费,后面就不需要了 实习生相关的app/小程序的后端开发工作,我去到的是研发部/后端开发组。 产品有: Hi实习 小程序(我可能参与到这个) 有人带,秋招的名额会优先实习生(可能画饼) 至少4个月 个人情况 26届 末流211 本, 无实习经历, 我学的是java后端开发 纠结的点 ● 一个是距离,我家是山西的,上海比北京要更远, 我家里希望我能去北京这个 ● 我更希望能去学更多的东西,清大是电力系统的一些开发,是电网这方面的 ,高顿就是正常app/小程序的后端开发。 是教育行业的公司 ● 不知道哪个含金量更高 以及要不要听家里的 大伙给点建议
2
高顿java实习 hr 面
8
高顿java实习一面面经(没有八股,全是对ai的理念上的,后面对程序员以后的竞争力讲挺深刻的,受教了)
53
下载 APP