通义千问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

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

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

相关推荐
峙峙峙7 分钟前
线性代数--AI数学基础复习
人工智能·线性代数
weiwuxian12 分钟前
揭开智能体的神秘面纱:原来你不是"超级AI"!
人工智能
Codebee13 分钟前
“自举开发“范式:OneCode如何用低代码重构自身工具链
java·人工智能·架构
说私域24 分钟前
基于开源AI智能名片链动2+1模式的S2B2C商城小程序:门店私域流量与视频号直播融合的生态创新研究
人工智能·小程序·开源
Ronin-Lotus27 分钟前
深度学习篇---Yolov系列
人工智能·深度学习
静心问道1 小时前
GoT:超越思维链:语言模型中的有效思维图推理
人工智能·计算机视觉·语言模型
aneasystone本尊1 小时前
学习 Claude Code 的工具使用(三)
人工智能
szxinmai主板定制专家1 小时前
【精密测量】基于ARM+FPGA的多路光栅信号采集方案
服务器·arm开发·人工智能·嵌入式硬件·fpga开发
T__TIII1 小时前
Dify 自定义插件
人工智能·github
快起来别睡了2 小时前
LangChain 介绍及使用指南:从“会聊天”到“能干活”的 AI 应用开发工具
人工智能