LLM中词向量的表示和词嵌入的一些疑问

news/2024/10/13 19:52:21

LLM中词向量的表示和词嵌入的一些疑问

词向量的一些特点

在3blue1brown的视频【官方双语】GPT是什么?直观解释Transformer | 深度学习第5章_哔哩哔哩_bilibili中, 在15min左右介绍了LLM的词嵌入的过程.

其中提到mother的词向量减去father的词向量, 会近似于women的词向量-man的词向量

image-20241013190602297

通过这个例子,说明模型在词嵌入空间上的某一方向编码了一个性别信息. 这个例子非常生动, 也非常符合直觉.

类似的有一篇2017年发表在CogSci的研究1705.04416 (arxiv.org)

在这篇论文中,也提到类似的例子

\(E(woman)\approx E(man)+E(queen)-E(king)\)
image-20241013191249990

首先一点, 我认为使用\(E(woman)\approx E(man)+E(queen)-E(king)\) 来说明模型在某一方向上编码了特定信息并不一定准确.

因为我们可以理解为women和man 是一组相似的词, 词向量是比较接近的,同理queen和king也是

事实上, 在llama3-8B-instruction 中,通过余弦相似度去衡量woemn和man的词向量, 可以发现他们确实如此)

由于E(queen)和E(king)本身比较接近,因此他们相减应该得到一个较小的向量, 那么自然而然的,我们会有

\[E(woman)\approx E(man) \approx E(man)+E(queen)-E(king) \]

因此,我认为像3Blue1Brown中直接比较\(E(queen)-E(king)\)\(E(woman)- E(man)\) 相似度,显然是一个更合适的选择.

简单的实现

如果他们是相似的,那么他们的余弦相似度值应该尽可能大, 然后, 在llama3-8b 的测试中, 我们发现他们的相似度为-0.0220,也就是说,\(E(queen)-E(king)\)\(E(woman)- E(man)\)这两个向量是几乎正交的.

而和之前的分析一样E(man) 和E(woman)-E(queen)+E(king)的相似度有0.3906, 这对于llama3模型而言是一个比较高的相似度(llama每个词向量的维度是4096)

除了llama3,和简单测试了phi-3, llama2,Qwen1.5等模型, 同时也简单试了一下其他的词, 得出了结果都和llama3基本都大差不差.

\(E(queen)-E(king)\)\(E(woman)- E(man)\) 这两个向量不仅不是接近平行,甚至是几乎正交的. 至此, 我们可以3b1b和这篇论文中说提出的理论虽然很简洁优雅, 但在大模型上似乎没有那么奏效. 不过目前像3blue1brown中的理论, 依然可以在一些介绍LLM词向量的文章中看到, 这个理论本身非常有道理, 但实测下来, 可能还是需要更加谨慎的看待这个理论.

llama3的结果

//E(woman)-E(man)和E(queen)-E(king)的相似度
tensor([-0.0220], device='cuda:0', dtype=torch.bfloat16,grad_fn=<SumBackward1>)
//E(man) 和E(woman)-E(queen)+E(king)的相似度
tensor([0.3906], device='cuda:0', dtype=torch.bfloat16, grad_fn=<SumBackward1>)
___________________________________fake word2: male+ queen- king  整个embeding矩阵中和这个词最接近的一些词(tensor中是他们的相似度)
tensor([0.6797, 0.5469, 0.3906, 0.3828, 0.3340, 0.3320, 0.3086, 0.3047, 0.2559,0.2500], device='cuda:0', dtype=torch.bfloat16,grad_fn=<TopkBackward0>)
[' male', ' queen', ' female', ' Male', ' males', 'Male', ' Queen', 'male', ' queens', ' Female']
___________________________________word1: male
tensor([1.0000, 0.5430, 0.5430, 0.4824, 0.4785, 0.4121, 0.3379, 0.3164, 0.2676,0.2598], device='cuda:0', dtype=torch.bfloat16,grad_fn=<TopkBackward0>)
[' male', ' Male', ' female', ' males', 'Male', 'male', ' Female', ' females', 'female', 'Female']
___________________________________word2: female
tensor([1.0000, 0.5898, 0.5430, 0.4922, 0.4902, 0.4727, 0.3438, 0.3340, 0.3086,0.3047], device='cuda:0', dtype=torch.bfloat16,grad_fn=<TopkBackward0>)
[' female', ' Female', ' male', 'Female', ' females', 'female', ' women', 'EMALE', ' woman', ' Male']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71177.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024-2025-1 20241304 《计算机基础与程序设计》第3周学习总结

2024-2025-1 20241304 《计算机基础与程序设计》第3周学习总结 作业信息这个作业属于哪个课程 <[2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP>)这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK0…

DrawPad 离线注册

DrawPad 离线注册 目录DrawPad 离线注册reg_dialog_549414parpms==>callbackreg_5486C3do_reg_5489A4check_key_547842calc_idkey_54AB37calc_54A9A5transform_54A8FFpy 仅分析离线注册,联网时注册会有网络校验regcheck reg_dialog_549414 定位注册对话框 char __stdcall…

2024-2025-1 20241415 《计算机基础与程序设计》第三周学习总结

2024-2025-1 20241415 《计算机基础与程序设计》第三周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <温习巩固本…

视野修炼-技术周刊第105期 | AI驱动全栈应用开发

① bolt - AI驱动一站式的应用开发 ② WebChat - 同网页在线聊天 ③ 一年一度的 js13kGames结果公布 - 13KB 大小的游戏 ④ 新的 CSS logo? ⑤ TS 类型体操练习 ⑥ 100+ 免费独特的 SVG 图标 ⑦ TutorialKit - 交互式教程创建欢迎来到第 105 期的【视野修炼 - 技术周刊】,下面…

Centos7---k8s集群 20241013

目录一、硬件准备(虚拟主机) 二、环境准备1、所有机器关闭防火墙 2、所有机器关闭selinux 3、所有机器关闭swap 4、所有机器上添加主机名与ip的对应关系 5、在所有主机上将桥接的ipv4流量传递到iptables的链三、为所有节点安装docker 四、集群部署1、为所有节点修改仓库,安装…

rsa基本攻击手法总结大全(还在更新中)

一些关于分解n的常用手法: 1.最简单的就是直接使用yafu分解 2.费马分解然后我们令p=a+b,q=a-b,此时n=\(a^{2}-b^{2}\),那么\(b^2=a^2-n\),那么\(b=\sqrt{a^2-n}\),我们就让a=\(\sqrt{n}\)开始然后慢慢加1开始遍历,直到找到能够使得\(a^2-n\)能够为一个平方数即可得到我们的b…

2024-2025-1(20241321)《计算机基础与程序设计》第三周学习总结

这个作业属于哪个课程 <的链班级接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <理解并学习数字分类与计数法等内容>作业正文 ...https://www.cnblogs.com/gu…

php网站数据库连接

在PHP开发中,连接数据库是常见的操作之一。以下是连接MySQL数据库的基本步骤和示例代码: 1. 准备数据库信息主机名 (hostname): 数据库服务器的地址或域名。 用户名 (username): 连接数据库的用户名。 密码 (password): 对应用户的密码。 数据库名 (database name): 要连接的…