GenAI 安全攻防实战课程
模块一 AI 安全基础

第4章:AI 安全测试环境搭建

配置完整的 AI 安全测试环境,包括云平台使用、Python 配置和核心依赖库安装

预计阅读约16分钟

本章导读

前三章为你搭建了 AI 安全的认知框架:威胁全景、模型原理和红队思维。但安全研究不能停留在纸面上,从本章开始我们要真正"动手"了。而动手的第一步,不是写攻击代码,而是搭建一个稳定、可复现、可隔离的实验环境。如果环境不可靠,后续所有实验结论都将失去意义。

本章将引导你在云平台上完成完整的 AI 安全测试环境配置:从选择云平台和创建 GPU 实例,到安装 Python 依赖和加载第一个大语言模型,再到验证整条链路的联通性。默认基线与实验 1.1 对齐(腾讯 Cloud Studio + T4 GPU + Qwen2-1.5B-Instruct),确保你在阅读和动手之间无缝衔接。完成本章后,你将拥有一个可长期复用的实验基地,为模块二到模块五的所有实验做好准备。

学习目标

本章学完后,你将能够:

  1. 掌握云平台的使用:熟练使用云端开发环境创建和管理 GPU 开发环境
  2. 配置 Python 环境:正确安装和配置 Python 及相关依赖库
  3. 调用大语言模型(LLM):能够使用 Transformers 库加载和运行预训练模型
  4. 排查常见问题:识别和解决环境搭建过程中的典型问题

1 环境搭建的三个原则

在开始动手前,先统一三条原则。后面所有操作都围绕它们展开:

原则为什么重要具体做法
可复现团队成员应能得到一致结果固定依赖版本、保留 requirements.txt
可隔离避免一个项目影响另一个项目每个实验使用独立虚拟环境
可验证避免“看起来能跑、实际上不稳定”每次配置后做最小验证脚本

有了这三个原则,我们再来决定环境方案,就不会只看“能不能跑”,而是看“能不能稳定地跑”。

2 为什么首选云平台

2.1 本地环境 vs 云平台

  • 硬件门槛高:运行大语言模型通常需要较强 GPU,成本高
  • 底层依赖复杂:CUDA、cuDNN、驱动版本容易互相制约
  • 环境冲突常见:不同项目依赖版本容易相互影响
  • 资源利用率低:GPU 大多数时间闲置
  • GPU 可按需使用:对学习阶段更友好
  • 启动速度快:多数平台提供预配置镜像
  • 访问门槛低:浏览器即可使用
  • 更利于协作:分享 Notebook 和配置更方便

类比理解

使用云平台就像租用健身房,而不是在家里建一个健身房。你只需要在需要锻炼时去健身房,使用专业的器材,用完就走。

这并不意味着本地部署不重要,而是对于课程阶段,云平台更容易把注意力放在"安全能力提升"而非"底层环境排障"上。选定了平台之后,下面按五步流程完成完整的环境配置。

3 环境配置总流程

创建工作空间

  • 访问云端开发环境(本课程默认使用腾讯 Cloud Studio)
  • 选择 Python 3Data Science 模板
  • 启用 GPU 支持并命名工作空间(例如 ai-security-lab
  • 课程建议配置:NVIDIA Tesla T4(16GB 显存)

创建隔离环境

使用虚拟环境隔离依赖,避免后续实验互相污染。

安装固定依赖

固定关键库版本,确保你和同学、以及未来的自己都能复现结果。

运行最小验证脚本

验证 Python 版本、库版本和 CUDA 可用性,确认环境真正可用。

执行首个模型调用

使用课程实验同款模型 Qwen/Qwen2-1.5B-Instruct 验证“推理链路”完整可用,作为后续安全实验的起点。

4 Python 环境配置

4.1 检查 Python 版本

检查版本
python --version
# 或
python3 --version

建议使用 Python 3.8 或更高版本。

4.2 创建并激活虚拟环境

创建并激活虚拟环境
# 创建虚拟环境
python3 -m venv ai_security_env

# 激活虚拟环境
source ai_security_env/bin/activate  # Linux/Mac
# 或
ai_security_env\Scripts\activate     # Windows

为什么一定要用虚拟环境?

虚拟环境的本质是“依赖隔离”。它能避免你在一个实验里升级了库版本,导致另一个实验突然失效。

5 安装核心依赖库

安装必要的 Python 库
# 升级 pip
pip install --upgrade pip

# 安装核心库(固定版本,保证可复现)
pip install transformers==4.46.3 torch==2.5.1 numpy==1.26.4 matplotlib==3.9.3 accelerate==1.2.1
库名版本作用
transformers4.46.3Hugging Face 预训练模型库,负责模型与分词器加载
torch2.5.1深度学习框架,负责底层张量计算与推理
numpy1.26.4数值计算库,处理数组和矩阵运算
matplotlib3.9.3可视化库,用于展示实验结果
accelerate1.2.1设备调度与加速工具,优化推理执行

固定版本不是"保守做法",而是安全实验的基础。否则同一测试在不同机器上可能得到不一致结果。

版本更新说明

上述版本为 2025-2026 学年推荐版本。AI 生态迭代较快,授课教师可在每学期开课前运行 pip install --upgrade transformers torch accelerate 获取最新稳定版,并更新此处的版本号以保持课程一致性。如遇兼容问题,优先确保 transformerstorch 的 CUDA 版本匹配。

6 验证安装是否成功

验证环境配置
import torch
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")

import transformers
print(f"Transformers version: {transformers.__version__}")

import numpy as np
print(f"NumPy version: {np.__version__}")

如何解释验证结果

  • CUDA available: True:说明当前环境可使用 GPU。
  • CUDA available: False:不一定是错误,可能是 CPU 实例;若课程实验要求 GPU,请切换实例再测。
  • 库版本与预期一致:说明环境已具备可复现实验基础。

7 加载第一个模型(最小链路验证)

加载 Qwen2-1.5B-Instruct 并完成一次对话
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "Qwen/Qwen2-1.5B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)

messages = [
    {"role": "system", "content": "你是一个有帮助的AI助手。"},
    {"role": "user", "content": "请用一句话介绍 AI 安全。"}
]

text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=64,
    temperature=0.7,
    do_sample=True
)

generated_ids = outputs[0][inputs.input_ids.shape[-1]:]
print(tokenizer.decode(generated_ids, skip_special_tokens=True))

这一步的重点不是“生成质量”,而是确认三件事:模型能加载、推理能执行、输出能稳定返回。

8 常见问题排查

问题torch.cuda.is_available() 返回 False

排查顺序

  • 确认实例类型是否为 GPU
  • 重启工作空间并重新连接
  • 检查平台侧 GPU 配额或会话是否过期

问题:加载模型时报 OutOfMemoryError

解决方案

  • 先换小模型(如 Qwen/Qwen2-0.5B-Instruct 而不是 Qwen/Qwen2-1.5B-Instruct
  • 尝试 model.half() 降低显存占用
  • 减小批量大小(batch size)

问题pip install 失败

解决方案

  • 升级 pip:pip install --upgrade pip
  • 检查网络与 DNS
  • 使用镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

9 实验习惯最佳实践

良好习惯

  1. 先记录再修改:每次变更依赖前先保存当前环境清单
  2. 每次实验可复现:保留输入、参数、输出和版本信息
  3. 资源有预算意识:持续关注 GPU 占用与运行时长
  4. 代码与结论一起保存:Notebook 中同时记录实验代码与观察结论
  5. 结束后清理资源:释放模型和会话,避免不必要成本

10 推荐的项目结构

为了让实验过程更清晰、协作更顺畅,建议采用如下结构:

01_environment_test.ipynb
02_vulnerability_scan.ipynb
requirements.txt
README.md

配套实验

动手实践

完成本章学习后,请进行 实验 1.1:环境配置,在实际操作中验证你的环境是否真正达到“可复现、可隔离、可验证”三个目标。

常见问题

本章小结

  1. 本章核心不是“安装工具”:而是建立可复现、可隔离、可验证的实验基线
  2. 云平台优先是阶段性策略:先降低环境门槛,再聚焦安全能力提升
  3. 配置流程要形成闭环:创建环境 -> 安装依赖 -> 验证结果 -> 最小模型测试
  4. 排障要有顺序:先查实例与资源,再查依赖与代码
  5. 良好习惯决定长期效率:规范记录、版本管理和资源清理缺一不可

课后思考

自测 Quiz

1. 本课程推荐的实验平台和 GPU 配置是什么?

2. 环境搭建的三项核心原则是什么?

3. 为什么实验中需要固定依赖版本?

延伸阅读

🛡️ AI 安全助教

随时为你解答 AI 安全相关问题