如何评价 Google Colab 提供的免费 GPU?

Google Colab,全名Colaboratory。你可以用它来提高Python技能,也可以用Keras、TensorFlow、PyTorch、O…
关注者
1,306
被浏览
1,811,125

56 个回答

坐标美国,PhD穷苦学生党,2年前开始使用Colab(免费用户),2020年9月起升级到了Colab Pro用户好几个月了。也是Google Drive的付费用户(200GB)。(奈何实验室死活不采购新的GPU)。

Colab Pro4月之前很容易约到Tesla V100 (16GB),但是,目前可能由于显卡短缺的原因,不容易预约到Tesla V100,经常是Tesla P100 (16GB),而且有时候不能多开3个GPU窗口了。训练网络时候,Tesla V100速度是P100的近3倍。

我自己上周买了个RTX 3060 的电脑,训练transformer模型时候,速度是Colab Pro P100 GPU的1.5倍。虽然RTX 3060和Tesla P100的cores都是3584个,但是RTX 3060快了不少,应该是里面的架构不一样。代码源:Keras documentation: Image Classification with Vision Transformer

Colab Pro的优势:

  1. 之前最多开了4个页面;
  2. 可能分到Tesla V100,即便是Tesla P100,一个月9.99美金也值;
  3. 可以连接Google Drive,Google Drive里可以先存数据集,再解压到Colab的Content下;
  4. 所有的写的代码都在Google Drive里保存着,如果在自己电脑上可能时间长会乱;
  5. 所有模型可以自动保存到Google Drive里;
  6. 常用的包不用自己安装;
  7. 内存从免费的12GB增加到了25.5GB;
  8. Colab Pro用户还可以开terminal。

Colab Pro的劣势:

  1. 最长时间是24小时断1次;
  2. 如果网络不好,可能会频繁断开。目前网上有解决方案;
  3. 数据集比较大时候(>10GB),下载到Colab的Content里可能比较慢,但刚试了从Google Drive解压2.2 GB的图片文件到colab需要不到30秒时间;
  4. 分配的RAM可能不足,显示的是25.5GB,可能实际远低于这个内存。

今后我还会RTX 3060和 Colab Pro一起用(甚至多开几个Colab Pro用户),毕竟每个用户9.99美金1个月不贵,多开几个程序相当于同一时间多完成了很多网络的训练,这钱花的值。

只希望,Colab Pro多弄点Tesla V100,并且一次训练的时间延长下,比如2天。

有人私聊我问采购显卡事情,若是学生党,如果要采购GPU训练深度学习模型,30系列中性能最好的是RTX 3090,性价比最高的RTX 3060,如果没多少钱,建议入手RTX 3060,深度学习最重要的是显卡的显存,其次才是速度,显存不够的话,稍微大的模型都训练不了,显存够时,即便速度慢些多花点时间也能完成任务。当初买RTX 3060时候看重的是12GB显存,在30系列中仅次于RTX 3090,比神卡RTX 2080 Ti的11GB显存还多1GB。11 GB的显存可以在不用调过小的batch size训练YOLO V5最大的模型yolov5x:ultralytics/yolov5 。YOLO V5 是最新的物体识别的项目。假如以后感觉RTX 3060在显存和速度上跟不上,可以等显卡降价时候再并联1个RTX 3060显卡,这样也不贵。至于RTX 3090,目前美国是3000刀左右,土豪随便,非土豪还是500刀收个RTX 3060,若等RTX 3090降价才购买显卡,那顶会不发了吗?1篇顶会1作的价值超过了显卡的钱,即便是RTX 3090。

更新:RTX 3060使用了2个星期,真得太香了,24小时不间断训练模型,采集了很多模型,实验室远程开会时候直接当场选模型做预测。至于传言说锁算力,是指锁了挖矿的哈希,不是锁深度学习的算力,别被那些挖矿人造谣骗了。比特币这玩意跟赌博没区别,纯属投机和洗钱性质,导致需要显卡去工作或娱乐的人买不到正常价格的显卡,还浪费电力,对生产力毫无提升可言,使得社会滋生了不劳而获心理。央行封杀比特币实在是大快人心,现在新的显卡也在封杀比特币。请大家一起祝比特币早日完全完蛋,祝比特币早日完全完蛋,祝比特币早日完全完蛋,阿弥陀佛,阿门。

远程桌面这玩意最近应该是用不了了


开启 Colab 远程桌面

作为一个正在学习强化学习的学生,时常需要跑数十个小时的来训练模型。奈何自己电脑的性能不过好,而谷歌 Colab 又没有GUI而且还限时。就在我一筹莫展的时候,突然发现了一个可以开启 Colab 桌面版的方法。白嫖高性能带GPU的虚拟机生活就此开始!下面我把这个方法也教给大家

首先感谢 Tomohiro 大佬的代码,使得远程获取 Colab 桌面变成可能。大佬的 主页 以及大佬的 Github
本文的 Github 以及 Colab

1. 准备软件

  1. 安装 Cloudflare
  2. 安装 TurboVNC。往下翻可以找到适用于不同系统的安装包。如果是 Linux 版本,下载完 .deb 文件后,请在文件目录下使用 sudo apt-get install -f 来安装该文件。
  3. 安装 SSH Client,这个一般来说系统自带的都有,如果 windows 用户不确定自己有没有这个软件,可以在开始菜单里搜索 添加可以选功能 -> OpenSSH Client

2. 修改运行时

在 Colab 笔记本上面的菜单栏里点击 修改 -> 笔记本设置 -> 硬件加速 -> GPU

3. 创建远程连接

完成上诉任务后在 Colab 里运行下面的代码:

  • 该段代码会设置好服务器端的 OpenSSH, VirtualGL 以及 TurboVNC。
  • 运行完成后连接方式以及密码会在下方显示。
注意当成功运行完一次下面的代码后,再次运行可能会报错。原因是一台服务器在运行时只能设置一次,如果本地电脑提示连接失败,要想再次连接则需要将服务器端先关闭后再连接。
具体方法是先将点击右上角 RAM,磁盘 右边向下的三角 -> 管理会话 -> 终止当前的会话。
!pip install git+https://github.com/demotomohiro/remocolab.git
import remocolab
remocolab.setupVNC()
下面为输出
# 前面这里都是没用的部分,只是给大家看一下运行效果,在有用部分会有提醒

Collecting git+https://github.com/demotomohiro/remocolab.git
  Cloning https://github.com/demotomohiro/remocolab.git to /tmp/pip-req-build-vzejlrco
  Running command git clone -q https://github.com/demotomohiro/remocolab.git /tmp/pip-req-build-vzejlrco
Collecting pyngrok
  Downloading pyngrok-5.1.0.tar.gz (745 kB)
[K     |████████████████████████████████| 745 kB 27.5 MB/s 
[?25hRequirement already satisfied: PyYAML in /usr/local/lib/python3.7/dist-packages (from pyngrok->remocolab.py==0.1) (3.13)
Building wheels for collected packages: remocolab.py, pyngrok
  Building wheel for remocolab.py (setup.py) ... [?25l[?25hdone
  Created wheel for remocolab.py: filename=remocolab.py-0.1-py3-none-any.whl size=7553 sha256=fbceba35daeb1cc70c6c2065eedaafb57e796e18014faa010aa6fefb258f5777
  Stored in directory: /tmp/pip-ephem-wheel-cache-rylqg9c3/wheels/80/37/44/386e71ab0cd5aef5cefdb1926b710a42fdb4fe2d07c3b1b08f
  Building wheel for pyngrok (setup.py) ... [?25l[?25hdone
  Created wheel for pyngrok: filename=pyngrok-5.1.0-py3-none-any.whl size=19007 sha256=68752057affa9259e931daf5deb61483d2700ff0ae66ff0e162fa3ae1f95a02f
  Stored in directory: /root/.cache/pip/wheels/bf/e6/af/ccf6598ecefecd44104069371795cb9b3afbcd16987f6ccfb3
Successfully built remocolab.py pyngrok
Installing collected packages: pyngrok, remocolab.py
Successfully installed pyngrok-5.1.0 remocolab.py-0.1
---
As ngrok doesn't work on colab for long time, default tunnel method has been changed to Argo tunnel.
Please read this for more details:
https://github.com/demotomohiro/remocolab/blob/master/README.md



Label(value='')



FloatProgress(value=0.0, layout=Layout(border='1px solid #118800'), max=1.0)


Install openssh-server



Label(value='')



FloatProgress(value=0.0, layout=Layout(border='1px solid #118800'), max=1.0)


Install xfce4
Install xfce4-terminal
ED25519 key fingerprint of host:
256 SHA256:q1rf7t8/afFr4VX7XJavqAeuN/9U2665sraaUGxlOJE root@15020c66cbde (ED25519)
+--[ED25519 256]--+
|          ..     |
|          Eo     |
|          o o    |
|         . +    .|
|        S +     =|
|         +.    **|
|      . o. .  o+@|
|     . o o+.++ O=|
|    ... o=BO*=X*=|
+----[SHA256]-----+

# 有用的部分从这里开始

✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️
root password: mH6p2il8wSS27Vh74gk8qNLbHScZgo3qVKk2jnT-CkE
colab password: meL5OPTHwoG3YzHIeVZgZ6Oa20iuMMl2gLT_6i3_lE4
✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️
---
Execute following command on your local machine and login before running TurboVNC viewer:
✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️
ssh -o UserKnownHostsFile=/dev/null -o VisualHostKey=yes -oProxyCommand="cloudflared access ssh --hostname %h" -L 5901:localhost:5901 colab@find-lonely-wichita-ribbon.trycloudflare.com
✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️
VNC password: cl_C3l4e
VNC view only password: rsTIKXNR
✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️✂️

4. 连接 TurboVNC

  1. 使用 SSH 连接到 Colab
  • 在命令行执行上方的 ssh 命令: ssh -o UserKnownHostsFile... 开头的那个命令。但不知道为什么这个命令在我的 Windows 电脑上无法成功运行。Linux 系统可以。下面的演示图片为Windows 的 WSL 系统连接远程服务器的效果
  • 使用上面显示的 colab password:

在完成这部操作后,我们的命令行就会变成 Colab 服务器的命令行。

  1. 运行 TurboVNC Viewer,如果你使用 Windows 就直接双节 TurboVNC Viewer 的图标,如果你使用的 Linux,则输入 /opt/TurboVNC/bin/vncviewer 来打开。
  • 连接到地址 localhost:1
  • 使用上面显示的 VNC password

在完成这步后就可以获取到服务器桌面了。

但 Colab 本身是一个临时的 VM,运行时产生的文件在关闭后都会消失。为了解决这个文件,我们可以将 Google Drive 安装到当前的 VM 上,将其作为数据盘。

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

5. 小技巧

为了获取更长的 Colab 使用时间,可以添加下面的Chrome 插件:

Colab alive

本文使用 Zhihu On VSCode 创作并发布