[大模型实战 03预备] 云端炼丹房 1:Google Colab 上手指南
核心摘要 (TL;DR) Ollama因为有llama.cpp库和量化技术的加成,是可以在cpu和更日常的电脑上运行的,但是性能是远比不上在专业的显存设备上的。 一言概之,Google Colab = Jupyter Notebook + 云端服务器 在新的notebook界面,我们可以看到 在界面介绍时,咱们快速介绍了一下两种单元格:代码块和文本块,接下来可以稍微多了解一点点这两种单元格 就是我们的主力战场,编写Python代码的地方,可以快速体验一下使用流程 jupyter notebook是支持直接渲染markdown格式的文档的,所以也有人直接用它当文档。相比于我们用注释去记录,markdown格式的文本块会更直观。 默认状态下Colab是使用的CPU,我们接下来去开启GPU 在notebook代码块中以 我们使用Colab主要是为了使用大模型以及训练大模型,对于Colab而言,模型的下载有个痛点:Colab是临时的,哪怕我们通过命令下载了好几个G的模型,甚至好几十G的模型,但是每次重置运行时的时候,这一切都会灰飞烟灭,消散如烟。为了避免每次都重新下载,浪费时间,我们可以通过挂在Google Drive来保存模型。 在下载受限模型(如 Llama 3)时,你需要 Hugging Face Token。 因为咱们在Colab环境,是国外的魔法环境,我们可以直接使用hugging face来下载模型,我们接下来指定一下模型下载的缓存路径到挂载的Google Drive。 看到的结果应该是15G大小的文件 一般情况下,建议模型下载和数据处理都在CPU模式下进行,然后处理完毕存入云盘. 4. 然后新建代码块,运行如下代码,来确认模型是否能够被识别 Q: CPU 和 GPU 跑大模型,性能差异到底有多大? Q: 那一台 RTX 4090 能运行多大的模型?能微调多大? 推理 (运行): 微调 (训练): Q: 动态脚本语言 (Python) 和常规预编译语言 (C++/Java) 有什么区别? Q: Colab 里的 T4, A100, TPU 都有什么差别? 本文作者: Algieba[大模型实战 03预备] 云端炼丹房 1:Google Colab 上手指南
前言
有高端显卡(NVIDIA 4090/5090/A100/H100),可以在自己的服务器上脱缰运行小规模的大模型。但是对于没有高端显卡设备的友人们也不用担心, 我们可以使用谷歌大善人带给我们的免费GPU算力:爱来自Google Colab。 本篇博文的主要目的就是提前带各位友人们从零上手Colab的核心操作,确保在我们后续的实战过程中的流畅操作。1. Google Colab
2. 快速介绍
2.1 访问与创建



2.2 界面介绍





3. 核心操作
3.1 代码块
Shift + Enter)
前面的序号标明代码块的执行顺序,因为我们可以乱序执行,执行完下方代码块再回来执行前面的代码块3.2 文本块


4. 开启免费GPU算力



!nvidia-smi
从返回的表格结果中,能看到咱们的设备是TeslaT4。!开头即可运行命令,这里等效为在terminal中运行nvidia-smi
PS:除了切换文件夹得用%cd而不是!cd5. 下载大模型
5.1 挂载Google Drive
from google.colab import drive
drive.mount('/content/drive')

5.2 配置HuggingFace环境变量和Token
HF_TOKEN。
5.3 指定缓存路径下载
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
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}")
05. 常见问题 (Q&A)
A: 差异巨大,就像法拉利和拖拉机的区别。
A: RTX 4090 拥有 24GB 显存,这是核心瓶颈。
A:
A:
本文链接: https://blog.algieba12.cn/llm02-1-online-environment-colab/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!