Datawhale AI夏令营 从零入门 AI 逻辑推理 心得第三弹

一、前言

在经过了前两次作业的摸索之后,我们对魔搭notebook云电脑的操作、大模型API的调用以及机器学习相关的流程、调试有了一定程度的了解。因此,我们的第三项任务便来到了重头戏——与赛题要求相一致的,使用开源大模型与数据集进行逻辑推理。

二、微调方案介绍

我们在拿到开源的大模型时,原本的模型是针对各个领域的,其覆盖面虽广,但不一定能做到精通。尤其是处理像逻辑推理一样对思维的要求较高的任务时,原本的大模型不一定能够较好地完成我们的任务,因此,我们需要对大模型进行微调

我们的微调教程参考了self-llm中Qwen2-7b的微调教程,链接如下:
https://github.com/datawhalechina/self-llm

跟前几次一样,我们的数据集仍然是‘round1_train_data.jsonl’。

1. 环境配置

Datawhale团队将这次的代码放置在了魔搭平台的仓库中,链接如下:
https://www.modelscope.cn/datasets/Datawhale/DW2024_Complex_reasoning_ability_assessment_qwen2-7b-lora

然后我们进入魔搭notebook,由于本次涉及到本地模型的搭建,所以我们采用搭载GPU的云电脑来完成我们的机器学习任务。根据教程,我们一定要选择‘ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.14.0’来作为预装镜像(版本不同的话可能会对我们的代码运行产生影响)。

启动的过程中可能会遇到如下图的情况,我们只需等待一两分钟后刷新界面,再次点击‘启动’即可进入云电脑。

GPU资源紧张的情况

2. 数据准备 

进入云电脑后,我们需要使用git将我们所需的数据克隆至云电脑即可。Terminal打开方式如下:
 

点击Terminal即可
git clone https://www.modelscope.cn/datasets/Datawhale/DW2024_Complex_reasoning_ability_assessment_qwen2-7b-lora.git

运行上述指令,将仓库中的文件导入云电脑。

之后我们的文件栏中会出现名为‘DW2024_Complex_reasoning_ability_assessment_qwen2-7b-lora’的文件,双击进入文件夹。

三、LoRA微调

LoRA简介

LoRA,即Low-Rank Adaptation,是一种高效的模型微调技术,适用于大型预训练语言模型的适应性调整,我们的主要任务便是将原来的大语言模型向逻辑推理这个方向‘专精化’发展。

原理可以参考下述文档:
https://github.com/microsoft/LoRA?tab=readme-ov-file

https://arxiv.org/pdf/2106.09685

https://huggingface.co/docs/peft/quicktour

代码调试

我们只需打开lora.ipynb,根据文档中的提示一步步来即可,在有些环节需要我们重启notebook。注意:重启notebook并不是要我们关闭实例,只需点击refresh即可(如图)。

插句题外话,云电脑在下载大语言模型时的网速竟然达到了300+MB/s,如果换做我家这个网络的化,估计就连下载模型都得要大半天。

代码的模型训练的时间就达到了10分钟之多,加之安装库函数、数据集,以及合并数据等的时长,因此代码运行总时长大约为15分钟。

四、vLLM加速

vLLM,即Virtual Large Language Model,是一个开源的大规模语言模型高速推理框架,旨在提升语言模型服务的吞吐量和内存使用效率。

我们在本次任务中只需要打开‘start_vllm.ipynb’文件即可。

注意:文件会一直显示运行状态,在关闭实例前不要关闭该文件!!!

 五、多路LLM投票

在本次实例中,多路LLM投票将通过三次结果推理,将选择答案最多的结果作为最终结果(即少数服从多数原则)。

假设大模型在推理的过程中大模型犯错的概率为p%,那么经过三路投票后,犯错的概率=\binom{3}{1}*\left ( 1-p \right )^{1}*\left ( p \right )^{2}+\binom{3}{0}*\left ( 1-p \right )^{0}*\left ( p \right )^{3},也就是说,经过了三路投票,大模型犯错的概率会大幅度下降!

我们在本次任务中,只需要运行‘baseline2_main.ipynb’文件即可,我们将会生成‘upload.jsonl’文件,之后将其上传至比赛官网即可。

六、提交结果与结果分析

同样,我们将结果提交至比赛的平台上进行打分。这次相比上次有了一大步跨越!

更上一层楼!

七、其他 

这是一个本地的环境配置教程:
https://eco4rorm4y.feishu.cn/docx/UI5NdbqpIo4xZ7x63Bgch7xunEd?from=from_copylink

在运行‘baseline2_main.ipynb’文件时,最好是在ipynb中一步步运行代码。也不知为何,若是点击一键运行,在最后几个代码块总是一直显示在运行中,文件也是能够正常输出。

教程中提到了“以ana.json为微调模型提交结果,可能在运行 baseline2_main.ipynb时会出现一些小问题”但是我在运行时并未发现问题,可能唯一的问题就是输出文件中仍然存在一个缺失值吧。

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值