前言

今天是我正式开始学习 AI Infrastructure 的第一天。作为一个对大模型推理充满好奇的初学者,我决定从实战开始——在免费的 Kaggle GPU 上运行 vLLM。这篇文章记录了我从零开始的完整过程,希望能帮助到和我一样的新手。

核心目标: 今天就跑通第一个 vLLM 程序!


为什么选择 Kaggle + vLLM?

在开始之前,我做了一些调研:

为什么选择 Kaggle?

  • 完全免费: 每周 30 小时 GPU 时间
  • 无需配置: 预装了常用的深度学习库
  • P100 GPU: 16GB 显存,足够运行中小型模型
  • 入门友好: 无需本地 GPU,浏览器即可使用

为什么选择 vLLM?

  • 高性能: 比 HuggingFace Transformers 快数倍
  • 易用性: API 设计简洁,上手快
  • 工业级: 被多个公司用于生产环境
  • 学习价值: 涉及 PagedAttention 等前沿技术

实战步骤

Step 1: 注册 Kaggle 账号

这一步非常简单:

  1. 访问 Kaggle 官网
  2. 使用 Google 账号快速注册
  3. 重要: 验证手机号(这是使用 GPU 的必要条件,也可以使用Persona进行验证)

image-20251231134434642


Step 2: 创建 GPU Notebook

创建 Notebook 的步骤:

  1. 点击右上角 “Create” → “New Notebook”
  2. 在右侧设置面板中:
    • Accelerator → 选择 GPU P100
    • Internet → 打开 On
  3. 等待环境启动(大约 30 秒)

启动后,在第一个 cell 中运行以下命令验证 GPU:

1
!nvidia-smi

如果看到类似以下输出,说明 GPU 环境已就绪:

1
2
3
4
5
6
7
8
9
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.xx.xx Driver Version: 525.xx.xx CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla P100-PCIE... Off | 00000000:00:04.0 Off | 0 |
| N/A 37C P0 26W / 250W | 0MiB / 16280MiB | 0% Default |

image-20251231134721197


Step 3: 安装 vLLM

在新的 cell 中运行:

1
2
3
4
5
6
# 安装 vLLM
!pip install vllm -q

# 验证安装
import vllm
print(f"✅ vLLM 安装成功!版本: {vllm.__version__}")

安装可能需要 10-15 分钟,请耐心等待。安装完成后,你应该看到类似的输出:

1
✅ vLLM 安装成功!版本: 0.x.x

Step 4: 运行第一个推理程序

这是今天的重头戏!我使用 facebook/opt-125m 这个小模型进行测试(只有 125M 参数,加载速度快)。

完整代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from vllm import LLM, SamplingParams

# 【核心代码块1】加载模型
llm = LLM(
model="facebook/opt-125m", # 小模型,快速测试
trust_remote_code=True
)

# 【核心代码块2】准备输入
prompts = [
"Hello, my name is",
"The capital of France is",
"The meaning of life is"
]

# 【核心代码块3】配置采样参数
sampling_params = SamplingParams(
temperature=0.8,
top_p=0.95,
max_tokens=100
)

# 【核心代码块4】执行推理
outputs = llm.generate(prompts, sampling_params)

# 【核心代码块5】查看结果
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}")
print(f"Generated: {generated_text!r}")
print("-" * 80)

我的运行结果:

image-20251231135055273

1
2
3
4
5
6
7
8
Prompt: 'Hello, my name is'
Generated: ' Joel, my dad is my friend and we are in a relationship...
-------------------------------------------------
Prompt: 'The capital of France is'
Generated: ' at an impasse with the French government over its future as the euro zone’s biggest economy...
-------------------------------------------------
Prompt: 'The meaning of life is'
Generated: " measured in the things that are accomplished in it.\nMost of the time...

Step 5: 性能测试

为了了解 vLLM 的性能,我运行了一个简单的吞吐量测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import time

# 准备 10 个相同请求
test_prompts = ["Explain AI in simple terms"] * 10

# 测试吞吐量
print("⏱️ 性能测试开始...")
start = time.time()
outputs = llm.generate(test_prompts, sampling_params)
elapsed = time.time() - start

# 计算指标
total_tokens = sum(len(o.outputs[0].token_ids) for o in outputs)
throughput = total_tokens / elapsed

# 打印结果
print("\n" + "="*80)
print("📈 我的第一次 vLLM 运行记录")
print("="*80)
print(f"模型: OPT-125M")
print(f"GPU: Kaggle P100")
print(f"总耗时: {elapsed:.2f} 秒")
print(f"总 Token 数: {total_tokens}")
print(f"吞吐量: {throughput:.2f} tokens/秒")
print(f"日期: {time.strftime('%Y-%m-%d')}")
print("="*80)

我的性能数据:

image-20251231135516539

指标 数值
模型 OPT-125M
GPU Kaggle P100
总耗时 0.58 秒
总 Token 数 892
吞吐量 1539.24 tokens/秒

踩过的坑与解决方案

问题 1: Kaggle GPU 不可用

现象: 设置中看不到 GPU 选项
原因: 没有验证手机号
解决: 在账号设置中完成手机验证

问题 2: vLLM 安装超时

现象: pip install vllm 一直卡住
解决: 重启 Notebook,或者切换到 Google Colab

问题 3: 模型下载速度慢

现象: 加载模型时长时间无响应
解决: 使用 HuggingFace 镜像站

1
2
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

写在最后

第一天的学习让我深刻体会到:AI Infrastructure 并不遥远,动手实践才是最好的老师

如果你也想开始学习 AI Infra,我的建议是:

  1. 不要被理论吓倒 - 先跑起来,再慢慢理解
  2. 选择免费资源 - Kaggle/Colab 足够初学者使用
  3. 从小模型开始 - 125M 参数的模型几秒就能加载
  4. 记录每一步 - 写博客是最好的复习方式

记住: 慢一点没关系,停下来才可惜。💪


参考资料