AI_当前大模型的应用方向_技术人员
大模型的能力
学习、推理、自我修正、感知和处理语言等功能
每个阶段: 具有强大的自然语言理解和生成能力,可以完成撰写论文、邮件、脚本、文案、翻译、代码等任务
层次
大模型基础架构
(Transformer/BEV/NeRF)
大模型训练
大模型的训练整体上分为三个阶段:预训练、SFT(监督微调)以及RL(强化学习
预训练 Pre-training 监督微调(SFT,Supervised Fine Tuning) Reinforcement Learning
监督微调(SFT,Supervised Fine Tuning
预训练前的大模型参数是随机初始化的,因此往往需要很长的训练轮次与时间才能达到预期效果
大模型是如何工作的
分词化(Tokenization)与词表映射
评测流程
模型层内生安全 :
获取风险Query,生成并人工审核安全Response,以及生成多样化的安全Response
大模型应用
大模型应用工程师
01.优化提示词
02.借助API让大模型自动化处理任务
03.通过插件增强大模型的能力
04.通过RAG增强 知识检索增强
05.借助Agent 智能体
06.通过微调改善 tunning
大模型应用开发平台
大模型应用
01.提示词(Prompt)是用户发送给大语言模型的问题、指令或请求
零样本提示(Zero-Shot Prompting
少样本提示(Few-Shot Prompting)
判断:
交互形态将突破当前以提示词(Prompt)为核心的“打孔纸带式”输入模式,
逐步向更自然、智能、多模态和场景化的方向发展
因为大模型是推理型大模型,而不是指令型大模型 未来的交互将不再依赖复杂的提示词设计-跟进时代的脚步
02. API 自动完成一批文本处理任务:
批处理
03.大模型插件--外挂
大模型插件是一种软件组件,它们设计用于增强和扩展基础大模型的功能。如网络搜索、视觉生成、语音合成等
首先接收输入,判断是否需要使用工具及选择合适的工具,然后使用工具并获得返回结果进行后续推理生成
04.检索增强生成(RAG,Retrieval Augmented Generation)方
建立索引、检索、生成
01.经过嵌入模型转换成向量数据(此过程叫做embedding),并将原始语料块和嵌入向量以键值对形式存储到向量数据库中
02.计算出用户的问题与向量数据库中的文档块之间的相似度,选择相似度最高的K个文档块
03.知识与问题会合并到提示词模板中提交给大模型,大模型给出回复
对答案做兜底验证的机制-建立评测标准
05.大模型Agent是指基于大语言模型的,能使用工具与外部世界进行交互的计算机程序
思维链(Chain of Thought,CoT) 思维树ToT(Tree of Thought)
思维图GoT(Graph of Thoughts)
06.tunning
应用层安全机制
风险识别模型-个人信息-内容安全等
安全合规
安全合规风险来源与治理防控方法
户个人数据、生成内容的安全性及知识产权
匿名化处理 用户可能输入个人信息
从扩散模型中反向提取出训练数据
扩散模型(如Stable Diffusion)-即生成器和判别器
《个人信息保护法》及GB/T 35273-2020《信息安全技术 个人信息安全规范》进行一般个人信息和敏感个人信息的分类管理
GB/T 37964-2019《信息安全技术 个人信息去标识化指南》和GB/T 42460-2023《信息安全技术 个人信息去标识化效果评估指南》
大模型微调
训练-改良-推理
微调--针对性补习
1. 数据准备: 需要特定领域的高质量数据,配置合适的参数
数据收集和数据清洗
2.微调代码
全参微调与高效微调
全参微调(Full Fine Tuning)
高效微调 PEFT(Parameter-Efficient Fine-Tuning)技术
LoRA 的全称是 "Low-Rank Adaptation"(低秩适应
Bias-only or BitFit(只训练偏置向量)、
Prefix-embedding tuning (PreEmbed,Prefix Tuning 方法,只优化 embedding 层的激活)、
Prefix-layer tuning (PreLayer,Prefix Tuning 方法,优化模型所有层的激活)、
Adapter tuning
Prompt Tuning方法是在输入嵌入向量中加入prompt tokens向量
模型推理和部署
模型部署能力
训练和推理
更好的网络结构,更多的训练数据,更快的计算设备 device
更低的成本-更快的速度-更好的效果
-数学表达和程序表达之间存在显著的差异和紧密联系
--优秀的设计,而是实现的糟糕选择--顶层设计上,落到实处上
原始数据
字符-数字-字母-字节-图像等
token Tokenization
离散的、高维的文本数据转换为可输入到机器学习模型中的低维数字
索引化(Indexing) vocabulary: Idx 或 Index:Idx
在NLP任务中通常指的是token的索引。当创建一个词汇表(vocabulary)时,每个唯一的token会被赋予一个整数索引
embedding: Token Embedding Position Embedding Segment Embedding
使用nn.Embedding层的神经网络模型中,输入模型的是Token的Index,模型内部会自动将其转换成相应的Vector
vector
数据
标量-scalar-单独的数(可以是整数、浮点数、复数等。)
向量-vector--向量元素类型
矩阵-matrix--相同特征和维度的对象集合
张量-tensor- 张量指具有任意数量轴的n维数组的通用方法 数组-array ndarray
names,dimnames dimensions type length
数据类型:元素类型
数据大小:维度--维度名称-维度长度-元素个数 引入形状(shape) axis
数学上
标量(scalar)是0阶张量,向量(vector)是一阶张量,矩阵(matrix)是二阶张量
张量可以看作是多维数组,每个维度可以有不同的长度
计算机上
R语言
张量通常用于表示数据结构,如图像(二维张量)、视频(三维张量,包括时间维度)和多维数据集。
数组是存储于一个连续空间且具有相同数据类型的元素集合
vector 向量是一维数组,可用于存储数值型、字符型或逻辑型数据--向量的位置索引
matrix 矩阵是二维数组,同样可以存储数值型、字符型或逻辑型数据
Dataframe 数据框,数据框可以包含不同格式的数据
列表-Lists
程序表达-张量
张量数据结构.
数组包装具有梯度等信息的张量(Tensor)
--自动微分机制 -- 动态计算图 multi-dimensional matrix
PyTorch中,张量Tensor是最基础的运算单位
PyTorch中,requires_grad 属性用于控制自动微分(autograd)系统是否追踪该张量上的操作
torch.Tensor
torch.device Tensor.is_cuda torch.dtype torch.Size Tensor.ndim
backward方法通常在一个标量张量上调用,该方法求得的梯度将存在对应自变量张量的grad属性下
Pytorch本身在求完梯度后会自动挂载到Tensor.grad属性上
MindSpore
mindspore.Tensor
AI 框架都选择
使用计算图来抽象神经网络计算表达,
通过通用的数据结构(张量)来理解、表达和执行神经网络模型
1)基本数据结构张量和 2)基本计算单元算子
算子
Operator 对张量 Tensor 执行的基本操作集合
Function 对算子模块的具体实现
可微编程
自动微分
理想中的 自动微分是对数学表达的分解、微分和组合过程
实际中的 自动微分是对程序表达的分界、微分和组合过程-
-数学表达和程序表达之间存在显著的差异
在前向模式中,由于微分过程和原程序计算过程是同步的,因此不会引入额外的存储代价
在 AI 框架中更加常用的 后向自动微分模式为例-额外中间变量存储得越多,会减少重复的计算量,即以空间换时间
自动微分的实现依赖于表达式追踪机制,表达式追踪是自动微分的基础-利用链式求导法则组合各部分中间变量,生成梯度结果
AI系统
函数-梯度-微分
模型训练过程中,通常会用损失函数来衡量模型的预测值与真实值之间的误差,我们的目标就是最小化这个损失函数,找到最优解
一元函数就是只有一个未知量
微分-积分
多元函数--偏导数/偏微分
多重积分是定积分的一类,它将定积分扩展到多元函数(多变量的函数
梯度、散度和旋度
梯度的方向是函数值增加最快的方向
散度(Divergence)-向量场
旋度(Curl)-旋度讨论的也是向量场,或者说向量值函数
梯度-grad 反映函数的变化趋势,通过计算损失函数关于模型参数的梯度
Gradient Accumulation
随机梯度下降(Stochastic Gradient Descent)
微分方式有手动微分、符号微分、数值微分和自动微分
自动微分是介于数值微分和符号微分之间的方法,采用类似有向图的方式来求解梯度,常用的链式求导法则
自动微分的实现依赖于表达式追踪机制,
表达式追踪是自动微分的基础,可以追踪数值计算过程中的中间变量,表示中间变量之间的依赖关系
实现梯度累加的方式有显著差异-梯度累加实现的差异
01.Tensor为核心的自动微分
每个Tensor对象有grad_fn属性用来存储该Tensor参与的反向操作,同时还有grad属性,存储该Tensor对应的梯度。
计算梯度时通过标量loss.backward()实现
Pytorch本身在求完梯度后会自动挂载到Tensor.grad属性上
02.函数式自动微分
正向计算视作输入到Loss的计算函数,通过函数变换获得反向计算函数,并调用反向计算函数来获得梯度
没有直接挂载到Tensor属性的操作,因此需要单独维护一份和训练参数相同大小的参数进行累加的计算
pickle进行的序列化处理,实际上.bin文件虽然扩展名似乎叫binary,但是是一个zip文件。
结构-数学表达
神经元: 单个神经的本质是 算术乘+累计加
神经网络
大模型时代:
几千卡几万卡的集群利用率打上去,大规模数据配上超大规模参数量的模型高效地训练起来
训练与推理
1)前向计算、2)计算损失、3)更新权重参数
模型优化和推理框架合称为推理引擎
参考
聊聊梯度累加(Gradient Accumulation) https://zhuanlan.zhihu.com/p/595716023
阿里云大模型工程师ACA认证
分类:
Pytorch
, 大数据和AI以及云计算_架构
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)