- 本篇文章简单梳理我在了解RAG以及Embedding技术时的想法,仅供参考
1. 引言
背景
在自然语言处理(NLP)和大型语言模型(LLM)的应用中,信息检索与问答是最举人注目的场景之一。然而,传统方法并不能完美解决如下问题:
- 最新知识的使用:传统LLM无法访问资料中的最新信息。
- 大规模知识库:因为数据量高,检索效率和精度无法举屏。
- 团队知识及基于文档的问答:多数环境中,为了对接解决问题,必须采用基于专用文档的知识。
为什么要关注RAG与Embedding技术
RAG (检索增强生成) 和Embedding技术是解决上述问题的重要方法。
- RAG与现有模型的区别: RAG通过检索采集最关键的外部信息,不仅依赖于预训练模型。
- Embedding是在大数据中检索的基石: 它通过将文本和查询进行向量化,实现高效的超负载检索。
2. 基础概念与原理
2.1 什么是RAG (Retrieval-Augmented Generation)
定义
RAG是一种将信息检索和生成模型结合的技术。不同于传统生成式模型,它通过访问外部知识库,在生成中轻松解决信息随时性和知识解析的限制。
工作流程
- 步骤1:用户查询输入。
- 步骤2:通过Embedding向量化查询,在向量数据库中检索最相关文档。
- 步骤3:将检索结果与用户输入聚合,产生答案。
优点与适用场景
- 能够访问最新或被订制化的知识。
- 解决需要标准信息源和大规模文档检索的场景。
2.2 什么是Embedding
定义
Embedding指将文本或其他数据(如图像、图、声音)转换为高空间中的向量。在NLP中,它能夠抓住语义信息和文本之间的相似性。
作用
- 语义相似度比较:基于Embedding的向量空间,可以直接计算文本相似度。
- 在检索中的应用:使用Embedding实现文本精准检索和分类。
3. Embedding在RAG中的关键作用
3.1 从检索到生成的桥梁
Embedding为文档和查询提供向量化代表,并通过向量相似度检索最相关内容。
3.2 提升RAG的准确性与鲜更性
- 语义匹配的精度提高:Embedding能在大规模文档集中实现高效检索。
- 减少“背乍”回答风险:生成模型能够根据检索结果依据。
3.3 形成完整RAG工作流
- 流程示例:
- 用户输入问题。
- 通过Embedding模型将问题向量化。
- 在向量数据库中检索最相关文档。
- 聚合检索结果,生成答案。
- 数据流与模块耱合:每个模块(Embedding模型、向量数据库、LLM、答案生成)其功能紧密配合。
4. 常用的Embedding方法与框架
4.1 经典Embedding方法
- Word2Vec / GloVe:早期词向量方法,能力限制在于静态转换。
4.2 加入上下文的Embedding模型
- BERT及其变体:基于Transformer,采用双向编码。
- Sentence-BERT、SimCSE:采用专为发布句子级别向量,依据查询和文本之间的近值计算。
4.3 特定领域的Embedding
- 专用领域微调:通过基于区域数据进行微调,尽可能推动属性化性能。
5. 常用的RAG方法与框架
5.1 RAG工作流示例
- Facebook AI Research的RAG:公开建议架构。
5.2 开源框架与工具
- LangChain:集成LLM、向量存储和检索模块的Python框架。
- LlamaIndex:迅速构建基于知识库的QA系统。
- Haystack:提供文档检索和问答的综合框架。
5.3 与向量数据库的集成
- Pinecone、Weaviate、Chroma:常用向量数据库,提高向量检索效率。
7. 总结与展望
RAG与Embedding未来发展趋势
- 更高效的语义检索技术,以及模型压缩和低成本部署方向。
在NLP生态系统中的位置
- RAG和Embedding技术将继续进化,成为生成式AI领域不可战略的核心技术。