【书生大模型实战营】茴香豆:企业级知识问答工具实践

2024-08-27 20:28

本文主要是介绍【书生大模型实战营】茴香豆:企业级知识问答工具实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

茴香豆:企业级知识问答工具实践

  • 【书生大模型实战营】茴香豆:企业级知识问答工具实践
    • 任务
    • 茴香豆本地标准版搭建
      • 一般使用
      • 联网
      • 远程大模型
    • 闯关任务

【书生大模型实战营】茴香豆:企业级知识问答工具实践

茴香豆Demo:地址

任务

在 InternStudio 中利用 Internlm2-7b 搭建标准版茴香豆知识助手,并使用 Gradio 界面完成 2 轮问答(问题不可与教程重复,作业截图需包括 gradio 界面问题和茴香豆回答)。知识库可根据根据自己工作、学习或感兴趣的内容调整,如金融、医疗、法律、音乐、动漫等(优秀学员必做)。

茴香豆本地标准版搭建

一般使用

环境:30% A100,Cuda 12.2

使用studio-conda -o internlm-base -t huixiangdou激活环境。

然后clone相关仓库并切换分支:

git clone https://github.com/internlm/huixiangdou && cd huixiangdou
git checkout 79fa810

安装相关依赖:

apt update
apt install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig libpulse-dev
pip install BCEmbedding==0.1.5 cmake==3.30.2 lit==18.1.8 sentencepiece==0.2.0 protobuf==5.27.3 accelerate==0.33.0
pip install -r requirements.txt

复制相关的模型:

ln -s /root/share/new_models/maidalun1020/bce-embedding-base_v1 /root/model/bce-embedding-base_v1
ln -s /root/share/new_models/maidalun1020/bce-reranker-base_v1 /root/model/bce-reranker-base_v1
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/model/internlm2-chat-7b

然后更改配置文件config.ini,在huixiangdou文件夹下,执行如下命令更改配置文件:

sed -i '9s#.*#embedding_model_path = "/root/model/bce-embedding-base_v1"#' /root/Project/huixiangdou/config.ini
sed -i '15s#.*#reranker_model_path = "/root/model/bce-reranker-base_v1"#' /root/Project/huixiangdou/config.ini
sed -i '43s#.*#local_llm_path = "/root/model/internlm2-chat-7b"#' /root/Project/huixiangdou/config.ini

进入创建的huixiangdou,创建repodir文件夹,将两个仓库clone到这里:

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

然后创建一个工作目录workdir,并执行如下命令:

python3 -m huixiangdou.service.feature_store

其中:repodir 文件夹,用来储存知识库原始文档,文件夹 workdir 用来存放原始文档特征提取到的向量知识库。

结果为:
在这里插入图片描述
正例和反例信息在resource文件夹下。

每次更新原始知识文档和正反例,都需要重新运行 python3 -m huixiangdou.service.feature_store命令进行向量知识库的重新创建和应答阈值的更新。

配置文件中的 work_dir参数指定了特征提取后向量知识库存放的位置。如果有多个知识库快速切换的需求,可以通过更改该参数实现。

使用如下命令和茴香豆在命令行进行交互:

python3 -m huixiangdou.main --standalone

然后询问mmpose怎么使用,得到的回复如下:
在这里插入图片描述
然后尝试使用gradio创建可视化界面:

python3 -m huixiangdou.gradio

然后询问mmpose相关的问题,结果如下:
在这里插入图片描述

联网

进入serper注册一个账号,然后进入API-Key界面,复制自己的 API-key。

替换 /huixiangdou/config.ini中的 ${YOUR-API-KEY} 为自己的API-key:

[web_search]
engine = "serper"
serper_x_api_key = "YOUR-API-KEY-HERE"
domain_partial_order = ["arxiv.org", "openai.com", "pytorch.org", "readthedocs.io", "nvidia.com", "stackoverflow.com", "juejin.cn", "zhuanlan.zhihu.com", "www.cnblogs.com"]
save_dir = "logs/web_search_result"

其中 domain_partial_order可以设置网络搜索的范围。

然后运行gradio界面,问它Pytorch怎么安装,虽然在gradio里面依然没有显示正确结果,但是在save_dir变量对应的文件夹下面,有它搜索的文件:
在这里插入图片描述

远程大模型

远程向量&重排序模型的修改:SiliconFlow创建账号,然后进入体验中心,创建个人 API 密匙,复制将其填入huixiangdou/config.ini 的api_token中。

大模型的修改:首先修改 huixiangdou/config.ini 本地和远程LLM 开关:

[worker]
enable_web_search = 0
enable_sg_search = 1

然后更改remote_ 相关配置,填写 API key、模型类型等参数,茴香豆支持 OpenAI 的 API格式调用:

remote_type = "kimi"
remote_api_key = "YOUR-API-KEY-HERE"
remote_llm_max_text_length = 128000
remote_llm_model = "auto"

闯关任务

以中国的诗词构建知识库,使用chinese-poetry作为知识来源:

git clone https://github.com/chinese-poetry/chinese-poetry.git

clone到repodir文件夹,然后进行知识更新:

python3 -m huixiangdou.service.feature_store

但茴香豆似乎只对README.md进行了处理,下面的json都没有读取:
在这里插入图片描述
于是选取其中的元曲作为知识库,只在文件夹中放元曲的内容,然后进行知识更新。

先看一下没有加载知识库之前的模型回答:
在这里插入图片描述
在这里插入图片描述
然后我们创建一个元曲.md文件,茴香豆只能识别md或者txr,json文件无法识别,将这两首曲放上去,然后进行知识库更新。

# 元曲
## 关汉卿
(1)诈妮子调风月・胜葫芦
怕不依随蒙君一夜恩,争奈忒达地、忒知根,兼上亲上成亲好对门。
觑了他兀的模样,这般身分。
若脱过这好郎君。## 马致远
(1)邯郸道省悟黄粱梦・煞尾
你正果正是修行果,你灾咎皆因我度脱。
早则绝忧愁、没恼聒,行处行,坐处坐,闲处闲,陀处陀。
屈着指,自数过,真神仙,是七座,添伊家,总八个。
道与哥哥,非是风魔,这个爱吃酒的钟离便是我。## 郑光祖
(1)虎牢关三战吕布・那吒令
不是这个张冀德,我觑吕温侯似等闲;(关末云)他使一枝方天画杆戟,好生利害也。
(正末唱)则我这条丈八矛,将方天戟来小看。
(关末云)骑一匹卷毛赤兔马,好生奔劣也。
(正末唱)跨下这匹豹月乌,不剌刺把赤兔马来当翻。
(刘末云)破吕布凭着你些甚么那?(正末唱)凭着我这捉将手、挟人惯,两条臂有似的这栏关。

最终的结果为:
在这里插入图片描述
在这里插入图片描述

但有时候不太稳定,有时候可以从知识库里面找,有时候又没有。

这篇关于【书生大模型实战营】茴香豆:企业级知识问答工具实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112690

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了