大模型从prompt到第一个token的输出过程

1. 从文字输入到输出第一个token的过程

2. 细节拆解

2.1 多头注意力(并行的关键点之一)

假定通过输入X,计算得到的Q,K,V分别为:

lua 复制代码
Q矩阵
[[1.0, 0.0, 0.0, 9.0, 0.0, 8.0]
 [0.0, 2.0, 2.0, 0.0, 6.0, 0.0]]
K矩阵
[[3.0, 0.0, 3.0, 0.0, 0.0, 5.0]
 [0.0, 4.0, 0.0, 6.0, 2.0, 0.0]]
V矩阵
[[7.0, 0.0, 0.0, 7.0, 0.0, 1.0]
 [0.0, 9.0, 8.0, 0.0, 2.0, 0.0]]

我们假定head 为2

那么矩阵Q K V 会被拆解为

lua 复制代码
拆解后的
Q_1矩阵             Q_2矩阵
[[1.0, 0.0, 0.0]   [[9.0, 0.0, 8.0]
 [0.0, 2.0, 2.0]]   [0.0, 6.0, 0.0]]
K_1矩阵             K_2矩阵
[[3.0, 0.0, 3.0]   [[0.0, 0.0, 5.0]
 [0.0, 4.0, 0.0]]   [6.0, 2.0, 0.0]]
V_1矩阵             V_2矩阵
[[7.0, 0.0, 0.0]   [[7.0, 0.0, 1.0]
 [0.0, 9.0, 8.0]]   [0.0, 2.0, 0.0]]

我们在使用attention公式(这里我们做了简化):

得到

ini 复制代码
Head_1 =
[
  [5.948, 1.353, 1.203],
  [1.677, 6.843, 6.083]
]
Head_2 =
[
  [0.002, 1.999, 0.0003],
  [0.0069, 1.998, 0.0010]
]

然后Concat(Head_1, Head_2)得到如下:

csharp 复制代码
[
  [5.948, 1.353, 1.203, 0.002, 1.999, 0.0003],
  [1.677, 6.843, 6.083, 0.0069, 1.998, 0.0010]
]
相关推荐
苏奇伦1 小时前
大模型到底是什么——写给Java开发者的白话指南
后端
huzhongqiang1 小时前
用元类实现类属性:打造更优雅的服务访问机制
后端·python
understandme1 小时前
CI/CD 坑点 记录
后端
只做人间不老仙1 小时前
C++ grpc 元数据示例学习
后端·grpc
程序员陆业聪1 小时前
数据压缩与缓存策略:把带宽用到极致 | Android网络优化系列(4)
后端
詩飛1 小时前
Spring Boot 事务管理完全指南
后端
程序员陆业聪1 小时前
网络监控与容灾:让网络问题无处遁形 | Android网络优化系列(5·完结)
后端
fliter2 小时前
Rust 能帮你捕获什么,又不能捕获什么
后端
ZHOUPUYU2 小时前
PHP8高性能Web开发实战指南
后端·html·php