拼多多

大模型研发一面面经

完整信息

57 条问法 · 20 道题

本篇目录
这场问了五十多个问题,我用录音笔按他问的顺序记了下来。全程没开摄像头,语速很快,问完一个不评价,直接下一个。中间打断我三次。 面:你简历上这个内化框架,一句话说清楚它是什么。 我:把高频业务知识通过继续预训练固化到参数里,减少推理时的检索和上下文填充。 面:省多少 token。 我:单次请求平均省 3800。 面:3800 值多少钱。 我:……按 token 单价算大概两分钱。 面:那一年呢。 我:如果一天十万次请求,大概七万。 面:七万。你为了省七万,训了一次模型,花了多少。 我:卡时大概是…… 面:停一下。你这个"内化",和普通微调有什么区别。 我:数据是自动构造的,不是一个任务一个任务标。 面:那不还是微调吗。为什么不叫微调。 我:因为目标是注入事实,不是学格式。 面:模型能分清这两件事吗。 面:知识更新了怎么办。 我:重新构造数据,增量训一轮。 面:一轮多久。 我:三天。 面:那这三天里,用户问新知识,模型答什么。 我:走 RAG 兜底。 面:那你到底省了什么。 面:知识冲突怎么处理。旧参数里有 A,新数据说 A 是错的。 我:加大新数据的权重,混一部分通用数据防遗忘。 面:混多少。 我:……大概 1 比 4。 面:这个比例怎么来的。 我:试的。 面:试了几组。 我:三组。 面:三组就敢上线。 面:幻觉率降了吗。 我:降了 6 个点。 面:怎么测的。 我:抽了 500 条,人工判。 面:谁判的。 我:我判的。 面:你自己判自己做的框架。 面:为什么不用 RAG。RAG 改一个文档五分钟,你改一个事实要三天。 我:RAG 在专业术语上的召回率只有 71%。 面:71% 是怎么算的。分母是什么。 我:……召回测试集里应该被召回的段落数。 面:那漏掉的 29%,是检索的问题还是切分的问题。 我:都有。 面:各占多少。 我:没拆过。 面:内化和 RAG 能不能混。 我:可以,内化管高频稳定知识,RAG 管长尾。 面:那你怎么决定一条知识放哪边。 我:按访问频次。 面:频次阈值多少。 我:一周 50 次。 面:那第 51 次之前呢。 面:你说这套框架有 Agentic 特性,具体在哪。 我:会自动拆解要内化的知识点,自动生成 QA,自动筛。 面:这算 Agent 吗。这不就是一个脚本跑三遍。 我:中间有模型决策。 面:决策错了呢。 我:重跑。 面:重跑的钱谁出。 面:你这套自动迭代,和 AutoML 有什么区别。 我:AutoML 搜的是超参,我搜的是数据。 面:那不就是数据版的网格搜索。 我:……某种意义上是的。 面:整条链路里,rollout 占多少时间。 我:七成。 面:GPU 利用率多少。 我:35%。 面:为什么这么低。 我:长尾样本长度差异大,batch 里 padding 多。 面:那你怎么不按长度分桶。 我:分过,收益不大。 面:为什么不大。 我:因为…… 面:换个问法。这 35% 里,有多少是等,有多少是算。 我:等居多。 面:等什么。 我:等最长的那个样本。 面:那就不是分桶的事,得看调度。 面:如果预算砍一半,你先砍哪。 我:砍数据构造,用现成的。 面:那效果掉多少。 我:估计 3 个点。 面:3 个点换一半预算,值吗。 我:值。 面:那你为什么不一开始就这么做。 我:…… 面:这套东西不做会死吗。 我:不会死,但成本会高。 面:高多少。 我:一年七万。 面:你们团队一年人力成本多少。 我:…… 面:那你在优化什么。 面:最后一个问题,这套东西里,哪些是你做的。 我:数据构造和训练脚本是我写的,评测是我设计的。 面:框架的想法是谁的。 我:mentor 的。 面:那你简历上为什么写"主导"。 我:……我改。 手撕:实现一个动态 batching 的调度器。请求随时进来,攒到 batch size 或者超过 20 毫秒就 flush,要求单线程安全,且不能因为一个慢请求拖住整批。 我写了 18 分钟。用一个队列加定时器,flush 的时候整批取走。他问慢请求怎么办,我说设超时。他问超时之后那个请求的结果怎么返回。我说单独回调。他问那它占的显存什么时候释放。这题我没答完。 面完是六点四十,我在楼下坐了一会儿。 这场没有一道题是我不会的,但每一道都被问到了"然后呢"。我准备的是"我做了什么",他问的是"这件事值不值"。 第 24 题之后他说了句"行,今天就到这儿",语气听不出情绪。三天后感谢信。 —— AIGC小白入门记
本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
    手撕:实现一个动态 batching 的调度器。请求随时进来,攒到 batch size 或者超过 20 毫秒就 flush,要求单线程安全,且不能因为一个慢请求拖住整批。
  55. 55
  56. 56
  57. 57

同作者面经

展开其余 13 篇收起其余 13 篇

相关公司