附录C:常见问题(FAQ)

CUDA out of memory 怎么办?

GPU 显存不足是深度学习训练中最常见的问题,可通过以下方法解决:

  • 减小 batch size:将训练批次大小减半或更小,这是最直接有效的方法
  • 使用混合精度训练:PyTorch 提供自动混合精度(AMP)功能,可节省约一半显存
    from torch.cuda.amp import autocast, GradScaler
    scaler = GradScaler()
    with autocast():
        outputs = model(inputs)
        loss = criterion(outputs, targets)
  • 清理缓存:在训练循环中定期清理不需要的缓存
    import torch
    torch.cuda.empty_cache()
  • 减少模型尺寸:使用更小的模型或减少输入数据分辨率
  • 梯度累积:用多次小 batch 的梯度累积模拟大 batch 效果
模型下载慢/失败怎么办?

由于网络原因,从 Hugging Face 下载模型可能较慢或失败,可尝试以下方案:

  • 使用国内镜像:设置环境变量使用镜像站点
    export HF_ENDPOINT=https://hf-mirror.com
  • 使用 huggingface-cli 下载:
    pip install huggingface-hub
    huggingface-cli download --resume-download meta-llama/Llama-2-7b --local-dir ./models
  • 在代码中设置镜像:
    import os
    os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
    from transformers import AutoModel
    model = AutoModel.from_pretrained("bert-base-chinese")
  • 手动下载:从镜像网站手动下载模型文件后放到本地缓存目录
ModuleNotFoundError 怎么解决?

模块未找到错误通常由以下原因导致:

  • 未安装模块:使用 pip 或 conda 安装缺失的库
    pip install 模块名
    # 或
    conda install 模块名
  • 环境未激活:确认当前终端已激活正确的 conda 环境
    conda activate ai-env
  • 路径问题:检查 Python 解释器路径是否正确
    import sys
    print(sys.executable)  # 查看当前 Python 路径
    print(sys.path)        # 查看模块搜索路径
  • 名称拼写错误:检查 import 语句中的模块名是否拼写正确
API Key 怎么申请和管理?

使用大模型 API 需要申请对应的 API Key,以下是主要平台的申请入口和管理建议:

管理建议:

  • 使用 .env 文件存储密钥,避免硬编码到代码中
    # .env 文件
    OPENAI_API_KEY=sk-xxxxxxxx
    DEEPSEEK_API_KEY=sk-xxxxxxxx
  • 使用 python-dotenv 加载环境变量
    from dotenv import load_dotenv
    import os
    load_dotenv()
    api_key = os.getenv("OPENAI_API_KEY")
  • 将 .env 文件添加到 .gitignore,防止密钥泄露
没有 GPU 可以学 AI 吗?

完全可以!虽然没有 GPU 会限制大规模模型的训练速度,但学习 AI 理论和运行中小规模模型完全可以在 CPU 上进行。此外,还有多种免费/低成本的 GPU 资源可用:

  • CPU 运行:适合学习基础概念、小规模数据集实验、模型推理
  • Google Colab:免费提供 Tesla T4 GPU,适合学习和原型验证
    # 在 Colab 中切换运行时类型为 GPU
    import torch
    print(torch.cuda.get_device_name(0))  # 输出 Tesla T4
  • Kaggle:每周提供 30 小时免费的 NVIDIA T4/P100 GPU
  • AutoDL:国内 GPU 租用平台,按小时计费,价格相对实惠
Python 版本应该选哪个?

Python 版本的选择需要考虑兼容性和稳定性:

  • 推荐版本:3.9 - 3.11
  • Python 3.9:成熟稳定,几乎所有库都支持
  • Python 3.10:主流选择,语法改进(如 match-case)
  • Python 3.11:性能提升明显,大部分新库已支持
  • 不推荐:Python 3.12(部分科学计算库尚未完全适配)、Python 3.8 及以下(即将或已经停止维护)
注意:某些特定模型或框架可能对 Python 版本有严格要求,安装前请查阅官方文档的兼容性说明。
conda 和 pip 有什么区别?
特性 conda pip
包来源 Anaconda 仓库、conda-forge PyPI(Python Package Index)
非 Python 依赖 支持(C 库、CUDA 等) 不支持(需手动安装系统依赖)
环境管理 内置环境管理功能 需配合 virtualenv/venv 使用
安装速度 预编译二进制包,通常更快 部分包需本地编译,较慢
适用场景 数据科学、深度学习环境搭建 纯 Python 包安装

建议:优先使用 conda 安装基础依赖(如 PyTorch、CUDA),pip 作为补充安装 PyPI 上的专用库。两者可在同一环境中混合使用。

Jupyter Notebook 卡顿怎么办?

Notebook 运行缓慢或卡顿可从以下方面排查和优化:

  • 清理输出:大量图像或日志输出会拖慢浏览器,定期清理单元格输出
    from IPython.display import clear_output
    clear_output(wait=True)
  • 重启内核:长时间运行后内存可能累积,重启内核可释放资源
    菜单栏:Kernel > Restart Kernel
  • 减少内存占用:及时删除不再使用的大变量
    del large_tensor
    import gc
    gc.collect()
  • 增加内存:如果经常内存不足,考虑使用配置更高的机器或云服务器
  • 关闭自动保存:大文件自动保存可能造成卡顿,可调整保存间隔
如何查看模型是否加载成功?

加载预训练模型后,可通过以下方式验证模型状态:

from transformers import AutoModel, AutoTokenizer

model_name = "bert-base-chinese"
model = AutoModel.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# 1. 打印模型结构(前5层)
print(model)

# 2. 统计模型参数量
total_params = sum(p.numel() for p in model.parameters())
trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
print(f"总参数量: {total_params:,}")
print(f"可训练参数量: {trainable_params:,}")
print(f"模型大小: {total_params * 4 / 1024 / 1024:.2f} MB (FP32)")

# 3. 测试前向传播
text = "这是一个测试"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
print(f"输出形状: {outputs.last_hidden_state.shape}")
print("模型加载成功并可以正常推理!")
训练时 loss 不下降怎么办?

Loss 不下降说明模型没有有效学习,需要从多个维度排查:

  • 检查学习率:学习率过大导致震荡,过小导致更新缓慢。尝试学习率范围 1e-5 到 1e-2 之间的不同值
  • 数据预处理:检查输入数据是否归一化、标签是否正确、是否存在数据泄漏
  • 模型结构:确认激活函数、损失函数与任务类型匹配(如分类任务用 CrossEntropyLoss)
  • 梯度检查:确认反向传播正常执行,梯度没有消失或爆炸
    for name, param in model.named_parameters():
        if param.grad is not None:
            print(f"{name}: grad norm = {param.grad.norm().item()}")
  • 简化验证:先用很小的数据集(甚至单个样本)过拟合,确认模型有能力学习
如何选择合适的模型?

模型选择需要综合考虑任务需求、数据规模和计算资源:

  • 任务类型:
    • 文本分类:BERT、RoBERTa、DistilBERT
    • 文本生成:GPT 系列、LLaMA、ChatGLM
    • 图像分类:ResNet、EfficientNet、ViT
    • 目标检测:YOLO、DETR
  • 数据量:数据少选小模型或进行迁移学习,数据充足可训练大模型
  • 计算资源:资源有限选择轻量级模型(DistilBERT、MobileNet)
  • 精度要求:高精度场景选大模型,实时推理场景选轻量化模型
AI 学习需要多强的电脑?

不同学习阶段对硬件的要求差异很大,以下是配置建议:

学习阶段 CPU 内存 GPU 适用场景
入门学习 任意现代 CPU 8GB+ 无需 / 核显 理论学习、小规模代码实验
基础实践 i5/R5 及以上 16GB+ GTX 1060 6GB 经典模型训练、Kaggle 入门竞赛
进阶开发 i7/R7 及以上 32GB+ RTX 3060 12GB+ 微调大模型、中等规模项目
专业研究 服务器级 CPU 64GB+ RTX 4090 / A100 大规模训练、论文复现

建议:入门阶段不必追求高配,善用 Google Colab、Kaggle 等免费 GPU 资源。确定长期方向后再投资硬件。

场景化问题

第一次用ChatGPT,为什么我的回答不如别人的好?

这通常是因为提示词(Prompt)写得不够具体。试试以下技巧:

  • 角色设定:"你是一位资深产品经理,请帮我..."
  • 输出格式:"请用Markdown格式,分点列出..."
  • 提供背景:"我是做教育培训的,目标用户是K12家长..."
  • 分步骤:"第一步分析需求,第二步给出方案,第三步列出风险"

同样的AI模型,提示词质量决定了输出质量。参考本教程第二十五章的提示词技巧。

写工作报告时,如何让AI帮我写得更专业?

AI辅助写报告的核心是结构化输入

  1. 先给AI一个框架:"请按'背景-目标-行动-结果'四段式写周报"
  2. 提供原始素材:粘贴会议记录、数据截图、邮件内容
  3. 指定风格:"用正式商务语气,避免口语化表达"
  4. 迭代优化:对不满意的部分要求"重写第三段,增加数据支撑"

注意:AI生成的内容需要人工核实数据和事实,不要直接提交。

不会编程,能用AI做数据分析图表吗?

完全可以!现在的AI工具已经大大降低了数据分析门槛:

  • ChatGPT/Claude:直接上传Excel/CSV文件,说"帮我分析销售趋势并生成图表"
  • WPS AI / 飞书智能伙伴:在表格中选中数据,一键生成图表和洞察
  • ChatExcel:用自然语言操作Excel,如"计算各品类销售额占比"
  • Perplexity:上传数据文件,自动分析并给出可视化建议

你不需要写一行代码,只需要清楚地描述你想要什么。

看AI新闻时,怎么判断可信度?

AI领域假消息和夸大宣传很多,判断可信度可以按以下步骤:

  1. 看来源:优先相信学术机构(MIT、Stanford)、知名公司官方博客、顶级会议论文
  2. 看是否有论文:重大突破通常伴随arXiv论文,搜索标题+arXiv
  3. 看实测:有没有第三方独立测试?还是只有官方演示?
  4. 看时间:AI发展快,2年前的"突破"可能已经被超越
  5. 警惕标题党:"颠覆""革命""人类末日"等词汇通常是营销号

推荐可靠的中文资讯源:机器之心、量子位、PaperWeekly。

AI会取代我的工作吗?

这是一个复杂的问题,没有简单的"会"或"不会"。参考以下分析框架:

  • 高风险:重复性高、规则明确、数据驱动的岗位(如基础翻译、数据录入、简单客服)
  • 中风险:部分流程可被AI辅助,但需人类判断(如会计、法律助理、初级编程)
  • 低风险:需要创造力、情感连接、复杂决策、物理操作的岗位(如医生、教师、电工、艺术家)

更准确的问法:不是"AI会不会取代我",而是"会用AI的人会不会取代我"。建议把AI当作工具,提升效率,而不是视之为威胁。

和AI聊天会泄露隐私吗?

有一定风险,需要注意以下几点:

  • 不要输入:身份证号、银行卡号、密码、公司内部机密数据
  • 企业版 vs 个人版:ChatGPT Team/Enterprise有数据保护承诺,免费版可能用于模型训练
  • 本地部署:对隐私要求极高,可以本地运行开源模型(如Llama、Qwen)
  • 脱敏处理:用"某公司""某产品"代替真实名称,保留核心问题

一般性的学习、创意、办公场景,使用主流AI产品的风险较低。

哪些AI工具适合孩子使用?

根据年龄段选择合适的AI工具:

  • 小学生:Khan Academy Kids(AI辅助数学)、可灵/即梦(激发创造力)、语音助手(练习普通话/英语)
  • 中学生:ChatGPT(辅助写作、解释概念)、Desmos(AI数学可视化)、Notion AI(整理笔记)
  • 高中生:Perplexity(研究性学习)、Claude(深度讨论)、GitHub Copilot(编程入门)

家长注意事项:引导孩子把AI当作"助教"而不是"代笔",培养批判性思维,核实AI提供的事实。

如何判断一家AI公司是真有技术还是炒作?

AI领域投资热潮中,鱼龙混杂。识别真技术的方法:

  1. 看团队背景:核心成员是否有顶级AI机构(Google Brain、OpenAI、DeepMind、清华、北大)背景
  2. 看技术产出:有没有发表论文?开源代码?GitHub星标数?
  3. 看产品:能不能公开试用?体验是否流畅?还是只有PPT?
  4. 看落地案例:有没有真实客户?案例是否可验证?
  5. 警惕信号:只说"AI赋能"但不说具体技术、创始人无技术背景、过度营销