前言
智谱AI发布了最新的代码模型CodeGeeX2-6B( https://mp.weixin.qq.com/s/qw31ThM4AjG6RrjNwsfZwg ),并已在魔搭社区开源。
CodeGeeX2作为多语言代码生成模型CodeGeeX的第二代模型,使用ChatGLM2架构注入代码实现,具有多种特性,如更强大的代码能力、更优秀的模型特性、更全面的AI编程助手和更开放的协议等。
我们的工作
随着互联网+的生态模式和人工智能的产业化发展,程序设计已成为计算机专业乃至工科学生的必备技能之一。学生学习程序设计,不仅能提高代码水平能力,学会如何写代码,如何写好代码,而且能锻炼学生在今后面对项目开发等实际应用场景时解决问题的能力。因此,很多同学在刚刚接触到编程时往往需要练习一些简单的程序设计题目。如大一时的高级程序设计、C++程序设计等课程,老师在讲课之余往往会布置一些程序设计的习题,让同学自己去练习,在亲身实践中巩固知识,增进对编程的理解。但软件学院至今没有自己的在线评测系统,老师布置习题时往往只能选用PTA等现有平台,PTA等平台手动添加题目不便,题目往往都是经典案例,很容易就能在网络上找到相关解法,不利于同学们独立思考、独立解题。同时教师在授课的过程中往往无法根据教学进度和学生们的实际掌握程度添加适合学生练习的题目。如果学院有一个自行研发的在线评测系统,有助于教师更灵活自由地开展各种教学活动,如使用该平台可以进行上机实操的期中考试。
然而,与其他传统学科不同,程序设计可能出现的错误千变万化,有时十分隐晦。这也使得其入门门槛较高,且常常需要耗费讲师和助教大量的时间和精力帮助初学者 debug。在这样的问题背景下,我们想要获得一个AI助手,让它帮助学生进行代码纠错,从而方便了教师教学的同时提高了学生的学习效率。微软推出的 Copilot 是一款通过理解用户输入的代码注释或部分代码片段、自动生成或补全代码的AI助手。它的问世说明了大模型具备相当不错的修改和续写代码的能力。我们希望可以通过微调,得到一个更加高效的、主要面向初学者的代码纠错工具。为了生成更具教育意义的代码,我们决定使用数百道经典例题和他们相应解法的 规范代码 对 CodeGeeX2-6B 进行微调。
架构设计: 设计一个分布式系统,包括前端、后端和纠错大模型组件。
前端: 开发一个基本需求功能齐全同时对用户友好的网页界面,主要包括用户提交代码、查看纠错结果以及提供反馈信息等功能。前端会将用户的代码发送给后端,等待后端程序的处理并接受后端发送过来的纠错信息和反馈信息,并将信息以合适的方式显示在前端告知用户。
后端: 构建一个高性能的服务器端应用程序,负责接收用户提交的代码,并对代码进行评测,若评测通过,程序将会返回给前端代码通过(AC)信息。若评测无法通过,则将其发送给纠错大模型进行处理,并接受纠错信息和反馈信息,一并将这些信息发送给前端。
纠错大模型: 选择和集成一个强大的代码纠错大模型,用于自动分析和纠正用户提交的代码中的错误。这里的大模型我们选择使用清华大学开源的ChatGLM-CodeGeeX2(https://github.com/THUDM/ChatGLM-6B)。在该模型的基础上,选用程序设计试题的专门数据,进行 Fine-turning 的训练(即微调)
阶段一:需求分析和规划阶段,明确项目目标和功能需求。
阶段二:在线评测平台的开发和优化阶段,实现上述关于平台的绝大部分功能。
阶段三:模型开发应用和优化阶段,调整应用的 LLM 模型,并将其嵌入系统中。
阶段四:测试阶段。
阶段五:上线运营和持续优化阶段,将平台上线运营,并持续优化功能和性能。