• 【LLM】transformer介绍,为啥要有QKV?


    最近看LLM,说是transformer是基础,就去看了看。看懂了过程一直没明白为啥用Q K V。看了李宏毅的视频才明白。
    先上链接!
    李宏毅讲解的transformer:https://www.bilibili.com/video/BV1xF411D7TK

    例子

    看了很多文章基本都先从机翻为例子开始说。我们也用这个例子来说。
    设置情景:给你一句中文,然后翻译成英文。
    例子:我有一只猫 -------->>>> I have a cat.
    那么首先让机器操作逻辑就是,机器要先能看懂这个输入,对吧。
    在LLM里面,这个东西应该叫做token。
    我们简单的理解,我/ 有 / 一只 / 猫。句子可以这样断句,然后每一个地方就可以理解为一个token。然后机器肯定看不懂,肯定要转换成机器能看得懂的东西,这里用的是向量。
    也就是用一个向量表示‘我’。用一个向量表示‘有’等等。

    问题来了

    上面,比较直接解决方式就是,我断句完,分完token直接翻译,也能正确对吧?
    那么现在问题来了,也是很多文章都没说这个transformer为啥要这样子搞的(也就是为啥要QKV),李宏毅说了。
    有没有一种可能,我在机翻的时候存在一种情况:
    假设,我现在要英文转中文.
    原句: I book a book. ---------->>>> 我预定了一本书 (可能不地道,但不重要)
    这里的第一个book是动词意思是预定,第二个Book是名词,是书的意思。
    那么如果单纯用神经网络,或者说普通的翻译,你相同输入肯定会得到相同的输出,所以得改一改。
    我们一般看单词怎么看词性呢?一般看位置吧,所以他就考虑我看这个单词顺便看看前面,看看后面。
    也就是说构成了一个窗口这样的东西,
    新问题出现了窗口多大? (这篇文章不说,我也不会。)
    所以,引入Q K V 。用来看,我这个token 在这个窗口跟其他token之间的关系,从而得出更准确的结果。
    后面就不说了,无非就是点乘来去,完了softmax之类的东西,看一看别的文章就好。

    初看,若有问题还请指正。

  • 相关阅读:
    TLB、页表不命中后发生了什么
    智慧消防新篇章:可视化数据分析平台引领未来
    less 里面的calc 和 运算符有什么区别 ?
    自定义注解
    Java开发学习(一)----初识Spring及其核心概念
    justjavac:从辍学到成为Deno核心代码贡献者,我的十年编程生涯
    Webpack打包生产环境进行优化处理
    4G dtu远程无线抄表
    深度学习必备Python基础知识充电2
    k8s控制器之Deployment第四弹之回滚Deployment
  • 原文地址:https://blog.csdn.net/qq_49400568/article/details/133052501