Learning to Program with Natural Language

提出了一种使用自然语言作为编程语言的方法,让人类和大型语言模型都能轻松理解任务过程。提出了编程学习的方法来教导语言模型生成自然语言程序,以指导模型完成任务,通过在高中数学和数学竞赛数据集上的实验验证了该方法的有效性。

解决问题:该论文提出了一种新的方法,使用自然语言作为编程语言,让大型语言模型(LLMs)学习自然语言程序,并用学习到的程序来指导推理,从而更好地完成复杂任务。

关键思路:论文的关键思路是使用自然语言作为编程语言,让LLMs学习自然语言程序,从而更好地完成复杂任务。相比当前的研究状况,该论文的思路是一种全新的尝试,使用自然语言编程的方法来解决任务,这是一种创新的思路。

其他亮点:该论文的实验使用了AMPS(高中数学)和Math(竞赛数学问题)数据集,证明了该方法的有效性。此外,论文还开源了代码。

要点:

  • 动机:为了让大型语言模型能够更好地完成复杂任务,需要将自然语言作为新的编程语言来描述任务过程,使人类和模型都能够轻松理解。
  • 方法:提出了自然语言编程的方法,其中使用编程学习的方法来教导语言模型生成自然语言程序,并用这些程序来指导模型解决任务。
  • 优势:在高中数学和数学竞赛数据集上的实验中表现出了良好的效果,并且能够提高大型语言模型在自然语言任务和更复杂任务中的性能。

关于作者:该论文的主要作者是来自微软亚洲研究院的研究员,他们之前的代表作包括“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”和“Unsupervised Machine Translation Using Monolingual Corpora Only”。

相关研究:近期其他相关的研究还包括“CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing”(by Ke Wang, Xiaodong Liu, etc.)和“RoBERTa: A Robustly Optimized BERT Pretraining Approach”(by Yinhan Liu, Myle Ott, etc.)。这些研究都是基于大型语言模型的自然语言处理和编程领域的研究。

图片

论文摘要:学习自然语言编程 郭一铎、梁耀波、吴晨飞、吴文珊、赵东炎、段南 大型语言模型(LLM)在各种基本自然语言任务中表现出色,这引发了实现人工通用智能的希望。为了更好地完成复杂任务,我们需要LLM为任务编程,然后按照程序生成特定的解决方案来测试样本。我们提出使用自然语言作为一种新的编程语言来描述任务过程,使其易于人类和LLM理解。LLM能够直接生成自然语言程序,但这些程序可能仍然包含事实错误或不完整的步骤。

因此,我们进一步提出了学习编程(LP)的方法,要求LLM从复杂任务的训练数据集中学习自然语言程序,然后使用学习到的程序来指导推理。我们在高中数学竞赛AMPS和数学竞赛问题Math数据集上的实验证明了我们方法的有效性。在AMPS数据集的10个任务上测试ChatGPT时,我们的LP方法的平均性能优于零-shot测试性能18.3%。我们在\url{https://github.com/microsoft/NaturalLanguageProgram}上发布了我们的代码。

图片