面向软件工程师的生成式AI学习大纲
面向软件工程师的生成式AI学习大纲
随着AI大模型的出现,生成式AI已经成为了科技界的新宠,无论是AI绘画、AI写作、AI编程、AI音乐、AI视频,还是AI对话,都离不开生成式AI。中国甚至提出了“AI+”战略,将AI与各行各业相结合,以实现产业升级和转型。就在最近中国教育部办公厅通知,将加强中小学人工智能教育,将AI教育纳入中小学课程体系,并鼓励学生学习AI相关知识。
在AI如此火热的背景下,软件工程师们其实处在学习和使用AI的前线,可以预见的是,未来所有的传统软件将被基于AI的软件所取代,软件工程师们将面临前所未有的挑战和机遇。因此,软件工程师们需要学习AI相关知识,以适应未来的发展。
最近每当和身边的同事聊起AI时,他们都会问我,作为一个软件工程师,应该如何学习AI?应该学习哪些知识?方向在哪里?
是啊,这其实也是我自己一直在思考的问题。
很庆幸,我本科学习数学和应用数学,研究生的时候很庆幸阴差阳错学习了人工智能方向。其实相比其他人,我有更好的数学基础,这成为我后来学习AI的一大优势。可惜15年前遇到经济危机,当时AI还处于早期阶段,考虑到现实情况,选择了软件开发。
不过由于一直对AI非常感兴趣,所以这些年一直都在关注AI的发展,也一直在学习AI相关的知识。通过这些年的积累,作为软件工程师我积累了很多软件开发和架构的经验,同时我也具有良好的AI基础和背景。我觉得这是我职业生涯的有一个转折点。AI的浪潮给了我新的机遇。
所以,我决定站在软件工程师的视角,将我这些年学习AI的经验和知识整理成一个学习大纲,分享给所有对AI感兴趣的软件工程师们。
大纲将主要分为四个部分:
- 基础知识:AI与生成式AI概述、机器学习基础及理论、神经网络基础
- 大语言模型(LLM):什么是大语言模型、Transformer架构、预训练与微调、注意力机制、大语言模型的训练
- 生成式AI应用:Prompt Engineering、RAG (Retrieval-Augmented Generation)、AI Agent、文本生成应用、多模态生成
- 工程实践:常用的提示词模板、平台及工具、大语言模型类型、图像生成模型、音乐生成模型。
大家可以持续关注我的博客,我会持续更新这部分内容。并且收集相关的学习资料,分享给大家。
第一部分:基础知识
基础知识部分主要介绍AI与生成式AI的基本概念、机器学习基础及理论、神经网络基础等,这部分内容涉及基础算法、理论及架构等,需要有良好的数学基础。不过这部分如果能够坚持啃下来的话,一定会对AI有更深刻的理解。不过大部分人可以主要关注机器学习基础及理论、神经网络基本原理部分,因为这部分内容是生成式AI的基础,帮助你能够更好的理解大语言模型。
AI与生成式AI概述
人工智能基本概念
人工智能(AI)是指通过计算机系统模拟人类智能的能力,使其能够执行通常需要人类智慧的任务。以下是人工智能的一些基本概念:
机器学习(Machine Learning):
- 机器学习是AI的核心领域之一,它使计算机能够通过数据学习和改进,而无需显式编程。常见的机器学习方法包括监督学习、无监督学习和强化学习。
深度学习(Deep Learning):
- 深度学习是机器学习的一个子领域,使用多层神经网络(深度神经网络)来处理复杂的数据。它在图像识别、自然语言处理等领域表现出色。
自然语言处理(Natural Language Processing, NLP):
- NLP使计算机能够理解、解释和生成人类语言。应用包括语音识别、机器翻译、情感分析等。
计算机视觉(Computer Vision):
- 计算机视觉使机器能够“看”和理解图像或视频内容。应用包括图像分类、物体检测、人脸识别等。
专家系统(Expert Systems):
- 专家系统是基于规则的系统,模拟人类专家的决策过程。它们通常用于诊断、规划和预测等任务。
强化学习(Reinforcement Learning):
- 强化学习是一种通过试错来学习的方法,系统通过奖励和惩罚来优化行为。它在游戏、机器人控制等领域有广泛应用。
知识表示与推理(Knowledge Representation and Reasoning):
- 这是AI中关于如何表示知识和进行逻辑推理的领域。它包括使用逻辑、语义网络、本体论等方法来存储和处理知识。
机器人学(Robotics):
- 机器人学结合了AI和工程学,研究如何设计和制造能够执行复杂任务的机器人。
认知计算(Cognitive Computing):
- 认知计算旨在模拟人类的思维过程,使计算机能够解决复杂问题,理解自然语言,并从经验中学习。
人工智能伦理(AI Ethics):
- 随着AI技术的发展,伦理问题变得越来越重要。这包括隐私、偏见、透明度和责任等问题。
通用人工智能(Artificial General Intelligence, AGI):
- AGI是指具有与人类相当或超过人类智能水平的AI系统,能够执行任何智力任务。目前,AGI仍处于理论阶段。
弱人工智能(Narrow AI):
- 弱人工智能是指专门设计用于执行特定任务的AI系统,如语音助手或推荐系统。它们不具备通用智能。
生成式AI
生成式人工智能(Generative AI)是一种能够生成内容(如文本、图像、音频、视频、代码等)的人工智能技术。它的核心技术包括深度学习、神经网络、生成对抗网络(GANs)、变分自编码器(VAEs)以及大型语言模型(LLMs)等。最典型的例子包括OpenAI的ChatGPT、DALL·E、Stable Diffusion等,它们可以基于用户的输入生成新的、类似人类创造的内容。
生成式AI与传统AI的主要区别
对比维度 | 生成式AI | 传统AI |
---|---|---|
核心任务 | 生成新内容(文本、图像、音频等) | 识别、分类、预测、回归 |
数据处理 | 通过模式学习生成新数据 | 主要用于分析已有数据 |
模型类型 | 主要使用深度神经网络(如Transformer、GAN、VAE) | 主要使用决策树、随机森林、SVM、深度学习(如CNN、RNN) |
示例应用 | ChatGPT(文本生成)、DALL·E(图像生成)、MusicLM(音乐生成) | 语音识别(Siri)、人脸识别、异常检测、推荐系统 |
主要优势 | 能够创造新颖内容,提高生产力 | 高效处理结构化任务,如分类、回归、检测 |
训练方式 | 需要大量数据进行无监督/自监督学习 | 监督学习、强化学习居多 |
1. 传统AI的特点
- 主要用于模式识别和预测,比如人脸识别、垃圾邮件过滤、语音识别、机器翻译等。
- 依赖于明确的规则和结构化数据,如医疗诊断、金融风险预测等。
- 以分类(classification)、回归(regression)、聚类(clustering)等任务为主。
2. 生成式AI的特点
- 主要用于内容创作,如生成对话、绘画、写作、代码等。
- 采用深度学习和大规模预训练,能够理解复杂语境并创造新数据。
- 适用于文本补全、代码生成、图像生成、数据增强等任务。
传统AI更擅长结构化任务,如预测、分类、检测,而生成式AI则擅长创造,它可以自动生成高质量内容,提高生产力和创新能力。未来,二者可以结合,形成更智能的AI系统,如生成增强的搜索(RAG)、智能决策系统等。
专家系统
专家系统是早期人工智能的一个重要分支,它可以看作是一类具有专门知识和经验的计算机智能程序系统,一般采用人工智能中的知识表示和知识推理技术来模拟通常由领域专家才能解决的复杂问题。
一般来说,专家系统=知识库+推理机,因此专家系统也被称为基于知识的系统。一个专家系统必须具备三要素:
- 领域专家级知识
- 模拟专家思维
- 达到专家级的水准
以上定义引用自维基百科:https://zh.wikipedia.org/wiki/%E4%B8%93%E5%AE%B6%E7%B3%BB%E7%BB%9F
专家系统(Expert System)主要由以下核心组件组成:
- 知识库(Knowledge Base):存储领域专家的知识,包括事实、规则和启发式经验。
- 推理机(Inference Engine):应用知识库中的规则,通过逻辑推理(如前向推理或后向推理)来得出结论。
- 用户接口(User Interface):用户与系统交互的界面,输入问题并接收系统的决策或建议。
特点
- 专注于特定领域(如医学诊断、财务分析、设备故障排查)。
- 规则驱动(基于 if-then 规则进行推理)。
- 可解释性强(可以解释其推理过程)。
应用领域
- 医学(如 MYCIN 诊断细菌感染)。
- 工程(如 XCON 进行计算机系统配置)。
- 金融(如信用评估、投资分析)。
尽管专家系统在某些领域表现良好,但它们依赖于人工知识构建,难以适应复杂和动态环境。
AI大模型的出现,给专家系统带来了新的发展方向
AI大模型(如GPT、Gemini,deepseek等)出现后,专家系统的发展方向主要体现在以下几个方面:
1. 结合大模型提升知识获取和推理能力
传统专家系统依赖人工构建知识库和规则,维护成本高、扩展性差。大模型可以通过自然语言处理(NLP)自动提取知识,并结合专家系统的规则推理,形成更强大的智能系统。例如:
- 用大模型进行知识挖掘,自动更新专家系统的知识库。
- 结合专家系统的推理能力,使大模型的输出更可解释、更可信。
2. 从基于规则的推理向混合推理发展
专家系统原本依赖符号推理(Symbolic Reasoning),而大模型则更擅长神经推理(Neural Reasoning)。未来,专家系统可能采用神经符号混合推理(Neuro-Symbolic AI),结合两者的优势,例如:
- 神经网络学习隐含知识,专家系统进行可解释推理,增强AI决策的透明度。
- 专家系统补充大模型的可控性,解决大模型幻觉(Hallucination)问题。
3. 领域专家系统与大模型的个性化融合
大模型的知识广而不深,而专家系统则擅长某个具体领域。未来的发展方向包括:
- 基于大模型的专家系统定制化,训练小型、领域专用的专家模型,如法律、医疗、金融等。
- 大模型充当专家系统的认知层,帮助用户更自然地查询和使用专家系统。
4. 低代码/自然语言开发专家系统
过去专家系统需要手工编写规则,而大模型可以通过自然语言描述生成规则,大大降低开发成本。例如:
- 让专家用自然语言描述规则,大模型自动转换为可执行的专家系统逻辑。
- 结合大模型的代码生成能力,自动优化和扩展专家系统。
5. 以知识图谱增强专家系统与大模型的结合
知识图谱(Knowledge Graph)能结构化存储知识,而大模型善于理解非结构化数据。两者结合后,专家系统可以:
- 基于知识图谱查询和推理,提升可解释性和准确性。
- 利用大模型进行知识补全,填补知识库中的空白。
专家系统未来的发展趋势是与AI大模型深度融合,从传统的基于规则的系统进化为神经符号混合推理系统,并借助知识图谱、自然语言交互、个性化定制等技术,使其更智能、更易用、更可解释。
搜索算法
AI 搜索算法主要用于在问题空间中寻找最优解或可行解,广泛应用于路径规划、博弈、专家系统、自动推理等领域。以下是主要的 AI 搜索算法分类及其特点:
1. 盲目搜索(无信息搜索,Uninformed Search)
不利用任何问题领域的启发信息,仅靠遍历搜索空间来寻找解。
深度优先搜索(DFS, Depth-First Search)
- 策略:优先扩展当前路径的最深节点,使用栈(LIFO)。
- 优点:内存占用小(只存储路径上的节点)。
- 缺点:可能陷入死循环,且不一定找到最优解。
- 应用:迷宫求解、图遍历。
广度优先搜索(BFS, Breadth-First Search)
- 策略:优先扩展最浅层的节点,使用队列(FIFO)。
- 优点:保证找到最优解(如果代价相同)。
- 缺点:占用大量内存(需要存储所有节点)。
- 应用:最短路径求解、社交网络分析。
迭代加深深度优先搜索(IDDFS, Iterative Deepening DFS)
- 策略:结合 DFS 和 BFS,逐步加深搜索深度,避免陷入死循环。
- 优点:节省内存,同时能找到最优解(用于均匀代价问题)。
- 应用:经典的求解八数码问题(8-Puzzle)。
2. 启发式搜索(Heuristic Search)
利用问题的启发式信息来减少搜索空间,提高搜索效率。
贪心最佳优先搜索(Greedy Best-First Search)
- 策略:使用启发式函数 ( h(n) ) 选择最有希望的节点。
- 优点:比无信息搜索快,适用于特定问题。
- 缺点:可能陷入局部最优,无法保证最优解。
- 应用:机器人路径规划(如 Dijkstra 算法的变种)。
*A 搜索算法**
- 策略:结合代价函数 ( g(n) )(起点到当前节点的代价)和启发式函数 ( h(n) )(当前节点到目标的估计代价),计算总估值:
[
f(n) = g(n) + h(n)
] - 优点:保证找到最优解(如果 ( h(n) ) 是可采纳的,即不高估真实代价)。
- 缺点:计算代价大,需要维护大量节点信息。
- 应用:地图导航(如 Google Maps)、游戏 AI(如寻路)。
*IDA(迭代加深 A,Iterative Deepening A)**
- 策略:类似 IDDFS,但使用 A* 进行剪枝搜索,设定动态阈值。
- 优点:减少 A* 的内存占用,但仍能找到最优解。
- 应用:大规模搜索问题(如 15-数码问题)。
3. 对抗搜索(博弈搜索,Adversarial Search)
适用于双人博弈(如国际象棋、围棋),其中 AI 需要考虑对手的最优策略。
Minimax 算法(极大极小算法)
- 策略:假设对手会采取最优策略,计算最大化自己得分的策略。
- 优点:适用于完美信息博弈(如国际象棋)。
- 缺点:搜索空间巨大,计算量大。
- 应用:棋类 AI(如 AlphaZero)。
Alpha-Beta 剪枝
- 策略:在 Minimax 计算过程中剪枝,跳过明显不可能影响最终决策的分支。
- 优点:大幅减少计算量,提高搜索效率。
- 应用:国际象棋、围棋 AI。
4. 进化搜索(Evolutionary Search)
模拟自然进化过程,通过遗传变异寻找最优解。
遗传算法(GA, Genetic Algorithm)
- 策略:使用选择(Selection)、交叉(Crossover)、变异(Mutation)操作优化解。
- 优点:适用于高维、非连续优化问题。
- 缺点:计算量大,可能收敛到局部最优。
- 应用:自动参数优化、神经网络架构搜索(NAS)。
5. 局部搜索(Local Search)
适用于大规模问题,使用局部优化策略。
爬山算法(Hill Climbing)
- 策略:每次选择当前最优解的邻居节点,如果没有更优解就停止。
- 优点:计算效率高,适用于简单优化问题。
- 缺点:容易陷入局部最优。
- 应用:TSP(旅行商问题)、神经网络参数优化。
模拟退火(Simulated Annealing, SA)
- 策略:在搜索过程中引入随机扰动,允许接受较差的解以跳出局部最优。
- 优点:可以避免局部最优,找到全局最优解。
- 应用:任务调度、物流优化。
类别 | 代表算法 | 适用场景 | 优缺点 |
---|---|---|---|
无信息搜索 | DFS, BFS, IDDFS | 图遍历、迷宫解法 | 适用于小规模问题,缺乏优化能力 |
启发式搜索 | A*, 贪心算法 | 路径规划、导航 | 结合启发式信息,效率高,但需设计合适的 ( h(n) ) |
对抗搜索 | Minimax, Alpha-Beta | 博弈 AI(象棋、围棋) | 适用于双人游戏,但计算量大 |
进化搜索 | 遗传算法 | 复杂优化问题 | 适用于非线性问题,但计算量大 |
局部搜索 | 爬山、模拟退火 | 组合优化 | 适用于大规模问题,可能陷入局部最优 |
AI 搜索算法的发展方向包括:
- 强化学习结合搜索(如 AlphaGo 使用 MCTS + 深度学习)。
- 神经符号混合搜索(结合神经网络与经典搜索优化)。
- 并行计算加速搜索(如 GPU 加速 A*)。
搜索算法仍然是 AI 领域的核心技术之一,在自动驾驶、机器人、智能决策等场景中发挥重要作用。
机器学习基础及理论
- 机器学习基础理论
- 模式识别和模式分类
- 模式分类的基本原理
- 决策理论
- 分类器的作用
- 模式识别的基本过程
- 特征提取和选择
- 特征提取
- 特征空间的构建
- 特征的表示与编码
- 特征提取技术
- 主成分分析
- 特征选择
- 特征重要性的评估方法
- 特征选择算法
- 特征提取
- 分类方法
- 统计分类
- 贝叶斯分类器
- Fisher线性判别分析(LDA)
- 支持向量机(SVM)
- 距离度量与非参数方法
- 最近邻分类器(k-NN)
- 距离度量(欧氏距离、曼哈顿距离、余弦相似度等)
- 统计分类
- 聚类与无监督学习
- 聚类
- k-Means聚类
- 层次聚类
- DBSCAN聚类
- 无监督学习
- 主成分分析(PCA
- 自编码器(AutoEncoder)
- 独立成分分析(ICA)
- 隐变量模型
- 非负矩阵分解(NMF)
- 聚类
- 评估与优化
- 评估指标
- 准确率、召回率、F1值
- ROC曲线、AUC值
- 交叉验证
- 超参数调优
- 网格搜索
- 随机搜索
- 贝叶斯优化
- 模型正则化技术(L1/L2正则化)
- 评估指标
- 贝叶斯方法与概率模型
- 贝叶斯方法
- 贝叶斯定理
- 贝叶斯网络
- 概率模型
- 隐马尔可夫模型(HMM)
- 高斯混合模型(GMM)
- 贝叶斯方法
- 异常检测与异常分类
- 多模态模式识别
- 图像识别
- 模式分类的基本原理
- 机器学习基础算法
- 决策树
- 贝叶斯网络
- 回归分析
- 支持向量机
- K近邻算法
- 遗传算法
- 集成学习
- Bagging方法(如随机森林)
- Boosting方法(如AdaBoost、XGBoost)
神经网络基础
神经网络基本原理
- 模拟生物神经系统的计算模型
- 神经元模型
- 神经元
- 权重
- 偏置
- 激活函数
- 损失函数
- 神经网络的层次结构
- 输入层
- 隐藏层
- 输出层
- 常见激活函数
- Sigmoid
- Tanh
- ReLU(Rectified Linear Unit)
- Leaky ReLU
- Softmax
- 损失函数
- 均方误差(MSE)
- 交叉熵损失函数
神经网络训练
- 前向传播
- 反向传播
- 优化算法
- 梯度下降
- 随机梯度下降
- Adam
- RMSprop
- Adagrad
- Momentum
正则化
- L1正则化
- L2正则化
- Dropout
- Batch Normalization
深度学习
- 前馈神经网络(Feedforward Neural Network, FNN)
- 卷积神经网络(Convolutional Neural Network, CNN)
- 循环神经网络(Recurrent Neural Network, RNN)
- 自编码器(Autoencoder)
- 生成对抗网络(Generative Adversarial Network, GAN)
- 图神经网络(Graph Neural Network, GNN)
- 注意力模型(Attention Mechanism
- 深度强化学习模型
第二部分:大语言模型(LLM)
这部分的内容主要介绍大语言模型的基本概念、架构、预训练与微调、注意力机制等,这部分内容是生成式AI的核心理论,可以指导你如何设计和构建大语言模型。同时也可以教你如何训练大语言模型,以及如何部署大语言模型。
结合软件工程师在软件开发和部署方面的经验,推荐软件工程师可以重点关注搭语言模型的微调,部署,API服务等方面的技术。同时我个人觉得LLM OPs是一个很好的方向,可以结合软件工程师的开发经验,开发相应的工具和平台,加速大语言模型的创新,开发和部署。
什么是大语言模型
- 基于深度学习的自然语言处理模型
- 能够生成、理解和操作自然语言
- 典型模型:GPT(OpenAI)、BERT(Google)、LLaMA(Meta)
Transformer架构
- 基础构件:多头注意力机制、前馈网络、位置编码
- 关键优点:并行处理长序列数据
- 变体:BERT、GPT、T5等
预训练与微调
- 预训练:在大规模语料库上训练语言模型
- 微调:针对特定任务的优化
- 自监督学习:掩码语言模型(MLM)、因果语言模型(CLM)
注意力机制
- 点积注意力(Scaled Dot-Product Attention)
- 自注意力与全局依赖建模
- 多头注意力的效果与优化
大语言模型的训练
训练数据
- 数据来源:文本语料库、网页爬取内容、对话记录
- 数据清洗与标注
- 数据增强技术
训练策略
- 监督学习:使用标注数据训练
- 半监督学习:结合标注和非标注数据
- 强化学习:如使用奖励模型优化(RLHF, 人类反馈强化学习)
模型训练资源
- 大规模分布式计算
- GPU/TPU硬件加速
- 并行与分布式训练技术(如数据并行、模型并行)
大模型的部署和维护
- 本地部署
- 云端分布式部署
- API 及服务
第三部分:生成式AI应用
生成式AI应用部分主要涉及开发基于大语言模型应用的基础理论和技术,通过这些技术,使得你有能力开发和构建基于大语言模型的应用。我推荐软件工程师们可以重点关注这部分内容涉及的技术和理论以及相关的工具。相比transformer及深度学习相关的基础理论和算法,这部分内容更偏向于应用和实践。由于软件工程师们有良好的软件开发基础,所以这部分内容更容易上手。
Prompt Engineering
- 什么是提示词工程
- 提示词的基本结构
- 提示词工程技术分类
- zero shot
- few shot
- chain of thought
- React prompt
- tree of thought
- prompt chain
- Reflexion
- Self-Consistency
RAG (Retrieval-Augmented Generation)
- RAG模型架构
- 检索
- 生成
- 向量数据库
- 知识库
- RAG应用
- 问答系统
- 智能客服
- 文本生成
- 代码生成
- 多模态生成
- RAG 编程框架
- langchain
- llamaindex
AI Agent
- Agent架构模式
- Agent 基本架构
- 工具
- 任务规划
- 多Agent协作
- 记忆与知识库
- Agent评估方法
- 多Agent体
- Agent 编程框架
- langchain
- autogen
- openAI
文本生成应用
- 对话系统
- 文本摘要
- 代码生成
- Code Pilot
- Code Agent
- 创意写作
- 多语言翻译
多模态生成
- 文本到图像生成
- 图像到文本描述
- 视频生成
- 音频生成
- 跨模态转换
- OCR与语音识别
第四部分:工程实践
常用的提示词模板
平台及工具
智能体低代码
- COZE
- DIFY
AI 编程助手
- Github Copilot
- Cursor
- Codeium
- Windsurf
图像及视频生成
- Madejourney
- Stable Diffusion
- Civitai
- Flux
音乐生成
- suno
- udio
大语言模型
- OpenAI models
- GPT4
- GPT4o
- Claude models
- claude 3.5
- Google models
- Gemini 1.5
- Aliyun
- qianwen 2.5
- Deepseek
- deepseek 2.5
- Llama models
- llama 3.1
- llama 3.2
- Mixtral
- mixtral
多模态
图像生成模型
- DALL-E
- Stable diffusion models
- Flux models