大模型研发一面面经
完整信息
本篇目录
这场问了五十多个问题,我用录音笔按他问的顺序记了下来。全程没开摄像头,语速很快,问完一个不评价,直接下一个。中间打断我三次。
面:你简历上这个内化框架,一句话说清楚它是什么。
我:把高频业务知识通过继续预训练固化到参数里,减少推理时的检索和上下文填充。
面:省多少 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小白入门记
本篇目录
当前问题0157
- 01
面:你简历上这个内化框架,一句话说清楚它是什么。
- 02
面:省多少 token。
- 03
面:3800 值多少钱。
- 04
面:那一年呢。
- 05
面:七万。你为了省七万,训了一次模型,花了多少。
- 06
面:停一下。你这个"内化",和普通微调有什么区别。
- 07
面:那不还是微调吗。为什么不叫微调。
- 08
面:模型能分清这两件事吗。
- 09
面:知识更新了怎么办。
- 10
面:一轮多久。
- 11
面:那这三天里,用户问新知识,模型答什么。
- 12
面:那你到底省了什么。
- 13
面:知识冲突怎么处理。旧参数里有 A,新数据说 A 是错的。
- 14
面:混多少。
- 15
面:这个比例怎么来的。
- 16
面:试了几组。
- 17
面:三组就敢上线。
- 18
面:幻觉率降了吗。
- 19
面:怎么测的。
- 20
面:谁判的。
- 21
面:你自己判自己做的框架。
- 22
面:为什么不用 RAG。RAG 改一个文档五分钟,你改一个事实要三天。
- 23
面:71% 是怎么算的。分母是什么。
- 24
面:那漏掉的 29%,是检索的问题还是切分的问题。
- 25
面:各占多少。
- 26
面:内化和 RAG 能不能混。
- 27
面:那你怎么决定一条知识放哪边。
- 28
面:频次阈值多少。
- 29
面:那第 51 次之前呢。
- 30
面:你说这套框架有 Agentic 特性,具体在哪。
- 31
面:这算 Agent 吗。这不就是一个脚本跑三遍。
- 32
面:决策错了呢。
- 33
面:重跑的钱谁出。
- 34
面:你这套自动迭代,和 AutoML 有什么区别。
- 35
面:那不就是数据版的网格搜索。
- 36
面:整条链路里,rollout 占多少时间。
- 37
面:GPU 利用率多少。
- 38
面:为什么这么低。
- 39
面:那你怎么不按长度分桶。
- 40
面:为什么不大。
- 41
面:换个问法。这 35% 里,有多少是等,有多少是算。
- 42
面:等什么。
- 43
面:如果预算砍一半,你先砍哪。
- 44
面:那效果掉多少。
- 45
面:3 个点换一半预算,值吗。
- 46
面:那你为什么不一开始就这么做。
- 47
面:这套东西不做会死吗。
- 48
面:高多少。
- 49
面:你们团队一年人力成本多少。
- 50
面:那你在优化什么。
- 51
面:最后一个问题,这套东西里,哪些是你做的。
- 52
面:框架的想法是谁的。
- 53
面:那你简历上为什么写"主导"。
- 54
手撕:实现一个动态 batching 的调度器。请求随时进来,攒到 batch size 或者超过 20 毫秒就 flush,要求单线程安全,且不能因为一个慢请求拖住整批。
- 55
他问慢请求怎么办
- 56
他问超时之后那个请求的结果怎么返回
- 57
他问那它占的显存什么时候释放
