核心摘要 (TL;DR)
- 痛点:本地电脑显存不足,跑不动 7B 以上的大模型,或者运行速度如蜗牛。
- 方案:利用 Google Colab 提供的免费 Tesla T4 GPU 算力。
- 技巧:通过挂载 Google Drive,解决 Colab 运行时重置导致模型文件丢失的问题。
- 目标:配置好云端环境,为下一篇“云端运行 RAG”打好地基。
Ollama因为有llama.cpp库和量化技术的加成,是可以在cpu和更日常的电脑上运行的,但是性能是远比不上在专业的显存设备上的。 有高端显卡(NVIDIA 4090/5090/A100/H100),可以在自己的服务器上脱缰运行小规模的大模型。但是对于没有高端显卡设备的友人们也不用担心, 我们可以使用谷歌大善人带给我们的免费GPU算力:爱来自Google Colab。 本篇博文的主要目的就是提前带各位友人们从零上手Colab的核心操作,确保在我们后续的实战过程中的流畅操作。
一言概之, Google Colab = Jupyter Notebook + 云端服务器


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





在界面介绍时,咱们快速介绍了一下两种单元格: 代码块和 文本块,接下来可以稍微多了解一点点这两种单元格
就是我们的主力战场,编写Python代码的地方,可以快速体验一下使用流程
Shift + Enter)

前面的序号标明代码块的执行顺序,因为我们可以乱序执行,执行完下方代码块再回来执行前面的代码块
jupyter notebook是支持直接渲染markdown格式的文档的,所以也有人直接用它当文档。相比于我们用注释去记录,markdown格式的文本块会更直观。

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



!nvidia-smi
从返回的表格结果中,能看到咱们的设备是TeslaT4。
在notebook代码块中以
!开头即可运行命令,这里等效为在terminal中运行
nvidia-smi
PS:除了切换文件夹得用
%cd而不是
!cd
我们使用Colab主要是为了使用大模型以及训练大模型,对于Colab而言,模型的下载有个痛点: Colab是临时的,哪怕我们通过命令下载了好几个G的模型,甚至好几十G的模型,但是每次重置运行时的时候,这一切都会灰飞烟灭,消散如烟。为了避免每次都重新下载,浪费时间,我们可以通过挂在Google Drive来保存模型。
from google.colab import drive
drive.mount('/content/drive')


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

因为咱们在Colab环境,是国外的魔法环境,我们可以直接使用hugging face来下载模型,我们接下来指定一下模型下载的缓存路径到挂载的Google Drive。
from google.colab import drive
import os
# 1. 挂载云盘
if not os.path.exists('/content/drive'):
drive.mount('/content/drive')
# 2. 准备目录
cache_dir = "/content/drive/MyDrive/huggingface_cache"
os.makedirs(cache_dir, exist_ok=True)
# 3. 设置 Token (如果你在左侧 Secrets 设置了 HF_TOKEN,这里自动读取)
# 如果没设置,请手动把下行代码引号里换成你的 token,或者留空试下(Qwen 有时不需要)
my_token = os.getenv('HF_TOKEN') or ""
print("屏幕可能会静止 5-10 分钟,请盯着左边的小圆圈转动即可。")
cmd = f"huggingface-cli download Qwen/Qwen2.5-7B-Instruct --cache-dir {cache_dir} --quiet"
if my_token:
cmd += f" --token {my_token}"
# 执行命令
result = os.system(cmd)
if result == 0:
print("\n 下载成功!")
else:
print("\n 下载失败,请检查网络或 Token。")
# check disk usage (查看磁盘占用) # -s: 汇总大小, -h: 人类可读格式 (GB/MB) !du -sh /content/drive/MyDrive/huggingface_cache/models--Qwen--Qwen2.5-7B-Instruct
看到的结果应该是15G大小的文件

一般情况下,建议模型下载和数据处理都在CPU模式下进行,然后处理完毕存入云盘. 4. 然后新建代码块,运行如下代码,来确认模型是否能够被识别
import os
import glob
from transformers import AutoConfig, AutoTokenizer
# 1. 设置你的缓存根目录
base_cache_path = '/content/drive/MyDrive/huggingface_cache'
# 2. 构造快照目录的通配符路径
# 结构通常是: base / models--ID / snapshots / <哈希值>
snapshot_pattern = os.path.join(
base_cache_path,
"models--Qwen--Qwen2.5-7B-Instruct",
"snapshots",
"*" # 这里用 * 匹配那个随机生成的哈希文件夹
)
# 3. 寻找真实的文件夹路径
found_folders = glob.glob(snapshot_pattern)
if not found_folders:
print(" 错误:找不到 snapshots 文件夹,请检查下载是否成功或路径是否正确。")
else:
local_model_path = found_folders[0]
print(f"锁定本地模型路径: {local_model_path}")
print("正在尝试直接加载...")
try:
config = AutoConfig.from_pretrained(local_model_path)
tokenizer = AutoTokenizer.from_pretrained(local_model_path)
print("\n成功!模型可以被正确加载。")
print(f"模型隐藏层维度: {config.hidden_size}")
print(f"词表大小: {tokenizer.vocab_size}")
except Exception as e:
print(f"\n加载依然失败。可能是 Google Drive 的软链接失效了。")
print(f"错误信息: {e}")

Q: CPU 和 GPU 跑大模型,性能差异到底有多大? A: 差异巨大,就像 法拉利和 拖拉机的区别。
Q: 那一台 RTX 4090 能运行多大的模型?能微调多大? A: RTX 4090 拥有 24GB 显存,这是核心瓶颈。
Q: 动态脚本语言 (Python) 和常规预编译语言 (C++/Java) 有什么区别? A:
Q: Colab 里的 T4, A100, TPU 都有什么差别? A:
本文作者: Algieba 本文链接: https://blog.algieba12.cn/llm02-1-online-environment-colab/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049457/viewspace-3109878/ ,如需转载,请注明出处,否则将追究法律责任。