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

语言模型从0训练流程

1.Tokenizer

需要建立一个“词表”,负责把文本转换为词向量

如 “我喜欢你” ----> [我,喜欢,你] ----> [1, 5, 2]

词表形如:

        我---1   你---2   水---3  火---4 喜欢---5 

词表怎么构建呢?

目前的大语言模型基本采用 BPE 方法构建词表

总之,词表可以看成把文字映射为数字的哈希表,映射规则多种多样。

2.模型预训练(预训练任务)

该阶段不需要精心构建数据集,本质上是进行文本预测。经过该训练过程的LLM,会具备续写能力。

有几种预训练方法:自编码、自回归、编码解码

不同的预训练任务,会得到不同功能偏向的模型(NLG/NLU)

Bert 的预训练目标任务是:掩码预测(自编码),利于自然语言理解

T5 的预训练目标任务是:文本预测(自回归),利于自然语言生成

GLM 的预训练目标任务是:自回归空白填充(自回归+自编码),综合了NLG和NLU的优点

数据集格式:

ori = [我,爱,玩,原,神]

x=[我,爱,玩,原]

y=[爱,玩,原,神]

假设隐藏层维度128,词表大小1000

将x输入transformer,输出4x128的logits层矩阵,然后进行softmax,得到4x1000的矩阵。

第1行表示通过输入“我”,对下一个词的预测结果,改行的1000个元素对应了词表中1000个词的概率;然后与标签“爱”进行交叉熵,计算Loss。

显然,推理时从这1000个词里取概率最大的那个词作为结果。

3.指令微调

该阶段仍是进行文本预测。但输入的前半部分不计入loss。经过该训练过程的LLM,会具备问答能力。

数据集格式:

ori = [我,爱,玩,什,么,游,戏,原,神]

x = [我,爱,玩,什,么,游,戏,]

y = [爱,玩,什,么,游,戏,原,神]

输出为8x128的logits矩阵,经过softmax得到8x1000矩阵

loss = (第7行的loss+第8行的loss)/2

前半部分[我,爱,玩,什,么,游,戏]不计入loss,这就是我们的问题

后半部分[原,神]计入loss,这是模型预测的答案


http://www.kler.cn/a/378928.html

相关文章:

  • C#属性 Property
  • Prim算法与Dijstra算法
  • SpringCloud Alibaba-05 Seata分布式事务处理
  • AI打造超写实虚拟人物:是科技奇迹还是伦理挑战?
  • kd树的原理简述
  • Python复习1:
  • 数据结构之双链表——考研笔记
  • C++对象优化4条原则
  • 【hacker送书第14期】AI训练师算法与模型训练从入门到精通
  • SpringMvc参数传递
  • js实现blob类型转化为excel文件
  • AI大模型时代,程序员如何保持竞争力
  • 西门子触摸屏维修6AV7200-1JA11-0AA0防爆显示屏维修
  • 【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库
  • 亚马逊国际商品详情API:揭秘电商界的“X档案”
  • Django框架实现用户认证
  • 安卓逆向之过frida检测总结版
  • VR游戏:多人社交将是VR的下一个风口
  • SpringMvc请求
  • Spring Boot Admin应用
  • 照明灯十大知名品牌有哪些?2024灯具十大公认品牌排行榜出炉!
  • 洛阳建筑设计资质电子化申报操作流程
  • 怎麼解除IP阻止和封禁?
  • 2-139 基于matlab的弹道轨迹仿真
  • 低压补偿控制器维修措施
  • ES6中数组新增了哪些扩展?