PyTorch学习路线
1. 经典机器学习
- 机器学习核心概念:
- 监督学习 vs. 无监督学习
- 分类问题 vs. 回归问题
- 特征 (Feature) 和标签 (Label)
- 训练集 (Training Set) 和测试集 (Test Set)
- 数据预处理:
- 特征工程: 理解其重要性,如识别和处理无效数据(例如将0值替换为均值/中位数)。
- 数据标准化/归一化: 理解为什么需要它,以及 StandardScaler 的工作原理。
- Scikit-learn 库:
- 数据划分: model_selection.train_test_split
- 数据预处理: preprocessing.StandardScaler
- 模型: linear_model.LogisticRegression (逻辑回归)
- 模型训练与预测: .fit() 和 .predict() 方法
- 模型评估: metrics.accuracy_score (准确率), metrics.confusion_matrix (混淆矩阵)
- 模型解释: 如何从训练好的模型中提取信息,如 .coef_ (特征权重)
2. 深度学习与PyTorch
-
PyTorch入门:
- 官方教程是最好的老师: 跟随PyTorch官网的 “60 Minute Blitz” (60分钟入门) 教程。它会带你走过Tensor、数据加载、模型构建和训练的全过程。
- 拆解学习:
- 数据加载: 专门学习torchvision.datasets.CIFAR10和DataLoader如何配合使用,加载并批量化数据。
- 模型构建: 练习用nn.Module搭建一个简单的CNN。先模仿,再尝试自己修改。
- 训练循环: 把训练循环的五个核心步骤背下来,并理解每一步的作用。这是PyTorch的灵魂。
-
深度学习核心概念:
- 神经网络、多层感知机 (MLP)
- 卷积神经网络 (CNN): 核心组件及其作用(卷积层 Conv2d, 池化层 MaxPool2d, 激活函数 ReLU)
- 前向传播 (Forward Pass) 和反向传播 (Backpropagation)
- 损失函数 (Loss Function),特别是交叉熵损失 (Cross-Entropy Loss)
- 优化器 (Optimizer),如 SGD 和 Adam
- Epoch, Batch Size, Iteration 的概念
- 过拟合 (Overfitting) 和欠拟合 (Underfitting)
-
PyTorch 框架:
- Tensor (张量): PyTorch的基本数据结构,及其与NumPy数组的转换。
- 数据集处理:
- torchvision.datasets (如 CIFAR10)
- torchvision.transforms (数据预处理和增强,如 ToTensor, Normalize)
- torch.utils.data.Dataset 和 DataLoader (构建数据加载管道)
- 模型构建:
- torch.nn.Module: 构建自定义网络模型的基类
- 常用层: nn.Conv2d, nn.MaxPool2d, nn.Linear, nn.ReLU, nn.Flatten
- 训练流程:
- 定义损失函数 (如 nn.CrossEntropyLoss)
- 定义优化器 (如 optim.Adam)
- 训练循环 (Training Loop):
- optimizer.zero_grad() # 清空梯度
- outputs = model(inputs) # 前向传播
- loss = criterion(outputs, labels) # 计算损失
- loss.backward() # 反向传播
- optimizer.step() # 更新权重
- 模型评估与使用:
- model.train() 和 model.eval() 模式的切换
- torch.no_grad(): 在评估时关闭梯度计算
- 模型保存与加载 (torch.save, model.load_state_dict)
- 可视化:
- torch.utils.tensorboard.SummaryWriter: 使用TensorBoard记录训练过程
AI agent构建学习路线
前提:已学习了机器学习基础和PyTorch
至少要掌握的AI算法内容
作为一个工程师,不需要深入学习算法的底层原理,但起码要知道这些算法是什么、怎么工作、以及如何构建并参与到工作流中
机器学习
-
过拟合
这是最重要的概念。
需要能判断出Agent在某些任务上表现不佳,是不是因为它“背诵”了某些模式而不是学会了泛化
-
分类 vs. 回归
理解Agent在做决策时,本质上是在进行哪种类型的预测。
-
评估指标
知道什么时候用准确率,什么时候用精确率/召回率。比如,一个医疗诊断Agent,你绝对不希望它漏诊(高召回率)
神经网络
知道:
-
基本结构:
知道它是由“层”(Layers)和“神经元”组成的,并且通过“激活函数”加入了非线性,这使得它能学习复杂模式
-
输入与输出
明白一个神经网络接收什么样的数据(通常是数字向量/张量),输出什么样的数据
-
“深度”的意义
直观理解为什么网络越深,通常能学习到的特征越抽象、越高级(比如从像素点到边缘,再到物体的部件,最后到整个物体)
NLP中的词嵌入技术:核心
这部分和 agent 里的 RAG深度相关,如果要构建一个高质量的RAG系统,就要熟练掌握 Embedding技术的实现
必须掌握以下几点:
-
核心思想
深刻理解**“词嵌入就是把词语/句子映射到一个高维的数学空间,在这个空间里,意思相近的词语/句子,它们的向量在空间中的距离也相近”**
这是构建所有RAG应用和语义搜索的基石。
-
工作原理
知道Embeddings是如何生成的(通过调用OpenAI text-embedding-ada-002 或其他模型的API),以及它们是如何使用的(通过计算向量间的相似度,如余弦相似度,来找到最相关的文本片段)
-
实践应用
能够熟练地将一段文本转换成向量,将这些向量存入向量数据库,并根据一个新的查询向量,从数据库中高效地检索出最相似的几个向量。
知识清单
第一部分:掌握大脑核心:大语言模型(LLM)的API和工程化
-
LLM API熟练使用:
-
OpenAI API (GPT-4, GPT-4o)
这是行业标准,必须掌握。学习如何进行API调用、处理响应、管理API密钥
-
Anthropic Claude API / Google Gemini API
了解其他主流模型的API,知道它们各自的特点(例如Claude的长上下文窗口)
-
开源模型
学习如何通过Hugging Face、Ollama或Replicate等平台,在本地或云端调用开源LLM(如Llama 3)
-
-
提示工程
-
核心技能:
这是与LLM沟通的语言。你不是在训练模型,而是在指导模型。
-
基础:
角色扮演、零样本 (Zero-shot)、少样本 (Few-shot) 提示
-
进阶:
思维链 (Chain-of-Thought, CoT) 引导模型进行复杂推理、生成结构化输出 (JSON)
-
-
核心概念理解:
-
Tokens: 理解文本是如何被量化和计费的
-
Context Window: 知道每个模型的“短期记忆”有多长,以及超出后会发生什么
-
Embeddings: 理解它是一种将文本转换为“意义向量”的技术,是实现记忆和知识库搜索的基础
-
第二部分:赋予大脑记忆和知识:RAG与向量数据库
-
RAG (Retrieval-Augmented Generation):
-
核心架构:
这是目前最重要、最流行的LLM应用架构。它解决了LLM不知道私有数据/近期数据的问题
-
流程:
必须能清晰地解释并实现 Query -> Embed -> Search -> Retrieve -> Augment -> Generate 的完整流程
-
-
向量数据库:
-
作用: 存储和高效检索Embeddings。这是RAG的长期记忆模块
-
技术选型:
-
本地/轻量级:
ChromaDB, FAISS (一个库,不是数据库)。适合快速原型开发
-
云服务/生产级:
Pinecone, Weaviate了解它们的API和使用场景
-
-
第三部分:构建智能体的“身体”和“行动能力”:框架与工具
- AI Agent框架
-
作用:
这些框架将上述所有组件(LLM,Prompt, Memory, Tools)粘合在一起,极大简化了Agent的开发
-
LangChain:
必学。最流行、最全面的框架。学习它的核心概念:Chains (执行链), Agents (智能体循环), Tools (工具)
-
LlamaIndex: 专注于RAG,是构建知识库应用的强大工具
-
AutoGen / CrewAI: 专注于多智能体协作的框架
-
工具使用 / 函数调用
-
Agent的核心:
让LLM从一个聊天机器人变成一个行动者的关键
-
原理:
让LLM能够决定调用哪个外部API或代码函数来获取信息或执行操作
-
实践:
学习OpenAI的Function Calling API,并掌握如何在LangChain中为Agent定义和使用工具(例如,一个能查询天气的API、一个计算器、一个能访问公司数据库的工具)
-
第四部分:将应用落地——部署与工程实践
- Web框架:
- 作用: 为AI Agent提供一个用户界面或API接口
- FastAPI: Python的首选。非常适合为Agent构建高性能的API后端
- Streamlit / Gradio: 用于快速构建漂亮的前端Demo和原型,非常适合展示项目
- 部署与运维:
- 容器化: Docker基础。学习如何将你的AI应用打包成一个Docker镜像
- 云平台: 了解如何在Hugging Face Spaces、Streamlit Community Cloud或主流云平台(AWS, GCP, Azure)上部署你的应用
合适的学习路线
第一阶段:成为一个LLM API调用大师
-
学习LLM API调用:
-
技术:
学习如何使用Python的requests库或官方的openai库,来调用一个LLM的API(推荐从OpenAI的GPT系列开始,因为它的文档和社区最好)
-
需要理解: 什么是API Key,如何构建请求,如何解析返回的JSON数据
-
-
学习提示工程:
- 技术: 这不是写代码,而是学习如何用自然语言精确地指导LLM
- 需要掌握:
- 角色设定: 如何通过系统提示让LLM扮演一个特定角色(例如“你是一个资深的语音助手”)
- 思维链 (Chain-of-Thought): 如何通过一步一步地思考这样的指令,引导LLM解决复杂问题
- 输出格式化: 如何要求LLM返回特定格式的输出,比如JSON,这对于你用FastAPI进行后端处理至关重要
-
项目1:构建一个多功能角色聊天机器人
- 目标: 熟练使用OpenAI API和Prompt Engineering
- 任务: 创建一个简单的Web界面(用Streamlit),用户可以选择不同的角色(如“Python编程助手”、“英语口语教练”、“苏格拉底”),程序会根据选择,使用不同的System Prompt与用户进行高质量对话
- 收获: 精通API调用、掌握核心的提示工程技巧
-
项目2:构建一个高级API封装器
- 任务: 使用FastAPI,创建一个简单的后端服务。它接收一个任务描述(比如“总结这段文字”或“把这段英文翻译成中文”),然后在内部构建一个高质量的Prompt,调用LLM API,最后将LLM返回的干净结果作为API的响应返回
- 目的: 将LLM的强大能力,封装成你可以轻松调用的、可靠的后端服务
第二阶段:构建一个有记忆的专家
-
学习词嵌入的概念与应用:
-
需要理解:
Embeddings 是一种将文本(对话历史)转换成数字向量的技术。在向量空间中,意思相近的文本,它们的向量也相近。 这就是实现智能记忆搜索的魔法
-
实践:
学会如何调用API(如OpenAI的Embedding API)或使用本地库(如sentence-transformers)来将任何一句话变成一个向量
-
-
学习本地向量存储与搜索:
-
技术: 学习一个轻量级的本地向量索引库,FAISS 或 ChromaDB 是最佳选择
-
需要理解:
它们就像一个专门为向量设计的数据库。你可以把成千上万个对话向量存进去,然后用一个新的查询向量,瞬间找出与它最相似的几个历史对话向量
-
-
学习RAG架构:
- 技术: 这是将记忆和大脑结合起来的黄金准则
- 流程:
用户提问 -> 向量化 -> 在向量索引中搜索相关历史 -> 将历史和问题一起打包给LLM -> LLM给出带上下文的回答
-
项目3:与JSON对话
- 任务: 编写一个Python脚本,它可以:
- 读取一个包含多段对话的 JSON 文件
- 使用 Embeddings 将每一段对话向量化,并存入一个本地FAISS索引文件
- 接收一个新的用户输入,向量化后在FAISS中进行搜索,找出最相关的历史对话
- 打印出这些相关的历史对话
- 任务: 编写一个Python脚本,它可以:
-
项目4:与PDF对话——构建一个RAG应用
- 目标: 掌握RAG架构、Embeddings和向量数据库。
- 任务: 创建一个应用,用户可以上传一份PDF文档(比如一份年报或一篇论文),应用会对其进行切割、向量化并存入 ChromaDB。之后,用户可以就这份文档的内容进行提问,系统会从文档中找到相关信息来回答
- 收获: 真正理解并实现了目前最主流的LLM应用架构
第三阶段:迈向真正的智能体
-
学习一个Agent框架 (LangChain):
-
技术:
LangChain是一个“粘合剂”,它把LLM、记忆系统、工具(未来的扩展)等所有组件都封装好了,让你不必编写大量重复的底层代码
-
需要学习:
LangChain中的Memory模块和Chains的概念。它能帮你自动化上面提到的RAG流程
-
-
整合现有系统:
- 技术: 将现有的
ASR -> vLLM -> TTS流程进行改造 - 新的流程:
ASR => FastAPI后端 => LangChain Agent (内部执行RAG记忆检索) => vLLM => FastAPI返回结果 => TTS
- 技术: 将现有的
-
项目5:构建一个简单的生活助理 Agent
- 目标: 掌握LangChain框架和Tool Use
- 任务: 使用LangChain构建一个Agent,并为它提供至少两个工具:
- 一个能调用天气API的工具
- 一个能执行简单数学计算的工具
- 交互示例:
- 你问:“北京今天天气怎么样?” -> Agent判断需要使用天气工具 -> 调用API -> 返回结果
- 你问:“(35+19)*2等于多少?” -> Agent判断需要使用计算工具 -> 执行计算 -> 返回结果
- 收获: 理解了Agent的“思考-行动”循环 (ReAct),让你的AI第一次能够与外部世界交互
第四阶段:成为一个全栈AI工程师
- 项目6:将生活助理 Agent 产品化
- 目标: 掌握应用的封装和部署
- 任务:
- 使用FastAPI将你的Agent封装成一个API端点
- 创建一个简单的React或Vue前端(或者继续用Streamlit)来与这个API交互
- 将整个应用Docker化,并将其部署到Hugging Face Spaces或云服务器上,让你的朋友可以通过公网访问
- 收获: 走完了从想法到原型再到上线部署的全流程,你已经具备了成为一名合格的AI应用工程师的核心能力
学习深度是 T型
-
横向 (广度):
对机器学习、神经网络等领域有宏观的、概念性的理解。知道它们是做什么的,有什么优缺点,能解决什么问题。
-
纵向 (深度):
在与AI Agent 应用开发直接相关的技术上,进行深入的、实践性的学习
这包括:
- LLM API & Prompt Engineering
- RAG 架构
- Embeddings 的原理与应用
- 向量数据库
- LangChain等Agent框架
- Function Calling / Tool Use
-
快速回顾,不要深陷:
花少量时间快速回顾一下机器学习和神经网络的核心概念,确保你对“过拟合”、“评估指标”等有清晰的认识。可以使用一些高质量的视频(如StatQuest, 3Blue1Brown)来建立直观理解,然后就立即停下
-
把主要精力投入到Embeddings:
这是连接“理论”和“Agent应用”最重要的一座桥梁。找一篇专门讲解和实践Embeddings与向量搜索的文章或教程,动手实现一个简单的语义搜索系统
-
然后,立即转向Agent开发
按照项目驱动路线图,开始构建第一个应用。在实践中遇到问题时,再回过头来查阅相关的理论知识,这样的学习效率是最高的