面经复盘

调LLM失败怎么做的重试和rollback

> Dubbo: 在 doInvoke() 方法中,请求失败时会调用 addFailed() 方法添加定时任务进行重试,默认每隔 5 秒执行一次,总共重试 3 次

命中查询不能用布隆过滤器因为有哈希碰撞,用set保存也不行太大了(实习没注意看存储架构) 用的Roaring64NavigableMap

JAVA 锁,被问N次

Mysql 索引结构

Redis数据结构

IO多路复用,Redis一定是单线程嘛

同时购买同一个商品,库存扣减。用redis管理库存,会不会出现线程A读取库存是5,线程B读取库存也是5,但这个时候其实A已经购买一份了,库存应该是4了,结果会不会是A和B都购买了一份,但是库存还是4

我把判断库存和扣减库存写在一个Lua脚本中,因为Lua脚本在Redis中是原子执行的。不可能存在上述情况,线程A只有扣减成功,线程B才会执行读库存扣库存。如果Redis是集群模式,Redis集群通常采用分片(sharding)方式,将数据分布到多个节点上。每个节点负责一部分槽位(slot)。对于单个键的操作,因为一个键只存在于一个节点上,所以即使是在集群模式下,对单个键的Lua脚本操作也是原子性的。主从的话,在主从架构下,扣减库存的Lua脚本在主节点执行,由于原子性,不会出现超卖。但是,如果主节点宕机且未同步到从节点,会导致扣减操作丢失,从而出现库存不一致(即实际已经扣减,但宕机后库存恢复)这就是其他redis高可用问题了

分布式定时任务广播的原理,啥协议通知到多台机子上?

Rag优化:

    1. 混合检索(Hybrid Search)

    在实际项目中,我们通常不会只用单一检索方式。 然后加权

  1. 稀疏检索(Sparse Retrieval):比如 BM25、TF-IDF,基于关键词匹配,优点是可解释、快速,但对语义理解差。
  2. 密集检索(Dense Retrieval):比如使用向量模型(如BERT、E5、bge),基于语义相似度,能理解“同义表达”,但有时会引入“语义噪音”。

2. 两阶段检索(Recall + Rerank)

这是很多成熟方案(如Cohere RAG、LangChain RAG Fusion)的标配。

  • 阶段一:召回(Recall)用轻量模型(如向量检索)快速筛出top-N候选文档。重点是召回率要高,宁可多,不要漏。
  • 阶段二:重排(Rerank)用更强的模型(如Cross-Encoder、bge-reranker)对召回结果重新打分。重点是精确率要高,把噪音干掉。

query查询改写/扩展(Query Rewriting & Expansion)

除了分块,有两个高级优化方向:

  • 元数据索引给每个文档加上来源、时间、类别等标签,便于检索器过滤。例如:“只取最近30天的新闻”。
  • 图结构检索(GraphRAG)微软近年提出的新方向,把知识库构造成图(Graph),节点是实体、边是关系。 检索时可以沿着语义路径走,找到更有逻辑联系的内容。GraphRAG的优势在于,它能让“知识检索”从孤立片段变成“关系网络”,尤其适合复杂知识问答或企业知识库。

RAG的最大风险之一,是模型“编故事”——也就是幻觉(Hallucination)

优化手段包括:

  • 事实一致性校验(Fact Checking): 用embedding计算模型回答与检索片段的相似度,若偏差过大则判定为幻觉。
  • 多模型校验(Self-consistency): 让LLM自己检查回答是否符合引用材料。
  • 全部评论
    [牛泪定时任务广播执行,某一台机子没执行成功怎么办: 1.定时任务框架配置了重试 2.有配日志+监控告警到群里 3.查询时候会判断版本号是否最新,这台机子上的版本号会落后于redis上的,会以redis为准,再覆盖
    1 回复 分享
    发布于 2025-10-29 15:00 上海
    面试让自己讲一个东西 要选能编出来“自己遇到了啥问题 进行了啥action咋分析的最终咋解决的”,要能讲清楚背景需求业务上的意义。我问面试官应届实习生都是crud没啥技术上的难点他又说上述讲清楚就行。。
    点赞 回复 分享
    发布于 2025-10-23 23:23 上海

    相关推荐

    04-10 11:02
    已编辑
    北方民族大学 全栈开发
    “无名小卒,还是名扬天下?”我知道很多人都不觉得我能走到今天这一步,当然,也包括我自己。在我的人生里,有两部作品刻下了最深的烙印:《斗破苍穹》与《龙族》。它们总被人拿来对照:一边是萧炎的桀骜轻狂,一边是路明非的怯懦衰颓。有人说,天蚕土豆没见过魂天帝,但江南见过真凯撒。我时常觉得,自己就是那个衰小孩路明非。可路明非可以开挂,我不可以;我也无数次幻想过,能拥有萧炎那般年少轻狂的人生,可我没有他与生俱来的逆天天赋。我只是个平庸的普通人,一个看过《斗破苍穹》却开不了挂的路明非,只能一步一步往上爬。从我下定决心找实习的那一刻起,我就给自己定下了目标:“我一定要为字节跳动卖命.jpg”。萧炎有他的三年之约,我有我的两年半之约(其实是一年半)。2024.11.20,科大讯飞的第一封实习offer落进邮箱,我迈出了这场奔赴的第一步。2025.8.18,放弃百度转正的安稳机会,转身走进前路未卜的不确定里。我很感谢我在百度的mentor,是她从茫茫人海选中了我,给了我大厂实习的机会。即便有段时间我状态差、产出不理想,她依旧愿意认可我、希望我留下转正。2025.11.14,我选择走进字节跳动,以实习生的身份重新出发。2026.3.25 - 3.31,一周速通上海飞书,幸遇赏识我的伯乐,斩获Special Offer。被告知面试通过的那一刻,我的内心无比平静,就像这个offer本就该属于我。不是侥幸,是应得的。这一路,有人看轻过我的出身,不相信我能走到这里;也有人在我看不见前路的时候,替我举过灯。没有他们的鼓励与支撑,就没有今天站在这里的我。我看到了自强不息的激荡,那是一个双非的伟大乐章!我是雨夜迈巴赫,我要开启属于我的新篇章了。
    在看牛客的本杰明很勇...:真心祝贺l总 我永远的偶像 我滴神
    春招至今,你收到几个面试...
    点赞 评论 收藏
    分享
    评论
    2
    4
    分享

    创作者周榜

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