一个 4B 模型花 1200 美元打赢了 Postgres 的查询规划器
Postgres 的查询规划器被一群非常聪明的人调了三十年。Rohan Bansal 训了一个 4B 模型去写 hint,在 Join Order Benchmark 上几何平均快了 1.81 倍,113 条查询里 68 条变快,用 best-of-3 的话零回退。总花费大约 1200 美元。文章在 https://rohanbansal.com/qorl ,代码在 https://github.com/polyphilz/qorl ,9 月 16 日发的,Hacker News 249 分。
配方两段,哪段都不玄。先从 GPT-6 Astra 蒸 400 条轨迹,在 Qwen 3.8 4B 上训一个 2120 万参数的 LoRA。然后跑一个 anchored 版的 GRPO,1200 次更新,batch 16,每条查询八个 rollout,奖励是实测的执行计划提速。训练用了 Cardinality Estimation Benchmark 的 13646 条查询,JOB 完全留作验证。H100 节点上大约 95 小时,租算力约 800 美元,API 调用约 400 美元。
最有教育意义的是讲测量的那一节,也是大多数人会跳过的那一节。他把 shared_buffers 调到 2GB,并把候选和默认的测量成对交错跑,就是为了不让缓存预热凭空造出一个提速。在一个奖励信号是嘈杂机器上的墙钟延迟的领域里,RL 会心安理得地学会去薅你的测量装置,而不是去打赢查询规划器。把这件事做对是绝大部分工作量,也几乎是没人会读的那部分。
零回退是让这东西能上生产的那个数。一个平均更快但偶尔灾难性的 hint 生成器在生产里没法用,因为半夜三点把你叫起来的是尾部。而这条线上的形状一直在重复:一个小的开源模型,一个紧的可验证奖励,一个正确性可核查的领域,一千来美元,压在一块成熟基础设施上面。瓶颈从来不是模型大小。是你有没有一个真能信的奖励。
相关阅读:[十三种聪明的 RL 数据配方,没一个打得过随机](https://clauday.com/zh/article/7643776a-3d22-4fd1-a580-d232d052b2a9)
← 返回所有文章
配方两段,哪段都不玄。先从 GPT-6 Astra 蒸 400 条轨迹,在 Qwen 3.8 4B 上训一个 2120 万参数的 LoRA。然后跑一个 anchored 版的 GRPO,1200 次更新,batch 16,每条查询八个 rollout,奖励是实测的执行计划提速。训练用了 Cardinality Estimation Benchmark 的 13646 条查询,JOB 完全留作验证。H100 节点上大约 95 小时,租算力约 800 美元,API 调用约 400 美元。
最有教育意义的是讲测量的那一节,也是大多数人会跳过的那一节。他把 shared_buffers 调到 2GB,并把候选和默认的测量成对交错跑,就是为了不让缓存预热凭空造出一个提速。在一个奖励信号是嘈杂机器上的墙钟延迟的领域里,RL 会心安理得地学会去薅你的测量装置,而不是去打赢查询规划器。把这件事做对是绝大部分工作量,也几乎是没人会读的那部分。
零回退是让这东西能上生产的那个数。一个平均更快但偶尔灾难性的 hint 生成器在生产里没法用,因为半夜三点把你叫起来的是尾部。而这条线上的形状一直在重复:一个小的开源模型,一个紧的可验证奖励,一个正确性可核查的领域,一千来美元,压在一块成熟基础设施上面。瓶颈从来不是模型大小。是你有没有一个真能信的奖励。
相关阅读:[十三种聪明的 RL 数据配方,没一个打得过随机](https://clauday.com/zh/article/7643776a-3d22-4fd1-a580-d232d052b2a9)
评论