近几年,人工智能迅速发展,AI开发工具层出不穷,尤其从GitHub Copilot工具中可见AI写代码的潜力。PaddleNLP最近开放了代码生成模型,支持通过Taskflow一键完成代码生成,开启AI写代码之旅。由于CodeGen模型还未发布到PaddleNLP的pip包中,需自行拉取dev代码并安装最新开发版PaddleNLP。首先,克隆最新的Paddle...
【AI写代码】CodeGen模型生成代码
近几年,人工智能迅速发展,AI开发工具层出不穷,尤其从GitHub Copilot工具中可见AI写代码的潜力。PaddleNLP最近开放了代码生成模型,支持通过Taskflow一键完成代码生成,开启AI写代码之旅。
由于CodeGen模型还未发布到PaddleNLP的pip包中,需自行拉取dev代码并安装最新开发版PaddleNLP。首先,克隆最新的PaddleNLP仓库,解压使用,准备环境。
CodeGen模型支持多种预训练模型,包括但不限于Salesforce/codegen-350M-mono、Salesforce/codegen-2B-mono、Salesforce/codegen-6B-mono等,具体模型可根据需求选择。
模型使用通过Taskflow配置参数,如任务类别、标志、优先级路径等。实例化Taskflow时,仅需指定预训练模型名称。以生成求和函数为例,尝试使用简单代码,结果令人满意。
增加难度,以LeetCode问题为目标,尝试代码续写。如两数之和问题,AI能补全代码,但在识别重复元素的逻辑上需调整,整体逻辑无误。
进一步挑战,让CodeGen根据条件自动编写代码。以LeetCode上的问题为测试,输入问题描述和测试样例,生成后半部分代码,结果部分通过测试,显示生成代码的可行性。
尝试让CodeGen编写自己的代码,输入模型部分代码和注释,生成结果展现出良好潜力。
总结,CodeGen在代码生成上的能力有限,但续写能力显著,适合作为辅助程序员编写代码的工具。此外,其可作为代码补全或联想工具,有望开发为VS Code或Jupyter插件,作为代码补全功能使用。2024-08-17