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

【LLM学习】【Ollama】三、RAG

在大语言模型(LLM)应用中,检索增强生成(RAG)技术因其能让模型结合外部知识回答问题而备受关注。本文将结合一个简洁的开源项目,带你从零理解 RAG 的核心原理与实现方式,即使没有复杂的工程经验也能快速上手。

项目地址:https://github.com/MiaoJieF/LLM_rag

一、什么是 RAG?为什么需要它?​

RAG(Retrieval-Augmented Generation,检索增强生成)是一种将 “检索外部知识” 与 “LLM 生成” 结合的技术。它解决了传统 LLM 的两大痛点:​

  • 知识时效性问题:LLM 训练数据有截止日期,无法回答最新信息​
  • 知识准确性问题:避免模型 “一本正经地胡说八道”,答案可追溯到来源文档​

简单来说,RAG 的工作流程可以概括为四步:​

  • 分块:将长文档切割成有重叠的小片段(保持语义完整)​
  • 向量化:用嵌入模型将文本片段转换为向量(数字表示)​
  • 检索:将用户问题转为向量,与文本向量做相似度匹配,找到最相关的片段​
  • 生成:将问题和检索到的片段一起传给 LLM,生成基于参考文档的答案

二、一个极简的 RAG 实现:简易版 localGPT​

今天要介绍的这个开源项目(项目结构)专为学习 RAG 原理设计,代码简洁易懂,无需复杂依赖即可本地运行。它的核心特点是:​

  • 纯离线运行:支持本地嵌入模型和本地 LLM(无需联网调用 API)​
  • 轻量易上手:代码量少,模块划分清晰,适合初学者阅读​
  • 功能完整:包含文档加载、分块、嵌入、检索、生成全流程

1. 项目核心结构​

.
├─ data/               # TXT 文档(示例:sample.txt)
├─ src/
│  ├─ loader.py        # 加载 .txt 文件
│  ├─ chunker.py       # 文本分块(定长+重叠)
│  ├─ embeddings.py    # Sentence-Transformers 嵌入(支持本地目录)
│  ├─ vector_store.py  # 内存向量库 + 余弦相似度检索 + 保存/加载
│  ├─ retriever.py     # 检索器(整合分块、嵌入、搜索)
│  ├─ llm.py           # 本地 LLM(llama.cpp 可选)+ Ollama 客户端(支持流式&中文)
│  └─ cli.py           # 命令行入口(index / ask / chat)
├─ tests/              # 基础测试
├─ requirements.txt    # 依赖
└─ README.md

每个模块各司其职,通过简单的调用关系构成完整的 RAG 流程,非常适合逐模块学习。​

2. 核心功能解析​

(1)文本分块:保持语义的关键​

长文本直接处理会丢失上下文,项目通过chunker.py实现定长 + 重叠分块:

# 核心分块逻辑(src/chunker.py)
def simple_chunk(text: str, chunk_size: int = 500, chunk_overlap: int = 100) -> List[str
http://www.dtcms.com/a/396043.html

相关文章:

  • 成华区网站建设北京seo网站优化公司
  • php网站建设论文答辩百度h5手机版
  • seo可以提升企业网站的东莞网站推广优化网站
  • 做西服的网站少儿编程课程收费标准
  • 滁州市工程建设网站上一篇 下一篇 wordpress
  • 网站后台管理系统界面手机做服务器建网站
  • 搜索引擎站长平台百度首页排名优化多少钱
  • 阿里云 Hologres 登顶 VectorDBBench 性价比榜单四项第一
  • 如何不花钱做网站福建省效能建设网站
  • 全屏网站制作深圳出台科技支持政策
  • 网站开发所需费用教育网站开发需求分析
  • asp.net网站开发全过程在哪可以建一个网站
  • 建设机械 官方网站北京网站关键词优化推荐
  • 创建网站如何注册网页界面设计内容
  • 任县网站建设公司重庆的汽车网站建设
  • 权限管理不合理如何避免越权与泄露风险
  • XSS 跨站脚本攻击与防御 - 第二章:XSS 利用方式剖析
  • 大型网站后台用什么语言公司网站域名更改怎么做
  • 经营网站 备案注册会计师官网登录入口
  • 北流网站建设营销营网站建设
  • 手机百度网站证书过期wordpress 角色权限表
  • 企业网站制作费用卖印花图案设计网站
  • XSSer工具使用
  • 路由器 NAT 设置攻略:解决外网与内网通信难题
  • 网站免费正能量直接进入检察官高德地图有没有vr全景
  • 亚购物车功能网站怎么做的中国机械加工网最新订单
  • php初学者网站中国最大的销售网站
  • 佰力博检测与您探讨铁电测试的主要测试内容与行业应用
  • 【场景题】如何设计一个短链系统
  • 【学习率调整】batch_size与学习率关系