Priority Sampling of Large Language Models for Compilers
作者: Dejan Grubisic, Chris Cummins, Volker Seeker, Hugh Leather
分类: cs.LG, cs.CL, cs.PF
发布日期: 2024-02-28
💡 一句话要点
提出优先采样以解决大语言模型生成代码的多样性问题
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大语言模型 代码生成 优先采样 Nucleus Sampling 编译器优化 自动化工具 正则表达式
📋 核心要点
- 现有的采样方法如Nucleus Sampling在生成代码时存在重复样本和不连贯样本的问题,限制了其在不同任务中的适用性。
- 本文提出的优先采样技术通过模型置信度生成唯一样本,避免了重复和不连贯的生成结果,且支持基于正则表达式的生成。
- 实验结果表明,优先采样在任何样本数量下均优于Nucleus Sampling,并在仅30个样本的情况下超越了用于标签生成的自动调优器。
📝 摘要(中文)
大型语言模型在代码生成和优化方面展现出巨大潜力。现有的采样方法如Nucleus Sampling虽然能增加生成的多样性,但在低温度下常产生重复样本,而在高温度下则生成不连贯样本。此外,温度系数需针对每个任务进行调优,限制了其可用性。本文提出了一种简单且确定性的优先采样技术,该技术根据模型的置信度生成唯一样本。每个新样本扩展具有最高概率的未扩展标记,支持基于正则表达式的生成,提供可控且结构化的探索过程。优先采样在任何样本数量下均优于Nucleus Sampling,提升了原始模型的性能,改善幅度达2.87%至5%。
🔬 方法详解
问题定义:本文旨在解决现有采样方法在生成代码时的多样性和连贯性不足的问题,尤其是Nucleus Sampling在低温度和高温度下的表现不佳。
核心思路:优先采样通过模型的置信度来生成唯一样本,确保每个新样本都是基于当前未扩展标记中概率最高的标记进行扩展,从而提高生成的多样性和连贯性。
技术框架:优先采样的整体架构包括样本生成模块和正则表达式支持模块。样本生成模块负责根据模型输出的置信度选择标记,而正则表达式模块则提供结构化的生成方式。
关键创新:优先采样的主要创新在于其确定性和基于置信度的样本选择机制,与Nucleus Sampling的随机性和温度调节机制形成鲜明对比。
关键设计:在优先采样中,关键设计包括如何定义和计算每个标记的置信度,以及如何有效地扩展未扩展标记,确保生成过程的高效性和准确性。具体的参数设置和损失函数设计在论文中进行了详细讨论。
🖼️ 关键图片
📊 实验亮点
实验结果显示,优先采样在任何样本数量下均优于Nucleus Sampling,提升幅度达到2.87%至5%。此外,在仅使用30个样本的情况下,优先采样还超越了用于生成标签的自动调优器,展示了其高效性和实用性。
🎯 应用场景
该研究的潜在应用领域包括编译器优化、自动代码生成和软件开发工具等。通过提高代码生成的多样性和连贯性,优先采样技术可以帮助开发者更高效地生成高质量代码,进而推动软件开发的自动化和智能化进程。
📄 摘要(原文)
Large language models show great potential in generating and optimizing code. Widely used sampling methods such as Nucleus Sampling increase the diversity of generation but often produce repeated samples for low temperatures and incoherent samples for high temperatures. Furthermore, the temperature coefficient has to be tuned for each task, limiting its usability. We present Priority Sampling, a simple and deterministic sampling technique that produces unique samples ordered by the model's confidence. Each new sample expands the unexpanded token with the highest probability in the augmented search tree. Additionally, Priority Sampling supports generation based on regular expression that provides a controllable and structured exploration process. Priority Sampling outperforms Nucleus Sampling for any number of samples, boosting the performance of the original model from 2.87% to 5% improvement over -Oz. Moreover, it outperforms the autotuner used for the generation of labels for the training of the original model in just 30 samples.