当前位置: 首页 > news >正文

RAG的实现快速示例

RAG(Retrieval-Augmented Generation)其实就是结合了检索生成,核心流程分为 检索(Retrieval)生成(Generation) 两大阶段,通过外部知识库增强生成式模型的准确性和可靠性。

流程其实也很简单,如下图:

关于RAG的基本概念的介绍,可以参考:

RAG(检索增强生成)快速入门

本篇通过一个快速示例演示RAG的实现。

本篇的开发环境

因为本篇旨在演示RAG的快速实现,所有使用的都是比较小型的模型,实际应用和开发可以选取大的模型,这样的效果会比较好。

  • 嵌入模型:all-MiniLM-L6-v2, 用于将文本转换为向量,向量维度384
  • 自然语言模型:Qwen2.5-0.5B-Instruct
  • 向量数据库: LanceDB
  • 开发语言: Python
  • 开发IDE: VS Code

实现目标

假如有以下文本内容:

     "熊猫是中国的国宝,主要栖息在四川山区。",
    "长城是古代中国建造的军事防御工事,全长超过2万公里。",
    "量子计算利用量子力学原理进行信息处理,相比经典计算机有显著优势。"

现在需要通过RAG获取 “熊猫栖息地?”的答案。

实现步骤

通过嵌入模型获取文本的向量

model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
documents = [
    "熊猫是中国的国宝,主要栖息在四川山区。",
    "长城是古代中国建造的军事防御工事,全长超过2万公里。",
    "量子计算利用量子力学原理进行信息处理,相比经典计算机有显著优势。"
]
# 获取嵌入向量
embeddings = model.encode(documents)
vector_dim =  len(embeddings[0]) #获取向量的维度,这里是384

上面三句话的向量是3个维度是384的数字的数组,如下所示:

相关文章:

  • Redhat红帽 RHCE8.0认证体系课程
  • Python进阶(2):函数
  • 移动端六大语言速记:第13部分 - 网络与通信
  • LLM介绍
  • 玩转代理 IP :实战爬虫案例
  • 212、【图论】字符串接龙(Python)
  • Flutter 2025 Roadmap
  • redis 免安装版本 启动方法 windows 安装包
  • 性能比拼: Redis vs Memcached
  • AI Agent类开发应避免Python独舞,奏响多技术交响曲
  • 【cesium】在vue2中使用cesium(持续更新)
  • 基于VSCode的Qt开发‘#include ui_test.h’报错没有该文件
  • 沐渥科技详解氮气柜操作指南
  • C++程序诗篇的灵动赋形:多态
  • 李沐《动手学深度学习》 | 线性神经网络-线性回归
  • 《USB技术应用与开发》第二讲:连接和枚举
  • Python实例题:Python3实现命令行动态进度条
  • WebGPU:前端图形技术的革命性进化与WebGL的未来
  • [ctfshow web入门] web39
  • 深入理解 RxSwift 中的 Driver:用法与实践