茴香豆的使用

RAG

RAG 模型的核心在于两大部分:检索器(Retriever)和生成器(Generator)。检索器的作用是从一个庞大的数据集中,根据输入的问题或者提示,快速有效地检索出最相关的信息或文档。这一步骤通常利用向量空间模型,将问题和文档库中的文档转化为高维空间中的向量,通过计算向量之间的相似度来找出最相关的文档。

检索到的相关文档随后被传递给生成器。生成器通常是一个基于Transformer的神经网络模型,如GPT或BERT,它使用检索来的文档作为上下文信息,结合原始输入(如问题),生成文本输出。这一过程中,生成器不仅仅依赖于自身预训练中获得的知识,更在于能够利用检索到的具体、实时的外部信息来生成回答或内容,使得输出更加准确和丰富。

例如,在问答系统中,传统的生成模型可能仅依赖于模型内部的知识库来回答问题,这容易造成回答过时或缺乏细节。而RAG 通过先检索最新的相关信息,然后基于这些信息构建答案,显著提高了回答的质量和实用性。

RAG 的实现通常依赖于两阶段的训练过程:首先,训练检索器,确保其能够有效地从文档库中检索信息;其次,训练生成器,使其能够在获得检索结果的基础上生成合理的文本。在实际应用中,这两个部分需要紧密协作,以确保整体模型的效能。

总之,RAG 通过结合检索技术和生成技术,为自然语言处理领域提供了一种强大的工具,特别适用于那些需要大量外部知识参与的复杂任务。它不仅提高了生成文本的质量,也拓展了模型处理复杂、知识密集型问题的能力。

在茴香豆 Web 版中创建自己领域的知识问答助手

上传简历的pdf文件,对项目经历提问
在这里插入图片描述
在这里插入图片描述

环境配置

studio-conda -o internlm-base -t InternLM2_Huixiangdou
conda activate InternLM2_Huixiangdou

下载基础文件

创建模型文件夹

cd /root && mkdir models

复制BCE模型

ln -s /root/share/new_models/maidalun1020/bce-embedding-base_v1 /root/models/bce-embedding-base_v1
ln -s /root/share/new_models/maidalun1020/bce-reranker-base_v1 /root/models/bce-reranker-base_v1

复制大模型参数(下面的模型,根据作业进度和任务进行选择一个就行)
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b

下载安装茴香豆

安装 python 依赖

pip install -r requirements.txt

pip install protobuf4.25.3 accelerate0.28.0 aiohttp3.9.3 auto-gptq0.7.1 bcembedding0.1.3 beautifulsoup44.8.2 einops0.7.0 faiss-gpu1.7.2 langchain0.1.14 loguru0.7.2 lxml_html_clean0.1.0 openai1.16.1 openpyxl3.1.2 pandas2.2.1 pydantic2.6.4 pymupdf1.24.1 python-docx1.1.0 pytoml0.1.21 readability-lxml0.8.1 redis5.0.3 requests2.31.0 scikit-learn1.4.1.post1 sentence_transformers2.2.2 textract1.6.5 tiktoken0.6.0 transformers4.39.3 transformers_stream_generator0.0.5 unstructured0.11.2

因为 Intern Studio 不支持对系统文件的永久修改,在 Intern Studio 安装部署的同学不建议安装 Word 依赖,后续的操作和作业不会涉及 Word 解析。
想要自己尝试解析 Word 文件的同学,uncomment 掉下面这行,安装解析 .doc .docx 必需的依赖
apt update && apt -y install python-dev python libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig libpulse-dev

使用茴香豆搭建 RAG 助手

修改配置文件

sed -i ‘6s#.*#embedding_model_path = “/root/models/bce-embedding-base_v1”#’ /root/huixiangdou/config.ini

sed -i ‘7s#.*#reranker_model_path = “/root/models/bce-reranker-base_v1”#’ /root/huixiangdou/config.ini

sed -i ‘29s#.*#local_llm_path = “/root/models/internlm2-chat-7b”#’ /root/huixiangdou/config.ini

创建知识库

cd /root/huixiangdou && mkdir repodir

git clone https://github.com/internlm/huixiangdou --depth=1 repodir/huixiangdou

cd /root/huixiangdou
mv resource/good_questions.json resource/good_questions_bk.json

echo ‘[
“mmpose中怎么调用mmyolo接口”,
“mmpose实现姿态估计后怎么实现行为识别”,
“mmpose执行提取关键点命令不是分为两步吗,一步是目标检测,另一步是关键点提取,我现在目标检测这部分的代码是demo/topdown_demo_with_mmdet.py demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth 现在我想把这个mmdet的checkpoints换位yolo的,那么应该怎么操作”,
“在mmdetection中,如何同时加载两个数据集,两个dataloader”,
“如何将mmdetection2.28.2的retinanet配置文件改为单尺度的呢?”,
“1.MMPose_Tutorial.ipynb、inferencer_demo.py、image_demo.py、bottomup_demo.py、body3d_pose_lifter_demo.py这几个文件和topdown_demo_with_mmdet.py的区别是什么,\n2.我如果要使用mmdet是不是就只能使用topdown_demo_with_mmdet.py文件,”,
“mmpose 测试 map 一直是 0 怎么办?”,
“如何使用mmpose检测人体关键点?”,
“我使用的数据集是labelme标注的,我想知道mmpose的数据集都是什么样式的,全都是单目标的数据集标注,还是里边也有多目标然后进行标注”,
“如何生成openmmpose的c++推理脚本”,
“mmpose”,
“mmpose的目标检测阶段调用的模型,一定要是demo文件夹下的文件吗,有没有其他路径下的文件”,
“mmpose可以实现行为识别吗,如果要实现的话应该怎么做”,
“我在mmyolo的v0.6.0 (15/8/2023)更新日志里看到了他新增了支持基于 MMPose 的 YOLOX-Pose,我现在是不是只需要在mmpose/project/yolox-Pose内做出一些设置就可以,换掉demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py 改用mmyolo来进行目标检测了”,
“mac m1从源码安装的mmpose是x86_64的”,
“想请教一下mmpose有没有提供可以读取外接摄像头,做3d姿态并达到实时的项目呀?”,
“huixiangdou 是什么?”,
“使用科研仪器需要注意什么?”,
“huixiangdou 是什么?”,
“茴香豆 是什么?”,
“茴香豆 能部署到微信吗?”,
“茴香豆 怎么应用到飞书”,
“茴香豆 能部署到微信群吗?”,
“茴香豆 怎么应用到飞书群”,
“huixiangdou 能部署到微信吗?”,
“huixiangdou 怎么应用到飞书”,
“huixiangdou 能部署到微信群吗?”,
“huixiangdou 怎么应用到飞书群”,
“huixiangdou”,
“茴香豆”,
“茴香豆 有哪些应用场景”,
“huixiangdou 有什么用”,
“huixiangdou 的优势有哪些?”,
“茴香豆 已经应用的场景”,
“huixiangdou 已经应用的场景”,
“huixiangdou 怎么安装”,
“茴香豆 怎么安装”,
“茴香豆 最新版本是什么”,
“茴香豆 支持哪些大模型”,
“茴香豆 支持哪些通讯软件”,
“config.ini 文件怎么配置”,
“remote_llm_model 可以填哪些模型?”
]’ > /root/huixiangdou/resource/good_questions.json

测试用例
cd /root/huixiangdou

echo ‘[
“huixiangdou 是什么?”,
“你好,介绍下自己”
]’ > ./test_queries.json

使用向量数据库
创建向量数据库存储目录
cd /root/huixiangdou && mkdir workdir

分别向量化知识语料、接受问题和拒绝问题中后保存到 workdir
python3 -m huixiangdou.service.feature_store --sample ./test_queries.json

运行茴香豆知识助手

填入问题

sed -i ‘74s/.*/ queries = [“huixiangdou 是什么?”, “茴香豆怎么部署到微信群”, “今天天气怎么样?”]/’ /root/huixiangdou/huixiangdou/main.py

运行茴香豆

cd /root/huixiangdou/
python3 -m huixiangdou.main --standalone
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【算法专题--链表】两两交换链表中的节点 -- 高频面试题(图文详解,小白一看就懂!!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 -- 采用哨兵位头节点 🥝 什么是哨兵位头节点? 🍍 解题思路 🍍 案例图解 四、总结与提炼 五、共勉 一、前言 两两交换链表中的节点 这道题,可以说…

【LLM之KG】CoK论文阅读笔记

研究背景 大规模语言模型(LLMs)在许多自然语言处理(NLP)任务中取得了显著进展,特别是在零样本/少样本学习(In-Context Learning, ICL)方面。ICL不需要更新模型参数,只需利用几个标注…

如何实现流程编排能力的方案解决

解决方法 一、流程编排能力的实现 1. 使用工作流引擎:项目中使用成熟的工作流引擎(如Activiti、Camunda、BPM等)来实现流程编排。这些引擎提供了丰富的API和可视化的流程设计工具,可以方便地定义、修改和部署业务流程。 2. 定义…

Docker多种场景下设置代理

20240623 - 公司内网环境下需要对Docker进行代理设置;此时需要对拉取镜像的时候的命令设置代理;例如平时经常使用的wget设置代理一样。但对docker进行设置,并不能简单的直接export。 文章[1]指出,拉取镜像的时候实际执行的是doc…

网站监控定时计划任务

网站监控是一种保护网站安全和稳定性的重要手段,而定时计划任务则是网站监控的一种常见方法。通过设置定时计划任务,可以定期对网站进行监测和检测,及时发现并解决潜在的问题,从而保障网站的正常运行。 首先,网站监控定…

卧槽,6。套死你猴子,Tomcat访问html页面显示源码?

卧槽,6。Tomcat访问html页面显示源码? 元凶text/explain //踩坑!!!不能用 servletResponse.setContentType("text/explain,否则访问html会看到源码,而不是渲染页面; charsetUTF-8"…

WHAT - NextJS 系列之 Rendering - Server Rendering Strategies

目录 1. Static Rendering(静态渲染)特点:实现方式: 2. Dynamic Rendering(动态渲染)特点:实现方式: 3. Streaming Rendering(流式渲染)特点:实现…

通过ESP32读取I2C温湿度传感器项目:协议与代码实例

简介 在本项目中,我们将使用ESP32开发板读取I2C温湿度传感器的数据。我们将详细介绍I2C协议,并提供图文并茂的代码实例,帮助你快速上手。 项目流程 选择硬件:ESP32开发板、I2C温湿度传感器(如DHT12、HTU21D、SHT30等&a…

硬盘数据恢复软件,推荐5种适合你的方法来恢复硬盘数据

硬盘数据恢复软件,作为解决数据丢失问题的关键工具,帮助用户在重要文件丢失时迅速找回数据。本教程介绍5种恢复实用硬盘数据方法,适应不同类型和严重程度的数据损坏情况。 文章摘要: 一. 硬盘数据恢复软件 二. 数据恢复原理 三. …

在Qt5中创建、读取和写入JSON文件的完整指南

Qt5 提供了一个非常方便的JSON解析器,使得在C++中处理JSON数据变得非常简单。本文将详细介绍如何在Qt5中创建、读取和写入JSON文件。 读取JSON文件的示例 假设我们有一个名为test.json的JSON文件,内容如下: {"appDesc": {"description": "SomeD…

LED显示屏的换帧频率与刷新频率:技术细节与市场发展

在当今数字化时代,LED显示屏已成为信息传递和广告宣传的重要工具。然而,对于普通消费者来说,LED显示屏背后的技术细节可能仍然是一个谜。今天,我们将深入探讨LED显示屏中的两个关键概念:换帧频率和刷新频率&#xff0c…

分布式锁实现方案

分布式锁 1 什么是分布式锁 ​ 就是在分布式环境下,保证某个公共资源只能在同一时间被多进程应用的某个进程的某一个线程访问时使用锁。 2 几个使用场景分析 一段代码同一时间只能被同一个不同进程的一个线程执行 库存超卖 (库存被减到 负数),上面案…

预训练是什么?

预训练是什么? 图像领域的预训练 在介绍图像领域的预训练之前,我们首先介绍下卷积神经网络(CNN),CNN 一般用于图片分类任务,并且CNN 由多个层级结构组成,不同层学到的图像特征也不同&#xff…

【C++】Cmake入门|掌握cmake的基本操作

前言: CMake是开源、跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件可以直接拿到其它平台上使用&am…

【科学计算与可视化】2. pandas 基础

1. 安装 Pandas 首先,确保你已经安装了 Pandas。你可以使用以下命令安装:pip install pandas 2. 导入 Pandas 在开始使用 Pandas 之前,你需要先导入它:import pandas as pd 3. 创建数据结构 Pandas 主要有两种数据结构&#…

基于动力学的六自由度机器人阻抗恒力跟踪控制

1.整个代码的控制流程图如下: 2.正逆运动学计算 略 3.动力学模型 采用拉格朗日法计算机械臂的动力学模型,其输入的是机械臂的关节角度、角速度和角加速度;其中M、C、G本别是计算的惯性力、科式力和重力项,相关部分如下&#xf…

JavaScript的学习之运算符

目录 一、运算符的介绍 二、算数运算符 三、一元运算符 一、运算符的介绍 运算符也称操作符,通过运算符可以对一个或者多个值进行运算,并获得结果 比如:typeof就是运算符,可以获得一个值的类型,它会将改值的类型以字…

Android SurfaceFlinger——HWC图层合成器加载(四)

在前面文章中的 Android.bp 文件中,我们可以看到里面加载了图层合成器和图形内存分配器的 HAL 服务,这里篇我们就来详细介绍一下其中的图层合成器——HWC。 一、HWC简介 HWC,全称为 Hardware Composer,是 Android 系统中一个至关重要的组件,位于硬件抽象层(HAL)。它的主…

JavaScript 中并发任务控制

目录 并发控制简介 并发控制的实现 asyncPool 的使用 功能 asyncPool ES9 实现 从 1.x 迁移 asyncPool ES9 为什么只用 Promise.race 而不用 Promise.all Promise.all的作用 Promise.race的作用 为什么这里没有使用Promise.all 总结 手写Promise.all和Promise.race…

自学前端——HTML篇

HTML标签 ’HTML‘全程是‘hypertext Markup langage(超文本标记语言) HTML通过一系列的’标签(也称为元素)‘来定义文本、图像、链接。HTML标签是由尖括号包围的关键字。 标签通常成对存在,包括开始标签和结束标签(也称为双标签…