本地部署 闻达:一个LLM调用平台

news2024/11/6 5:02:57

本地部署 闻达:一个LLM调用平台

  • 1. 什么是 闻达
  • 2. Github 地址
  • 3. 安装 Miniconda3
  • 4. 创建虚拟环境
  • 5. 安装 闻达
  • 6. 下载各个 model
  • 7. 配置各个 model
  • 8. 使用 RWKV-4-Raven-14B-v11x 启动
  • 9. 使用 chatglm-6b-int4 启动
  • 10. 使用 stable-vicuna-13B 启动
  • 11. 使用 moss-moon-003-sft-plugin-int4 启动(失败)

1. 什么是 闻达

闻达:一个 LLM 调用平台。为小模型外挂知识库查找和设计自动执行动作,实现不亚于于大模型的生成能力。

针对特定环境的内容生成是LLM使用中的一项重要应用,实现这一目的,主要有全量微调、lora 微调、和本项目方法。但个人没有做全量微调的,lora 微调只能牺牲基础能力换单任务效果(用 6B 模型 lora 调出来的单任务效果,专门设计一个 0.5B 模型也能实现,且推理成本更低)。

而本项目采用知识库 +auto 脚本的形式为 LLM 提高生成能力,充分考虑个人和中小企业的资源问题,以及国内大背景下知识安全和私密性问题,实现使小模型获得近似于大模型的生成能力。

  • 目前支持模型:chatGLM-6B、chatRWKV、chatYuan、llama 系列以及 openaiapi 和 chatglm130b api,初步支持 moss。
  • 使用知识库扩展模型所知信息,使用 auto 提高模型生成质量和复杂问题解决能力。
  • 支持 chatGLM-6B、chatRWKV、llama 系列流式输出和输出过程中中断。
  • 自动保存对话历史至浏览器(多用户同时使用不会冲突,chatRWKV 历史消息实现方式需使用 string)
  • 对话历史管理(删除单条、清空)
  • 支持局域网、内网部署和多用户同时使用。

2. Github 地址

https://github.com/l15y/wenda.git

3. 安装 Miniconda3

下载 Conda 安装脚本,

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行安装脚本,

bash Miniconda3-latest-Linux-x86_64.sh

按提示操作。当提示是否初始化 Conda 时,输入 “yes”,

在这里插入图片描述

安装完成后,关闭当前终端并打开新终端,这将激活 Conda,

sudo su - root

更新 Conda 至最新版本,

conda update conda

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

添加必要的 Conda 通道以获取更多软件包,

conda config --add channels conda-forge
conda config --add channels defaults 

测试是否安装成功,

conda list

如果显示 Conda 及其内部包的列表,则说明安装成功。

4. 创建虚拟环境

conda create -n webda python==3.10.6
conda activate wenda

5. 安装 闻达

git clone https://github.com/l15y/wenda; cd wenda
pip3 install -r requirements/requirements.txt \
 -r requirements/requirements-chatglm_api.txt \
 -r requirements/requirements-gpt4free.txt \
 -r requirements/requirements-openai.txt \
 -r requirements/requirements-replitcode.txt \
 -r requirements/requirements-glm6b-lora.txt \
 -r requirements/requirements-llama.txt \
 -r requirements/requirements-qdrant.txt 
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit

6. 下载各个 model

cd ./model
git clone https://huggingface.co/THUDM/chatglm-6b-int4
git clone https://huggingface.co/fnlp/moss-moon-003-sft-plugin-int4
git clone https://huggingface.co/replit/replit-code-v1-3b
wget -c https://huggingface.co/TheBloke/stable-vicuna-13B-GGML/resolve/main/stable-vicuna-13B.ggml.q5_1.bin
wget -c https://huggingface.co/BlinkDL/rwkv-4-raven/resolve/main/RWKV-4-Raven-14B-v11x-Eng99%25-Other1%25-20230501-ctx8192.pth -O RWKV-4-Raven-14B-v11x.pth
cd ..

7. 配置各个 model

cp example.config.yml config.yml
vi config.yml

--- 将各个 model 的 path 修改正确
llm_models:
  rwkv:
     path: "model/RWKV-4-Raven-14B-v11x.pth"      #rwkv模型位置"
  glm6b:
     path: "model/chatglm-6b-int4"
  llama:
     path: "model/stable-vicuna-13B.ggml.q5_1.bin"
  moss:
     path: "model/moss-moon-003-sft-plugin-int4"
  replitcode:
     path: "model/replit-code-v1-3b"
---

8. 使用 RWKV-4-Raven-14B-v11x 启动

启动,

./run_rwkv.sh

访问 http://127.0.0.1:17860/,问它清华大学在哪里?
在这里插入图片描述

9. 使用 chatglm-6b-int4 启动

启动,

./run_GLM6B.sh

访问 http://127.0.0.1:17860/,问它清华大学在哪里?

在这里插入图片描述

10. 使用 stable-vicuna-13B 启动

启动,

./run_llama.sh

访问 http://127.0.0.1:17860/,问它清华大学在哪里?

在这里插入图片描述

11. 使用 moss-moon-003-sft-plugin-int4 启动(失败)

启动,

./run_moss.sh

启动失败,之后有时间调查。

完结!

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

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

相关文章

SpringFramework

🏡个人主页 : 守夜人st 🚀系列专栏:Spring …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点 目录 Springspring概述1 Spring定义2 Sp…

我的创作纪念日(2)设置飞机进行调优

文章目录 前言 2.1 电池设置 2.2 电机设置 2.3 PID控制器初始设置 前言 以下参数应根据你的飞机的规格正确设置。每一个都会影响调优过程的质量。 2.1 电池设置 确保你的 VTOL 电机的推力曲线尽可能的线性是非常重要的。一个线性的推力曲线意味着电机产生的实际推力的变化…

GuassDB数据库的GRANT REVOKE

目录 一、GaussDB的权限概述 二、GaussDB权限设计建议 三、GaussDB的GRANT命令 1.功能说明 2.注意事项 3.常用语法 四、GaussDB的REVOKE命令用法 1.功能说明 2.注意事项 3.常用语法 五、GaussDB示例 1.GRANT 语句示例 2.REVOKE 语句示例 一、GaussDB的权限概述 在…

电气设备绝缘在线监测系统的原理

摘要:在线监测是控制好电气设备绝缘的重要方式,为电力系统稳定奠定重要基础。在线监测电气设备时,要利用检测技术促进电力系统运行效率提升,让电气设备在具体工作过程中发挥更大作用。本次研究中主要分析了电气设备绝缘在线监测系…

单开网页应用利器 - BroadcastChannel

前言 前段时间在做一个基于 psd 模板生成图片的应用,其中重要的功能就是打开编辑器页面来设计出图。但是有个问题,每当我点击一个模板,就会新开一个浏览器页签。现代浏览器是以空间换时间的运行思路来提高效率,这就导致了内存开销…

单片机c51中断 — 中断键控流水灯

项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第五章,中断 在第4章的实例2中,按键检测是采用查询法进行的,其流程图如图所示 问题是这样的:由于查询法 -按键查询、标志位修改及彩灯循环几个环节是串联关系…

微信小程序从入门到精通

目录 前言一,初学小程序1.1 小程序概述1.2 基础配置1.2.1 注册开发账号1.2.2 获取AppID1.2.3 微信开发者工具1.2.4 修改代理模式 1.3 第一个小程序1.4 开发文档1.5 机型1.6 项目基本结构1.6.1 页面内部文件1.6.2 app.json1.6.3 project.config.json1.6.4 sitemap.js…

开关电源基础07:离线式开关电源变压器设计(1)

说在开头:关于第六届索尔维会议(2) 爱因斯坦一天都挺开心的,反正难题出给了玻尔,他还在自己的房间里拉起了小提琴,有人说爱因斯坦小提琴拉的跟锯木头一样,那也不至于那么夸张,但是水…

RK3568平台开发系列讲解(Linux内存篇)Linux内存管理框架

🚀返回专栏总目录 文章目录 一、内核态内存分配二、用户态内存分配三、内存篇章更新哪些内容沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们一起将整个内存管理的体系串起来。 对于内存的分配需求,可能来自内核态,也可能来自用户态。 一、内核态内存分配…

Spring Boot集成ShardingSphere实现读写分离 | Spring Cloud 43

一、读写分离 1.1 背景 面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操…

NetApp 利用适用于混合云的实时解决方案解决芯片设计方面的数据管理挑战

电子设计自动化 (EDA) 成本持续增加,而周期时间缩短。这些都为 EDA 设计带来了前所未有的挑战,对现代高性能工作流的需求变得从未如此巨大。 联想凌拓芯片设计行业存储解决方案及最佳实践 联想凌拓芯片行业数据存储与管理解决方案,针对EDA…

驱动设计的思想:面向对象/分层/分离(以LED操作为例)

1. 面向对象 字符设备驱动程序抽象出一个file_operations结构体; 对于LED,写的程序针对硬件部分抽象出led_operations结构体。 2. 分层 上下分层,之前写的LED驱动程序就分为2层: ① 上层实现硬件无关的操作,比如注册…

一文搞懂——MySQL索引事务JDBC

目录 一、索引 1.1 索引是什么? 1.2 怎样创建索引? 1.3 索引使用的数据结构是什么? 1.4 索引相关的概念 1.5 索引失效的原因 二、事务 2.1 事务是什么? 2.2 为什么要使用事务? 2.3 事务的使用 2.4 事务的特性…

黑马头条(学习笔记)

​ 目录 一. 项目概述 二、项目初始化 移动端 REM 适配: 关于 PostCSS 配置文件: Autoprefixer 插件的配置 : postcss-pxtorem 插件的配置: 关于字体图标: 配置路由: 封装请求模块: 三:登录注册&…

ChatGPT有话说:虚拟现实 VS 增强现实

以下内容均为ChatGPT根据用户引导和提示作出的阐述和说明。 一、引言 虚拟现实和增强现实是当前最受瞩目的创新技术。虚拟现实是指利用计算机生成的虚拟环境,用户可以通过佩戴VR头戴式显示器等设备完全沉浸在其中,感受到身临其境的感觉。而增强现实则是…

三分钟上手安全渗透系统Kali Linux

kali linux系统集成了常用的安全渗透工具,省去了安装工具的时间,做安全相关的工作是非常推荐使用的。 安装Kalii Linux 安装系统 一般使用虚拟机进行安装,Kali Linux基于Debian内核,虚拟机的操作系统选择Debian 7.x 64 选择系统…

【JAVA】用Java实现简易图书管理系统

【JAVA】用Java实现简易图书管理系统 1. 设计背景和系统功能和设计方法1.1设计背景1.2系统功能1.3设计方法 2. 设计思路3. 设计模块和代码实现3.1 Book类的实现3.2 BookList类的实现(书架)3.3 User类的实现(用户类)3.3.1 AdminUser(管理员类&…

家用洗地机好用吗?值得推荐的家用洗地机

谁说家务苦差事?现在有了洗地机,家庭清洁变得更加简单、快捷、干净,让您轻松应对家庭日常清洁的要求。洗地机采用先进的技术,自动感应地面脏污,智能调节出水量和吸力,不仅能够保持地面清洁,更能…

深入理解MapReduce:使用Java编写MapReduce程序【上进小菜猪】

📬📬我是上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货。 MapReduce是一种用于处理大规模数据集的并行编程模型。由于其高效性和可扩展性,MapReduce已成为许多大型互联网公司处理大数据的首选方…

隐语v0.8.2版本更新,首次发布TEEU

隐语v0.8.2版本更新🌟 应用层 机器学习: - MPC 纵向 LR (SSRegression)新增 Policy SGD 优化器和 Early Stopping 支持,减少调参成本,加快收敛速度; - WOE 分箱进行了若干优化,性…