进阶岛 - 茴香豆:企业级知识问答工具实践闯关任务

实践感受写在前面

  • RAG是重要的LLM应用方向
  • RAG的原理简单,Demo也不难,但做到成熟可用的RAG有很多问题要解决,并不简单:
    • 需要优化向量生成(向量模型)
    • 需要保证大数据量下的向量存储(向量数据库、分布式)
    • 需要保证大数据量下的向量检索性能和关联准确性(Rerank,Graph等)
    • 需要LLM的配合,提高输入上下文token的数量(LLM能力)
    • 需要提供优秀的提示模板(提示工程)
    • 需要解决安全性(无关问题拒答、多渠道应答)
  • 基于以上,,茴香豆提供了成熟的应用框架,茴香豆有几个特点很有价值:
    • 三阶段 Pipeline (前处理、拒答、响应),提高相应准确率和安全性
    • 配性强,兼容多个 LLM 和 API
    • 打通微信和飞书群聊天,适合国内知识问答场景
    • 配置正反例调优知识助手效果
  • 目前RAG产品非常多,试用过感觉不错的有
    • 茴香豆
    • QueryAnything(有道)
    • GraphRAG(微软,但是生成向量实在是太慢了)
    • MaxKB(这个是应用包裹)
  • 正反例的测试结果
    • 正例:非常好,提示了信息出处(md文件),详细说明内容
    • 反例:可能是调整还不到位,反例没有拒绝回答,似乎作为不知道的知识传给LLM回答了。还要再测试。
    • 结果见:2.4.2 Gradio UI 界面测试
  • 注意:
    • 文章中的茴香豆启动,standalone和gradio模式下,LLM都会自动被启动。不需我们用lmdeploy另外部署LLM

0 茴香豆介绍

[]
(https://raw.githubusercontent.com/fzd9752/pic_img/main/imgs/image-1.png)茴香豆 是由书生·浦语团队开发的一款开源、专门针对国内企业级使用场景设计并优化的知识问答工具。在基础 RAG 课程中我们了解到,RAG 可以有效的帮助提高 LLM 知识检索的相关性、实时性,同时避免 LLM 训练带来的巨大成本。在实际的生产和生活环境需求,对 RAG 系统的开发、部署和调优的挑战更大,如需要解决群应答、能够无关问题拒答、多渠道应答、更高的安全性挑战。因此,根据大量国内用户的实际需求,总结出了三阶段Pipeline的茴香豆知识问答助手架构,帮助企业级用户可以快速上手安装部署。

茴香豆特点

  • 三阶段 Pipeline (前处理、拒答、响应),提高相应准确率和安全性
  • 打通微信和飞书群聊天,适合国内知识问答场景
  • 支持各种硬件配置安装,安装部署限制条件少
  • 适配性强,兼容多个 LLM 和 API
  • 傻瓜操作,安装和配置方便

1 Web 版茴香豆

Web 版茴香豆部署在浦源平台,可以让大家零编程体验茴香豆的各种功能。
可以登录 https://openxlab.org.cn/apps/detail/tpoisonooo/huixiangdou-web使用,这里着重测试本地部署,所以略过。

2 茴香豆本地标准版搭建

作为企业应用,非常重要的一点是本地部署。后面尝试将茴香豆从源码部署到本地服务器(以 InternlmStudio 为例),
并开发一款简单的知识助手 Demo。

2.1 环境搭建

2.1.1 配置服务器

登录 InternStudio ,后创建开发机。过程略。

2.1.2 搭建茴香豆虚拟环境

命令行中输入以下命令,创建茴香豆专用 conda 环境:

studio-conda -o internlm-base -t huixiangdou
#创建成功,用下面的命令激活环境:
conda activate huixiangdou

环境激活成功后,命令行前的括号内会显示正在使用的环境,请确保所有茴香豆操作指令在 huixiangdou 环境下运行。

2.2 安装茴香豆

下面开始茴香豆本地标准版的安装。

2.2.1 下载茴香豆

先从茴香豆仓库拉取代码到服务器:

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

拉取完成后进入茴香豆文件夹,开始安装。
首先安装茴香豆所需依赖:

conda activate huixiangdou
# parsing `word` format requirements
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
# python requirements
pip install BCEmbedding==0.15 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
# python3.8 安装 faiss-gpu 而不是 faiss

2.2.3 下载模型文件

茴香豆默认会根据配置文件自动下载对应的模型文件,为了节省时间,本次教程所需的模型已经提前下载到服务器中,我们只需要为本次教程所需的模型建立软连接,然后在配置文件中设置相应路径就可以:

# 创建模型文件夹
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.4 更改配置文件

茴香豆的所有功能开启和模型切换都可以通过 config.ini 文件进行修改。
也可以用编辑器手动修改,文件位置为 /root/huixiangdou

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值