python-Langchain-Chatchat+ChatGLM2-6B在16G内存电脑上运行

python-Langchain-Chatchat+ChatGLM2-6B在16G内存电脑上运行

    • 下载代码
      • ChatGLM
      • Langchain-Chatchat
    • 环境准备
    • 下载模型
    • Langchain-Chatchat配置
      • configs中example文件修改
      • configs/model_config.py修改
      • 修改 server配置
    • 知识库初始化
    • 启动项目
    • 遇到的报错
    • 参考链接

下载代码

ChatGLM

https://github.com/likeqiang1001/ChatGLM-6B

Langchain-Chatchat

https://github.com/likeqiang1001/Langchain-Chatchat

环境准备

使用 anaconda 创建python环境
conda create -n langchain python=3.8
激活环境
conda activate langchain
更新py库
pip3 install --upgrade pip
拉取langchain-chatchat代码仓库
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
拉取完毕后,进入仓库目录下
cd Langchain-Chatchat
安装全部依赖
pip install -r requirements.txt
pip install -r requirements_api.txt
pip install -r requirements_webui.txt

下载模型

ChatGLM
https://hf-mirror.com/THUDM/chatglm2-6b-int4/tree/main
m3e-base
https://hf-mirror.com/moka-ai/m3e-base/tree/main/1_Pooling

需要注意的是m3e-base中的模型下载要包含这个目录1_Pooling的内容

Langchain-Chatchat配置

configs中example文件修改

进到chatchat的根目录,然后到config目录中
D:\jpdir\localKnow\Langchain-Chatchat-master\Langchain-Chatchat-master\configs
将python结尾的文件全部改为py结尾

或者项目根目录执行python copy_config_example.py即可

configs/model_config.py修改

修改如下四处

1
# 选用的 Embedding 名称
EMBEDDING_MODEL = "m3e-base"2
# 要运行的 LLM 名称,可以包括本地模型和在线模型。列表中本地模型将在启动项目时全部加载。
# 列表中第一个模型将作为 API 和 WEBUI 的默认模型。
# 在这里,我们使用目前主流的两个离线模型,其中,chatglm3-6b 为默认加载模型。
# 如果你的显存不足,可使用 Qwen-1_8B-Chat, 该模型 FP16 仅需 3.8G显存。
LLM_MODELS = ["chatglm2-6b"]3 MODEL_PATH 的embed_model和llm_model
MODEL_PATH = {"embed_model": {"ernie-tiny": "nghuyong/ernie-3.0-nano-zh","ernie-base": "nghuyong/ernie-3.0-base-zh","text2vec-base": "shibing624/text2vec-base-chinese","text2vec": "GanymedeNil/text2vec-large-chinese","text2vec-paraphrase": "shibing624/text2vec-base-chinese-paraphrase","text2vec-sentence": "shibing624/text2vec-base-chinese-sentence","text2vec-multilingual": "shibing624/text2vec-base-multilingual","text2vec-bge-large-chinese": "shibing624/text2vec-bge-large-chinese","m3e-small": "moka-ai/m3e-small","m3e-base": "D:\\jpdir\\localKnow\\models\\m3e-base\\m3e-base",# 这里修改3"m3e-large": "moka-ai/m3e-large","bge-small-zh": "BAAI/bge-small-zh","bge-base-zh": "BAAI/bge-base-zh","bge-large-zh": "BAAI/bge-large-zh","bge-large-zh-noinstruct": "BAAI/bge-large-zh-noinstruct","bge-base-zh-v1.5": "BAAI/bge-base-zh-v1.5","bge-large-zh-v1.5": "BAAI/bge-large-zh-v1.5","bge-m3": "BAAI/bge-m3","piccolo-base-zh": "sensenova/piccolo-base-zh","piccolo-large-zh": "sensenova/piccolo-large-zh","nlp_gte_sentence-embedding_chinese-large": "damo/nlp_gte_sentence-embedding_chinese-large","text-embedding-ada-002": "your OPENAI_API_KEY",},"llm_model": {"chatglm2-6b": "D:\\jpdir\\localKnow\\models\\chatglm2-6b-int4\\chatglm2-6b-int4",# 这里修改4"chatglm2-6b-32k": "THUDM/chatglm2-6b-32k","chatglm3-6b": "THUDM/chatglm3-6b","chatglm3-6b-32k": "THUDM/chatglm3-6b-32k","Orion-14B-Chat": "OrionStarAI/Orion-14B-Chat","Orion-14B-Chat-Plugin"

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

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

相关文章

如何系列 如何学习外企英语(持续学习中...)

文章目录 背景计划相关软件和资料单词 短语 背景 软件开发行业,想进外企或者已在外企进行英语提升。 计划 1.每天最少30分钟多邻国。 2.记录平常工作中遇到的句子和单词,并给出分析和示例。 3.把手机和电脑等都调成英文。 4.听 podcast 磨耳朵(pod…

【Go】十四、图形验证码、短信验证码、注册接口与redis的简单使用

图形验证码 如何嵌入图形验证码工作: 这里选择使用captcha 开源库进行验证码设计: 选用下面的地址进行验证码开发工作 https://zh.mojotv.cn/go/refactor-base64-captcha 基础功能构建 在 api 目录下创建 captcha.go 用来编写验证码操作 package …

车辆轨迹预测系列 (二):常见数据集介绍

车辆轨迹预测系列 (二):常见数据集介绍 文章目录 车辆轨迹预测系列 (二):常见数据集介绍1、NuScenes (2020):1、下载2、说明 2、Waymo Open Dataset (2020):1、介绍2、概述3、下载4、教程5、参考 3、Lyft Level 5 (2020)&#xff…

VOC数据集

VOC(Visual Object Classes)格式的数据集是一种用于计算机视觉任务的标准数据集格式,它最初是由Pascal VOC(PASCAL Visual Object Classes)数据集引入的。VOC数据集格式定义了一套标准化的数据集结构,包括X…

SD-WAN为什么适合小企业

SD-WAN(软件定义广域网)是一种革新性的网络技术,通过软件智能管理,实现灵活和高效的网络连接。在数字化转型浪潮中,企业对网络稳定性和性能的要求不断提升,SD-WAN因此受到了广泛关注。对于资源有限的小型企…

JAVA NIO(二) Buffer和Channel

一,基本使用 1, 一个Socket连接使用一个Channel来表示,以前直接操作Socket文件描述符来对读写缓冲区操作,比如读数据到用户空间的一个byte数组,NIO中Channel对这个过程作了封装,其中用户空间的byte数组就类…

macbook rust项目编译跨平台windows,linux

创建项目 cargo new test11, 编译windows exe包 rustup target add x86_64-pc-windows-gnu brew install mingw-w64 cargo build --target i686-pc-windows-gnu2. 编译ubuntu linux包 brew install FiloSottile/musl-cross/musl-cross rustup target add x86_64-unknown-lin…

Elk安装及使用

es安装及使用 单机版安装 集群安装 132 node-01 133 node-02 135 node-03 日志用户权限有问题 看日志 解决方案: 出现错误后,再次重启前,需要删除三个节点/data/下的内容 9300-http 9300-tcp logstasha安装及使用 Ssh错误 Yum安装默认路…

2024-06-21力扣每日一题

链接: LCP 61. 气温变化趋势 题意 A、B两个数组,数组内相邻两个数字有大于、等于、小于三种变化情况,求最长的一段,使两个数组的这一段变化情况相同,并且不要求这一段只能有一种变化 解: 因为数组内只…

UBUNTU安装KVM并加速安卓模拟器

在 Linux 上安装安卓模拟器(如 Genymotion 或 Android Studio 的内置模拟器)通常需要硬件 虚拟化支持,这可以通过 KVM 完成。本人亲测在ubuntu24.04上可用,但是是不是真的有加速效果不知,毕竟该卡的时候还是卡。 1.安…

逻辑回归(Logistic Regression)及其在机器学习中的应用

🚀时空传送门 🔍逻辑回归原理📕Sigmoid函数🎈逻辑回归模型 📕损失函数与优化🎈损失函数🚀优化算法 🔍逻辑回归的应用场景🍀使用逻辑回归预测客户流失使用scikit-learn库实…

Golang学习笔记02

封装 将结构体,字段的属性都小写,类似于private 给结构体提供一个工厂模式的函数,首字母大写 提供一个首字母大写的set方法,对属性赋值 提供一个首字母大写的get方法,对属性访问 package mainimport "fmt"ty…

全外显子测序分析流程1 - Fastq质控与去接头、低质量和引物序列

全外显子测序分析流程1 - Fastq质控与去接头、低质量和引物序列 1. 运行实例 # -d 样本根目录 # -s 样本名称 python trim_fastq.py -d /result/WES/sample -s sample2. fastqc质控报告与去接头、低质量序列主程序 对raw fastq和clean fastq生成质控QC报告trim_galore去接头、…

Avalonia:一个.NET跨平台UI框架

概述 Avalonia是一个强大的框架,使开发人员能够使用. NET创建跨平台应用程序。它使用自己的渲染引擎来绘制UI控件,确保在各种平台上保持一致的外观和行为,包括Windows,macOS,Linux,Android,iOS…

Linux命令详解

Linux关机重启 命令解释shutdown -h now或poweroff立刻关机shutdown -h 11分钟后关机,不带参数默认1分钟shutdown -r now立刻重启halt立刻关机reboot立刻重启sync把内存的数据同步到磁盘,关机和重启前应该先做这一步,目前shutdown、reboot、…

深入理解RunLoop

RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。 一…

MySQL Online DDL 原理解读

在线工具站 推荐一个程序员在线工具站:程序员常用工具(http://cxytools.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。 程序员资料站 推荐一个程序员编程资料站:…

Vector 例题

例题一&#xff1a; 下面这个代码输出的是( ) &#xfeff;#include <iostream> #include <vector> using namespace std; int main(void) { vector<int>array; array.push_back(100); array.push_back(300); array.push_back(300); array.push_back(300); a…

html做一个雷达图的软件

要实现一个在线输入数据并生成雷达图的功能&#xff0c;可以使用HTML表单和JavaScript来处理用户输入的数据。以下是一个示例代码&#xff0c;演示了如何实现这个功能&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"…

行列视(RCV)在报表设计中的创新应用

行列视(RCV)在报表设计中的创新应用 报表设计一直是数据处理和分析领域的重要一环&#xff0c;其质量和效率直接影响到企业决策的准确性和及时性。近年来&#xff0c;行列视(RCV)作为一种先进的数据处理和展示工具&#xff0c;在报表设计中的应用越来越广泛&#xff0c;带来了…