2、AI开发环境搭建:Python虚拟环境配置、TensorFlow/PyTorch安装、依赖库管理
说实话,搞AI安全这些年,我见过太多人栽在环境搭建上。
明明代码逻辑没问题,一跑就报错。十有八九是环境没配好。我自己刚入行那会儿,也在这上面浪费过整整两天。嗯,今天咱们就把这事彻底说清楚。
2.1 为什么必须用虚拟环境?
你想想看,一个项目用TensorFlow 2.10,另一个用2.4。要是全装到系统Python里,不打架才怪。
虚拟环境说白了就是给每个项目一个独立的“小房间”。里面的Python版本、依赖库互不干扰。我个人习惯,每个AI项目都新建一个虚拟环境。哪怕只是写个测试脚本,也绝不偷懒。
核心原则:一个项目,一个环境,一份依赖清单。
2.2 Python虚拟环境配置实战
Python自带的venv模块就够用。不需要额外装东西。
2.2.1 创建虚拟环境
# 在项目目录下执行
python -m venv ai_security_env
这条命令会创建一个叫ai_security_env的文件夹。里面包含了独立的Python解释器和pip。
小技巧:我习惯把环境建在项目根目录下。这样一眼就能看到,删除项目时也不会留下垃圾。
2.2.2 激活虚拟环境
Windows和Mac/Linux的命令不一样。别记混了。
| 操作系统 | 激活命令 |
|---|---|
| Windows (CMD) | ai_security_env\Scripts\activate |
| Windows (PowerShell) | .\ai_security_env\Scripts\Activate.ps1 |
| macOS / Linux | source ai_security_env/bin/activate |
激活成功后,命令行前面会出现(ai_security_env)的标识。看到这个,就说明你已经在虚拟环境里了。
注意:我曾经遇到过PowerShell执行策略限制,脚本跑不了。解决办法是用管理员权限执行:Set-ExecutionPolicy Unrestricted -Scope CurrentUser。或者干脆用CMD。
2.2.3 退出虚拟环境
deactivate
就这么简单。退出后,命令行前面的环境标识就消失了。
2.3 TensorFlow与PyTorch安装
这两个框架是AI安全研究的左膀右臂。我两个都用,但场景不同。
2.3.1 安装TensorFlow
先确认你的Python版本。TensorFlow 2.x 要求 Python 3.7-3.11。我建议用3.9或3.10,兼容性最好。
# CPU版本(通用)
pip install tensorflow
# GPU版本(需要NVIDIA显卡)
pip install tensorflow-gpu
避坑指南:我曾经在Windows上装GPU版,折腾了三个小时。后来发现是CUDA和cuDNN版本没对齐。TensorFlow 2.10对应CUDA 11.2和cuDNN 8.1。一定要去官网查版本对应表。
验证安装:
python -c "import tensorflow as tf; print(tf.__version__)"
2.3.2 安装PyTorch
PyTorch的安装更灵活。官方提供了根据环境自动生成命令的工具。我个人习惯直接指定版本。
# CPU版本
pip install torch torchvision torchaudio
# GPU版本(CUDA 11.8)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
我的经验:PyTorch的GPU版本安装比TensorFlow省心。只要CUDA装对了,基本一次过。我建议新手先从PyTorch入手,环境问题少一些。
验证安装:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
如果cuda.is_available()返回True,恭喜你,GPU环境配好了。
2.4 依赖库管理
项目做大了,依赖库会越来越多。怎么管理?用requirements.txt。
2.4.1 生成依赖清单
# 导出当前环境所有依赖
pip freeze > requirements.txt
打开这个文件,你会看到类似这样的内容:
numpy==1.24.3
pandas==2.0.3
tensorflow==2.13.0
torch==2.0.1
...
2.4.2 从清单恢复环境
换一台机器,或者别人要跑你的代码:
pip install -r requirements.txt
一条命令,所有依赖全部装好。省心吧?
重要:我见过有人把整个环境的pip freeze直接扔进requirements.txt。里面一堆跟项目无关的库。正确做法是:只记录项目真正用到的依赖。手动维护一个精简版清单。
2.4.3 常用AI安全依赖库
除了TensorFlow和PyTorch,做AI安全还需要这些:
| 库名 | 用途 | 安装命令 |
|---|---|---|
| scikit-learn | 传统机器学习算法、数据预处理 | pip install scikit-learn |
| matplotlib | 数据可视化、绘制攻击效果图 | pip install matplotlib |
| seaborn | 更美观的统计图表 | pip install seaborn |
| adversarial-robustness-toolbox | 对抗样本生成与防御(IBM出品) | pip install adversarial-robustness-toolbox |
| cleverhans | 对抗攻击工具库(Google出品) | pip install cleverhans |
| foolbox | 另一个对抗攻击框架,轻量级 | pip install foolbox |
建议:别一次性装太多。用到什么装什么。我刚开始做AI安全时,一口气装了20多个库,结果一半没用上。还导致依赖冲突,排查了半天。
2.5 完整环境搭建流程(我的标准操作)
好了,把上面这些串起来。这是我每次开始新项目时的标准流程:
- 创建项目目录:
mkdir ai_vuln_scanner && cd ai_vuln_scanner - 创建虚拟环境:
python -m venv venv - 激活环境:
source venv/bin/activate(Windows用对应命令) - 升级pip:
pip install --upgrade pip - 安装核心框架:根据项目需求装TensorFlow或PyTorch
- 安装辅助库:按需安装scikit-learn、matplotlib等
- 生成依赖清单:
pip freeze > requirements.txt - 验证环境:写一个简单的导入测试脚本
最后提醒:千万别在系统Python环境里直接装东西。我见过有人把系统Python搞崩了,结果系统工具都用不了。虚拟环境是你的安全网,用好它。
环境搭好了,后面的事就顺了。下一章咱们开始真正动手,写第一个AI漏洞扫描脚本。
咨询更多资料,