前言

Ollama因为有llama.cpp库和量化技术的加成,是可以在cpu和更日常的电脑上运行的,但是性能是远比不上在专业的显存设备上的。
有高端显卡(NVIDIA 4090/5090/A100/H100),可以在自己的服务器上脱缰运行小规模的大模型。但是对于没有高端显卡设备的友人们也不用担心, 我们可以使用谷歌大善人带给我们的免费GPU算力:爱来自Google Colab。 本篇博文的主要目的就是提前带各位友人们从零上手Colab的核心操作,确保在我们后续的实战过程中的流畅操作。

1. Google Colab

一言概之,Google Colab = Jupyter Notebook + 云端服务器

  • Jupyter Notebook:我们知道python是一门动态脚本语言,意味着我们可以一边编写,一边以交互式的方式看到当前结果,然后还能继续往下写。Jupyter Notebook就是一种可以一边写代码,一边写文档,还能实时看到代码运行结果的交互式笔记。
  • 云端服务器:区别于在我们本地环境写代码时,代码在我们的本地电脑,换一台电脑就需要重新拉取代码运行,在云端服务器编码是在远程的服务器编码,我们通过自己的电脑,甚至手机或者任何能联网打开浏览器的设备,连接上远程的那台服务器进行代码编写和模型训练。会更为灵活,不受设备限制。

2. 快速介绍

2.1 访问与创建

  1. 咱们确保有一个Google账户,并且登录
  2. 访问Google Colab 官网,就会进入到一个欢迎界面

    进入Colab的欢迎页面截图

  3. 点击菜单栏上File->new notebook in drive创建新的笔记本

    Colab菜单栏打开File鼠标指向其下拉菜单new notebook in drive的截图

     

    创建新的notebook后的新notebook界面截图

2.2 界面介绍

在新的notebook界面,我们可以看到

  • 文件名:左上角“Untitled0.ipynb”的文件名,可以单击重命名,ipynb就是jupyter notebook的后缀名

    notebook界面重新重命名后的文件名截图

  • 单元格:页面中心一长条带一个▶按钮的就说单元格,也叫Cell,是我们的核心编码区域, Jupyter notebook的逻辑是“一段一段”执行代码,而非我们平常写代码时候写完一整个文件再执行。

    notebook界面中心单元格的截图

  • 快捷操作栏:在单元格上方的位置有一条快捷菜单栏,支持我们添加新的代码块(Code Cell)和文本块(Text Cell),运行全部单元格(Run All)。

    在单元格上方的快捷操作栏的截图

  • 左侧工具栏: 包含目录速览,查找替换,密钥管理,数据查看等等工具。

    左侧工具栏的截图

  • 变量和终端:这里的变量按钮可以查看执行到当前的变量信息,就不用去print变量了,很方便。终端按钮就和Linux终端一样,可以用来执行一些命令。

    最下方的变量按钮和终端按钮

3. 核心操作

在界面介绍时,咱们快速介绍了一下两种单元格:代码块文本块,接下来可以稍微多了解一点点这两种单元格

3.1 代码块

就是我们的主力战场,编写Python代码的地方,可以快速体验一下使用流程

  • 直接输入python代码,然后点击运行(那个▶按钮或者使用快捷键 Shift + Enter

    在代码块中写入代码后运行之后的界面截图

  • 可以看到代码块左侧有一个[1],一个绿色的√,代码块下方有输出的打印结果
    前面的序号标明代码块的执行顺序,因为我们可以乱序执行,执行完下方代码块再回来执行前面的代码块

3.2 文本块

jupyter notebook是支持直接渲染markdown格式的文档的,所以也有人直接用它当文档。相比于我们用注释去记录,markdown格式的文本块会更直观。

  • 点击上面的➕Text按钮(或者在当前单元格上方/下方中间浮现显示的快捷按钮)去新增一个文本块
  • Shift+Enter快捷键“运行/渲染”它,

    输入了# This is Title!!的文本块截图

     

    渲染之后的文本块截图

4. 开启免费GPU算力

默认状态下Colab是使用的CPU,我们接下来去开启GPU

  • 点击顶部菜单栏的Runtime(运行时)下拉菜单中的Change runtime type(更改运行时类型)

    点击Runtime下来菜单,鼠标指向Change runtime type的截图

  • 选择Hardware accelerator(硬件加速器)T4 GPU.

    进入change runtime type后鼠标选择T4GPU的截图

  • 弹出的窗口警告我们会断联当前运行时,切换到T4GPU的硬件,选择OK

    点击T4GPU后,弹出结束运行时的截图

  • 保存,然后会发现之前运行过的代码块失活了(前面框框里的数字消失了,所有运行过的代码块需要重新运行)
  • 我们来输入以下代码验证
!nvidia-smi

nvidia-smi的运行结果截图


从返回的表格结果中,能看到咱们的设备是TeslaT4。

在notebook代码块中以!开头即可运行命令,这里等效为在terminal中运行nvidia-smi
PS:除了切换文件夹得用%cd而不是!cd

5. 下载大模型

我们使用Colab主要是为了使用大模型以及训练大模型,对于Colab而言,模型的下载有个痛点:Colab是临时的,哪怕我们通过命令下载了好几个G的模型,甚至好几十G的模型,但是每次重置运行时的时候,这一切都会灰飞烟灭,消散如烟。为了避免每次都重新下载,浪费时间,我们可以通过挂在Google Drive来保存模型。

5.1 挂载Google Drive

  1. 我们运行以下代码
from google.colab import drive
drive.mount('/content/drive')
  1. 然后在弹出授权窗口中授权

    运行完挂载代码后,弹出的授权提示截图

  2. 就能在代码块下方看见已经成功挂载的打印信息

    成功挂载google drive后的打印信息截图

5.2 配置HuggingFace环境变量和Token

在下载受限模型(如 Llama 3)时,你需要 Hugging Face Token。

  1. 去 Hugging Face Settings 获取 Token。
  2. 在 Colab 左侧钥匙图标(Secrets)里添加 HF_TOKEN

Colab 左侧 Secrets 面板配置 HF_TOKEN 的截图

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐