(新手向)从零开始使用Colab进行机器/深度学习详细教程


疫情期间只能在家实习,用笔记本做简单的机器学习还能勉强凑合,深度学习随便训练个模型要跑几天几夜。不过如果我们使用Google Colab的GPU资源,什么电脑都可以玩深度学习啦!

什么是Colab

引用官方介绍:

Colaboratory 是一个免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。
借助 Colaboratory,可以编写和执行代码、保存和共享分析结果,以及利用强大的计算资源,所有这些都可通过浏览器免费使用。

Colab就是一个服务器,我们可以申请他的资源来使用。选择用colab来做深度学习的最大优点就是它强大的GPU/TPU资源,对于深度学习的网络训练,并行计算用gpu速度可比cpu快得多。

你可以在colab里通过以下命令来查看colab所能提供给我们的GPU配置:

! /opt/bin/nvidia-smi

在这里插入图片描述
这是我们所能免费使用的GPU资源,如果不能满足你的要求的的话可以购买colab pro或者去淘宝租服务器。

如何使用Colab

毕竟是谷歌的产品,首先你需要你一个谷歌账号,还要能科学上网。
我们从最简单的开始,第一,如何创建一个Colab文件。
在你的谷歌云文档里单机右键创建,如图:
在这里插入图片描述
小伙伴们第一次使用是找不到的,在 更多->关联更多应用 里搜索一下添加一下就好了。
现在创建好了一个文件,下面我讲一下它的几种使用方式。

Colab的几种使用方式

像Jupyter Notebook一样使用

对于我们来说Anaconda的Jupyter Notebook更为熟悉,它可以方便的添加代码和注释,并能及时的显示运行结果,非常适用于教学展示。这里你可以像notebook一样使用colab,甚至他们的文件格式都是一样的,你的notebook文件可以直接传到谷歌云上并用colab打开。
下面举个例子:
在这里插入图片描述
可以看到这里的使用和notebook是一样的。在熟悉colab的使用以后简单的计算我就很喜欢用colab来算,毕竟老电脑开个啥软件都慢,不如薅谷歌点羊毛。

如何使用GPU加速

进行深度学习使用GPU的话,我们必须先调好设置。如图:
在这里插入图片描述
在这里插入图片描述
在 执行代码程序->更改运行时类型->GPU 这样才能够使用GPU资源来进行我们的深度学习。
在换成GPU资源以后,你可以用以下代码测试你是否真正连接上了GPU资源:

import tensorflow as tf
device_name = tf.test.gpu_device_name()
if device_name != '/device:GPU:0':
 raise SystemError('GPU device not found')
print('Found GPU at: {}'.format(device_name))

若输出为Found GPU at: /device:GPU:0则证明你连接成功。

这里如果你用不到gpu加速的话最好不要选,因为每个账号能每天能用GPU加速的时间是有限的,我有一段时间经常用GPU,结果colab到十二个小时左右就给我自动断开了,再想连接时就会提醒你什么没有空余的GPU资源,这种情况下要么等到第二天再使用GPU或者新建一个谷歌账号接着跑。
无论是用GPU加速还是不用,运行程序时长是有上限的,一般为24个小时,不过这也不是个确定的值,会随着服务器的使用情况随时变化。

如何使用Colab跑我们的程序

我们自己写的程序或者从GitHub上拷贝的程序一般是怎么运行的呢?
Linux用户就直接敲命令就可以了,Colab也是一样的写。

挂载Google云盘
这是运行我们程序的第一步,因为Colab的运行原理实际上就是给你分配一台远程的带GPU的主机,所以它的原始路径不是你的谷歌云盘(也就是你的代码文件)所在的路径。所以第一步我们先要把谷歌云盘挂载带到那台远程主机上:

from google.colab import drive
drive.mount('/content/gdrive')

运行之后点击链接,然后复制一下code输入就行了。
连接上云盘以后,其实其他的操作和在Linux里就差别不大了。

执行命令
colab与notebook所不同的是,其代码框里不仅仅能执行代码,也能执行命令。
对于命令语句,我们需要在之前加上`!
比如说一些常用的命令:

import os
os.chdir("/content/gdrive/My Drive/3dunet/3DUnetCNN-master")

跳到你谷歌云盘的某个地址

ls '/content/gdrive/My Drive/3dunet/3DUnetCNN-master'

查看路径下的内容

%cd brats

进入brasts文件夹,注意这里cd命令要用%而不是!

!pip install nipype

! pip install git+https://github.com/qubvel/segmentation_models

安装所需的库

!pip install tensorflow==1.15.0

安装某个版本的库。这里需要注意一点,我们在GitHub看到的许多项目都是一段时间之前写好的,所以用的tensorflow版本可能会与colab本身自带的版本不一样。我们可以通过以下命令来查看当前colab的tensorflow版本

import tensorflow as tf

tf.__version__

我目前显示的是'2.2.0',而项目可能试用tensorflow一点几版本写的,这时候就需要通过上面的命令来更换版本,在更换完版本之后,程序往往需要重新运行。
还有一点,目前1.15.0版本的tensorflow是支持GPU运行的,好多更低的版本并不支持GPU,所以如果你降低到了比如1.5.0版本,是无法使用GPU的。

! python train.py

执行train.py文件

其实这些都跟我们的linux下操作是一样的,只不过现在放到了谷歌云盘里来执行。

项目运行
怎么运行在github上别人的项目呢?

先要把别人的项目和所需的数据集传到自己的谷歌云盘里之后,再用colab执行。
注意谷歌云盘的免费空间只有15G,如果你的数据集很大,要小心在执行的过程中可能产生一些图片从而导致空间过载,这样会报错的。可以买一个会员,十块钱不到100G,我感觉还是比百度云那种限速的好用多了.

1.挂载谷歌云,刚才讲过了

from google.colab import drive
drive.mount('/content/gdrive')

2.转到要处理的项目地址

import os
os.chdir("/content/gdrive/My Drive/3dclassification/3DUnetCNN-master")

3.安装好所需要的库
pip命令一个一个安装也行,不过大部分项目都有requirements.txt文件,你可以直接

! pip install -r requirements.txt

一次性安装好所有要求的库。
4.执行项目程序

! python train.py

训练网络

! python evaluate.py 

评估表现

项目编写
colab不太适合大型程序的编写,毕竟都是notebook文件。但notebook的好处就是直观,方便我们观察输出与调试,如果要写项目的话,都写在一个文件中的简单项目还好说,但如果你想调用其他文件中的函数,要先把notebook文件(.ipynb)转为py文件再调用。
在这里插入图片描述
直接在文件中下载为py文件并传到你的谷歌云盘上就好了。

<think>好的,用户想了解深度求索(DeepSeek)如何训练自己的模型,以及作为新人小白如何进行训练。我需要先理清楚这两个部分的内容,然后以简洁易懂的方式呈现出来。 首先,关于DeepSeek的训练方法,可能需要查找公开资料,但假设没有详细公开的信息,可以基于一般的大模型训练流程进行解释。需要涵盖数据准备、模型架构、训练策略、计算资源、优化技术等方面。同时,要指出他们可能使用的核心技术,比如MoE架构、高效并行训练等。 然后是针对新人的训练指南。这部分需要从基础开始,建议学习机器学习基础知识,选择适合的框架,比如PyTorch或TensorFlow。接着是实际操作的步骤:数据准备、模型选择、训练配置、训练过程、评估调优和部署应用。对于每个步骤,要给出具体的小贴士,比如使用公开数据集,从简单模型开始,利用云服务资源等。 需要注意用户是新手,所以语言要避免过于技术化,用比喻或例子帮助理解。同时,要提醒他们需要耐心,从简单项目入手,逐步积累经验。可能还需要提到社区和文档的重要性,以及实践中的调试和优化技巧。 需要确认是否有错误或遗漏的地方,比如训练步骤是否全面,建议是否实际可行。另外,是否需要区分DeepSeek公司的训练方法和一般公司的方法,如果无法找到具体信息,可能需要说明这是通用方法,并建议用户参考官方资源。 最后,确保整个回答结构清晰,分点明确,让用户能一步步跟随学习。同时保持口语化,避免使用复杂术语,必要时进行解释。</think>深度求索(DeepSeek)作为一家专注实现AGI的中国公司,其大模型训练方法未完全公开,但结合行业通用方法及公开信息,以下是训练流程概述及新人入门指南: --- ### **一、DeepSeek大模型训练核心步骤** 1. **数据准备** - 多源数据采集:整合网页、书籍、论文、代码等结构化与非结构化数据。 - 清洗过滤:去除噪声、低质内容,进行去重和隐私脱敏。 - 数据加权:根据来源质量分配权重(如学术论文权重高于社交媒体)。 2. **模型架构设计** - 基于Transformer结构,可能采用稀疏化设计(如MoE混合专家架构)提升训练效率。 - 根据目标选择参数量级(如7B/67B等不同规模)。 3. **分布式训练** - 使用ZeRO-3、流水线并行等技术拆分模型至千卡级GPU集群。 - 优化通信效率,减少跨节点数据传输延迟。 4. **训练策略优化** - 课程学习(Curriculum Learning):从简单任务逐步过渡到复杂任务。 - 混合精度训练:FP16/FP32混合降低显存占用。 - 梯度裁剪:防止梯度爆炸导致训练不稳定。 5. **评估与迭代** - 通过MMLU、HumanEval等基准测试评估模型能力。 - 针对弱项进行增量训练或数据增强。 --- ### **二、新人入门训练指南(从零实践)** #### **第一步:基础知识储备** - 必学概念:神经网络、损失函数、优化器(AdamW)、过拟合/欠拟合。 - 工具学习:Python/PyTorch基础(官方教程+《动手学深度学习》)。 - 数学基础:理解矩阵运算、概率分布、梯度下降原理即可,无需深入推导。 #### **第二步:实操训练流程** 1. **环境搭建** - 推荐Google Colab(免费GPU)或AutoDL(国内低价云服务器)。 - 安装PyTorch、Transformers库:`pip install torch transformers` 2. **微调现成模型(快速体验)** ```python from transformers import AutoModelForCausalLM, Trainer, TrainingArguments # 加载预训练模型(如MiniCPM-2B) model = AutoModelForCausalLM.from_pretrained("deepseek-ai/minicpm-2b-dpo") # 设置训练参数 training_args = TrainingArguments( output_dir='./results', per_device_train_batch_size=4, num_train_epochs=3, logging_steps=100, ) # 准备自定义数据集(示例) train_dataset = ... # 使用datasets库加载自己的文本数据 # 开始微调 trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, ) trainer.train() ``` 3. **进阶路线建议** - 阶段1:使用HuggingFace微调GPT-2/T5等小模型,完成文本生成/分类任务。 - 阶段2:学习LoRA/P-Tuning等参数高效微调技术,减少显存消耗。 - 阶段3:尝试多机多卡分布式训练(需云服务器支持)。 #### **第三步:避坑指南** - 显存不足时:启用梯度检查点(gradient_checkpointing=True)、降低batch_size。 - 训练震荡:尝试减小学习率、增加warmup步数。 - 过拟合:添加Dropout层、数据增强、早停(Early Stopping)。 --- ### **三、资源推荐** - 实践平台:Kaggle学习赛、阿里云天池NLP入门赛 - 开源项目参考: - Llama-Factory(一站式微调工具): https://github.com/hiyouga/LLaMA-Factory - DeepSeek官方开源模型:HuggingFace仓库搜索"deepseek-ai" - 书籍:《Natural Language Processing with Transformers》 新手建议从 **单卡微调小模型** 起步,逐步理解数据→模型→训练的关系,切勿直接尝试千亿参数训练。持续参与开源社区讨论(如HF论坛/知乎技术专栏)可快速提升实战能力。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值