最新类ChatPDF及AutoGPT开源18大功能平台——闻达手把手超详细环境部署与安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型LLM调用平台

2023-11-04

前言

今天,我试用了闻达开源LLM调用平台。这一框架拥有类AutoGPT和ChatPDF的功能,能根据一句简短的提示自动生成提纲,然后按照提纲自动填充每章内容,使得论文或小说的写作变得更加高效。此外,它能够导入相关知识库,并通过调用知识库查询相关信息,这项技术更加令人叹服。除此之外,该平台还可基于问题生成相关关键词,并在与知识库交互后对每个关键词自动获取多个答案。这一连串自动化和高度的效率操作,令我深感平台的卓越魅力,无法抵挡其吸引力。

在这里插入图片描述
在这里插入图片描述

喜欢的小伙伴们千万不要错过,当然也欢迎更多小伙伴加入,进行二次开发。

闻达框架简介

闻达是一个综合的开源LLM调用平台。旨在通过使用为小模型外挂知识库查找的方式,实现近似于大模型的生成能力。

目前支持模型:chatGLM-6B、chatRWKV、chatYuan、llama系列。

  • 知识库扩展模型能力
  • 支持参数在线调整
  • 支持chatGLM-6B、chatRWKV、llama系列流式输出和输出过程中中断
  • 自动保存对话历史至浏览器(多用户同时使用不会冲突,chatRWKV历史消息实现方式需使用string)
  • 对话历史管理(删除单条、清空)
  • 支持局域网、内网部署和多用户同时使用。
  • 多用户同时使用中会自动排队,并显示当前用户。

前期准备

电脑要求

  • python版本要求:3.8
  • windows系统:Windows 7 or later (with C++ redistributable)
  • 显卡:6G以上GPU

安装anaconda

从anaconda官网,下载安装anaconda。具体教程详见官网教程
在这里插入图片描述

安装相应版本的CUDA

首先在终端查看你的Nividian版本,命令如下:

nvidia-smi

在这里插入图片描述
查看到本机可装CUDA版本最高为12.0,版本向下兼容,意思就是CUDA 12.0及以下版本的都可以安装,但一般不建议使用最新版本的。因为可能后续其他安装包没有更新对应版本的可以下载。由于Pytorch(可以从pytorch官网)中可以看到,目前的CUDA版本一般是11.7和11.8,所以建议选择11.8版本以下的。博主这里选择了11.7进行安装。
在这里插入图片描述

安装完后,注意需要看下系统环境变量中地址有没有相应版本的cuda,比如我的电脑就是配置了下面几个环境变量
在这里插入图片描述
除上面两个之外 ,还可以加入以下环境变量,以保证不会出错。我没配置下面两个,也没出错,所以大家根据实际情况选择是否加入下面两个环境配置。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\CUPTI\lib64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include

不配置可能会报错,Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found

配置ChatGLM-6B Conda环境

首先以管理员方式启动windows命令窗口,在搜索中输入cmd即可打开,输入以下命令,新建一个名字为ChatGLM的环境,并安装tensorflow-gpu版本。新建环境过程中选择y,进入下一步

conda create --name ChatGLM python==3.8.10

接下来激活ChatGLM的环境

conda activate ChatGLM

安装pytorch

如果电脑配置了GPU,要注意需安装GPU版本的pytorch,具体可登录官网链接

这里要注意选择你是什么系统,cuda是安装了什么版本(博主前面选择的是11.7),然后复制下面红框中的命令到终端就可以安装了。

在这里插入图片描述
在终端运行下面命令,即可安装成功pytorch-GPU版本:

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

在终端输入python,然后依次输入下面代码,验证torch-GPU版本是不是成功。

import torch
torch.cuda.is_available()  ## 输出应该是True

在这里插入图片描述

类ChatPDF及AutoGPT开源模型——闻达环境部署及安装

相关代码及模型下载

下载地址:https://pan.baidu.com/s/105nOsldGt5mEPoT2np1ZoA?pwd=lyqz 提取码:lyqz

在这里插入图片描述
这里只要下载最新的4.22和模型文件夹这两个文件夹即可。

下载下来后,把4.22中的压缩文件解压,说明如下:

在这里插入图片描述

解压模型到指定地址

其中chatglm和text2vec必下文件夹中都是模型文件,依次解压到wenda主文件夹中的model里面。

其中chatglm-6b-int4是低显存版的模型,也是压缩文件chatglm-6b-int4.7z解压出来的模型,如果想要运行最新版本的Chatglm-6b模型,可以参考下面步骤再下载到model/chatglm-6b文件夹中

hugging face下载所有文件下来,放到model/chatglm-6b文件夹内。

其中模型文件(大于 1G 的)如果下载速度慢,可以在国内清华云源中单独下载这几个模型文件(其他这个源没有的文件还是需要在 huggingface 上下载):https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

最后model/chatglm-6b文件夹内应该如下显示:

在这里插入图片描述

最终model文件夹内应该至少有以下红框标注文件夹或模型,当然闻达框架还可以兼容其它模型,大家也可以根据需求,后期加载各种模型,同时进行相关配置
在这里插入图片描述

配置文件修改

主要配置文件为wenda文件夹中的config.xml文件
在这里插入图片描述
注意对相关模型地址的修改,但如果模型没有按上面解压出来的话,就不需要做其它处理了。如果要使用最新版本的Chatglm-6b模型作为glm模型话,就需要修改<value>model/chatglm-6b-int4</value><value>model/chatglm-6b</value>即可

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <General>
        <property>
            <name>Logging</name>
            <value>True</value>
            <description>日志</description>
        </property>
        <property>
            <name>Port</name>
            <value>17860</value>
            <description>WebUI 默认启动端口号</description>
        </property>
        <property>
            <name>LLM_Type</name>
            <value>rwkv</value>
            <description>LLM模型类型:glm6b、rwkv、llama</description>
        </property>
    </General>
    <Models>
        <RWKV>
            <property>
                <name>Path</name>
                <value>model/RWKV-4-Raven-7B-v9x-i8.pth</value>
                <description>rwkv模型位置</description>
            </property>
            <property>
                <name>Strategy</name>
                <value>cuda fp16</value>
                <description>rwkv模型参数</description>
            </property>
            <property>
                <name>HistoryMode</name>
                <value>string</value>
                <description>rwkv历史记录实现方式:state、string</description>
            </property>
        </RWKV>
        <GLM6B>
            <property>
                <name>Path</name>
                <value>model/chatglm-6b</value>
                <description>glm模型位置</description>
            </property>
            <property>
                <name>Strategy</name>
                <value>cuda fp16</value>
                <description>glm 模型参数  支持:
                    "cuda fp16"  所有glm模型 要直接跑在gpu上都可以使用这个参数
                    "cuda fp16i8"  fp16原生模型 要自行量化为int8跑在gpu上可以使用这个参数
                    "cuda fp16i4"  fp16原生模型 要自行量化为int4跑在gpu上可以使用这个参数
                    "cpu fp32"  所有glm模型 要直接跑在cpu上都可以使用这个参数
                    "cpu fp16i8" fp16原生模型 要自行量化为int8跑在cpu上可以使用这个参数
                    "cpu fp16i4" fp16原生模型要 自行量化为int4跑在cpu上可以使用这个参数
                </description>
            </property>
            <property>
                <name>Lora</name>
                <value></value>
                <description>glm-lora模型位置</description>
            </property>
        </GLM6B>
        <LLAMA>
            <property>
                <name>Path</name>
                <value>model/ggml-vicuna-13b-4bit-rev1.bin</value>
                <description>llama模型位置</description>
            </property>
            <property>
                <name>Strategy</name>
                <value></value>
                <description>llama模型参数 暂时不用</description>
            </property>
        </LLAMA>
    </Models>
    <Library>
        <property>
            <name>Type</name>
            <value>bing</value>
            <description>知识库类型:
                bing → cn.bing搜索,仅国内可用
                fess → fess搜索引擎
                mix → 知识库融合,需设置参数
                st → sentence_transformers,内测版本
                kg → 知识图谱,暂未启用
            </description>
        </property>
        <property>
            <name>Show_Soucre</name>
            <value>False</value>
            <description>知识库显示来源</description>
        </property>
        <property>
            <name>Size</name>
            <value>200</value>
            <description>知识库最大长度</description>
        </property>
        <property>
            <name>Step</name>
            <value>2</value>
            <description>知识库默认上下文步长</description>
        </property>
        <MIX>
            <property>
                <name>Strategy</name>
                <value>st:2 bing:5</value>
                <description>知识库融合参数</description>
            </property>
            <property>
                <name>Count</name>
                <value>5</value>
                <description>知识库抽取数量</description>
            </property>
        </MIX>
        <BING>
            <property>
                <name>Count</name>
                <value>5</value>
                <description>知识库抽取数量</description>
            </property>
            <property>
                <name>Academic</name>
                <value>True</value>
                <description>是否使用必应学术</description>
            </property>
            <property>
                <name>Searc_Site</name>
                <value>www.12371.cn</value>
                <description>cn.bing站内搜索网址: 共产党员网,留空不使用</description>
            </property>
        </BING>
        <FESS>
            <property>
                <name>Count</name>
                <value>1</value>
                <description>知识库抽取数量</description>
            </property>
            <property>
                <name>Fess_Host</name>
                <value>127.0.0.1:8080</value>
                <description>Fess搜索引擎的部署地址</description>
            </property>
        </FESS>
        <ST>
            <property>
                <name>Path</name>
                <value>txt</value>
                <description>知识库文本路径</description>
            </property>
            <property>
                <name>Size</name>
                <value>20</value>
                <description>分块大小</description>
            </property>
            <property>
                <name>Overlap</name>
                <value>0</value>
                <description>分块重叠长度</description>
            </property>
            <property>
                <name>Count</name>
                <value>3</value>
                <description>知识库抽取数量</description>
            </property>
            <property>
                <name>Model_Path</name>
                <value>model/text2vec-large-chinese</value>
                <description>向量模型存储路径</description>
            </property>
            <property>
                <name>Device</name>
                <value>cpu</value>
                <description>faiss运行设备</description>
            </property>
        </ST>
        <QDRANT>
            <property>
                <name>Path</name>
                <value>txt</value>
                <description>知识库文本路径</description>
            </property>
            <property>
                <name>Model_Path</name>
                <value>model/text2vec-large-chinese</value>
                <description>向量模型存储路径</description>
            </property>
            <property>
                <name>Qdrant_Host</name>
                <value>http://localhost:6333</value>
                <description>qdrant服务地址</description>
            </property>
            <property>
                <name>Device</name>
                <value>cpu</value>
                <description>qdrant运行设备</description>
            </property>
            <property>
                <name>Collection</name>
                <value>qa_collection</value>
                <description>qdrant集合名称</description>
            </property>
        </QDRANT>
        <KG>
            <property>
                <name>Count</name>
                <value>5</value>
                <description>知识库抽取数量</description>
            </property>
            <property>
                <name>Knowledge_Path</name>
                <value></value>
                <description>知识库的文件夹目录名称,若留空则为txt</description>
            </property>
            <property>
                <name>Graph_Host</name>
                <value></value>
                <description>图数据库部署地址</description>
            </property>
            <property>
                <name>Model_Path</name>
                <value></value>
                <description>信息抽取模型所在路径</description>
            </property>
        </KG>
    </Library>
</configuration>

根据使用的不同模型,安装相关库

不同模型有不同的安装库,分别存在requirements.txtrequirements-****.txt文件中

可以依次使用下面命令(注意每次安装都替换掉requirements.txt文件即可)安装:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simp1e

在这里插入图片描述

运行体验

安装完成所有库后,就可以根据需求,开始体验了。作为一个能兼容chatGLM-6B、chatRWKV、chatYuan、llama系列等几大语言模型的框架,可以分别体验运行不同模型的感受。

运行chatGLM-6B 大语言模型

wenda文件夹中打开终端命令,然后运行下面命令。

run_GLM6B.bat

默认参数在GTX1660Ti(6G显存)上运行良好。

自动会在浏览器打开地址:http://127.0.0.1:17860/

  • 18大主题功能
    • 18大prompt自动生成:只要输入主题,自动补全其它详细提示。比如使用问题生成:输入ChatGPT的使用,则会自动生成:根据以下内容,生成一个10个常见问题的清单:ChatGPT的使用

在这里插入图片描述

运行chatRWKV 大语言模型

wenda文件夹中打开终端命令,然后运行下面命令。

run_rwkv.bat

默认参数在GTX1660Ti(6G显存)上正常运行,但速度较慢。

运行llama 大语言模型

先从PyPI安装llama-cpp-python库:

pip install llama-cpp-python

wenda文件夹中打开终端命令,然后运行下面命令。

run_llama.bat

类AutoGPT功能

使用写论文,或者知识库直读,就能直接触发AutoGPT功能,自动通过多次调用模型,生成最终论文或者根据知识库相关内容生成多个根据内容回答问题的答案。当然这一块,小伙伴们还可以自己二次开发,开发更多的类AutoGPT功能哈。

在这里插入图片描述

类ChatPDF功能

该功能,需要先在config.xml文件中配置value为fess模式:
在这里插入图片描述

  • 接着下载fess-14.7.0-with-jdk.7z,解压到平时放软件的盘 见上面:相关代码及模型下载
  • 打开解压出来的fess-14.7.0-with-jdk\bin目录
  • 双击fess.in.bat

在这里插入图片描述

  • 双击fess.bat. 弹出命令行运行框. 将其最小化
  • 打开浏览器. 打开网址http://localhost:8080/
  • 点击右上角log in 输入账号:admin 密码:wenda 进行登录

在这里插入图片描述

  • 点击侧边栏中的Crawler. 点击File System

    • 点击右上角的Create New
    • Name输入便于记忆的资料库的名字
    • Paths输入资料库的地址(格式示例:file:///E:/pdf
    • 其余选项保持默认. 下滚至最下方点击Create
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • 自动返回File System页面. 点击刚才创建的选项(自己输入的Name)
    在这里插入图片描述

  • 点击Create new job. 点击Create
    在这里插入图片描述

  • 进入侧边栏的System内的Scheduler. 可以看到很多任务

    • 目录的前面可以看到刚刚创建的job(示例:File Crawler - pdf search). 点击进入
    • 点击Start now. 刷新界面即可看到该任务正在运行. running
      在这里插入图片描述

在这里插入图片描述

  • 此时fess就在爬取文件的名字和内容. 可以在资源管理器看到cpu有负载
    在这里插入图片描述

  • 挂机。等待爬取完成即可尝试搜索关键词
    在这里插入图片描述

接着就能在知识库中进行测试了,下面这就表示已经导入到知识库了,右上角打开知识库,就能根据知识库来回答相关问题了:

在这里插入图片描述

参考资料

闻达:一个大规模语言模型调用平台

其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最新类ChatPDF及AutoGPT开源18大功能平台——闻达手把手超详细环境部署与安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型LLM调用平台 的相关文章

  • Ubuntu:C++远程连接Mysql

    1 安装mysql sudo apt get install update sudo apt get install mysql server libmysqlclient dev 2 登录mysql并进行配置 sudo mysql u r
  • 启动其他APK的Activity方法

    启动其他APK的Activity方法 有两个app 分别叫做App1和App2 App1包含两个Activity 分别叫做App1 A和App1 B 其中App1 A是入口Activity 也就是App1 A设置intent filter

随机推荐

  • .NET 5.0发布,你的代码保护工具还够用吗?

    NET是程序员比较钟爱的一款编程工具 但它有一个致命的缺点 编译好的程序集很容易反编译成源代码 一旦被反编译 软件开发者的辛苦劳动将付诸东流 选择一款合格的 NET保护工具是非常重要的 如今 NET 5 0已经发布 你是如何评价的呢 无论怎
  • 【教程汇总】如何选择合适的坐标系及投影

    总结 considerations for choosing the coordinate system map purpose map extent map orientation latitude range national coor
  • QC11 premier Edition 安装注意事项

    安装环境 Windows Server 2003 SQLServer 2005 系统环境需求可查看 https h10078 www1 hp com cda hpms display main hpms content jsp zn bto
  • 深圳拟重点扶持12大数字经济产业:区块链、金融科技在列

    伴随着数字经济的高速增长 深圳市数字经济产业发展迎来政策春风 近日 深圳市工业和信息化局发布了关于公开征求 深圳市数字经济产业创新发展实施方案 征求意见稿 下称 实施方案 意见的通告 表示将努力建成全国领先 全球一流的数字经济产业创新发展引
  • OpenCV—基本数据结构与示例

    https blog csdn net iracer article details 51292349 OpenCV中强大的Mat类型大家已经比较熟悉了 这里梳理一些在工程中其他经常用到的几种基本数据类型 包括 Vec Scalar Poi
  • MSP430F5529输出PWM

    msp430f5529产生4路PWM波 改变占空比从而改变电机 直流减速电机 的速度 驱动电机必然会用到驱动模块 接下来就介绍一下驱动模块 L298N L298N驱动 若要对直流电机进行PWM调速 需设置IN1和IN2 即确定电机的转动方向
  • Java集合-List

    一 List集合概述 java util List接口继承自Collection接口 是单列集合的一个重要分支 习惯性地会将实现了List接口的对象称为List集合 在List集合中允许出现重复的元素 所有的元素是以一种线性方式进行存储的
  • ic卡校验码计算软件_CRC校验码简介及CRC16的计算方法

    点击上方 嵌入式从0到1 选择 置顶 星标公众号 干货福利 第一时间送达 什么是CRC校验 CRC即循环冗余校验码 Cyclic Redundancy Check 是数据通信领域中最常用的一种查错校验码 其特征是信息字段和校验字段的长度可以
  • 法师康的工人--计蒜客

    三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机 第一个工人在200时刻开始 从6点开始计时 以秒作为单位 在生产线上开始生产 一直到1000时刻 第二个工人 在700时刻开始 在1100时刻结束 第三个工人从1500时
  • 在Docker上用3个Nacos1.3容器+一个MySQL5和8容器+一个Nginx容器进行集群的具体操作(Nacos集群版)

    在Docker上用Nacos1 3容器连接MySQL5 6和8 0 18容器进入持久化的具体操作 Nacos单机版 这里直接在linux中启动三个Nacos容器 文章目录 3个Nacos1 3容器 一个MySQL5 6容器 一个Nginx容
  • pytest---usefixtures简单使用

    前面介绍的fixture都是通过函数的方式进行传参的 如果遇到一个class中都需要传入一个fixture 那一个个写进函数中 太麻烦 今天安静介绍一种方法 通过class直接传入fixture usefixtures usefixture
  • 报错解决:pandas的依赖项openpyxl

    问题 使用pandas包 没有使用openpyxl包 但是报错 ImportError Missing optional dependency openpyxl Use pip or conda to install openpyxl 翻译
  • 使用@ConfigurationProperties映射配置项到实体类

    1 创建配置文件 七牛云相关 qiniu accessKey accessKey secretKey secretKey CDN加速域名前缀 cdnDomainPrefix cdnDomainPrefix 2 添加映射配置 项目添加相关依赖
  • Nginx安全控制

    安全隔离 通过代理分开了客户端到应用程序服务器端的连接 实现了安全措施 在反向代理之前设置防火墙 仅留一个入口供代理服务器访问 使用SSL对流量进行加密 常用的http请求转变成https请求 因为http协议是明文传输数据 存在安全问题
  • Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)

    一 在JAVA中 有六个不同的地方可以存储数据 寄存器 register 这是最快的存储区 因为它位于不同于其他存储区的地方 处理器内部 但是寄存器的数量极其有限 所以寄存器由编译器根据需求进行分配 你不能直接控制 也不能在程序中感觉到寄存
  • 使用MotionLayout 实现启动页动画 Splash

    效果图 项目地址 具体代码实现 activity splash xml
  • Ubuntu安装Tango Control教程

    文章目录 环境 步骤 其他指令 参考 环境 虚拟机 VMware Ubuntun 20 04LTS Tango 9 3 4 步骤 为tango controls安装 sudo apt get install g openjdk 8 jdk
  • 中国C-V2X SPDU格式解读

    1 SPDU简介 SPDU即Secure Protocol Data Unit 是在V2X设备之间进行传输的消息结构 结构如下 SecuredMessage SEQUENCE version Uint8 版本号 当前为2 payload P
  • Highcharts+NodeJS搭建数据可视化平台

    前一段时间完成了一个数据可视化项目 由后台NodeJS Highcharts框架进行搭建 下面分享一下整个开发过程的流程 以及使用Highcharts框架的经验 一 数据的读取 由于数据库使用的是Mysql数据库 在NodeJS中 可以使用
  • 最新类ChatPDF及AutoGPT开源18大功能平台——闻达手把手超详细环境部署与安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型LLM调用平台

    目录 前言 闻达框架简介 前期准备 电脑要求 安装anaconda 安装相应版本的CUDA 配置ChatGLM 6B Conda环境 安装pytorch 类ChatPDF及AutoGPT开源模型 闻达环境部署及安装 相关代码及模型下载 解压