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

RAG(检索增强生成)技术构建垂直领域或个人知识库

利用RAG(检索增强生成)技术构建垂直领域或个人知识库,需通过数据准备、检索优化、生成控制、系统部署四个关键阶段实现。以下是具体实施步骤与技术方案:


一、数据准备:知识库构建

1. 数据收集与清洗
  • 数据来源
    • 垂直领域:行业报告、论文、专利、产品手册、客服记录等。
    • 个人知识库:笔记(Markdown/Notion)、邮件、聊天记录、网页收藏。
  • 清洗方法
    • 去重:使用SimHash或MinHash算法剔除重复内容。
    • 过滤:移除低质量文本(如广告、乱码)。
    • 结构化:解析PDF/PPT中的表格、图表(使用PyMuPDFpdfplumber)。
2. 文本分块(Chunking)
  • 策略
    • 按逻辑单元分块
      • 论文:按章节分块(摘要、方法、结论)。
      • 对话记录:按会话主题分块。
    • 重叠分块:相邻块保留20%重叠内容(避免信息割裂)。
  • 代码示例
    from langchain.text_splitter import MarkdownHeaderTextSplitter
    
    headers_to_split_on = [("#", "标题"), ("##", "子标题")]
    markdown_splitter = MarkdownHeaderTextSplitter(headers_to_split_on)
    chunks = markdown_splitter.split_text(markdown_content)
    
3. 元数据附加

为每个文本块添加可检索的元数据:

chunk_metadata = {
   
    "source": "产品手册_v2.pdf",
    "page": 42,
    "keywords": ["安装指南", "故障排查"],
    "create_time": "2023-05-10"
}

二、检索优化:精准知识定位

1. 向量化模型选型
场景 推荐模型 特点
通用垂直领域 bge-large-zh-v1.5(中文) 开源可微调,适配性强
多语言知识库 paraphrase-multilingual-mpnet-base-v2 支持100+语言
轻量化个人知识库 all-MiniLM-L6-v2 快速检索,内存占用低
2. 混合检索策略
  • 语义检索:向量相似度(如余弦相似度)。
  • 关键词检索:BM25/Algolia(适用于精确术语匹配)。
  • 混合加权
    final_score = 0.7 * semantic_score + 0.3 * bm25_score
    
3. 领域微调检索模型
  • 步骤
    1. 构建领域相关的(query, positive_doc, negative_doc)三元组。
    2. 使用对比学习微调:
      from sentence_transformers import InputExample, losses
      train_examples = [InputExample(texts=
http://www.dtcms.com/a/107315.html

相关文章:

  • RNN模型及NLP应用(3/9)——Simple RNN 模型
  • ngx_vslprintf
  • 【LLM基础】DeepSpeed基础知识
  • count查询详解
  • 【FPGA】状态机思想回顾流水灯
  • Google Gemini 2.0 网页抓取真丝滑
  • Golang的文件处理优化策略
  • STM32F103C8T6单片机硬核原理篇:讨论GPIO的基本原理篇章1——只讨论我们的GPIO简单输入和输出
  • [Lc6_记忆化搜索] 不同路径 | 解决智力问题 | 有序三元组中的最大值
  • Ansible内置模块之systemd
  • 【区块链+ 房产建筑】山东省建筑产业互联网平台 | FISCO BCOS 应用案例
  • 【Linux】文件系统知识梳理:从磁盘硬件到文件管理
  • C++IO流类库
  • 单元测试原则之——不要模拟值对象 (1)
  • SIMD技术:定义、与AI的关联及推理加速
  • HarmonyOS-ArkUI Rcp模块类关系梳理
  • Flask+Vue构建图书管理系统及Echarts组件的使用
  • 使用SpringBoot + Thymeleaf + iText实现动态PDF导出
  • pollinations 一个免费文生图、声音、文网站
  • PhotoShop学习05
  • springcloud configClient获取configServer信息失败导致启动configClient注入失败报错解决
  • 安徽京准:GPS北斗卫星校时服务器助力大数据云计算
  • 《Linux内存管理:实验驱动的深度探索》大纲
  • 项目练习:若依系统二次开发中,某些情况下,v-hasPermi不适合的解决办法
  • DoDAF科普
  • Python入门(5):异常处理
  • 蓝桥杯练习:对称二叉树
  • 全国产FMC子卡-16bit 8通道2.4G
  • Leetcode 6207 -- DP | 思维 | 双指针
  • catch-all路由