教程
2021 年 10 月 24 日
Pycharm及VScode连接Colab
通过Cloudflared服务在Colab开通一条隧道让我们能够连接Colab的运行环境
Colab作为Google推出的专为 DeepLearning 打造的 Jupyter Notebook 运行环境,具有强大的GPU甚至专用于神经网络训练的TPU。然而,它也具有很大的局限性。因为Colab仅支持Jupyter Notebook,意味着它不能像专业IDE一样拥有强大的debug工具。本文采用一种折中的办法,通过Cloudflared服务在Colab开通一条隧道让我们能够连接Colab的运行环境。
准备材料
- 域名一个(阿里,腾讯,freenom等等都可以)
- cloudflare账号
- 科学上网环境(保证稳定)
- 脑子
Cloudflare准备工作
因为需要用到Cloudflare tunnel来连接Colab环境,需要一个域名作为tunnel的基础,
Cloudflare DNS绑定
进入域名代理商(阿里,腾讯,freenom等等都可以)的域名管理页面,将域名解析的DNS服务器更改为Cloudflare提供的DNS。
回到Cloudflare确认站点是否被解析代理,这样就完成了域名部分的设置
Cloudflared服务安装
因为需要用到Cloudflare tunnel完成SSH连接,我们需要在本地安装Cloudflared服务并更改SSH Config。
博主用的是MacOS,所以用homebrew完成了安装,安装完成后要找到cloudflared的绝对路径(在后面设置SSH Config会用到)
以homebrew为例,输入
brew info cloudflared
记下绝对路径后,按照官方页面引导,授权cloudflared将绑定域名作为tunnel即可(无需建立tunnel,只要授权!!!)。
开始创建Colab环境
到这里,Cloudflare的工作就告一段落了
Colab中创建tunnel
Colab是Google提供的带有免费GPU和TPU的jupyter notebook运行环境
将以下代码复制到新建的笔记本当中。
# 安装SSH环境
!pip install colab_ssh --upgrade
from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared
launch_ssh_cloudflared(password="这里写SSH连接密码")
# 将你的git仓库克隆进来
# init_git_cloudflared('仓库地址')
# 将笔记本连接到你的Google Drive,在跑大型模型的时候不用担心上传问题和模型保存问题了
from google.colab import drive
drive.mount('/content/gdrive/')
要记得开启GPU/TPU,默认是关闭的。
保存后就可以开始执行代码了,执行后会弹出一些提示,首先要更改SSH Config,这里参考MacOS的SSH设置。
touch ~/.ssh/config
vim ~/.ssh/config
进入编辑文件后将提示的Host内容复制进去,同时记得将尖括号改为你Cloudflared的绝对路径(/usr/local/Cellar/cloudflared/2021.10.3/bin/cloudflared 每个人的都不一定一样),一定要到那个文件夹里面看一下cloudflared在不在里面,这一步错了就肯定连不上了。
如果要使用SSH进去截图GPU装逼可以先用命令行连接。
这里我SSH连接服务器试一下
Pro计划($ 9.99)提供更高的稳定性和Tesla P100,和传统的GPU服务器相比可以说是非常便宜了。
IDE连接服务器
经过测试,VScode可以正常连接服务器,Pycharm因为bug无法处理SSH config中的转义字符,在2021.3 EAP版本中这个问题被修复。
VScode连接服务器
首先在扩展中安装插件Remote - SSH。
安装完成后连接服务器 → 输入密码 → 打开文件夹,即成功连接到开发环境。
Pycharm连接服务器
因为正式版(2021.2)还有bug,所以用2021.3 EAP进行演示。
首先新增一个环境。
输入地址和登录root账户
输入密码后,把环境改成python3
扫描完包后,完成部署
遇到的问题
命令行连接ssh时报错
failed to connect to origin error="websocket: bad handshake"
原因:该问题普遍发生于Colab免费版本,推测是因为免费版本的runtime是受严格限制的,因此ssh服务非常不稳定,甚至无法验证。
解决方法:购买Colab Pro或者Colab Pro+付费方案
Pycharm连接环境时报错
Server closed connection during identification exchange
解决方法:如果真的急用,可以升级2021.3 EAP版,官方在youtrack中确认了环境变量bug的更新将会包含在该版本中,不过EAP版的bug真的很多,不建议使用。
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者: Barry 发表日期:2021 年 10 月 24 日