茴香豆:搭建你的RAG智能助理-作业三

本次课程由书生·浦语社区贡献者【北辰】老师讲解【茴香豆:搭建你的 RAG 智能助理】课程。分别是:

  • RAG 基础介绍
  • 茴香豆产品简介
  • 使用茴香豆搭建RAG知识库实战

课程视频:https://www.bilibili.com/video/BV1QA4m1F7t4/

课程文档:https://github.com/InternLM/Tutorial/blob/camp2/huixiangdou/readme.md

这节课布置如下作业:

基础作业:

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

  • 参考视频零编程玩转大模型,学习茴香豆部署群聊助手
  • 完成不少于 400 字的笔记 + 线上茴香豆助手对话截图(不少于5轮)
  • (可选)参考 代码 在自己的服务器部署茴香豆 Web 版

2.在 InternLM Studio 上部署茴香豆技术助手

  • 根据教程文档搭建 茴香豆技术助手,针对问题"茴香豆怎么部署到微信群?"进行提问
  • 完成不少于 400 字的笔记 + 截图

进阶作

A【应用方向】 结合自己擅长的领域知识(游戏、法律、电子等)、专业背景,搭建个人工作助手或者垂直领域问答助手,参考茴香豆官方文档,部署到下列任一平台。

  • 飞书、微信
  • 可以使用 茴香豆 Web 版 或 InternLM Studio 云端服务器部署
  • 涵盖部署全过程的作业报告和个人助手问答截

B【算法方向】尝试修改 good_questions.json、调试 prompt 或应用其他 NLP 技术,如其他 chunk 方法,提高个人工作助手的表现。

  • 完成不少于 400 字的笔记 ,记录自己的尝试和调试思路,涵盖全过程和改进效果截图

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

1.1   给知识库名称取名为:大语言模型从理论到实践

​1.2  从本地上传大规模语言模型 从理论到实践.pdf  

​1.3   设置正反例

​1.4   茴香豆助手对话

 2. 在 InternLM Studio 上部署茴香豆技术助手

2.1  配置基础环境

​2.2  下载相关模型

​2.2  下载安装茴香豆所需要的环境包

​2.3  下载茴香豆代码仓库

2.4   修改配置文件

2.5   创建知识库

​2.6   运行茴香豆知识助手


给知识库名称取名为:大语言模型从理论到实践

 1.2  从本地上传大规模语言模型 从理论到实践.pdf  

 1.3   设置正反例

 1.4   茴香豆助手对话

第一轮:简述一下大语言模型的基本概念。

第二轮: 今天天气真好,我们去公园散步吧?顺便去超市买点东西,你有什么需要的吗?

第三轮:在进行大模型训练前,如何对数据处理?

第四轮: 我今天早上起床晚了,差点迟到。你有没有类似的经历?

第五轮:指令数据集如何构造?

 第六轮:如何才能实现模型分布式训练?

 第七轮:大语言模型有哪些应用?

总结:茴香豆对于用户问题理解非常彻底,对于正例问题,它可以从长文本中快速定位答案所在的段落,然后结合问题加上索引出的知识,进行知识问答。对于反例问题,它会拒绝回答。

 2. 在 InternLM Studio 上部署茴香豆技术助手

2.1  配置基础环境

使用 Cuda11.7-conda 镜像,在资源配置中,使用 30% A100 * 1 

从官方环境复制运行 InternLM 的基础环境,命名为 InternLM2_Huixiangdou

studio-conda -o internlm-base -t InternLM2_Huixiangdou

 激活 InternLM2_Huixiangdou python 虚拟环境

conda activate InternLM2_Huixiangdou

 2.2  下载相关模型

# 创建模型文件夹
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

 2.2  下载安装茴香豆所需要的环境包

pip install protobuf==4.25.3 accelerate==0.28.0 aiohttp==3.9.3 auto-gptq==0.7.1 bcembedding==0.1.3 beautifulsoup4==4.8.2 einops==0.7.0 faiss-gpu==1.7.2 langchain==0.1.14 loguru==0.7.2 lxml_html_clean==0.1.0 openai==1.16.1 openpyxl==3.1.2 pandas==2.2.1 pydantic==2.6.4 pymupdf==1.24.1 python-docx==1.1.0 pytoml==0.1.21 readability-lxml==0.8.1 redis==5.0.3 requests==2.31.0 scikit-learn==1.4.1.post1 sentence_transformers==2.2.2 textract==1.6.5 tiktoken==0.6.0 transformers==4.39.3 transformers_stream_generator==0.0.5 unstructured==0.11.2

 2.3  下载茴香豆代码仓库

cd /root
# 克隆代码仓库
git clone https://github.com/internlm/huixiangdou && cd huixiangdou
git checkout 63f2eef0e6e4ac113b05ede0316b193948a42cda

 2.4   修改配置文件

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

2.5   创建知识库

下载 Huixiangdou 语料

cd /root/huixiangdou && mkdir repodirgit clone https://github.com/internlm/huixiangdou --depth=1 repodir/huixiangdou

 增加茴香豆相关的问题到接受问题示例

cd /root/huixiangdou
mv resource/good_questions.json resource/good_questions_bk.jsonecho '["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/huixiangdouecho '[
"huixiangdou 是什么?",
"你好,介绍下自己"
]' > ./test_queries.json

 创建 RAG 检索过程中使用的向量数据库

# 创建向量数据库存储目录
cd /root/huixiangdou && mkdir workdir # 分别向量化知识语料、接受问题和拒绝问题中后保存到 workdir
python3 -m huixiangdou.service.feature_store --sample ./test_queries.json

2.6   运行茴香豆知识助手

填入问题,运行茴香豆

# 填入问题
sed -i '74s/.*/    queries = ["huixiangdou 是什么?", "茴香豆怎么部署到微信群", "今天天气怎么样?"]/' /root/huixiangdou/huixiangdou/main.py# 运行茴香豆
cd /root/huixiangdou/
python3 -m huixiangdou.main --standalone

 茴香豆技术助理对“茴香豆怎么部署到微信群”回答的结果

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

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

相关文章

Scala的函数至简原则

对于scala语言来说,函数的至简原则是它的一大特色。下面让我们一起来看看分别有什么吧! 函数至简原则:能省则省! 初始函数 def test(name:String):String{return name }1、return可以省略,Scala会使用函数体的最后一…

Docker in Docker的原理与实战

Docker in Docker(简称DinD)是一种在Docker容器内部运行另一个Docker实例的技术。这种技术允许用户在一个隔离的Docker容器中创建、管理和运行其他Docker容器,从而提供了更灵活和可控的部署选项。以下是DinD的主要特点: 隔离性&am…

Linux下载及安装OpenSSL

文章目录 前言一、OpenSSL下载二、OpenSSL安装1.上传下载好的安装包到服务器2.解压3.切换目录4.配置config5.编译6.安装7.备份旧版本OpenSSL7.创建软链接8.添加OpenSSL动态链接库9.更新库缓存10.查看OpenSSL版本验证安装是否成功 前言 一般系统会自带有OpenSSL,我们…

ssm和springboot项目运行与部署

java项目可以打成jar包或者war包,以前SSM前后端不分离的项目,一般都是打成war包,现在前后端分离springboot项目,一般都是打成jar包,当然前后端分离springboot项目打成war包也可以。 总结: ssm项目 前后端分…

详细解析什么是期权交易的获利方法

期权交易的获利方法 在期权交易之前进行充分的准备工作和风险评估是至关重要的。其中行情结构、策略方法、预期收益和风险评估,是期权交易成功的关键要素。它们能帮助我们更好地制定交易计划,控制风险,并追求稳定的利润。以下是对这四点的详…

SpringBoot+MyBatis-Plus+jsqlparser实现多租户功能

前言 多租户技术(multi-tenancy technology)是一种软件架构技术,它允许在单个系统实例上为多个用户或组织提供服务,同时确保这些用户之间数据的隔离性。在多租户架构中,每个租户(可以是个人用户、企业、组…

Golang | Leetcode Golang题解之第46题全排列

题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

LM1875L-TB5-T 音频功率放大器 PDF中文资料_参数_引脚图

LM1875L-TB5-T 规格信息: 商品类型音频功率放大器 音频功率放大器的类型- 输出类型1-Channel (Mono) 作业电压16V ~ 60V 输出功率25W x 1 4Ω 额外特性过流保护,热保护 UTC LM1875是一款单片功率放大器,可为消费类音频应 用提供极低失真和高品质的…

Linux用户与权限

切换账户 su su [-] [用户名]- 可选,表示在切换用户后加载环境变量,一般都使用 用户名 可选,省略表示切换到root切换用户后,可以使用exit命令退回上一用户,或用快捷键ctrld 为普通命令授权 sudo sudo命令:…

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分:1.3链表的优缺点: 二、链表典例力扣707.设计链表难点分析:(1)MyLinkedList成员变量的确定:(2)初始化自定义链表:&…

RIP最短路实验(华为)

思科设备参考:RIP最短路实验(思科) 一,技术简介 RIP(Routing Information Protocol,路由信息协议)是一种基于距离矢量的内部网关协议,工作原理是每个路由器周期性地向邻居路由器发…

对EKS(AWS云k8s)启用AMP(AWS云Prometheus)监控+AMG(AWS云 grafana)

问题 需要在针对已有的EKS k8s集群启用Prometheus指标监控。而且,这里使用AMP即AWS云的Prometheus托管服务。好像这个服务,只有AWS国际云才有,AWS中国云没得这个托管服务。下面,我们就来尝试在已有的EKS集群上面启用AMP监控。 步…

vue 脚手架创建

脚手架创建 介绍 脚手架是什么呢,就是vue自动创建脚手架的项目模板,用于搭建项目的整体骨架,就比如后端开发时,咱们可以创建一个空项目,一步步创建为mvc项目,但是vs封装了mvc的框架,我们可以直…

[C++][算法基础]求组合数(I)

给定 𝑛 组询问,每组询问给定两个整数 𝑎,𝑏,请你输出 的值。 输入格式 第一行包含整数 𝑛。 接下来 𝑛 行,每行包含一组 𝑎 和 𝑏。 输出格…

VMware17Pro虚拟机安装macOS教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装补丁4.1 解压补丁4.2 结束VMware相关进程4.3 运行补丁包 5. 安装macOS5.1 新建虚拟机5.2 修改虚拟机配置5.3 安装操作系统5.3.1 选择 ISO 映像文件5.3.2 开启虚拟机5.2.…

07 流量回放实现自动化回归测试

在本模块的前四讲里,我向你介绍了可以直接落地的、能够支撑百万并发的读服务的系统架构,包含懒加载缓存、全量缓存,以及数据同步等方案的技术细节。 基于上述方案及细节,你可以直接对你所负责的读服务进行架构升级,将…

江苏开放大学2024年春《会计基础 050266》第二次任务:第二次过程性考核参考答案

电大搜题 多的用不完的题库,支持文字、图片搜题,包含国家开放大学、广东开放大学、超星等等多个平台题库,考试作业必备神器。 公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案&#…

数据结构-二叉树-堆(二)

一、建堆的时间复杂度问题 1、除了向上调整建堆,我们还可以向下调整建堆。不能在根上直接开始向下调整。这里的条件就是左右子树必须都是大堆或者小堆。我们可以倒着往前走,可以从最后一个叶子开始调整。但是从叶子开始调整没有意义。所以我们可以从倒数…

C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码

C#开发的全套成熟的LIS系统源码JavaScriptSQLserver 2012区域云LIS系统源码 医院云LIS系统是一套成熟的实验室信息管理系统,目前已在多家三级级医院应用,并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标…

Godot3D学习笔记1——界面布局简介

创建完成项目之后可以看到如下界面: Godot引擎也是场景式编程,这里的一个场景相当于一个关卡。 这里我们点击左侧“3D场景”按钮创建一个3D场景,现在在中间的画面中会出现一个球。在左侧节点视图中选中“Node3D”,右键创建子节点…