字节云一面 项目拷打(已OC)

字节跳动 · 软件开发实习生 · 一面 · 福建 · 2026-06

《面试题目》

时间:6.8

Base:北京

  1. 做了一些简化,提取了有借鉴价值的部分
  2. 自我介绍
  3. 你在这里面做的那个关键词分析 是属于哪个系统的?
  4. 所以你这个功能是你一个人开发的是吧,然后你们用的大模型是哪个
  5. 然后你们这个是你直接申请一个账号,然后自己去通过。Open API去调的吗?还是说你们有专门的那种类似于大模型的一些团队,然后提供一些标准的接口能力去搞的
  6. 你有去看一下,比如说他运营每操作一次大概消耗多少 Token 吗?
  7. 所以没去关注他。比如说每次查询查询大概花了多少钱是吧?
  8. 你有去了解过,比如说你跟他发一段文字是吧?它会转换成多少token吗?它是通过什么算法来搞的?
  9. 它是根据什么来分的?谁来决定这个到底多少个 token?
  10. 那你有去看你们在使用那个。DeepSeek的时候,那个cache能利用到多少吗?KV Cache 看过吗?
  11. 其他非通性的实习拷打问题
  12. OK OK, 明白了,行。那我们再聊一下你的自己做的的项目吧,好吧。嗯。我看你这里用了。咖啡因加 redis 多级缓存是吧。然后这个是哪方面的缓存?
  13. 知识库列表跟那个分组绑定,还是跟会话绑定?
  14. 然后你知识库是有专门的一个管理界面吗?
  15. 我这里怎么没看到你的知识库的介绍?你知识库是用什么方式去使用呢?
  16. 那你说一下你的这个 RAG 的标准流程吧?
  17. 你那个知识库的话,那个录入的流程呢?
  18. 然后,你开发这个项目用了多长时间?
  19. 两周 OK,然后 RAG 这一块应该没啥问题,然后你用 Redis Stream 是吧?这边文档异步处理是指你在写知识库的时候异步处理吗?还是啥?
  20. 你觉得用 Redis stream 和传统的一些MQ中间件的区别或者优势在哪里?
  21. 分组列表,分组列表为什么需要多级缓存?是很多吗
  22. 那你用这个的话,为什么插入你是你是单实例部署的吧?对。行吧,那 redis 的话有去了解过它的集群部署方式吗?
  23. Java是你们应该是主学的是吧,你们大学里面老师教的,go是你们大学里面没学的 是你自学的是吧?
  24. 算法题:三数之和

《参考解析》

  1. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  2. 消息队列:消息队列解决异步解耦、流量削峰。消息可靠性:生产者confirm确认;Broker持久化;消费者手动ACK。幂等性:消费端通过唯一ID+Redis或DB乐观锁实现。顺序消息:同一业务Key路由到同一分区/Queue,单线程消费。消息积压:扩消费者+增加分区+临时跳过非关键消息。

  3. RAG与大模型:RAG(检索增强生成)流程:文档切片→向量化(Embedding)→存向量数据库→检索时将query向量化→TopK语义检索→将相关文档拼入prompt→LLM生成。优化:混合检索(语义+关键词)、重排序Rerank、查询改写、上下文压缩。评估:召回率(relevant docs retrieved/total relevant)、精确率、Answer相关性。

  4. 算法题解析:常用算法思路:动态规划(状态转移方程,自底向上);BFS/DFS(图遍历,BFS找最短路,DFS回溯);双指针(有序数组去重/两数之和);滑动窗口(子串/子数组问题);二分查找(有序或单调性)。时间复杂度分析:关注最坏情况和平均情况。