Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 2.87 KB

2311.10117.md

File metadata and controls

20 lines (15 loc) · 2.87 KB

背景

  • 背景
    本文处理了语言模型自动长指令工程的挑战,即给定一个初步由人设计的针对某特定任务的初始指令,其目标是提炼出能够获得更优性能的指令。作者采用一个有限的训练集(例如100个输入-输出对)来评估性能,并评估语言模型对训练集上的指令性能。

  • 已有的工作 现有工作中,人们已经尝试通过修改原有的指令或者自动生成指令来提升语言模型的性能,但存在一定局限性。例如,有些方法可能会变得贪婪,很容易陷入局部最优,而在有限的训练集上一些不利的修改可能由于评估不足而被接受,从而损害未来的改进。此外,进化算法虽然探索能力强,但初期收敛速度慢,且对于质量合理的人工初始指令而言,对解空间的大多数扰动和交叉操作在前几次迭代中仍会导致性能不佳的候选项,计算开销很大。

核心贡献

  • 提出了一个解决自动长指令工程问题的框架
    • 挑战1:怎样生成与原始指令语义相似、性能更好的新指令 为了避免引入不可解释的标记,如对抗性触发器,论文提出分解长指令为多个句子并允许对每个句子进行保持语义的重述。这样可以通过限制搜索空间来解决过度拟合问题,由于LLM擅长句子改写,利用LLM-Mutator找到每个句子的替换方案。

    • 挑战2:防止训练过程陷入局部最优,确保模型对有限训练集的改进是稳定的 为了避免贪婪算法陷入局部最优,文章提出了使用波束搜索维护一组k个最佳性能的指令池。在每次迭代中,随机选择这些指令之一进行优化,评估新候选指令并维护最佳k个指令池。该方法允许即使引入了有害的编辑,也依然有可能从错误中恢复。

实现与部署

论文中提到的检验结果表明,使用波束搜索的贪婪算法在训练和测试性能上均比纯贪婪算法和遗传算法有显著提升。实验结果显示了新算法保持了比遗传算法更快的收敛速率,并且可以使用历史记录来引导更加有目的的突变,使得算法在寻找更有意义的提升方向上变得更加高效。此外,新算法的解集被实时更新,并且随着新候选指令的产生立即更新候选池,而不是等待评估整个后代群体再更新池。从而使得解决方案集保持最新,加快了收敛速度。

总结

本文针对语言模型长指令工程中存在的问题,提出了一种新的算法框架,并解决了贪婪算法易陷入局部最优和遗传算法初期收敛慢的问题。通过对指令的每个句子进行语义保持重述,并利用波束搜索来维护和优化候选指令集合,使算法在有限训练数据上表现出良好的性能和较快的收敛速度。