程序员学 AI 踩过的坑:避坑指南
我是辉哥,25年IT老兵,8年软件公司创始人,去年开始系统学AI——不是当旁观者,是真刀真枪跑模型、调提示词、搭RAG、上生产环境。结果?光是本地部署就折腾掉我三周假期,买错显卡、配错环境、被CUDA版本整到怀疑人生。今天不讲大道理,只掏心窝子说四个最痛的坑,全是血泪换来的避坑清单。
1) 本地部署坑:别信“一键安装”,先看显存和驱动
第一个坑,栽在“我以为能跑通”的幻觉里。我买了台i7+32G+RTX 4090的机器,信心满满跑Llama-3-8B,结果OOM直接崩。查日志才发现:模型量化没做、Flash Attention没开、甚至Python进程把显存吃满都没意识到。
更惨的是CUDA版本地狱:PyTorch 2.3要求CUDA 12.1,但我的NVIDIA驱动只支持到12.0——硬升驱动,结果Ubuntu桌面直接黑屏。最后靠nvidia-smi + nvcc --version + python -c "import torch; print(torch.version.cuda)"三连查,才对齐版本链。
✅ 避坑口诀:
- 显存估算公式:
模型参数量(B)× 每参数字节数(FP16=2, INT4=0.5)× 1.2(开销冗余) - Llama-3-8B用AWQ量化后需约6GB显存,别拿3090硬扛;
- 用
docker run --gpus all nvidia/cuda:12.1.1-runtime-ubuntu22.04起干净环境,比本地pip装强十倍; - 驱动版本必须 ≥ CUDA Toolkit最低要求(查nvcr.io/nvidia/pytorch官方镜像说明)。
# 一键检查环境(复制就跑)
nvidia-smi -L && \
nvcc --version && \
python -c "import torch; print(f'PyTorch: {torch.__version__}, CUDA: {torch.version.cuda}')"
2) 工具选择坑:别追新,先建最小闭环
我曾为选框架纠结两周:LangChain?LlamaIndex?Haystack?最后发现——80%的业务需求,用transformers + requests + sqlite三行代码就能干。
LangChain的抽象层太厚,一个简单PDF问答,光是DocumentLoader+TextSplitter+Embeddings+VectorStore配置就绕晕;而LlamaIndex默认用OpenAI Embedding,切本地模型时得重写整个pipeline。
✅ 避坑口诀:
- 初期只用3个工具:
transformers(模型)、llama-cpp-python(本地小模型)、chromadb(向量库); - 拒绝“全家桶”:先实现“上传PDF → 提取文本 → 嵌入 → 相似度检索 → LLM总结”全流程,再考虑加Agent或记忆;
- 工具链越短越好:ChromeDB + Ollama + FastAPI = 2小时搭完可演示Demo。
| 场景 | 推荐工具栈 | 替代方案(慎用) |
|---|---|---|
| 本地小模型推理 | llama-cpp-python + GGUF模型 |
Transformers(显存爆炸) |
| 向量检索 | chromadb(轻量,单文件) |
Milvus(运维成本高) |
| API服务 | FastAPI(无学习成本) |
LangServe(封装过深) |
3) 学习方法坑:别啃论文,先改10行代码
我花两周精读《Attention Is All You Need》,结果写不出一行生成代码。直到某天,我把HuggingFace的text-generation-webui源码下载下来,只改了model_name和max_new_tokens两个参数,看着自己的模型吐出第一句“Hello world”——那一刻才真正入门。
更大的坑是“学完再做”:报了3门AI课,笔记记满50页,却没跑通一个端到端项目。后来砍掉所有理论课,只做一件事:每天用现有模型解决一个真实小问题——比如用llama3:8b自动给Git Commit写中文描述,用bge-m3给内部文档建搜索。
✅ 避坑口诀:
- 学习路径必须是:
跑通Demo → 改参数 → 换数据 → 换模型 → 自己搭Pipeline; - 所有知识必须绑定代码:看到“LoRA微调”,立刻用
peft在Colab跑通;看到“RAG”,马上用chromadb加载自己写的Markdown; - 拒绝“输入-输出”式学习:不理解
attention_mask作用?删掉它,看模型报什么错——错误即真理。
4) 心态坑:接受“70分可用”,拒绝“完美主义”
我曾为让RAG返回精准答案,花5天调分块策略、重写prompt、换3种embedding模型……最后上线发现:用户根本不在意答案是否100%准确,只要快、能读、不胡说。
更致命的是“技术洁癖”:坚持不用API,非要本地全栈;非要用最新开源模型,结果Qwen2.5-72B在4090上跑1token要8秒,体验还不如gpt-3.5-turbo。
✅ 避坑口诀:
- MVP原则:第一版只做“能用”,第二版再优化“好用”,第三版才追求“优雅”;
- 成本意识:本地跑Qwen2-72B每千token成本≈$0.03,API调gpt-4o只要$0.005——算账比调参重要;
- 接受“混搭”:前端用Vercel托管,后端调Ollama API,向量库用Pinecone——能交付的架构才是好架构。
最后送你一句我贴在显示器上的话:AI不是新编程语言,是新生产力杠杆。杠杆不在于多长,而在于你敢不敢撬。
辉哥,25年IT老兵,8年软件公司创始人,现在在学AI,欢迎交流。