【学习笔记】图解大模型

ch01 大语言模型简介

word2vec 利用了神经网络(neural network)技术。

神经网络由处理信息的多层互连节点组成。神经网络可以有多个"层",每个连接都有一定的权重,这些权重通常被称为模型的参数。神经网络由互连的多层节点组层,每个连接都是一个线性方程。

词嵌入可以用多种属性来表示一个词的含义。这些属性组合在一起,是将人类语言转换为计算机语言行之有效的方式。

词嵌入使我们能够衡量两个词的语义相似度。使用各种距离度量方法, 可以判断一个词与另一个词的接近程度,含义相似的词往往会更接近。

可以为不同类型的输入创建嵌入,如词嵌入和句子嵌入,它们用于表示不同层次的抽象 (词与句子)。

RNN(recurrent neural network),循环神经网络。RNN的序列特性不利于模型训练过程中的并行化。

自回归(auto-regressive),在生成下一个词时,需要使用先前生成的词作为输入。

Transformer中的编码器块由两部分组成:自注意力(self-attention)和前馈神经网络(feed-forward neural network)。

原始的 Transformer 论文将注意力分为自注意力和交叉注意力。

  • 自注意力表示解码器层在生成一个词元时,与它之前已经生成的词元序列之间的关系,以及编码器层处理的输入序列内部的关系;
  • 而交叉注意力表示编码器层处理的输入序列和解码器层处理的输出序列之间的关系。

从 GPT 开始,如今的大模型几乎都采用仅解码器架构,这意味着它们只使用自注意力机制。

Transformer模型如此成功的原因,包括多头注意力(multi-head attention)、位置嵌入(positional embeddings)和层归一化(layer normalization)。

python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers import pipeline


model = AutoModelForCausalLM.from_pretrained(
        "/ssd3/models/Qwen2.5-0.5B-Instruct/",
        device_map="cuda",
        torch_dtype="auto",
)

tokenizer = AutoTokenizer.from_pretrained("/ssd3/models/Qwen2.5-0.5B-Instruct/")

generator = pipeline(
        "text-generation",
        model=model,
        tokenizer=tokenizer,
        return_full_text=False,
        max_new_tokens=10,
        do_sample=False
)

messages = [
        {"role": "user", "content": "Beijing is"}
]
output = generator(messages)
print(output)

"""
[{'generated_text': "As an AI language model, I don't have"}]
"""

ch03 LLM的内部机制

每个Transformer块由两个组件构成:

  • 自注意力层:负责整合来自其他输入词元和位置的相关信息。自注意力整合了上下文信息,使模型能够更好地捕捉语言的细微差别。

    • 注意力过程分为两个主要步骤:相关性评分;信息组合。

    • 在所有注意力头或一组注意力头(分组查询注意力)之间共享键矩阵和值矩阵,可以加速注意力计算。

    • Flash Attention 是一种广受欢迎的方法和实现,可以显著提升 GPU 上 Transformer LLM 的训练和推理速度。它通过优化 GPU 共享内存(GPU's shared memory,SRAM)和高带宽内存 (high bandwidth memory,HBM)之间的数据加载和迁移来加速注意力计算。

  • 前馈神经网络:包含模型的主要处理能力。它能够存储信息,并根据训练数据进行预测和插值。

  • 归一化发生在自注意力层和前 馈神经网络层之前。据称,这种方式可以减少所需的训练时间(参见论文"On Layer Normalization in the Transformer Architecture")。

  • 归 一 化 的 另 一 个 改 进 是 使 用 RMSNorm,它比原始 Transformer 中使用的 LayerNorm 更简单、更高效(参见论文"Root Mean Square Layer Normalization")。

  • 相比原始 Transformer 的 ReLU 激活函数,现在像 SwiGLU 这样的新变体(参见论文"GLU Variants Improve Transformer")更为常见。

ch04 文本分类

余弦相似度是两个向量夹角的余弦值,通过嵌入向量的点积除以它们长度的乘积来计算。

余弦相似度是向量间夹角的余弦值,其计算方式为嵌入向量的点积除以各自长度的乘积。

相关推荐
熊猫钓鱼>_>1 天前
从零构建大模型可调用的Skill:基于Function Calling的完整指南
人工智能·算法·语言模型·架构·agent·skill·functioncall
stereohomology1 天前
大语言模型的认知边界 & 在认知边界处的系统性崩溃
人工智能·语言模型·自然语言处理
搜狐技术产品小编20231 天前
智能代码审查基于大语言模型的自动化代码质量保障平台设计与实践
运维·人工智能·语言模型·自然语言处理·自动化
XuecWu31 天前
原生多模态颠覆Scaling Law?解读语言“参数需求型”与视觉“数据需求型”核心差异
人工智能·深度学习·算法·计算机视觉·语言模型
小超同学你好1 天前
LangGraph 25. 实战:Agent资源优化怎么做?用 State 与条件边管理预算、取证与模型档位(附 SRE 分诊 demo)
人工智能·深度学习·语言模型
菱玖1 天前
RAG 技术详解
人工智能·语言模型·aigc
stereohomology1 天前
大语言模型对大语言模型进行的批评和自我批评
人工智能·语言模型·自然语言处理
海兰1 天前
【第1篇 】生成式AI的崛起:从语言模型到智能体
人工智能·语言模型·自然语言处理
lifallen1 天前
Flink Agents:Python 执行链路与跨语言 Actor (PyFlink Agent)
java·大数据·人工智能·python·语言模型·flink
星光技术人1 天前
怎么理解任务接口不是文本
人工智能·深度学习·计算机视觉·语言模型·自动驾驶