OpenCodeInterpreter:开源代码生成系统,集成执行与迭代优化功能
OpenCodeInterpreter是一套开源代码生成系统,当前在GitHub获得1,722个Star:
OpenCodeInterpreter的设计目标是缩小大语言模型与GPT-4 Code Interpreter这类专有系统之间的差距。它通过集成代码执行和迭代优化功能,显著提升代码生成能力。
该项目所有模型已在Hugging Face开源,包含多个参数尺寸的版本,覆盖1.3B到70B不同量级,适配不同硬件环境的使用需求。在HumanEval和MBPP基准测试中,加入执行反馈后,各模型的代码生成准确率有明显提升。其中33B参数版本在HumanEval+基准测试中得分达80.5,在MBPP+基准测试中得分达72.2,平均得分76.4。加入合成人工反馈后,33B版本的平均得分进一步提升至81.0,Oracle版本平均得分可达84.6。2024年3月13日,该项目的33B模型登顶BigCode排行榜。
OpenCodeInterpreter的训练基于Code-Feedback数据集,包含68K多轮交互数据,覆盖执行反馈和人工反馈场景,支持动态代码优化。数据集也已同步开源,可供其他研究使用。
项目提供本地可部署的演示程序,用户可以在本地运行大语言模型生成代码并执行,自动获取执行反馈。模型会根据反馈动态调整代码,用户也可以通过聊天交互提供反馈,进一步优化生成结果。演示程序基于Gradio开发,提供可视化交互界面。
部署流程如下:
- 克隆仓库到本地,进入demo目录
- 创建Python 3.10版本的conda环境并激活
- 安装依赖包
- 配置Hugging Face访问令牌到环境变量,令牌仅用于创建和推送内容到用户自己账号下的特定仓库,不会泄露用户数据
- 运行Gradio应用,指定使用的模型名称
OpenCodeInterpreter支持多种使用场景,包括代码生成、代码调试、数据处理脚本生成等。用户可以根据需求选择不同参数尺寸的模型,平衡性能和资源消耗。