AdaExplore: Failure-Driven Adaptation and Diversity-Preserving Search for Efficient Kernel Generation

2026年04月17日
  • 简介
    近期出现的大型语言模型(LLM)智能体已展现出利用执行反馈实现测试时自适应的潜力。然而,鲁棒的自我改进能力远未得到解决:大多数现有方法仍将每个问题实例视为相互独立,无法积累并复用知识。这一局限性在领域专用语言(如Triton)中尤为突出——此类语言在LLM预训练数据中本就严重缺失;加之其语法约束严格、优化目标呈高度非线性,使得简单的代码生成与局部微调策略往往不可靠。为此,我们提出AdaExplore——一种面向高性能内核代码生成的智能体框架,通过累积执行反馈实现自我改进。该框架包含两个相辅相成的阶段:“失败驱动的适应性学习”与“多样性保持的搜索”,在无需额外微调或引入外部知识的前提下,协同提升生成代码的正确性与优化性能。在适应性学习阶段,智能体自动合成任务,并将反复出现的失败案例提炼为一条条可复用的“有效性规则”,形成结构化记忆,从而引导后续生成始终限定于可行解空间之内;在搜索阶段,智能体将候选内核组织为一棵树状结构,并交替执行细粒度的局部微调与粗粒度的结构性重生成,使其能够跳出局部最优,系统性探索更广阔的优化空间。我们在内核运行时优化基准测试(KernelBench)上的实验充分验证了上述优势:AdaExplore在100步迭代内,分别在KernelBench Level-2与Level-3上实现了3.12倍和1.72倍的加速比;且随着计算资源的进一步投入,其性能仍持续提升。
  • 作者讲解
  • 图表
  • 解决问题
    现有LLM代理在生成高性能领域特定代码(如Triton内核)时,难以实现鲁棒的自我改进:它们通常孤立处理每个问题实例,无法跨任务积累可复用的执行反馈知识;而Triton等DSL因预训练数据稀疏、语法/语义约束严苛、优化目标非线性,导致基于纯生成或局部微调的方法易陷入无效区域或局部最优。
  • 关键思路
    提出AdaExplore框架,通过两个协同阶段实现无监督、免微调的持续自我改进:(1)失败驱动适应——将重复编译/运行失败抽象为可泛化的‘有效性规则’并存入结构化记忆,主动约束后续生成空间;(2)多样性保持搜索——以树结构组织候选内核,交替执行细粒度局部编辑(如tune参数)与粗粒度结构再生(如重写block布局),打破局部优化陷阱。核心新意在于将执行反馈转化为可迁移的符号化约束,并耦合探索广度与优化深度。
  • 其它亮点
    在KernelBench Level-2/Level-3基准上,仅用100步执行反馈即达3.12×和1.72× runtime加速;全程无需额外微调、外部文档或人类标注;实验严格控制计算预算(固定step数)、评估端到端kernel性能(而非仅正确性);论文未提开源代码,但方法设计天然支持模块化复现;值得深入的方向包括:有效性规则的自动归纳形式化、跨kernel类型的知识迁移、与编译器IR级反馈的联合建模。
  • 相关研究
    Self-Refine: Iterative Refinement with Self-Feedback (ACL 2023); CodeRL: Mastering Code Generation through Pretrained Models and Reinforcement Learning (NeurIPS 2023); TritonGen: LLM-Guided Synthesis of High-Performance GPU Kernels (OSDI 2023); Feedback-Driven Program Synthesis via Large Language Models (ICSE 2024); Tree-of-Thought Prompting (ACL 2024)
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问