adaptive_rag / COLAB_GPU_GUIDE.md
lanny xu
Initial commit
399f3c6
|
raw
history blame
5.89 kB
# 🚀 Google Colab GPU 测试指南
## 📋 概述
我为您创建了两个文件用于在Google Colab上测试GPU性能:
1. **`colab_gpu_demo.ipynb`** - Jupyter Notebook版本(推荐)
2. **`colab_gpu_test.py`** - Python脚本版本
## 🎯 使用方法
### 方法1: 使用Notebook(推荐)
#### 步骤1: 上传到Colab
1. 打开 [Google Colab](https://colab.research.google.com/)
2. 点击 `文件``上传笔记本`
3. 选择 `colab_gpu_demo.ipynb`
#### 步骤2: 启用GPU
1. 点击顶部菜单 `运行时``更改运行时类型`
2. 硬件加速器选择 `GPU`
3. GPU类型选择 `T4`(免费版)或 `A100`(Colab Pro)
4. 点击 `保存`
#### 步骤3: 运行测试
1. 点击 `运行时``全部运行`
2. 或者逐个单元格运行(Shift + Enter)
### 方法2: 使用Python脚本
#### 步骤1: 上传文件
1. 在Colab中创建新笔记本
2. 点击左侧文件夹图标
3. 上传 `colab_gpu_test.py`
#### 步骤2: 运行脚本
```python
# 在Colab单元格中运行
!python colab_gpu_test.py
```
## 📊 测试内容
### 1. GPU环境检测 ✅
- CUDA可用性检查
- GPU型号和显存信息
- nvidia-smi输出
### 2. 矩阵运算性能测试 ⚡
- CPU vs GPU 5000x5000矩阵乘法
- 预期加速比: **10-50x**
### 3. 文本嵌入性能测试 📝
- 使用sentence-transformers
- 1000个文本的嵌入生成
- CPU vs GPU对比
- 预期加速比: **5-10x**
### 4. GraphRAG组件测试 🔍
- 简化版知识图谱构建
- 实体和关系管理
- GPU加速的向量检索
### 5. 显存监控 💾
- 实时显存使用情况
- 内存分配统计
## 📈 预期结果
### Google Colab 免费版 (T4 GPU)
| 测试项目 | CPU时间 | GPU时间 | 加速比 |
|---------|---------|---------|--------|
| 矩阵运算 (5000x5000) | ~8-10秒 | ~0.3-0.5秒 | 20-30x |
| 文本嵌入 (1000文本) | ~30-40秒 | ~5-8秒 | 5-7x |
| GraphRAG索引 (100文档) | ~15分钟 | ~3-5分钟 | 3-5x |
### Google Colab Pro (A100 GPU)
| 测试项目 | CPU时间 | GPU时间 | 加速比 |
|---------|---------|---------|--------|
| 矩阵运算 | ~8秒 | ~0.2秒 | 40x |
| 文本嵌入 | ~35秒 | ~3秒 | 10-12x |
| GraphRAG索引 | ~15分钟 | ~2-3分钟 | 5-7x |
## 🔧 运行完整GraphRAG项目
如果GPU测试成功,可以在Colab上运行完整的GraphRAG项目:
### 步骤1: 上传项目文件
在Colab中创建新的单元格:
```python
# 方式1: 从Google Drive加载
from google.colab import drive
drive.mount('/content/drive')
# 复制项目文件
!cp -r /content/drive/MyDrive/adaptive_RAG /content/
%cd /content/adaptive_RAG
```
或者:
```python
# 方式2: 从GitHub克隆
!git clone YOUR_GITHUB_REPO_URL
%cd adaptive_RAG
```
### 步骤2: 安装依赖
```python
# 安装基础依赖
!pip install -q -r requirements.txt
# 安装GraphRAG依赖
!pip install -q -r requirements_graphrag.txt
```
### 步骤3: 配置API密钥
```python
import os
from getpass import getpass
# 安全输入API密钥
os.environ['TAVILY_API_KEY'] = getpass('输入 TAVILY_API_KEY: ')
# 验证
print("✅ API密钥已设置")
```
### 步骤4: 运行GraphRAG
```python
# 运行主程序
!python main_graphrag.py
```
### 步骤5: 下载结果
```python
# 下载构建好的知识图谱
from google.colab import files
# 下载图谱文件
files.download('data/knowledge_graph.json')
print("✅ 图谱已下载到本地")
```
## 💡 优化建议
### 1. 批处理大小优化
`config.py` 中调整:
```python
# GPU优化配置
GRAPHRAG_BATCH_SIZE = 20 # GPU可以处理更大批次
```
### 2. 使用GPU优化的模型
```python
# 使用更大的嵌入模型(GPU环境)
EMBEDDING_MODEL = "sentence-transformers/all-mpnet-base-v2"
```
### 3. 启用混合精度
```python
# 在entity_extractor.py中
import torch
torch.set_float32_matmul_precision('medium') # 提升性能
```
## ⚠️ 注意事项
### Colab资源限制
1. **免费版限制**:
- 连续使用时间: 最多12小时
- GPU使用配额: 每周有限
- 闲置超时: 90分钟自动断开
2. **建议**:
- 定期保存进度到Google Drive
- 使用`files.download()`下载重要结果
- 避免长时间空闲
### 数据持久化
```python
# 定期保存到Google Drive
from google.colab import drive
drive.mount('/content/drive')
# 保存图谱
import shutil
shutil.copy(
'data/knowledge_graph.json',
'/content/drive/MyDrive/graphrag_backup.json'
)
```
## 🐛 常见问题
### Q1: GPU连接失败
**A**: 检查运行时类型
```python
import torch
print(f"CUDA可用: {torch.cuda.is_available()}")
# 如果False,重新设置运行时类型
```
### Q2: 内存不足
**A**: 减小批处理大小
```python
GRAPHRAG_BATCH_SIZE = 5 # 降低批次
```
### Q3: 会话超时
**A**: 使用Colab Pro或定期运行代码保持活跃
```python
# 在后台定期执行
import time
while True:
print("Keep alive...")
time.sleep(300) # 每5分钟执行一次
```
## 📚 参考资源
- [Google Colab官方文档](https://colab.research.google.com/notebooks/intro.ipynb)
- [GPU加速指南](https://colab.research.google.com/notebooks/gpu.ipynb)
- [Colab Pro定价](https://colab.research.google.com/signup)
## 🎓 下一步学习
1. **理解GPU加速原理**: 查看测试代码中的性能对比
2. **优化GraphRAG参数**: 根据GPU性能调整配置
3. **扩展到生产环境**: 考虑使用AWS/GCP的GPU实例
---
## ✅ 总结
| 优势 | 说明 |
|------|------|
| 🆓 免费GPU | T4 GPU免费使用 |
| ⚡ 高性能 | 3-10倍加速 |
| 🔄 零配置 | 无需本地安装 |
| 💾 自动保存 | 集成Google Drive |
| 🌐 随时访问 | 仅需浏览器 |
**推荐**: 在本地CPU环境速度慢时,使用Colab GPU可以大幅提升GraphRAG索引构建速度!
---
**立即开始**: 上传 `colab_gpu_demo.ipynb` 到 [Google Colab](https://colab.research.google.com/) 并启用GPU! 🚀