【Datawhale AI 夏令营】第四期 基于2B源大模型 微调

定位:代码复现贴
教程:https://datawhaler.feishu.cn/wiki/PLCHwQ8pai12rEkPzDqcufWKnDd

模型加载

model = AutoModelForCausalLM.from_pretrained(
    path, 
    device_map="auto", 
    torch_dtype=torch.bfloat16, 
    trust_remote_code=True
)
  • AutoModelForCausalLM.from_pretrained(path):

    • 这是 transformers 库中的一种通用方法,用于从预训练模型路径(path)加载一个因果语言模型(Causal Language Model,CLM)。
    • 因果语言模型是一种序列到序列的模型,通常用于生成任务,例如自动完成或文本生成。
  • device_map="auto":

    • 该参数用于自动选择计算设备(如 GPU 或 CPU)来加载模型。设置为 "auto" 后,模型会根据可用资源自动映射到适当的设备。
  • torch_dtype=torch.bfloat16:

    • 这将模型的计算精度设置为 bfloat16(一种 16 位浮点格式),这通常用于加速计算和减少显存占用,同时保持数值稳定性。
  • trust_remote_code=True:

    • 这个参数表示信任远程代码,允许加载自定义模型结构。如果预训练模型所在的路径中包含自定义的模型定义文件(而不是标准的 transformers 库模型),这个选项允许这些自定义代码被执行。

输出的模型如下:
在这里插入图片描述

模型结构分析

Yuan 在 Transformer 的 Decoder 进行改进,引入了一种新的注意力机制 Localized Filtering-based Attention(LFA)

在这里插入图片描述

  • YuanForCausalLM:

    • 这是一个自定义的因果语言模型类,可能来自于远程代码定义。该模型包含了实际的 YuanModel 和一个 lm_head(语言模型的输出头)。
  • YuanModel:

    • 该模型是 YuanForCausalLM 的核心部分,包含嵌入层、多个解码器层(YuanDecoderLayer)、和一个归一化层。
  • embed_tokens:

    • 这是词嵌入层,用于将输入的标记(tokens)转换为高维向量表示。这里的词表大小为 135040,每个标记被嵌入到一个 2048 维的向量空间中。
  • layers:

    • 这是模型的主体,由 24YuanDecoderLayer 组成,每个解码器层包含自注意力机制、MLP(多层感知器)层、和归一化层。
  • YuanAttention:

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如果皮卡会coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值