友邦科技 Agent开发 一面

一、实习
1.介绍项目
2.调用大模型后的返回结果或格式与我们要求的不符,怎么办呢?比如要求返回的是JSON,但是返回格式不理想的情况怎么解决?
从System Prompt的角度回答的,可以在系统提示词中规定仅输出纯JSON,并给出JSON结构示例。
但面试官不太满意,提出还有其他的解决方法,让我再去研究一下。
现在想想还可以从这些方向进行优化:
通过结构化输出能力:比如通过JSON Schema限制它只能产出符合 schema 的字段和类型;
在程序侧做校验与重试:收到结果先进行检验,失败就把错误信息返回,令其重新生成。
3.LLM的常见的训练流程,如pretraining、微调等
当时没答上来,后来回答了 Transformer 架构,解释了一下注意力机制
此时突然提问Attention中计算QKV时的时间复杂度,没答上来,应为O(n²d)。
应为:数据准备(Data Pipeline) -> 预训练(Pretraining) -> 指令微调(SFT)-> 偏好对齐(DPO/RLHF) -> 评测与迭代(Evaluation & Iteration) ->部署后持续优化(Online Feedback Loop)
4.RAG主要用来做什么?有哪些应用场景?
RAG可以让大模型基于知识库回答,减少胡编的现象。
详细说了一下RAG的流程,分片、索引、召回、重排、生成。
应用场景:如AI客服等。
5.如果发现在我们搭建的RAG中,它的召回率比较高,但是回答仍然不准确,可能的原因都有哪些?
从优化输入的角度进行回答,可以先让大模型根据用户的输入生成几条相似的问题,即把原始问题改成多种不同的表述,分别去搜,最后把结果合并去重。
后来想了想,还能从这些角度答:
Chunk 粒度或切分策略不合理,太大、太小,overlap不足,导致关键句刚好被切开;
噪声太大,可能把正确文档召回进来了,但它在 Top-k 中位置靠后,前面塞了大量“看起来相关但无关”的片段,导致生成阶段被噪声干扰;
生成阶段没受约束地使用证据,比如在Prompt中没明确说依据给定上下文作答;
温度、Top-p参数不合理,导致模型自由发挥程度过大。
6.如果在RAG系统中碰到检索的结果存在冲突,怎么办?
从提升检索质量的角度进行回答,单纯的语义检索可能得到的结果并不准确,可以结合精确匹配,采用混合检索,最终通过加权或RRF算法得到合并排序后的结果。
7.有自己搭建过Agent的项目吗?
介绍了一下在公司做过的通用Agent项目,以及简单提到了正在用Python实现的类OpenClaw的Agent,这里并没有后续的追问。
二、项目
1.介绍一下在点评中都做了哪些具体的内容?
讲了一下通过Redis实现的几个功能以及解决的问题、如穿透、击穿、雪崩、超卖等。
2.缓存雪崩的解决方案是什么?
为不同的Key设置随机TTL;
建立Redis集群;
采取降级限流措施,如快速失败等方案。
3.场景题,后端存在多个Application,前台会打到不同的Service,之前通过Redis保持用户的登录,如果不用Redis,有没有别的方法来解决?
可以通过单点登录来解决,建立一个认证中心,所有服务的登录请求都先转发到认证中心,生成全局对话TGT、票据Ticket后,带着Ticket重定向到A服务,A服务向认证中心对Ticket做校验,校验成功后建立局部对话。
三、八股,只问了数据库
1.inner join和left join的区别是什么?
inner join返回的是交集,设A left join B,返回结果会保留A表的所有行,再补上右表匹配的数据。这里答得有点模糊。
2.varchar和char的区别?
varchar是可变的,char是定长的,varchar更节省空间,而char存取比较快。这里说错了,char是定长的,下意识以为char更节省空间了。
3.如果要在数据库中在table上建索引,你有哪些考量?
从两个角度进行回答:一是要考虑索引的合理性,是否常用,是否合适;二是要规避掉索引失效的场景,如最左前缀法则、将用于范围查询的索引放到后面,进行索引查询时不要在索引列上进行运算、类型转换以及%开头的模糊查询。

整体还算简单,不过个别问题回答的确实不够精准和细致。
全部评论
已通过
点赞 回复 分享
发布于 05-07 20:35 北京

相关推荐

评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务