DocPrompting:通过检索文档生成代码
我们研究了使用编程提示和文本提示对三种流行的 GPT 模型 (davinci、code-davinci-002 和 text-davinci-002) 在更广泛的任务选择 (例如 QA、情感、摘要) 中的表现,结果表明,在很少例外的情况下,编程提示并没有始终优于文本提示。同时,我们还展示了代码提示的样式对某些但不是所有任务的性能有很大的影响,并且微调文本指令可以提高代码提示的相对性能。
Apr, 2023
本研究探讨通过使用伪代码指令进行提示是否有助于提高预训练语言模型的性能,发现使用伪代码指令可以提高分类任务的 F1 分数和总体 ROUGE 分数,结论表明伪代码提示可以改善预训练 LM 的性能。
May, 2023
本研究提出了一种叫做 code prompting 的新型神经符号提示方法,通过触发代码作为中间步骤,以实现符号和算术推理任务一直面对的语言及理解难题。经过对七项广泛使用的基准测试进行实验验证,研究者发现 Code Prompting 方法通常优于 Chain-of-Thought(CoT)Prompting。他们还考虑了代码提示和 CoT 提示的融合来结合两者的优点。最后,通过实验证明,代码注释及其位置如何影响代码提示。
May, 2023
CodePrompt 是一种新颖方法,利用 prompt 学习和注意机制从预训练模型中召回丰富的知识来提高源代码相关的分类任务的准确性。该方法避免了需要额外的神经网络层和降低计算成本,并采用注意机制来聚合多层相关知识作为最终特征,从而在准确度方面达到新的最佳性能,并具备节省计算成本的能力。
Jan, 2024
通过 Prompt2Model 方法,可以使用少量的提示,训练出性能优异、体积小 700 倍的特定目的模型,用于自然语言处理任务。
Aug, 2023
本篇研究是探讨 open-domain code generation 领域中的挑战 --- 对于不同编程社区中经常变化和扩展的函数和类的生成,特别是当涉及到未知的代码库时。作者提出了一个框架,利用 API 文档中的信息生成代码,并进行了相关实验并开放了一个新数据集。
Feb, 2022
本文提出了代码解释生成任务,通过多阶段优化和基线模型的 fine-tuning 使得模型在生成的解释中包含更多实现级别的选择,并在实验中展示了一个经过改进的训练数据集可以比较人工撰写的 docstring 相媲美,这一任务可以极大地受益于软件维护和编程教育。
Nov, 2022
本文研究了在 IDE 中使用机器学习代码生成 / 检索技术对开发工作流程和体验产生的影响,设计了一款混合代码生成和检索的插件,并通过用户测试发现虽然开发者的体验得到了改善,但是对于提高生产率、代码质量和程序正确性等方面的具体效果并不确定,同时分析了需要改进的地方和开发者偏好。
Jan, 2021
本文提出了一种用于代码摘要的新型提示学习框架,称为 PromptCS,该框架训练了一个能够生成连续提示的提示代理,以释放大语言模型在代码摘要中的潜力,相比于人工编写的离散提示,连续提示更易于大语言模型理解。PromptCS 在 CodeSearchNet 数据集上的评估结果表明,优于所有四个广泛使用的度量标准的指导学习方案,并且在某些基础大语言模型上,例如 CodeGen-Multi-2B 和 StarCoderBase-1B 和 - 3B,甚至优于任务导向的微调方案。重要的是,PromptCS 的训练效率比任务导向的微调方案更快,在较大的大语言模型上具有更明显的优势。人工评估的结果表明,与基准相比,PromptCS 能够生成更好的摘要。
Dec, 2023
本研究通过整合来自 StackOverflow 和编程语言 API 文档等两个不同来源的知识,采用数据增强和检索重采样等方法,提高了 CoNaLa 代码生成测试集上的 BLEU 分数,从而探索了将自然语言转为 Python 代码的任务的有效性。
Apr, 2020