RAG 的基石:大语言模型文本向量化能力对比
一、概述
大家比较关心大语言模型的能力,但往往容易忽略其向量化(Embedding)的能力。在 RAG 应用中,对文本进行向量化后再计算向量相似度,如余弦相似度,是文本检索生成的基础和前置环节。如果向量不准确,必定会影响相似度计算,进一步影响召回和重排,甚至知识抽取等下游任务,影响甚大。因而我们需要认真对待其结果,并且对其正确性和合理性进行评价。
本文对一些简单的文本对,使用不同的开源 7B 大语言模型来进行向量化,最终以其余弦相似度作为输出作为测试结果。语义的相似度如何进行评价很难达成一致意见,就下面的输出结果而言,可能人很难来评价其合理性。但我们可以通过比较不同大语言模型输出之间的差异,对比分析其文本向量化的能力、跨模型一致性和偏差。
先直接贴结果:

图:不同大语言模型对字符串对向量相似度比较
可以看出,不同的大语言模型,对同一对字符串向量相似度的理解存在较大的差异。我第一次看到结果时感觉有点惊讶。我现在还没有理出头绪,但显然其中部分大语言模型的输出是不合理的,并且有的输出和其他大语言模型的输出存在较大的偏离,很显然,如果其中一个是正确的情况,那其他就是偏离甚至错误的情况。比如同一组词的相似度,不同大语言模型的输出范围包括从负值到 0.7 以上。
二、评测对象
- Baichuan2-7B-Chat
- CodeLlama-7B
- Mistral-7B
- Chinese-Alpaca-2-7B
- Llama 2 7b
- Chinese-Llama-2
- WizardLM-2-7B
- Qwen1.5-7B
- Meta-Llama-3-8B
- WizardMath-7B
- Mixtral-8x7B
- Yi-chat-9B
- WizardMath-7B-V1.1-Mistral-7B
三、测试方法
使用 LlamaSharp,以 Embedding 模式加载大语言模型,实现文本向量化:

四、评测结果
1、爱好比较
- 我喜欢看电视,不喜欢看电影。
- 我不喜欢看电视,也不喜欢看电影。
| 序号 | 大语言模型 | 余弦相似度 |
|---|---|---|
| 1 | Mistral-7B | 0.9194595217704773 |
| 2 | WizardMath-7B-V1.1-Mistral-7B | 0.9722315669059753 |
| 3 | WizardMath-7B | 0.9659444093704224 |
| 4 | WizardLM-2-7B | 0.9000769257545471 |
| 5 |










