云服务器进行训练-记录:

部署运行你感兴趣的模型镜像

借用实验室老哥工作站好几次了,不大合适,打算自己弄个云服务器,比如微软的azure或阿里云,先去了解一下吧。

认识:

目前大致看了,发现服务器大体上有三大类:

  1. 国内BAT华为的云服务,不过价格昂贵,尤其是GPU服务,或许可以看看有没有白嫖机会。
  2. 国内较小云服务平台AutoDL之类,挑选起来相当简单,直接选择显卡,系统之类即可,价格一般在1-5r/h,还可以接受。
  3. 免费的notebook,按一位老哥介绍打开即用,但只易跑小数据,或许可以看看:
    kaggle:https://www.kaggle.com/code
    colab:https://colab.research.google.com/#scrollTo=5fCEDCU_qrC0

选择:

发现较多人推荐AutoDL,看了下,感觉价格什么的都不错,决定也试试。

注册与租赁:

手机号注册,前两天sim卡坏了,等到今天才办好。注册之后,发现有学生认证,认证了,成为了炼丹会员,有九五折,还不错的亚子。
image.png
image.png
要选择的东西少,配置的东西少,门槛低,只需要选择显卡,流量/包月计费,想要的环境,然后就可以了。真的比眼花缭乱的bat省心很多很多。不过,需要注意下显卡最高支持cuda,有的仅支持11.5。
image.png
可以选择无卡模式开机,用来上传项目数据或配置环境时用,1毛每小时,是真不戳啊。
image.png
这玩意还有专门开发票的功能,它可真懂啊。

文件结构:

在AutoDL上,通过实例右侧“快速工具”的JupyterLab可以进行管理。进入后的文件结构如下所示:
image.png
autodl-fs:autodl自带可以上传数据的网盘,在网盘功能那里上传,然后在同区域(比如内蒙A区)的服务器实例文件结构中的autodl-fs中可以查看,不过在此文件夹中读写很慢,所以可以复制到autodl-tmp中,然后使用。网盘如下所示:
image.png

autodl-tmp:读写速度很快,我看到别人是用来存放项目的。我也是这样。
autodl-pub:我翻了翻,发现里边是一些公共的数据集。
miniconda3:用来进行python项目环境管理和配置,我自己配的环境就在这里。通过终端运行source miniconda3/bin/activate指令,可以使用conda命令。
tf-logs:不大感兴趣,浅浅地查找,没找到,以后再说。
系统为ubuntu,所有的文件夹都位于/root下。
除了使用上传到网盘的数据,此界面上方的箭头也可以上传本地文件,不过两者速度感觉都在几百K左右,上传稍大的文件实在是得等一会。

配置环境:

在选择显卡的时候说是配置好环境了,不过我不大明白在哪里。这可能和我没学过python,不大了解conda文件结构有关系(又需要去了解下文件结构了)。所以就自己配了环境,流程和之前在自己电脑上没区别,除了上边提到的通过终端运行source miniconda3/bin/activate指令,当然,我觉得这是我不怎么用ubuntu的原因。出乎意料的,在AutoDL上配环境本身倒是很快,这或许是服务器上本来有包吗?我不大清楚,不过舒服很多。配置完的环境如下:
image.png
值得一提,在配置完后,我偶然间发现,AutoDL的pip指令默认设置为阿里云的,还是什么,忘记了。
还有,我选择的按量计费,所以按你使用GPU模式的开启小时数计费。当你关机后,你的GPU会被释放,有可能被他人占用,所以我认为最好在同一区域多租几个(关机不计费),它们之间的环境和数据可以相互迁移(我觉得可以粗糙认为是autodl-tmp和miniconda的迁移,速度比较快,尤其是前者,有百兆字节每秒),这样,当你想训练时,发现GPU被占用了,可以看看同一区域的另外几个能不能使用,这很方便。
还有,它的可视化操作太垃圾,删除个文件夹如果里面有东西都不行,一看就是直接调用了rm指令,不带参数的那种。以后多用终端吧。
还有,因为上传的时候多用压缩文件,所以,用比较早的算法,或者怎么说呢?反正就是有些算法压缩的文件,在这里解压不出来,会直接跳过。如果你选择的压缩算法不兼容,上传解压,只能得到一堆空文件夹,这个得注意一下。毕竟半兆字节的网速上传大文件,是个表痛苦的事,尤其是反复上传。

开始训练:

把需要的yolov5工程文件夹和datasets数据集文件夹(新版yolov5的文件结构)放在autodl-tmp中,把环境配置好,在配置好的language环境下运行train.py就开始训练了。值得一提,因为yolov5使用相对路径,所以保持整个工程:yolov5和datasets同级不变就可以在不同的电脑上运行,这很省心。
image.png
48G大显存用起来确实很舒服,256一批不在话下。半分钟一轮,根本之前不敢想。也由此,需要去了解下怎么调参能把显卡性能完全调用起来了。

Pycharm远程链接:

右侧是服务器实例的ssh和密码。复制ssh。
image.png
pycharm中找到解释器的shh。
image.png
输入ssh和密码,链接到服务器实例。
image.png
image.png
选择实例上的环境。
image.png
选择上传位置。
image.png
之后会上传项目,完场后,然后就可以在对方的服务器上训练或运行了。

总结:

在服务器上训练,使用云端的算力,真是给人一种新奇感,仿佛过去的人第一次在家里用上自来水,用上天然气,用上电力。这也让我比较直观的意识到什么叫做“基础设施”级别的云计算了。真是有趣,当然,主要是省钱,毕竟,几万的卡卡,还只是用来训练,怎么想都有些亏。

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

### 如何在云服务器上配置环境并训练 `bert-base-uncased` 模型 #### 环境准备 为了成功训练 `bert-base-uncased` 模型,需要先完成必要的软件和硬件环境设置。以下是具体的步骤说明: 1. **Python 版本** 推荐使用 Python 3.10 或更高版本作为基础开发环境[^2]。 2. **CUDA 和 cuDNN 安装** 如果目标是利用 GPU 加速模型训练,则需安装兼容的 CUDA 和 cuDNN 库。推荐使用的组合为 CUDA 11.8 和 PyTorch 2.x 的对应版本。 3. **PyTorch 安装** 使用以下命令来安装适合当前系统的 PyTorch: ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 ``` 4. **Transformers 库安装** Transformers 是 Hugging Face 提供的一个强大的自然语言处理工具包,支持多种预训练模型。可以通过如下方式快速安装该库: ```bash pip install transformers ``` 此外,如果计划保存或加载本地模型权重文件夹路径时,还需要额外依赖如 `sentencepiece` 和其他可能扩展功能所需的模块[^1]。 5. **BertTokenizer 初始化** 下面展示了一个简单的例子用于验证是否能够正常载入指定目录下的 BERT 预训练模型及其分词器实例化方法[^3]: ```python from transformers import BertModel, BertTokenizer BERT_PATH = 'path_to_your_bert_base_uncased_model' tokenizer = BertTokenizer.from_pretrained(BERT_PATH) print(tokenizer.tokenize('This is a test sentence to check the tokenization process.')) bert = BertModel.from_pretrained(BERT_PATH) print('BERT model loaded successfully.') ``` 6. **数据集准备与 Fine-tuning 流程设计** 基于具体应用场景调整输入格式以及定义损失函数计算逻辑等内容均属于实际项目实施中的重要环节之一。这里仅提供一个基本框架示意代码片段以便理解整体思路: ```python import torch from torch.utils.data import DataLoader from transformers import AdamW, get_linear_schedule_with_warmup device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") # Assume dataset and dataloader are already defined. train_dataloader = DataLoader(train_dataset, batch_size=16) model = BertModel.from_pretrained('bert-base-uncased').to(device) optimizer = AdamW(model.parameters(), lr=2e-5) scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=0, num_training_steps=len(train_dataloader)*epochs) for epoch in range(epochs): total_loss = 0 model.train() for step, batch in enumerate(train_dataloader): input_ids = batch['input_ids'].to(device) attention_mask = batch['attention_mask'].to(device) labels = batch['labels'].to(device) outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels) loss = outputs.loss total_loss += loss.item() loss.backward() optimizer.step() scheduler.step() optimizer.zero_grad() avg_train_loss = total_loss / len(train_dataloader) print(f"Epoch {epoch}, Average training loss: {avg_train_loss}") ``` 7. **监控性能指标** 训练过程中建议定期评估模型表现情况,并记录下关键参数变化趋势图谱便于后续分析优化方向决策制定工作开展顺利推进下去。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值