2026-06-04 学习日志
今日主题
- 搜推广四级漏斗架构
- Ranking与Re-ranking的本质区别
- 搜推广与RAG术语映射
- baoyu 配图 Skill 协作架构
- Provider 鸭子类型契约
- DPO与RLHF的本质区别
- LoRA低秩适配原理
新增认知
搜推广四级漏斗架构
-
四级漏斗由延迟预算驱动:搜推广标准架构为召回→粗排→精排→重排,分这么细的本质原因是延迟预算固定(~300ms),候选量从亿级开始。每往下一层,
数量降一个数量级,模型复杂度才能提一个档——召回极简(向量内积/倒排),粗排轻量(双塔/浅层DNN),精排重度(DeepFM/DIN),重排策略规则。 -
粗排是精排的减负层:精排模型跑一条候选需数毫秒,直接对召回产出的千级候选做精排会超预算。粗排用轻量模型先筛到百级,精排只跑这几十条,保证总延迟可控。
Ranking与Re-ranking的本质区别
- Ranking靠模型打分,Re-ranking靠策略干预:两者最易混淆。Ranking(精排)是模型给每个候选算分排序,比的是谁的模型分更高。
Re-ranking(重排)是策略规则干预——打散同类目、去重、强插广告、保证多样性,不再比模型分。
搜推广与RAG术语映射
- RAG的Rerank对应搜推广的精排:RAG链路(Recall→RRF→Rerank)中Rerank用Cross-Encoder精排,
相当于搜推广的Fine Ranking。但RAG通常不加粗排(候选量不够大),也不做重排(策略干预),因为知识库场景的候选规模和业务复杂度与搜推广不在一个量级。
baoyu 配图 Skill 协作架构
-
文件系统解耦是核心设计:article-illustrator 和 image-gen 不互相调用,
而是通过 outline.md(插图索引)+ prompts/*.md(详细 prompt)+ batch.json(执行任务清单)三层文件交接。
好处是两边可以独立演进——image-gen 加了新 provider,article-illustrator 不用改一行。 -
outline.md 是轻量索引:它只记录"哪几张图、文件名是什么",不承载 prompt 内容。build-batch.ts 用它快速扫描,
再按序号前缀(01、02)匹配 prompts/ 里的详情文件。拆开的好处是解析逻辑简单,不需要从 prompt 正文里提取文件名。 -
build-batch.ts 归属 image-gen 而非 article-illustrator:它本质是"文件 → 批量任务"的格式转换器,
属于执行层的配套工具,不是分析层的职责。流水线三段各有主人:写 prompt 的管写,build-batch 管组装,main.ts 管执行。
Provider 鸭子类型契约
-
不用 interface 而用结构化类型:
baoyu-image-gen 的 Provider 没有 TypeScript interface 或 abstract class,
而是在 main.ts 定义 ProviderModule 类型,每个 provider 文件只要导出签名匹配的函数即可。
这种 duck typing 让新增 provider 零仪式感——不需要 implements 声明,
只要 getDefaultModel() 和 generateImage() 两个函数签名对得上。 -
Uint8Array 是统一返回契约:不管上游 API 返回 base64 还是 URL,provider 自己负责下载/解码,
最终交给 main.ts 统一的文件写入逻辑。这让调度层不需要关心各 API 的响应差异。
DPO与RLHF的本质区别
-
DPO直接从偏好数据优化而无需奖励模型:RLHF需要先训练奖励模型来模拟人类打分,再用强化学习优化;DPO的数学洞察是偏好数据本身就包含奖励信号,
可以直接让模型提升偏好回答的概率、降低被拒绝回答的概率,一步到位。前置条件:偏好数据是成对的(回答A比回答B好),DPO比RLHF更简单稳定,
但推理模型训练场景下强化学习仍有价值。 -
DPO取代RLHF成为后训练主流:后训练主干是SFT→RLHF/DPO两阶段,DPO因省掉奖励模型环节、训练更稳定、计算成本更低,
已基本替代传统RLHF。前置条件:通用对话模型场景适用,推理模型(o1/R1)还需要额外的强化学习阶段训练思考链。
LoRA低秩适配原理
-
LoRA不修改网络结构,只是计算更新方式不同:训练时在原权重旁挂两个小矩阵A和B,前向计算变成Wx+ABx,底座W冻结只训AB。
训完后直接算W'=W+A×B合并回原权重,推理时跟普通模型完全一样。类比开闭原则——对修改封闭(原权重不动),对扩展开放(挂新矩阵)。 -
LoRA适配器合并是字面意思的矩阵加法:A×B的乘积和W尺寸完全相同,训练完后做W'=W+A×B,A和B扔掉了,模型结构、推理速度、内存占用零变化。
最终交付产物跟全量微调的模型没有任何形式上的区别,部署方感知不到是LoRA出来的。 -
LoRA适配器有两种用法:合并后部署(merge_and_unload,最常用,零额外开销);运行时动态加载(不合并,
一个底座模型搭配多个适配器按需切换)。前置条件:若磁盘充足且单一任务选合并,若多任务共用底座选运行时切换。