Wink Pings

一个循环搞定RAG调优:从xAI的100K GPU集群说起

xAI用SGLang在10万GPU上服务Grok,背后是split prefill/decode、expert parallelism等工程技巧。同时,一篇关于Loop Engineering的文章展示了如何用自动化循环调优RAG,避免手动调参的重复劳动。两者共享同一个工程哲学:把重复任务交给循环,让机器替你搜索。

xAI的工程师在100K GPU上跑Grok,23分钟搞定。不是炫技,是工程。

视频里那位前Berkeley博士、现在xAI带SGLang的人,解释了他们的做法:split prefill and decode,把专家分到不同GPU,按token路由到对应专家,重叠通信和计算。最后用这个栈把推理成本打到比DeepSeek API还低5倍。

这套东西不新鲜,但真正让xAI跑赢的是他们把每个环节都做成了可重复的工程循环。同样的思路,在另一篇h100envy分享的文章里被拆解成更通用的框架:Loop Engineering。

文章讲的是怎么自动调优RAG,而不是手调。手调RAG是典型的脏活:改chunk size,跑eval,看recall,换embedding,再跑,加reranker,再跑。十几轮下来,你早忘了哪个组合对应什么结果。

作者给出的方案是一个循环:定义搜索空间,设定一个你骗不了自己的检查点(recall@k on eval set),然后让循环自己搜索配置,直到达到目标或花光预算。

搜索空间长这样:

```python

SEARCH_SPACE = {

"chunk_size": [400, 600, 800, 1200],

"chunk_overlap":[0, 100, 200],

"embedding": ["text-embedding-3-small", "bge-large", "e5-large"],

"k": [5, 10, 20],

"reranker": [None, "bge-reranker", "cohere-rerank"],

"hybrid": [False, True],

}

```

648种组合,全扫一遍既贵又蠢。所以循环用坐标下降:一次只调一个参数,固定其他的,找到最好的再换下一个。

关键是有两个刹车:max_evals限制运行次数,max_budget_usd限制花费。每次跑之前先算下一轮会不会超预算,超了就提前停。这不是事后算账,是事前刹车。

另一个陷阱是过拟合eval set。循环可能找到一组参数恰好对那30个问题表现好,但生产环境就崩。解法:把eval分成train和held-out,循环只在train上优化,最后用held-out验证。如果train和held-out的recall差距超过0.1,说明过拟合了,配置不可信。

文章里还强调了改进阈值要设0.02,否则循环会追逐噪声。

最后你得到的不只是调好的RAG,而是一个可复现的过程:jsonl日志记录了每一步,held-out检查告诉你是否可信,下次数据或模型变了,一条命令重新跑一遍。

这就是Loop Engineering:把重复、可测量、有明确目标的任务交给循环,人只负责定义空间和刹车。xAI在100K GPU上做的那套,本质上也是这个思路——把prefill/decode拆分、专家路由、通信重叠这些操作编排成一个循环,然后让它在集群上自动跑。

别手动调参了。写个循环,让它替你搜。

发布时间: 2026-07-07 05:25