跳到主要内容

2 篇博文 含有标签「llm」

查看所有标签

Transformer 网络及任务分类

· 阅读需 3 分钟
Danny He
Developer in ChengDu,China

Transformer

LLMS

点积(Dot Product)

给定两个向量x,yRd\mathbf{x},\mathbf{y}\in\mathbb{R}^d, 它们的点积(dot product)xy\mathbf{x}^\top\mathbf{y} (或x,y\langle\mathbf{x},\mathbf{y}\rangle) 是相同位置的按元素乘积的和:xy=i=1dxiyi\mathbf{x}^\top \mathbf{y} = \sum_{i=1}^{d} x_i y_i

Encoder

目的: 对输入序列进行更好的向量表示

Embedding

用向量表示文字(词表+位置)

架构图上的Input Embedding也被成为Token Embedding

Embedding = Input Embedding(Token Embedding) + Position Embedding

Positional Encoding

将文字的位置编码加上Input Embedding向量,得到新的向量表示。

正弦和余弦位置编码、ROPE等

RoPE(Rotary Positional Encoding)是一种创新的位置编码方法,旨在改进Transformer模型中位置信息的处理方式。与传统的绝对位置编码不同,RoPE通过旋转矩阵的方式将位置信息直接嵌入到词向量的计算过程中,特别是在自注意力机制中。

自注意力机制

描述前文对下一个Token的影响。

WQW^Q,WKW^K,WVW^V是三个可训练的参数矩阵

Q=XWQQ=XW^Q

K=XWKK=XW^K

V=XWVV=XW^V

Attention(Q,K,V)=softmax(QKdk)V Attention(Q,K,V)=\mathrm{softmax}\left(\frac{\mathbf Q \mathbf K^\top }{\sqrt{d_k}}\right)V

将上述的向量分别与其他向量做点积运算获得权重,然后将权重值再与对应的其他向量做乘法后相加,得到最后的向量表示。

多头注意力相当于把多个单头进行拼接后,做线性变换。

残差结构

变换前的向量和变换后的向量相加,解决梯度消失问题。

归一化线性变换

FNN(X)=ReLu(Xw1+b1)w2+b2FNN(X) = ReLu(Xw_1+b_1)w_2 + b_2

Decoder

Masked Muti-Head Attention

一个Token只能与前面的Token计算相关性,而不能与其后面的词计算相关性。 (只能看过去,不能看未来)

交叉自注意力机制

与自注意力不同,这里的QQ来自Decoder当前部分的输出,而KK,VV来自整个Encoder的输出。

主流模型结构发展

梳理下大语言模型的网络结构,及对应相关的任务。

LLMS

架构代表模型任务
Encoder modelsBERT ALBERT RoBERTa句子分类、命名实体识别、提取式问答(extractive question answering)
Decoder modelsGPT文本生成任务
Encoder-decoder modelsBART T5总结、翻译或生成性问答

微调deepseek-r1蒸馏版工具调用

· 阅读需 6 分钟
Danny He
Developer in ChengDu,China

有关deepseek-r1蒸馏版的微调方案,目前主流在用<think></think>的形式组织相关语料样本,目前还未涉及到工具调用(Function-Call)的形式, 刚好同事需要基于LLaMA-Factory构建思维链的工具调用语料,于是我顺便补充了一下LLaMA-Factory关于chat template的单元测试,以推导出LLaMA-Factory中关于样本集处理以及抛开JSON格式理解本质chat template。 思维不要固化。