分类 "Ai" 下的文章

问题:大语言模型是如何训练出来的?

解答:
大语言模型(LLM)的训练过程与图像分类模型有相似之处,但核心差异在于处理的对象和目标。我们可以用图像分类的思维类比理解大语言模型的训练和推理逻辑:


1. 训练阶段:从“特征提取”到“下一个词预测”

  • 图像分类模型
    输入一张图片,模型通过卷积层提取特征(如边缘、纹理等),最后通过全连接层将特征映射到类别概率(如“猫”“狗”)。训练时,模型通过交叉熵损失函数比较预测类别和真实标签的差异,调整参数以最小化误差。
  • 大语言模型
    输入一段文本(如“我爱吃”),模型通过Transformer层提取上下文特征(类似图像中的“边缘”),但目标不是直接分类,而是预测下一个词的概率分布(如“饭”“面”)。训练时,模型同样使用交叉熵损失函数,但计算的是“预测的下一个词”与“真实的下一个词”的差异。例如:

    • 输入:“我爱吃” → 模型应输出“饭”(标签为“饭”),损失函数衡量模型对“饭”的预测概率与真实标签的差距。
    • 关键操作:模型需要对输入序列和标签进行移位(shift),确保每个位置的预测仅依赖前面的词(类似图像分类中局部感受野的概念)。

2. 推理阶段:从“概率生成”到“连续回答”

  • 图像分类模型
    新图片输入后,模型提取特征并输出类别概率,选择概率最高的类别作为结果(如“猫:90%”)。
  • 大语言模型
    新文本输入后(如“巴黎是”),模型会:

    1. 生成概率分布:计算下一个词的概率(如“美丽:40%”“城市:30%”)。
    2. 自回归生成:选择概率最高的词(如“美丽”)作为输出,并将其拼接到输入中,继续预测下一个词(“巴黎是美丽 → 的”),直到生成结束符(如<EOS>)。
    • 这类似于图像分类中“连续分类”,但每次分类的结果会影响下一次的输入。

3. 核心差异与特殊设计

  • 动态序列处理
    图像分类的输入大小固定,而语言模型的输入输出长度可变。因此,语言模型需要掩码(mask)技术,确保预测时只能看到前面的词(类似图像中遮挡部分像素后分类)。
  • 损失函数细节

    • 语言模型的损失函数是交叉熵的累加,对序列中每个位置的预测分别计算误差(如图像分类中对每个像素点分类,但实际是逐词计算)。
    • 例如,输入“我爱吃饭”:

      • 预测序列:“爱”“吃”“饭”分别与标签“爱”“吃”“饭”比较,损失是三个交叉熵的平均。
  • 微调阶段
    类似图像分类的迁移学习,大模型会通过监督微调(SFT)调整部分参数。例如,在指令任务中,模型学习根据“问题:巴黎是?”→“回答:美丽的城市”的配对数据优化答案生成。

类比总结

步骤图像分类模型大语言模型
输入固定大小的图片可变长度的文本(如句子)
特征提取卷积层提取边缘/纹理Transformer层提取上下文语义
目标输出类别概率(猫/狗)输出下一个词的概率分布(饭/面)
损失函数交叉熵(单次分类误差)交叉熵(逐词预测误差累加)
推理直接选择最高概率类别自回归生成(多次预测拼接答案)

通过这种类比,可以理解大语言模型本质是“超级自动补全”,通过海量文本学习词语间的概率关系,再通过微调适应具体任务(如问答)。而图像分类的“特征-标签”映射,在这里变成了“上下文-下一个词”的映射。

方法核心原理优点缺点典型使用场景
全参数微调调整预训练模型的所有参数,完全适配下游任务。1. 性能最优,充分挖掘模型潜力
2. 适用性广,不受任务复杂度限制
1. 显存和计算资源消耗大(如70B模型需数百GB显存)
2. 训练时间长,易过拟合
资源充足的高精度任务(如专业领域生成、复杂推理)
LoRA冻结原模型权重,注入可训练的低秩矩阵(A、B)模拟参数增量,仅更新0.01%-1%参数1. 显存需求低(7B模型仅需14GB)
2. 无推理延迟,权重可合并
3. 支持多任务模块化切换
1. 低秩近似可能损失性能(复杂任务)
2. 需手动调整秩(r)和缩放系数(α)
资源受限的多任务适配(如对话生成、分类任务)
QLoRA在LoRA基础上引入4-bit量化,反量化计算梯度,进一步降低显存1. 显存较LoRA再降33%(如21GB→14GB)
2. 保留LoRA灵活性的同时突破显存限制
1. 训练时间增加约39%
2. 量化可能引入精度损失(极端低bit时)
超大规模模型微调(如千亿参数)或消费级GPU(如单卡12GB)

阅读全文

一、Diffusion模型:生成式AI的新星

Diffusion模型(扩散模型)是近年来兴起的一类生成模型,其灵感来源于物理学中的扩散现象,如同墨水滴入水中逐渐扩散的过程。Diffusion模型通过模拟数据的逐步噪声添加和去除过程来学习数据分布,已成为图像生成领域的新标杆。

核心原理与工作流程
Diffusion模型包含两个关键过程:前向扩散过程反向去噪过程。前向过程逐步向数据添加高斯噪声,将复杂的数据分布逐渐转化为简单的高斯分布;反向过程则学习如何从噪声中逐步重建原始数据。具体而言,给定原始数据x₀,前向过程在T步内逐步生成噪声增加的x₁到x_T,最终x_T成为纯噪声;反向过程则训练一个去噪网络,学习从x_t预测x_{t-1},从而能够从随机噪声生成新样本。

阅读全文

1. SAM2 核心功能

SAM2 是 Meta 推出的新一代图像与视频分割基础模型,基于第一代 SAM 改进,具备以下核心功能:

  • 统一架构:同时支持图像和视频分割,通过流式处理框架实现实时分割(44 FPS),尤其擅长处理动态场景和长视频。
  • 零样本泛化:无需特定训练即可分割未见过的物体或视觉域(如医学影像中的罕见病变)。
  • 交互式分割:支持点、框、掩码等多种提示方式,允许用户通过点击或框选细化分割结果。
  • 记忆机制:通过流式记忆模块跟踪视频中的对象,解决遮挡、光照变化等问题,确保跨帧分割一致性。
  • 多掩码预测:在复杂场景(如重叠物体)中生成多个候选掩码,并通过置信度选择最优结果。

阅读全文

问题:调用合约方法时报错Error: Returned error: VM Exception while processing transaction

解决:参数传递错误导致require条件修饰符不满足,web3.js是1.7

方法:

部署合约时传的参数alice是小写开头的,且为byte32

console.time('deploy time');
const myContract = await new web3.eth.Contract(JSON.parse(interface));
myContract.deploy({
    data: bytecode,
    arguments: [[web3.utils.asciiToHex('alice'), web3.utils.asciiToHex('bob')]]
})
.send({
    from: accounts[0],
    gas: 1500000,
    gasPrice: '30000000000000'
})
.then(function(newContractInstance){
    console.log('合约部署成功:', newContractInstance.options.address) // instance with the new contract address
});

阅读全文