美文网首页
动手学习RAG: 向量模型

动手学习RAG: 向量模型

作者: YueTan | 来源:发表于2024-09-06 16:54 被阅读0次

在世界百年未有之变局与个人自暴自弃的间隙中,我们学一点RAG。 RAG是一种独特的应用,“一周写demo,优化搞半年”,我甚至听说它能破解幻术。

为了理解其优化中的关键一环,我们先看下文本向量。文本向量除了是RAG检索的重要模块外,也应用在信息检索、排序、分类、聚类、语义相似度中。

structure.png

1. 词向量到文本向量

向量模型把人类世界中的语言,变为计算机世界中的数字。输入一句话,输出一维向量。由于transformer中的一句话一般会输出一个二维向量,其形状为(sequence_length, embedding_dim),因此模型后面通常加一层pooling,把sequence_length这一维坍塌。

pip install open-retrievals
Screen Shot 2024-09-07 at 16.54.30.png

colab上有这段小小的代码: https://colab.research.google.com/drive/1dTzcMJNX3kSqqjTFUJXwZu6fRnf_5oHD?usp=sharing

更多更好的模型,根据语言需要(英文或中文还是多语言),顺着MTEB的榜单捋一下就行:https://huggingface.co/spaces/mteb/leaderboard

2. 文本向量的若干主流训练范式

语言模型可以很容易得到一个文本向量模型,但语言模型并不是为向量训练的,因此预训练的语言模型直接pooling不一定能取得满意的效果。那么,根据向量任务先微调一下再用。

微调的目的,把相似句子向量聚拢更近一些,把不相关的句子向量拉的更远一些。如何从一个语言模型训练出一个向量模型呢?我们从几篇典型论文中理解其范式。

BGE模型

  • 使用普通的文本语料进行RetroMAE预训练
  • 使用大量文本对进行batch内负样本对比学习
  • 使用高质量文本进行困难负样本加batch内负样本根据任务对比学习微调
Screen Shot 2024-09-07 at 15.34.00.png

GTE模型

  • 大量文本对进行batch内负样本对比学习
  • 高质量文本进行困难负样本学习
Screen Shot 2024-09-07 at 15.33.53.png

E5-mistral模型

  • 合成大量的不同任务不同语言的检索数据,困难负样本与batch内负样本对比学习
Screen Shot 2024-09-07 at 15.33.45.png

nv-embed模型

  • 高质量检索数据进行困难负样本加batch内负样本对比学习
  • 继续根据非检索数据,如一些分类等其他任务数据进行微调
Screen Shot 2024-09-07 at 15.33.18.png

3. 结论

我们试图从几种范式中总结出以下几点认知:

  • 训练方式,尤其是合理设计的多阶段pipeline仍然能够提升性能
  • 数据,数据大小、质量、多样性很重要,甚至更长的文本在向量模型中也更受重视。更重要的,合成数据开始展露头脚
  • 模型,Decoder-only LLM微调的向量模型效果越来越好。大模型也逐步统治向量模型榜单,带来的收益和增加的开销相比如何,咱也不知道,但是这些参数中蕴含的知识确实让人印象深刻
  • 对比学习和难负样本挖掘仍然扮演关键角色。
  • 多任务,用不同任务不同来源的数据进行训练,一个batch内如何组织数据也有优化空间。instruction-based fine-tuning可以在训练时帮助模型拿到任务上的线索

更多内容,请关注:https://github.com/LongxingTan/open-retrievals

相关文章

  • 任务1:词向量分布

    要点一:提问:词向量是学习得来的吗? 答:是的。段落+模型->词向量 要点二:什么是语言模型 ?训练语言模型是要让...

  • 【NLP】TextCNN

    模型 四种模式 CNN-rand: 单词向量是随机初始化,向量随着模型学习而改变 CNN-static: 使用预训...

  • 《机器学习》西瓜书学习计划

    第3章 线性模型:✅完成。对数几率回归 第6章 支持向量机:✅完成。【TODO】支持向量机学习笔记

  • SVM——分类与回归实例

    在线课堂——支持向量机实例学习笔记。 支持向量机简介 支持向量机是一种监督学习数学模型,由n个变量组成的数据项都可...

  • python文本相似度计算

    步骤 分词、去停用词 词袋模型向量化文本 TF-IDF模型向量化文本 LSI模型向量化文本 计算相似度 理论知识 ...

  • 第四章 相似度分析算法——向量空间模型

    4.4 向量空间模型 向量空间模型是将文本转换为向量的代数模型,主要用于自然语言处理、文本分析等领域。目前,空间向...

  • 支持向量机(SVM)

    支持向量机 支持向量机(suport vector machine,简称:SVM),是一种常用于二分类的学习模型。...

  • 向量随笔

    向量 我们在机器学习中大量地使用到了向量,利用向量来描述我们熟知物体,通过的线性变换来实现模型。那么我们为什么需要...

  • 线性代数(2)

    向量 我们在机器学习中大量地使用到了向量,利用向量来描述我们熟知物体,通过的线性变换来实现模型。那么我们为什么需要...

  • 动态词向量算法 — ELMo

    传统的词向量模型,例如 Word2Vec 和 Glove 学习得到的词向量是固定不变的,即一个单词只有一种词向量,...

网友评论

      本文标题:动手学习RAG: 向量模型

      本文链接:https://www.haomeiwen.com/subject/hzqjljtx.html