【复现DeepSeek-R1之Open R1实战】系列博文链接:
【复现DeepSeek-R1之Open R1实战】系列1:跑通SFT(一步步操作,手把手教学)
【复现DeepSeek-R1之Open R1实战】系列2:没有卡也能训模型!Colab跑OpenR1(附源码)
【复现DeepSeek-R1之Open R1实战】系列3:基础知识介绍
【复现DeepSeek-R1之Open R1实战】系列4:跑通GRPO!
【复现DeepSeek-R1之Open R1实战】系列5:SFT源码逐行深度解析
【复现DeepSeek-R1之Open R1实战】系列6:GRPO源码结构解析
【复现DeepSeek-R1之Open R1实战】系列7:GRPO原理介绍、训练流程和源码深度解析
【复现DeepSeek-R1之Open R1实战】系列8:混合精度训练、DeepSpeed、vLLM和LightEval介绍
【复现DeepSeek-R1之Open R1实战】系列9:有趣的现象——GRPO训练过程Loss从0开始慢慢变大
写在前面:洗完澡回来一看,显存OOM了,看来还是得加钱啊。不知道国内云服务商能不能像Colab这样快速,Colab还是不太适用,毕竟需要科学上网,也不太敢把自己的一些数据集传上去。
1 前言
没有显卡怎么办?国内网络配置环境太头疼怎么办?让我们转移到Colab上去复现DeepSeek-R1吧!
Colab Jupyter Notebook地址:Open-R1-Colab
Colab提供了一张16G显存的T4,能满足大部分需求,就是偶尔不稳定会断开,对于需要长时间训练的任务有较大的挑战。
1.1 Colab介绍
在第一次使用Colab时,最大的困难无疑是对整个平台的陌生而导致无从下手,因此我首先介绍与Colab相关的基础概念,以帮助大家更快地熟悉Colab平台。
Colab = Colaboratory(即合作实验室),是谷歌提供的一个在线工作平台,用户可以直接通过浏览器执行python代码并与他人分享合作。Colab的主要功能当然不止于此,它还为我们提供免费的GPU。熟悉深度学习的同学们都知道:CPU计算力高但核数量少,善于处理线性序列,而GPU计算力低但核数量多,善于处理并行计算。在深度学习中使用GPU进行计算的速度要远快于CPU,因此有高算力的GPU是深度学习的重要保证。由于不是所有GPU都支持深度计算(大部分的Macbook自带的显卡都不支持),同时显卡配置的高低也决定了计算力的大小,因此Colab最大的优势在于我们可以“借用”谷歌免费提供的GPU来进行深度学习。
综上:Colab = "python版"Google doc + 免费GPU
1.2 Colab相关的概念
Jupyter Notebook:在Colab中,python代码的执行是基于.ipynb文件,也就是Jupyter Notebook格式的python文件。这种笔记本文件与普通.py文件的区别是可以分块执行代码并立刻得到输出,同时也可以很方便地添加注释,这种互动式操作十分适合一些轻量的任务。
具体关于Jupyter Notebook的信息可以查看下面官网的链接:https://jupyter.org/
代码执行程序:代码执行程序就是Colab在云端的"服务器"。简单来说,我们先在笔记本写好需要运行的代码,连接到代码执行程序,然后Colab会在云端执行代码,最后把结果传回浏览器。
实例空间:连接到代码执行程序后,Colab需要为其分配实例空间(Instance),可以简单理解为运行笔记本而创建的"虚拟机",其中包含了执行ipynb文件时的默认配置、环境变量、自带的库等等。
2 安装依赖库
- 首先,我们先挂载Google Drive,这样我们就可以将代码库、数据集和模型都保存到云盘上了,可以方便调用,Colab提供了15G存储空间给我们免费使用:
from google.colab import drive
drive.mount('/content/drive')
%cd '/content/drive/MyDrive'
!pwd
!ls
- 将open-r1工程clone到云盘上,可以通过pwd查看是否真的进入了该工程:
!git clone https://github.com/huggingface/open-r1.git
%cd './open-r1'
!pwd
!ls
- 安装依赖库超级快,几十M每秒,秒杀国内网络啊!花了两三天才在本地配置好环境,在Colab上只需要几分钟就能配置好了,效率杠杠的!
- 可以看到,一张T4卡,总共有15G的显存,最大的便利是Colab默认装好了pytorch环境,不需要自己再安装了,能够避免各种安装显卡驱动时遇到的问题,非常友好:
- 安装依赖库一分钟搞定,不用焦头烂额解决flash-attention的问题:
- 下载数据集和Base模型也很快,而且是直接保存到drive,不用先下载到本地再上传:
注意!!!
- 在训模型之前,一定要记得修改配置文件 recipes/accelerate_configs/zero3.yaml
3 训练
Enjoy it!!