LangChain_ChatGLM部署

news2024/11/17 5:44:21

环境准备

项目地址:https://github.com/imClumsyPanda/langchain-ChatGLM
下载chatglm-6b模型到本地,大约13G:
https://huggingface.co/THUDM/chatglm-6b
里面的文件需要一个个手动点击下载,点击下载时,可能需要多次点击才有响应,下载中断也需要重新多次点击:
在这里插入图片描述

查看服务器cuda版本:

(base) ml@amax:~/anaconda3/envs/python311/bin$ nvidia-smi
Thu Jun 15 09:54:08 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+

安装python,官方测试了python3.8~3.10,于是我安装了Python 3.9.16:

conda create --name langchain_chatglm python=3.9

下载langchain_chatglm代码:

git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git

切换到刚安装python环境,安装langchain_chatglm所依赖的模块:

cd langchain-ChatGLM-master
pip install -r requirements.txt

FastChat部署大模型服务

下载FastChat代码:

git clone https://github.com/lm-sys/FastChat.git

切换到FastChat目录,执行下列操作安装fschat模块:

cd FastChat
pip3 install --upgrade pip
pip3 install -e .

在任意路径下开启三个终端界面,分别执行执行:

终端1:python3 -m fastchat.serve.controller
终端2:CUDA_VISIBLE_DEVICES=0 python3 -m fastchat.serve.model_worker --model-name 'chatglm-6b' --model-path /data/nlp/wen/llm_experiment/chatglm-6b-v1-1
终端3:python3 -m fastchat.serve.openai_api_server --host 0.0.0.0 --port 8001

如上命令执行出现以下类似错误的信息,可以不用管,只要进程不退出即可:

2023-06-15 13:49:11 | ERROR | stderr | INFO:     Started server process [1385464]
2023-06-15 13:49:11 | ERROR | stderr | INFO:     Waiting for application startup.
2023-06-15 13:49:11 | ERROR | stderr | INFO:     Application startup complete.
2023-06-15 13:49:11 | ERROR | stderr | INFO:     Uvicorn running on http://localhost:21001 (Press CTRL+C to quit)

交互方式1-Web_UI

新开第4个终端窗口,切换到langchain-ChatGLM-master目录,修改配置代码:

cd ./langchain-ChatGLM-master/configs/

修改配置文件model_config.py中字典llm_model_dict内"fastchat-chatglm-6b"的值,如下:

    "fastchat-chatglm-6b": {
        "name": "chatglm-6b",  # "name"修改为fastchat服务中的"model_name"
        "pretrained_model_name": "chatglm-6b",
        "local_model_path": None,
        "provides": "FastChatOpenAILLM",  # 使用fastchat api`在这里插入代码片`时,需保证"provides"为"FastChatOpenAILLM"
        "api_base_url": "http://localhost:8001/v1"  # "name"修改为fastchat服务中的"api_base_url"
    }

同上修改文件model_config.py中的:

# LLM 名称
LLM_MODEL = "fastchat-chatglm-6b"

运行对话界面:

cd ./langchain-ChatGLM-master/
mkdir vector_store   # 创建存放知识文档的目录,名字必须是这个,否则要针对性改其他代码
python3 webui.py

报错:

requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

经定位,是词向量模型未能从Hugging Face网站上下载到的问题,于是从配置文件找到所使用的模型名,找到模型所在网址:
https://www.huggingface.co/GanymedeNil/text2vec-large-chinese
下载到词向量生成模型,传到服务器,然后修改配置文件model_config.py,将词向量模型路径改成服务器本地的词向量模型路径:
在这里插入图片描述

之后运行webui.py代码还是出错,说无法找到本地语言模型路径,这个很奇怪,我配置的fastchat已经启用了大语言模型,怎么还会去加载本地语言模型,最后发现同一台服务器因另一个成员也在运行langchain_chatglm,他跑的config文件已经常驻内存中,导致我配置的config文件无法生效!!后面我干脆修改我自己的配置文件目录名,确保导入的配置文件是我自己的,最终跑通了整个流程。

访问到的页面效果:
在这里插入图片描述

最后需要注意的是FastChat支持启动的模型如下:
在这里插入图片描述
chatglm-6b的量化模型"THUDM/chatglm-6b-int4"还不能被FastChat支持,服务启动不会报错,但访问会报错。

交互方式2-VUE 前端页面

新开第4个终端窗口,参考上一节配置词向量模型参数后,不执行web_ui.py,而是执行:

python3 api.py

新开第5个终端窗口,启动了api服务,之后执行以下脚本体验基于 VUE 的前端页面:

$ cd views 
$ pnpm i
$ npm run dev

注意执行以上命令需要安装nodejs,npm,pnpm,其中nodejs必须是18版本以上的。

本地浏览器访问页面如下:
在这里插入图片描述

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

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

相关文章

HBase(8):扫描操作

1 需求 查看ORDER_INFO表中所有的数据 1.2 scan命令 在HBase,我们可以使用scan命令来扫描HBase中的表。语法: scan 表名 1.3 扫描ORDER_INFO表 scan ORDER_INFO,{FORMATTER > toString} 注意:要避免scan一张大表! 2 需求二…

[Arduino] ESP32开发 - LCD1602显示实验

目录 LCD1602硬件准备环境搭设接线获取 IIC 地址显示第一行文本可滚动字符串点灯小案例 LCD1602 实验将利用 LCD1602 显示文本 参考文献:https://randomnerdtutorials.com/esp32-esp8266-i2c-lcd-arduino-ide/ 硬件准备 4 条母对母杜邦线 LCD1602 Esp32-Devkit-V1 …

JProfiler 使用中文说明文档

JProfiler 是一款用于 Java 应用程序性能分析和优化的工具。它可以帮助开发人员识别性能瓶颈、内存泄漏等问题,并提供可视化的分析报告和建议。JProfiler 支持各种 Java 虚拟机、应用服务器和操作系统,可以在本地或远程环境中运行。下载安装完成后对应的…

目标检测模型中的Bells and wisthles

目标检测模型中的Bells and wisthles 目标检测模型中的Bells and wisthles1. Data augmentation 数据增强2. Multi-scale Training/Testing 多尺度训练/测试3. Global Context 全局语境4. Box Refinement/Voting 预测框微调/投票法5. OHEM 在线难例挖掘6. Soft NMS 软化非极大抑…

云原生——云平台操作

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 云:云是网络、互联网的一种比喻说法。 平台&am…

【爬虫】5.2 Selenium编写爬虫程序

1. Selenium 框架介绍 Selenium自动化测试框架是实现自动化测试的一个软件结构和功能组件集合。Selenium自动化测试框架是一个半成品,能够帮助用户实现自动化测试。Selenium是模仿浏览器行为的,当你运行测试类(爬虫)的时候&…

【AIGC】Chatglm2-lora微调

ChatGLM2介绍 ChatGLM2-6B源码地址:https://github.com/THUDM/ChatGLM2-6B ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性&…

【Java】Java中的异常

文章目录 一、什么是异常1.1 异常的概念1.2 异常的分类 二、异常的体系结构三、异常的处理3.1 异常的抛出3.2 异常的捕获与处理3.3 异常的处理流程 四、自定义异常类4.1 自定义异常类的规则4.2 自定义异常案例 一、什么是异常 1.1 异常的概念 在Java中,异常&#…

《Linux操作系统编程》第八章 Shell程序设计: shell 语言结构,包括测试、分支、循环、跳转、函数、语句组

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

C++ DAY3

1.思维导图 2.有以下类定义&#xff0c;按要求实现剩余功能 #include <iostream> using namespace std;class Person { private:int age;int *p; public://无参构造Person():p(new int(89)){age 18;}//有参构造Person(int age,int num){this->age age;this->pne…

基于Java实验室开放管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Servlet实现留言墙

目录 1.创建工程 2.构建目录工程结构 3.设置编码格式尾utf-8 4.查看Maven配置 5.一些其他配置​编辑 6.导入依赖 7.导入HTML和JS、配置tomcat 8.测试网站是否可以正常访问 9.编写业务代码 开发环境&#xff1a;idea2022.2社区版 1.创建工程 2.构建目录工程结构 web.xml中的…

《程序员的AI书_从代码开始》第一章 机器学习的Hello World

文章目录 1.3 从代码开始1.3.2 一段简单的代码 1.3 从代码开始 1.3.2 一段简单的代码 python导入tensflow.keras报错解决方法 import tensorflow as tf from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import DensemodelSeque…

为什么网络攻击绝大多数发生在游戏行业

近年来&#xff0c;游戏行业欣欣向荣&#xff0c;游戏玩家也呈指数级增长&#xff0c;全球数以亿计的游戏玩家享受着网络游戏广泛的互动体验&#xff0c;然而&#xff0c;由于游戏的崛起和受欢迎程度也使其成为网络黑客寻求利用其漏洞的首选目标。 出于多种原因&#xff0c;游…

MybatisPlus的分页插件自动优化LeftJoin语句导致参数不匹配

所报的错误&#xff1a; java.sql.SQLException: Parameter index out of range (3 &#xff1e; number of parameters, which is 2). 首先会去检查自己传了哪些参数&#xff1f;是否都用上了&#xff1f;反复检查&#xff0c;发现并没有多余的参数&#xff1a; controller…

目前主流的软件开发模型:瀑布模型,增量模型(渐增模型,快速原型模型),螺旋模型,喷泉模型,敏捷模型。

目录 前言&#xff1a; 一、瀑布模型&#xff1a; 二、增量模型&#xff1a; 三、螺旋模型&#xff1a; 四、喷泉模型&#xff1a; 五、敏捷开发模型&#xff1a; 前言&#xff1a; 软件开发模型是用来指导和组织软件开发过程的模式或方法。随着软件行业的发展和不断变化…

Hue 后台编辑器 远程命令执行漏洞

描述 Hue 后台编辑器存在命令执行漏洞&#xff0c;攻击者通过编辑上传 xxx.sh 文件即可达到命令执行的目的。 FOFA title"Hue - 欢迎使用 Hue" "/hue/accounts/login?next/"复现过程 默认密码&#xff1a;admin:admin 上传并编辑文件为执行的命令

5、DataX(DataX简介、DataX架构原理、DataX部署、使用、同步MySQL数据到HDFS、同步HDFS数据到MySQL)

1、DataX简介 1.1 DataX概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。源码地址&#xff1a;https://github.com/alibaba/Dat…

SpringBoot3.0整合RocketMQ时出现未能加载bean文件

SpringBoot3.0整合RocketMQ时出现未能加载bean文件 问题 APPLICATION FAILED TO START Description: Field rocketMQTemplate in com.spt.message.service.MqProducerService required a bean of type ‘org.apache.rocketmq.spring.core.RocketMQTemplate’ that could not …

Scala里的WordCount 案例

7.7.5 普通 WordCount 案例 package chapter07object TestWordCount__简单版 {def main(args: Array[String]): Unit {//单词计数&#xff1a;将集合中出现的相同单词计数&#xff0c;进行计数&#xff0c;取计数排名的前三的结果val stringList List("Hello Scala Hbas…