LLM大语言模型(一):ChatGLM3-6B本地部署

news2025/1/24 1:34:52

目录

前言

本机环境

ChatGLM3代码库下载

模型文件下载

修改为从本地模型文件启动

启动模型网页版对话demo

超参数设置

GPU资源使用情况 (网页对话非常流畅)

前言

LLM大语言模型工程化,在本地搭建一套开源的LLM,方便后续的Agent等特性的研究。

本机环境

CPU:AMD Ryzen 5 3600X 6-Core Processor

Mem:32GB

GPU:RTX 4060Ti 16G

ChatGLM3代码库下载

# 下载代码库
​git clone https://github.com/THUDM/ChatGLM3.git

# 安装依赖
pip install -r requirements.txt

模型文件下载

建议从modelscope下载模型,这样就不用担心网络问题了。

模型链接如下: 

chatglm3-6b · 模型库 (modelscope.cn)

git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

修改为从本地模型文件启动

修改此文件basic_demo/web_demo2.py

import os
import streamlit as st
import torch
from transformers import AutoModel, AutoTokenizer

# 注意
# 注意
# 注意
# 注意
# 注意 也可以通过修改环境变量MODEL_PATH来实现
MODEL_PATH = os.environ.get('MODEL_PATH', '#注意-你的本地模型文件的文件夹-注意#')
TOKENIZER_PATH = os.environ.get("TOKENIZER_PATH", MODEL_PATH)
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'

启动模型网页版对话demo

pip install -U streamlit 

可以通过以下命令启动基于 Streamlit 的网页版 demo:

# 进入下载的代码库
cd ChatGLM3

# 用streamlit启动服务
streamlit run basic_demo/web_demo2.py

网页版 demo 会运行一个 Web Server,并输出地址。在浏览器中打开输出的地址即可使用。 经测试,基于 Streamlit 的网页版 Demo 会更流畅。

streamlit启动效果:

聊天窗口效果:

超参数设置

ChatGLM3-6B共有以下参数可以设置

  • max_length: 模型的总token限制,包括输入和输出的tokens

  • temperature: 模型的温度。温度只是调整单词的概率分布。其最终的宏观效果是,在较低的温度下,我们的模型更具确定性,而在较高的温度下,则不那么确定。

  • top_p: 模型采样策略参数。在每一步只从累积概率超过某个阈值 p 的最小单词集合中进行随机采样,而不考虑其他低概率的词。只关注概率分布的核心部分,忽略了尾部部分。

对于以下场景,我们推荐使用这样的参数进行设置

Use Case

temperature

top_p

任务描述

代码生成

0.2

0.1

生成符合既定模式和惯例的代码。 输出更确定、更集中。有助于生成语法正确的代码

创意写作

0.7

0.8

生成具有创造性和多样性的文本,用于讲故事。输出更具探索性,受模式限制较少。

聊天机器人回复

0.5

0.5

生成兼顾一致性和多样性的对话回复。输出更自然、更吸引人。

调用工具并根据工具的内容回复

0.0

0.7

根据提供的内容,简洁回复用户的问题。

代码注释生成

0.1

0.2

生成的代码注释更简洁、更相关。输出更具有确定性,更符合惯例。

数据分析脚本

0.2

0.1

生成的数据分析脚本更有可能正确、高效。输出更确定,重点更突出。

探索性代码编写

0.6

0.7

生成的代码可探索其他解决方案和创造性方法。输出较少受到既定模式的限制。

GPU资源使用情况 (网页对话非常流畅)

模型加载后GPU显存使用情况,约使用14G显存。

推理过程GPU使用情况, GPU使用率约88%

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

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

相关文章

Python实现FA萤火虫优化算法优化LightGBM分类模型(LGBMClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …

空间金字塔池化(SPP,Spatial Pyramid Pooling)系列

空间金字塔池化的作用是解决输入图片大小不一造成的缺陷,同时在目标识别中增加了精度。空间金字塔池化可以使得任意大小的特征图都能够转换成固定大小的特征向量,下面针对一些典型的空间金字塔进行盘点。 部分图片来自blog:空间金字塔池化改进 SPP / SP…

第二十一章总结

一、网络通信: 1.网络程序设计基础:网络程序设计编写的是与其他计算机进行通信的程序。 1.1局域网与互联网:为了实现两台计算机的通信,必须用一个网络线路连接两台计算机 2.网络协议:网络协议规定了计算机之间连接的…

【精选】WebLogic-CVE-2017-3506

下载地址: https://github.com/Al1ex/CVE-2017-3506https://github.com/Al1ex/CVE-2017-3506 1.weblogic wls-wsat组件远程命令执行(CVE-2017-3506) 复现: ┌──(root💀kali)-[~/routing/红日2/CVE-2017-3506-mai…

C++利剑string类(详解)

前言:大家都知道在C语言里面的有 char 类型,我接下来要讲的 string 类功能是使用 char 类型写的类,当然这个是C官方写的,接下来我们将会学会使用它,我们会发现原来 char 这种类型是还能这么好用,授人以…

结构体精讲1

这一期我们讲一讲C语言中的自定义类型中的其中一种类型--->结构体 相信大家对于结构体都听了很久了吧,下面就由我来带领大家一起学习学习! 结构体类型是一种自定义的数据类型,用来组织不同类型的数据成员。结构体可以包含多个不同类型的…

【Proteus】绘制简单的电路图

参考书籍:微机原理与接口技术——基于8086和Proteus仿真(第3版)(作者:顾晖等),p111 1.放置元件 以8086为例: 确保处于元件模式,点击对应的按钮: 在元件库中…

【创意坊】技术征战:揭秘CSDN博客等级与原力等级的战略大计

目录 📋 前言 1. 博客等级 1.1 博客积分规则 1.2 博客等级划分 1.3 博客等级权益 2. 原力等级 2.1 原力积分规则 2.2 原力等级划分 2.3 原力等级权益 3. 文章点赞评论规则 📝总结 📋 前言 🌈个人主页:Sarapi…

PostgreSQL有意思的现象:支持不带列的表

1、前言 以前从没有试过建一张表,不带任何列。在PG中却支持这种语法。这是个什么鬼? 最近,把PG源码扒了下,简单浏览了下最近的一些merge。其中有一个fix: eeb0ebad79 ("Fix the initial sync tables with no columns.&qu…

【动手学深度学习】(六)权重衰退

文章目录 一、理论知识二、代码实现2.1从零开始实现2.2简洁实现 【相关总结】 主要解决过拟合 一、理论知识 1、使用均方范数作为硬性限制(不常用) 通过限制参数值的选择范围来控制模型容量 通常不限制偏移b 小的意味着更强的正则项 使用均方范数作为柔…

自定义登录页面模板(移动端)

login/index <script setup lang"ts"> </script><template><div class"login-page">//组件 由于配置了自动注册&#xff0c;所以无需引入<cp-nav-barright-text"注册"click-right"$router.push(/register)&quo…

elk:filebeat

elk:filebeat日志收集工具和logstash相同 filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源要小的多。 filebeat可以运行在非java环境&#xff0c;他可以代替logstash在非java环境上收集日志。 filebeat无法实现数据的过滤…

外置固态硬盘配置

1、插上usb外置硬盘盒 2、邮件我的此“电脑”选择“管理” 3、例如新增的固态硬盘如下&#xff1a; 4、这里我选择mrb(旧模式)而没选guid(新模式) 因为mrb兼容模式更加适合windows、ios等系统 5、右击未分区磁盘&#xff0c;选择新增卷区&#xff0c;一路下一步即可

顶级设计师力荐的界面设计软件,设计新选择

即时设计 作为专业的在线协作UI设计软件&#xff0c;即时设计可以实现视觉效果、交互效果、体验效果一站成型&#xff0c;为你的目标用户创造流畅体验。 轻松绘制原型&#xff1a;借助社区设计资源和原型模板的即时设计&#xff0c;开始敏捷高效的工作。与产品经理分解用户需…

fastapi.templating与HTMLResponse

要声明一个模板对象&#xff0c;应将存储html模板的文件夹作为参数提供。在当前工作目录中&#xff0c;我们将创建一个 “templates “目录。 templates Jinja2Templates(directory“templates”) 我们现在要把这个页面的HTML代码渲染成HTMLResponse。让我们修改一下hello()函…

轻量封装WebGPU渲染系统示例<41>- 前向渲染的雾(Fog)效果(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/FogTest.ts 当前示例运行效果: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下&#xff1a; export class FogTest {private mRscene new Rend…

TrustZone之数据、指令和统一缓存(unified caches)

在Arm架构中,data caches是物理标记(physically tagged)的。物理地址包括该行来自哪个地址空间,如下所示: 对于NP:0x800000的缓存查找永远不会命中使用SP:0x800000标记的缓存行。这是因为NP:0x800000和SP:0x800000是不同的地址。 这也影响缓存维护操作。考虑前面图表中的示…

kubernetes详解——从入门到入土(更新中~)

k8s简介 编排工具&#xff1a;系统层面ansible、saltstackdocker容器docker compose docker swarm docker machinedocker compose&#xff1a;实现单机容器编排docker swarm&#xff1a;实现多主机整合成为一个docker machine&#xff1a;初始化新主机mesos marathonmesos …

8、Broker进一步了解

1、Broker消息分发服务以及构建ConsumeQueue和IndexFile与消息清除 前面分析如何进行刷盘&#xff0c;本章分析Broker的消息分发以及构建ConsumerQueue和IndexFile&#xff0c;两者构建是为了能够提高效率&#xff0c;减少消息查找时间以及减少网络带宽与存储空间。 ConsumeQ…

软著项目推荐 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…