FlagEmbedding
FlagEmbedding copied to clipboard
embedding一个有趣且奇怪的现象
作者您好,我在最近一直在fellow您的FlagEmbedding和相关榜单,很棒的工作。在使用bge-base/large的encode_corpus编码时,出现有一个有趣且奇怪的现象,在768/1024维度中,无论什么句子,有两个 sharp 值, 如base:
如在294这一维度,基本上都在0.5左右
如large
您可以解释一下这种现象吗?
我们尝试阿里gte模型来做同样的事情,发现他的base模型,也是294维度和其他维度出现同样的 sharp value.
这是我们的句子
注意到 就 单一个“好”也有这样的sharp value???
你好,这个现象挺有意思的,我们之前也没考虑过。请问一下是中文模型还是英文模型,这个是normalize之后的结果还是之前的,以及图里每一行代表什么含义?
谢谢您如此迅速的回复,这是中文模型,normalize之后的结果,而且我尝试编码简短的英文“hello world”, 甚至时 空字符“ ”,都有这样的现象,英文的模型 我没有尝试。图中的直线的意思时我们把 768/ 1024每个维度的值 画了出来,线之所有分开的时我们对不同emb画的时候,为了看清楚点,减去了 i
for i, emb in enumerate(doc_embs):
plt.plot(emb - i)
print(emb[290:295])
我们仔细检查了代码,画的确实是不同的句子。
可能是由于基座模型hfl/chinese-roberta-wwm-ext带来的问题,由于都是使用的这一中文基座模型,导致了这种现象。可以查看一下其他,比如英文模型,是否有这种现象。