RAG & Embeddings & Vector Store
什么是检索增强的生成模型(RAG)
大模型目前固有的局限性
- LLM的知识不是实时的
- LLM可能不知道你私有的领域/业务知识
检索增强生成
通过检索的方法来增强生成模型的能力
RAG系统的基本搭建流程
搭建过程:
- 文档加载,并按一定条件切割成片段
- 将切割的文本片段灌入检索引擎
- 封装检索接口
- 构建调用流程:Query -> 检索 -> Prompt -> LLM -> 回复
文档的加载与切割
向量检索
什么是向量
- 文本向量(Text Embeddings)
- 将文本转成一组N维浮点数。即文本向量又叫Embeddings
- 向量之间可以计算距离,距离远近对应语义相似度大小
- 文本向量是怎么得到的
- 构建相关与不相关的句子对样本
- 训练双塔式模型,让正例间的距离小,负例间的距离大
扩展阅读:文本翻译推荐的网站 sbert.net/ 嵌入模型,文本生成这块非常好使
向量间相似度计算
- 欧氏距离
- 余弦距离
嵌入模型的选择
- 标准: 找需求相关的语料库来进行文本向量转换测试,进行评估
text-embedding-ada-002: 全球比较先进的模型,尤其是跨语言的支持。
这个是比较好嵌入向量模型,OpenAI用这个。langchain,llamaindex默认用这个。
大多数场景下,开源的嵌入模型使用都很一般,要提升召回率,建议对模型进行微调。