SuperAPI AI 工具集

recsys-pipeline-architect

数据与分析

查看项目

更新于 10-15 11:38

技能介绍

recsys-pipeline-architect 是一个用于构建可组合推荐、排序与信息流管道的规范与脚手架技能。它编码了由 xAI 开源 For You 算法(Apache 2.0)推广的六阶段模式:Source → Hydrator → Filter → Scorer → Selector → SideEffect。该技能是对该模式的独立重实现(MIT 许可),未从原始项目复制任何代码。上游仓库:https://github.com/mturac/recsys-pipeline-architect

用途

当用户想要构建任何“为用户/上下文挑选前 K 个条目”的系统时使用本技能。典型触发场景包括:用户询问“如何对 X 进行排序”,或描述信息流/个性化问题;用户已有打分函数,需要围绕它的管道基础设施;用户希望从单一相关性分数迁移到带可调权重的多动作预测;用户正在包装 LLM/ML 打分器,需要过滤器、补全器、副作用以及在其技术栈(TypeScript / Go / Python)中可运行的脚手架。触发词包括:推荐系统、信息流算法、排序管道、for you feed、候选管道、内容推荐器、recsys 管道架构、RAG 检索重排。

不适用场景:模型架构工作(transformer 设计、双塔检索、嵌入训练)——本技能是模型周围的管道,而非模型本身;纯 ML 训练管道——打分函数由用户负责;已部署管道的运维(监控、自动扩缩容)——超出范围。

六阶段框架

  1. Source(来源):从一个或多个来源获取候选。可并行——多个来源并行运行。
  2. Hydrator(补全):为每个候选补充过滤和打分所需的元数据。可并行——独立的补全器并行运行。
  3. Filter(过滤):丢弃永远不应展示的候选(被屏蔽、过期、重复、不符合资格)。顺序执行——每个过滤器看到的条目更少。
  4. Scorer(打分):为存活的候选分配一个或多个分数。顺序执行——后续打分器能看到前面的分数。
  5. Selector(选择):按最终分数排序,返回前 K 个。单一操作。
  6. SideEffect(副作用):缓存已服务的 ID、记录曝光、发出事件、更新计数器。异步——绝不能阻塞响应。

为什么是这个顺序:来源先于补全,先知道存在哪些候选再付费补全;补全先于过滤,许多过滤器需要来源未提供的元数据;过滤先于打分,打分是昂贵阶段,先丢弃不合格的;打分器链(而非单一打分器),真实系统组合 ML 打分 + 多样性重排 + 业务规则;选择器在打分之后,保持打分确定性和可缓存;副作用最后且异步,副作用绝不能阻塞用户响应。

使用方式

技能被调用时,引导用户完成八个步骤:

  1. 澄清用例(一轮,三个问题):被排序的条目是什么?输入上下文是什么?语言/运行时是什么?
  2. 识别候选来源:通常包括站内(关注/自有/订阅)+ 站外(ML 检索 / 热门 / 相似于喜欢)。
  3. 列出所需补全:对每个过滤器和打分器,它需要来源未提供的哪些数据?
  4. 列出过滤器:重复、自身、时效、屏蔽/静音、已服务过、资格。顺序重要——便宜的在前。
  5. 设计打分器链:主打分器(ML)→ 组合器(带权重的多动作)→ 多样性 → 业务规则。
  6. 选择器:按最终分数降序排序,取前 K(或对站内/站外进行分层混合)。
  7. 副作用:缓存已服务 ID、发出曝光事件、更新计数器、记录分析——全部即发即忘。
  8. 在用户的技术栈中生成脚手架。

关键权衡(不应静默默认)

  1. 单一分数 vs 多动作预测:单一分数训练一个模型预测相关性,改变行为需重新训练;多动作预测多个动作的 P(action)(阅读、点赞、分享、跳过、举报),在服务时用权重组合,改变行为只需改权重,无需重新训练。X For You 系统使用带正负权重的多动作。当用户期望频繁调优时推荐多动作。
  2. 打分中的候选隔离:隔离——每个候选独立打分,确定性、可缓存;联合——候选在打分时相互关注(如对批次做 transformer),表达力更强但跨批次非确定性。默认隔离,仅在特定理由(如显式批次感知多样性)时用联合。
  3. 在线 vs 离线:请求时(在线)——管道每次请求运行,延迟预算 100–300ms,默认;预计算(离线批处理)——管道定期运行,结果缓存,延迟更低但新鲜度更低;混合——候选检索离线,排序在线。

硬性规则

不要编造基准数字。“快多少?”→“取决于工作负载,自己运行。”归属纪律:引用该模式时,注明“由 xAI 开源 For You 算法推广”/ github.com/xai-org/x-algorithm(Apache 2.0)。不得使用商标:不要将用户产物命名为“X-like”或使用“For You”品牌。模式免费,品牌不免费。建议命名:“candidate pipeline”、“feed pipeline”、“ranking pipeline”、“recsys pipeline”。呈现权衡:多动作 vs 单一、隔离 vs 联合、在线 vs 离线——绝不静默默认。生成的脚手架必须能运行,不得用伪代码冒充代码。过滤器顺序重要:便宜的在前,通用的在用户特定的之前。副作用绝不阻塞:用即发即忘模式包装(goroutines / 不带 await 的 promises / asyncio tasks)。

反模式

过滤前打分(浪费计算在终将被丢弃的候选上);同步副作用(缓存写入/曝光发出阻塞响应);当产品需要为多目标(参与度 vs 安全 vs 多样性 vs 广告)调优时使用单一“相关性”分数;默认联合打分(非确定性、更难缓存、不与重排阶段组合);生成“用于说明”的伪代码——脚手架必须实际运行。

上游内容

上游仓库 https://github.com/mturac/recsys-pipeline-architect 提供:完整的 SKILL.md 含完整 8 步工作流;5 个按需加载的参考文档:4 种语言(TS/Go/Python/Rust)的接口、多动作打分模式、候选隔离、过滤器手册(12 种模式)、打分器手册(加权和、MMR、多样性惩罚、位置去偏);3 个可运行示例脚手架,每个测试套件均通过:Strapi v5 插件(TypeScript / Jest — 3/3 通过)、Zentra 兼容管道(Go 泛型 — 3/3 通过)、PMAI 任务优先级排序器(Python / FastAPI / pytest — 3/3 通过);v0.1.0 发布标签;MIT 许可;模式归属 xAI X For You 算法(Apache 2.0)。

安装方式:npx skills add mturac/recsys-pipeline-architect