誰動了我畫筆 發表於 2025-7-29 01:28:00

【Datawhale AI夏令营--task2】科大讯飞AI大赛(大模型技术)

<p>进入baseline2 开启python编码阶段啦</p>
<blockquote>
<p>感想:<br>
开始的晚了一些,准备环境花了好久哦,好在ai可以帮忙安装环境需要的各种包,并且运行的报错也可以解决。<br>
以及硅基流动的免费api超级慢TT,遍历数据花费的时间过长了。<br>
听到分享会上可以用阿里百炼的api,但在调用上还有些问题,接下来要再多试一下。<br>
阅读了一下代码,发现代码是每行调用一次大模型,优化点其实是可以一次性调用完的,这样应该能节省很多时间。 下一步还是要自己优化下代码呀。</p>
</blockquote>
<h3 id="我的baseline运行后的分数--56">我的BaseLine运行后的分数 : 56</h3>
<h3 id="本期小白重点">本期小白重点</h3>
<ol>
<li>python环境的安装</li>
<li>vscode中项目的运行,包的安装:pandas、requests、re、json、tqdm</li>
<li>硅基流动注册,api领取, apikey的使用</li>
<li>大模型返回值数据错乱的处理。</li>
<li>代码逻辑学习</li>
</ol>
<h3 id="方案思路">方案思路</h3>
<h4 id="1-模型蒸馏方法">1. 模型蒸馏方法</h4>
<p>将一个强大的教师模型(如Qwen3-8B)在特定任务上的知识,迁移到我们最终需要微调的学生模型上</p>
<p>具体步骤:</p>
<ol>
<li>
<p><strong>表格数据文本化</strong>:将结构化的列车时刻表数据(每一行代表一趟列车的信息)转换为易于大模型理解的文本格式。</p>
</li>
<li>
<p><strong>编程生成问题</strong>:针对每一行列车数据,我们手动设计问题模板,并通过编程方式(例如Python脚本)批量生成问题。例如,对于“车次”、“检票口”、“终到站”等字段,可以生成“{车次}号车次应该从哪个检票口检票?”、“{车次}次列车的终到站是哪里?”等问题。这种方式确保了生成问题的语法正确性和与表格内容的强相关性。</p>
</li>
<li>
<p><strong>教师模型生成答案</strong>:将文本化的列车信息和编程生成的问题作为Prompt输入给一个能力更强的教师模型。教师模型根据其强大的理解和推理能力,为每个问题生成对应的答案。</p>
</li>
<li>
<p><strong>构建SFT数据集</strong>:将编程生成的问题和教师模型生成的答案配对,形成{"instruction": "问题", "output": "答案"}的JSON格式数据集。这个数据集就是用于微调学生模型的SFT数据。</p>
</li>
<li>
<p><strong>学生模型LoRA微调</strong>:将构建好的SFT数据集上传到讯飞星辰MaaS平台,并使用LoRA技术对选定的基础模型(学生模型)进行微调。微调后的模型将能够根据用户提出的问题,从内部学习到的表格知识中给出准确的回答。</p>
</li>
</ol>
<h4 id="代码块分析">代码块分析</h4>
<p>3个代码块</p>
<ol>
<li>读取数据</li>
<li>遍历每行,调用大模型,存储返回值</li>
<li>将返回值转化为结构化,符合格式的数据,并生成训练数据集对应格式的json</li>
</ol>
<h4 id="重新上传新的数据集进行训练">重新上传新的数据集,进行训练.</h4>
<ol>
<li>直接使用案例baseline代码,硅基流动api调用花费了小一个小时 TT</li>
<li>数据集训练不到10分钟</li>
<li>得分56.</li>
</ol>
<h3 id="分数提升方案">分数提升方案</h3>
<ol>
<li>提升api速度: 避免遍历,一次性生成返回; 切换api源</li>
<li>prompt提升,增强对复杂数据的对应</li>
<li>挑战:python编码是新的挑战呀</li>
</ol><br><br>
来源:https://www.cnblogs.com/asahi-front/p/19009981
頁: [1]
查看完整版本: 【Datawhale AI夏令营--task2】科大讯飞AI大赛(大模型技术)