当前位置: 首页 > news >正文

大模型之原理篇——Transformer基础、分词器

写在前面

本文主要介绍Transformer基础、如何简单查看大模型的层结构、分词器。由于网上资料比较多,这里只做我的简单理解。

Transformer基础

Transformer结构如下,llm一般都采用Transformer结构作为基础,稍加改变。中间包含了N个Transformer块,最左边是旋转自编码模块。

MHA

Attention 通过语义,找到上下文信息,通过不同的权重得到QKV矩阵,然后通过Z=X+Y的到输出矩阵,这里注意X Y Z的维度大小需要一致

一般来说,Attention在计算时采用decode only,如下图,在生成式llm中是看不到后面的内容的,所以训练时只关心前面的内容。也有encode olny模型,比如bert模型。

激活函数

由于ReLU存在不可导的点,所以部分模型对激活函数会选取其变体,比如qwen3 llama deepseek都采用silu函数。

看懂大模型参数

通过print(model)可以得到模型的参数信息,比如下图中,整个DecoderLayer代表下下图的,其中Qwen3Attrension代表MHA,MLP代表前向层 q\k\v 代表QKV矩阵,是拼接之后的,所以只有一个 o代表输出矩阵,MLP代表下下下图中的silu激活函数的三个线性层,激活函数是SiLu,两个Norm对应图中的两个norm层,emb代表旋转位置编码,在attensiong里面 输入输出都是4096的向量,但是最后转成了151936的向量,和输入的词表大小一致。

采样策略

贪心采样

通过transformer架构得到下个词的概率之后,如果选取最大概率预测词作为输出,输出会固定。比如说一个模型训练好了之后,参数固定,输入什么就会给定输出词的概率,然后取最大也是固定了。

top-K

top-K就是在前K个预测词中采样,但top-K 的一个缺点:K 值是固定的。有时候概率分布很“平”,我们可能需要一个很大的 K 值才能包含所有合理的选项;有时候概率分布很“尖”,可能前2个词就占了99%的概率,此时一个大的 K 值反而会纳入不必要的词。

引入温度参数

温度参数是下图中的T,引入之后T越大,总体的值会越平均,反之总值之间会拉的越开,所以T越大,预测词多样性会越多,幻觉问题越大,反之越保守。

TOP-P

TOP-K是排名前K个值,也可以用概率大于P的值进行筛选,这个P值一般都很小很小,试想词表大小为1万,平均下来一个词的概率才万分之一,所以P值一般都很小很小。当前采用最多的还是TOP-P。

总结

分词方法

分词最开始的方法是BPE,但存在生僻字在词表中不存在的问题,后续都采用BBPE方法,这种方法对UTF-8的编码进行字节划分,UTF-8是包含了世界的语言,所以能够涵盖所有字体。这部分自行查找相关资料。

分词密度 = 字数/token数

词表越大,token密度越大,上下文长度越长,运行效率越慢

http://www.dtcms.com/a/342962.html

相关文章:

  • 深度剖析:PCB 厚铜板铜厚检测,铜厚不足的连锁反应及检测手段
  • 性能测试中性能分析与调优学习大纲整理
  • C++中纯虚函数与普通虚函数的深度解析
  • 面试紧张情绪管理:如何保持冷静自信应对挑战
  • CLAUDE.md文件介绍(Claude Code核心配置文件,开始对话或执行任务时自动加载的上下文文件)
  • 工业大模型的应用场景
  • Ubuntu22.04设置共享文件夹
  • 2025年渗透测试面试题总结-25(题目+回答)
  • 数据库运维管理平台全面解析
  • opencv学习:图像边缘检测
  • # 重磅发布 | onecode 3.0.1 Base 源码正式开源:AI赋能的企业级开发框架
  • 算法训练营day58 图论⑧ 拓扑排序精讲、dijkstra(朴素版)精讲
  • 从零开始的Agent学习(二)-增加文档输出功能
  • 医疗信创新征程:常德二院全栈国产化项目引领行业变革
  • 审美积累 | 界面设计拆分 | Redesign Health - Services 医疗页面设计
  • 8.21网络编程——词典(未完成,有问题)
  • kotlin协程笔记-朱凯
  • C# 基本数据类型
  • 生信分析自学攻略 | R语言数据筛选和修改
  • 前端:文件直接在浏览器里下载
  • VMware ESXi 服务器暴露高危漏洞,中国1700余台面临勒索软件威胁
  • UE 虚幻引擎, unreal engine(1)概略介绍,安装本引擎,创建账户,打开 UE,创建项目,项目导入内容,尝试运行的添加第一人称游戏,
  • Vibe Coding v.s Prompt Engineering
  • 【Docker】在Ubuntu22.04上安装Docker
  • 漫谈《数字图像处理》之平滑
  • 智能编码工具:GitHub Copilot 的深度应用与集成
  • 用OpencvSharp编写视频录制工具
  • HTTP/2 性能提升的核心原因
  • Vue2 ElementUI Upload组件http-request用法
  • (二十一)深入了解AVFoundation-编辑:导出视频与格式转换的全流程