LLMs之RAG之IncarnaMind:IncarnaMind的简介(提高RAG召回率的两个优化技巧=滑块遍历反向查找+独立查询)、安装、使用方法之详细攻略

news2024/11/15 19:53:56

LLMs之RAG之IncarnaMind:IncarnaMind的简介(提高RAG召回率的两个优化技巧=滑块遍历反向查找+独立查询)、安装、使用方法之详细攻略

导读:在IncarnaMind项目中,提出了几个优化技巧,是非常值得我们在优化RAG系统的时候,进行思考和借鉴。

>> 文档分块能够提高相似度检索中的效率和准确性:可以通过小分块和大分块的结合来优化检索效果。分块大小需要权衡,分块不宜太大,否则会影响检索效果;分块也不宜太小,以免检索结果不完整。

>> 分块技巧—滑块遍历反向查找(用小分块保证尽可能找到更多的相关内容,用大分块保证内容完整性):在相似度检索时,可以使用滑块遍历结果,根据小块的信息反向查找大块内容,以便提交给语言模型作为上下文。比如Langchain中ParentDocumentRetriever(父文档检索器)就采用了这一思路。

>> 用LLM将用户的提问转换成独立查询当用户提问后,重新提炼问题并拆分成多个独立查询。通过过滤掉无用信息,使得查询更准确,进而提升用户体验和检索结果的质量

目录

相关文章

LLMs之RAG:知识检索增强生成方法(搭建本地知识库、利用外挂信息库增强LLMs自身能力的一种方法,外部知识检索+LLMs生成回复=知识问答任务)的简介、实现方法(LangChain/Loc……等)、案例应用之详细攻略

IncarnaMind的简介

1、版本更新

2、应对的挑战及其提出的解决方案

(1)、流程图—高级架构

(2)、流程图—滑块窗口分块

3、不同模型的性能对比表

IncarnaMind的安装

1、环境配置以及闭源模型的密钥

2、安装

IncarnaMind的使用方法

1、基础用法


相关文章

LLMs之RAG:知识检索增强生成方法(搭建本地知识库、利用外挂信息库增强LLMs自身能力的一种方法,外部知识检索+LLMs生成回复=知识问答任务)的简介、实现方法(LangChain/Loc……等)、案例应用之详细攻略

https://yunyaniu.blog.csdn.net/article/details/130215772

IncarnaMind的简介

IncarnaMind允许你使用大型语言模型(LLMs)如GPT与你的个人文件(PDF,TXT)进行聊天。尽管OpenAI最近推出了GPT模型的微调API,但它不允许base版本的预训练模型学习新数据,而且响应可能容易受到事实幻觉的影响。利用我们的滑块窗口分块机制和集合检索器,可以有效地查询地面真实文档中的精细和粗粒度信息,以增强LLMs。

GitHub地址:https://github.com/junruxiong/IncarnaMind

1、版本更新

开源和本地LLMs支持

开源和本地LLMs支持

推荐模型:我们主要使用Llama2系列模型进行测试,并建议使用llama2-70b-chat(完整或GGUF版本)以获得最佳性能。随时尝试其他LLMs。

系统要求:运行GGUF量化版本需要超过35GB的GPU RAM。

备用开源LLMs选项

备用开源LLMs选项

内存不足:如果受到GPU RAM的限制,请考虑使用Together.ai API。它支持llama2-70b-chat和大多数其他开源LLMs。此外,您可以获得25美元的免费使用额度。

即将推出:将来将发布更小型和经济实惠的微调模型。

注意事项

如何使用GGUF模型:有关获取和使用量化GGUF LLM的说明(类似于GGML),请参考此视频(从10:45到12:30)。

即将推出的功能前端UI界面
经过微调的小型开源LLMs
OCR支持
异步优化
支持更多文档格式。

视频地址:https://user-images.githubusercontent.com/44308338/268073295-89d479fb-de90-4f7c-b166-e54f7bc7344c.mp4

2、应对的挑战及其提出的解决方案

固定分块:传统的RAG工具依赖于固定的分块大小,限制了它们在处理不同数据复杂性和上下文方面的适应能力。

自适应分块:我们的滑块窗口分块技术根据数据复杂性和上下文动态调整窗口大小和位置,以实现RAG的细粒度和粗粒度数据访问平衡

精度与语义:当前的检索方法通常要么侧重于语义理解,要么侧重于精确检索,但很少两者兼顾

单文档限制:许多解决方案一次只能查询一个文档,限制了多文档信息检索

多文档会话问答支持跨多个文档同时进行简单和多跳查询,打破了单文档限制。

文件兼容性:支持PDF和TXT文件格式。

稳定性:IncarnaMind与OpenAI GPT、Anthropic Claude、Llama2和其他开源LLMs兼容,确保稳定的解析。LLM模型兼容性支持OpenAI GPT、Anthropic Claude、Llama2和其他开源LLMs。

(1)、流程图—高级架构

(2)、流程图—滑块窗口分块

3、不同模型的性能对比

MetricsGPT-4GPT-3.5Claude 2.0Llama2-70bLlama2-70b-ggufLlama2-70b-api
ReasoningHighMediumHighMediumMediumMedium
SpeedMediumHighMediumVery LowLowMedium
GPU RAMN/AN/AN/AVery HighHighN/A
SafetyLowLowLowHighHighLow

IncarnaMind的安装

1、环境配置以及闭源模型的密钥

环境配置

3.8 ≤ Python < 3.11与Conda

密钥一个/所有OpenAI API密钥,Anthropic Claude API密钥,Together.ai API密钥或HuggingFace Meta Llama模型的令牌

2、安装

1.1. 克隆存储库
git clone https://github.com/junruxiong/IncarnaMind
cd IncarnaMind

1.2. 设置
创建Conda虚拟环境:
conda create -n IncarnaMind python=3.10

激活:
conda activate IncarnaMind

安装所有要求:
pip install -r requirements.txt

单独安装llama-cpp,如果您要运行量化本地LLMs:
>> 对于NVIDIA GPU支持,请使用cuBLAS
CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python==0.1.83 --no-cache-dir
>> 对于Apple Metal(M1/M2)支持,请使用
CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install llama-cpp-python==0.1.83 --no-cache-dir


在configparser.ini文件中设置您的一个/所有API密钥:
[tokens]
OPENAI_API_KEY = (替代)
ANTHROPIC_API_KEY = (替代)
TOGETHER_API_KEY = (替代)

IncarnaMind的使用方法

1、基础用法

上传和处理您的文件

第一步,上传和处理您的文件
将所有文件(请正确命名每个文件以最大化性能)放入/data目录,然后运行以下命令以摄入所有数据:(在运行命令之前,您可以删除/data目录中的示例文件)
python docs2db.py

运行

第二步,运行
为了开始对话,请运行如下命令:
python main.py

聊天

第三步, 聊天和提问任何问题
等待脚本需要您的输入,如下所示。

Human:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1164025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享66个工作总结PPT,总有一款适合您

分享66个工作总结PPT&#xff0c;总有一款适合您 66个工作总结PPT下载链接&#xff1a;https://pan.baidu.com/s/1g8AWl42-tLdFYXEHZUYyGQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 立冬PPTPPT模板 西藏信仰PPT模板 古镇丽…

金麟国际用工-全新蓝领跨境就业服务平台

金麟国际用工-全新蓝领跨境就业服务平台 金麟国际用工平台是一个引领时代的蓝领跨境就业服务平台&#xff0c;专为蓝领求职者和雇主提供一个全面、便捷、高效的就业对接环境。这个平台通过其强大的数字化系统&#xff0c;包括客户管理系统、岗位信息系统和智能营销工具等&…

c++-AVL树

文章目录 前言一、AVL树1、AVL树概念2、AVL树模拟实现3、AVL树的旋转操作3.1 左单旋3.2 左单旋代码实现3.3 右单旋3.4 右单旋代码实现。3.5 什么时候调用左单旋和右单旋3.6 左右双旋3.7 左右双旋代码实现3.8 右左双旋3.9 右左双旋代码实现3.10 什么时候调用左右双旋和右左双旋 …

【C++】C++11【上】列表初始化|声明|新容器|右值引用|完美转发|新的类功能

目录 1、 C11简介 2、 统一的列表初始化 2.1 &#xff5b;&#xff5d;初始化 2.2 std::initializer_list 3、声明 3.1 auto和范围for 3.1decltype 3.3 nullptr 4、新容器 5、 右值引用 5.1左值引用和右值引用 5.2 左值引用与右值引用比较 5.3 左值和右值引用使用场景及意义 6…

怎么让重要文件自动备份到OneDrive?

可以让文件自动备份到OneDrive吗&#xff1f; OneDrive是比较受欢迎的云存储之一&#xff0c;主要用于存储文件和个人数据&#xff0c;随时随地都能够在多个设备&#xff08;例如Android、台式机或笔记本电脑、平板电脑等&#xff09;之间同步和共享文件。 因此&…

Python实验五 异常处理

实验 1&#xff1a;为下列代码添加异常处理。 xint(input(请输入一个整数)) print(100/x) # 实验 1&#xff1a;为下列代码添加异常处理。 try:xint(input(请输入一个整数&#xff1a;))print(100/x) except ValueError:print(请输入一个整数) except ZeroDivisionError:print…

操作系统 day05(体系结构、开机过程、虚拟机)

一&#xff0c;操作系统的体系结构 内核 内核是操作系统最基本、最核心的部分&#xff0c;实现操作系统内核功能的那些程序就是内核程序这其中&#xff1a;时钟、中断、原语是与硬件关联最紧密的模块&#xff0c;而进程管理、存储器管理、设备管理更多的是对数据结构的操作&…

【Midjourney入门教程1】Midjourney的注册、订阅

文章目录 前言一、Midjourney是什么二、Midjourney注册三、新建自己的服务器四、开通订阅 前言 AI绘画即指人工智能绘画&#xff0c;是一种计算机生成绘画的方式。是AIGC应用领域内的一大分支。 AI绘画主要分为两个部分&#xff0c;一个是对图像的分析与判断&#xff0c;即“…

【Redis】的简介和安装配置(Linux和windows)及操作命令

目录 一、概述 1.介绍 2.特点 二、安配 1. 安装 2. 配置 3. 主机连接 1.Linux连接 2.windows连接 三、命令 1. 字符串(String) 2. 哈希(Hash) 3. 列表&#xff08;List&#xff09; 4. 集合&#xff08;Set&#xff09; 一、概述 1.介绍 Redis是一个开源的、基…

EViews| 基础操作 备战下周机考

目录 一、创建工作文件 1、非时间序列数据 2、时间序列数据 二、导入数据 1、导入数据 2、保存数据组合或方程结果 三、估计回归模型 1、估计回归模型 2、回归结果名词解读 四、检验模型设定错误 1、检验是否遗漏变量 2-1、检验是否加入了不相干变量 2-2、惩罚新增…

2023年最新版潮乎盲盒源码含搭建教程

后台开发语言&#xff1a;后端 Laravel 框架开发 前端开发框架&#xff1a;uniappvue 环境配置: php7.4 mysql5.6 nginx1.22 redis&#xff08;建议宝塔面板或 lnmp&#xff09; 源码获取请自行百度&#xff1a;一生相随博客 一生相随博客致力于分享全网优质资源&#x…

大数据与健康:技术助力医疗卫生事业腾飞

大数据与健康&#xff1a;技术助力医疗卫生事业腾飞 随着科技的飞速发展&#xff0c;大数据技术已经渗透到我们生活的方方面面&#xff0c;包括医疗卫生领域。本文将对大数据在健康医疗领域的应用进行分析&#xff0c;并通过数据图表展示其发展趋势和前景。 一、背景介绍 近…

IPv4首部格式

IPv4首部格式 IPv4数据报的首部格式及其内容是实现IPv4协议各种功能的基础。 在TCPIP标准中&#xff0c;各种数据格式常常以32比特(即4字节)为单位来描述。 IPv4首部格式图 ## IPv4数据报的组成 主要由固定部分(20字节)可变部分(最大40字节) - 固定部分是指每个IPv4数据报都必…

Jmeter调用测试片段 —— 模块控制器

可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口&#xff0c;添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及…

ETHERNET/IP转RS485/RS232自由协议网关连接AB系统的简单配置方法

想将ETHERNET/IP网络和RS485/RS232总线连接起来吗&#xff1f;来看这款通讯网关&#xff01; 捷米特JM-EIP-RS485/232是一款通讯网关&#xff0c;它具有将ETHERNET/IP网络和RS485/RS232总线连接起来的功能。作为ETHERNET/IP网络的从站&#xff0c;它可以连接AB、欧姆龙等品牌的…

游戏反Xposed框架解决方案

在游戏安全对抗过程中&#xff0c;除了常见的内存修改、加速、破解等作弊手段&#xff0c;还有一类危害严重的外挂——「注入挂」。 据FairGuard游戏安全数据统计&#xff0c;在游戏面临的众多安全风险中&#xff0c;注入挂的占比高达17% 。如此高的占比&#xff0c;可见注入挂…

软件测试工程师必须掌握的Linux常用命令

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

msvcp120.dll下载修复详细方法与解决方法

MSVCP120.dll文件丢失是一个常见的问题&#xff0c;它通常会导致某些程序无法正常运行。这个问题可能是由于多种原因引起的&#xff0c;例如系统更新、软件卸载或病毒感染等。在这篇文章中&#xff0c;我将为您提供四种解决MSVCP120.dll文件丢失的方法&#xff0c;帮助您快速恢…

【Redis】入门篇--安装以及常用命令

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Redis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Redis是什么 二. Redis有什么优势 三…

一秒文件搜索神器—Everything,结合内网穿透成为在线搜索神器!

Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前…