通义千问AI挑战赛赛后反思

个人理解:

初赛阶段主要聚焦在如何通过 SFT 提升基础模型的代码能力,需要选手基于最新开源的 Qwen 1.8 模型作为基础模型,上分的关键主要通过收集高质量的代码数据提升模型的在Python, JavaScript, Java, Go, C++, Rust六种编程语言的代码生成能力。

比赛要求采用通义千文模型,因此选手能做的只有微调和数据处理。

微调部分,无非是采用各种tune技术,如prefix-tune,prompt-tune,lora等;数据处理部分则是搜集网络上尽可能相关的数据集,在其上进行finetune。

个人方案

采用了XXXXX数据集,将其从alpha格式改造成了多轮对话模式。

缺点:没有针对性的挑选或改造数据集,没有针对评测数据的特点进行深入研究。举例来说,评测方案里有代码修复的任务,但是自己找的数据集里并没有相关的

第一名方案

初赛:

针对代码修复任务:(构造修复案例,加上改错入口)

通过写prompt让gpt辅助生产数据,主要是对leetcode-rosetta.jsonl、Evol-Instruction-66k、code_alpaca等公开数据集中相关语言的数据进行改造;

每种语言会单独写几个prompt example(覆盖不同的改错类型),给定题目和正确答案,让其把正确答案改为错误,作为fixtests的数据。

同时每条数据会生成对应的declaration、test、entry_point等,并在数据中加上f'Fix bugs in entry_point'的字样,使得构造的数据格式和预测框架更为一致。

针对代码生成任务:(拼接与测试集格式相同的信息)

使用原始数据中content/explanation/instruction等信息生成测试集格式的instruction、prompt、declaration。然后把这些字段信息拼接在一起作为synthesize的sft数据;这样也保证了构造数据的格式和测试集的格式一致

复赛:主要工作还是收集各种相关数据进行清洗和改造

借鉴点:SFT数据对与测试集相似的数据进行过采样;对于英文数据集,可以写prompt让gpt进行翻译

第二名方案

初赛:现在自然语言注释、文本、相关代码的数据集上进行预训练,再在编程训练数据集上进行微调。

利用OSS-INSTRUCT数据进行预训练。OSS-INSTRUCT如何得到的?使用大型语言模型生成,从来开源代码文档,生成符合预先设定的prompt代码数据。【从80K个代码文档中收集了80K个初始种子片段,其中包括40K的Python,以及C++,Java,TypeScript,Shell,C#,Rust,PHP,和Swift各5K。然后,每个收集到的种子代码片段被应用到图2所示的提示模板,一个教师模型将其作为输入,并输出一个代码问题及其解决方案。】

复赛:

收集LeetCode相关的Python语言开源数据,收集LeetCode相关解题思路,用于代码解释

心得:

1.第一步,先研究清楚测试数据是怎么样的

第三名方案

https://tianchi.aliyun.com/forum/post/659773

对数据、模型、框架的讲解都很仔细

初赛:主要还是收集数据,过滤去重,解决了任务不平衡和任务异质性的问题。

相关推荐
陈苏同学3 分钟前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
吾名招财21 分钟前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
鼠鼠龙年发大财1 小时前
【鼠鼠学AI代码合集#7】概率
人工智能
龙的爹23331 小时前
论文 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust
人工智能·gpt·深度学习·语言模型·自然语言处理·prompt
工业机器视觉设计和实现1 小时前
cnn突破四(生成卷积核与固定核对比)
人工智能·深度学习·cnn
我算是程序猿2 小时前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
萱仔学习自我记录2 小时前
微调大语言模型——超详细步骤
人工智能·深度学习·机器学习
湘大小菜鸡2 小时前
NLP进阶(一)
人工智能·自然语言处理
XiaoLiuLB3 小时前
最佳语音识别 Whisper-large-v3-turbo 上线,速度更快(本地安装 )
人工智能·whisper·语音识别
哪 吒3 小时前
吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
人工智能·ai·自然语言处理·chatgpt·aigc