LLM大语言模型(一):ChatGLM3-6B试用

前言

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

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

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.mzph.cn/news/193566.shtml

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

相关文章

java后端自学错误总结

java后端自学错误总结 MessageSource国际化接口总结 MessageSource国际化接口 今天第一次使用MessageSource接口,比较意外遇到了一些坑 messageSource是spring中的转换消息接口,提供了国际化信息的能力。MessageSource用于解析 消息,并支持消息的参数化…

【中文编码】利用bert-base-chinese中的Tokenizer实现中文编码嵌入

最近接触文本处理,查询了一些资料,记录一下中文文本编码的处理方法吧。   先下载模型和词表:bert-base-chinese镜像下载   如下图示,下载好的以下文件均存放在 bert-base-chinese 文件夹下    1. 词编码嵌入简介 按我通俗的…

基于SpringBoot的公益慈善平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 基于SpringBoot的公益…

arcgis导出某个属性的栅格

选中栅格特定属性想要导出时,无法选中“所选图形” 【方法】spatial analyst 工具——提取分析——按属性提取

C++笔试训练day_1

文章目录 选择题编程题 选择题 编程题 #include <iostream> #include <algorithm> #include <vector>using namespace std;int main() {int n 0;cin >> n;vector<int> v;v.resize(3 * n);int x 0;for(int i 0; i < v.size(); i){cin >&…

【Java基础篇 | 面向对象】—— 聊聊什么是多态(下篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、动态绑定和静态绑…

opencv几何变换和图像形态学

实验1 实验内容 该代码演示了如何使用OpenCV库中的WarpAffine函数进行图像基础的仿射变换 代码注释 import numpy as np import cv2 as cvimg cv.imread(rtest.jpg, 1) rows, cols, channels img.shape M np.float32([[1,0,100],[0,1,50]]) res cv.warpAffine(img, M, …

【微信小程序】上传头像 微信小程序内接小程序客服

这里写目录标题 微信小程序上传头像使用button按钮包裹img 微信小程序内接小程序客服使用button按钮跳转客服 微信小程序上传头像 使用button按钮包裹img 原本思路是只使用image标签再加上chooseImg&#xff0c;但发现使用button标签上传头像这种方法更实用。微信小程序文档上…

C++实现DFS、BFS、Kruskal算法和Prim算法、拓扑排序、Dijkstra算法

背景&#xff1a; 实现要求&#xff1a; 根据图的抽象数据类型的定义&#xff0c;请采用邻接矩阵来存储图1&#xff0c;采用邻接表来存储图2&#xff0c;并完成如下操作&#xff1a;对图1无向图进行深度优先遍历和广度优先遍历。对图1无向图采用Kruskal算法和Prim算法得出最小…

如何保持高能量

精力管理 精力管理对于平衡多项任务和保持热情至关重要。 通过自我积极反馈循环系统培养积极的内心声音。 培养仪式和习惯来控制内心的声音并保持能量。 学习语言带来正能量和宝贵的技能 保持高能量需要自我赋权和体力充电。 经常锻炼有很多好处&#xff0c;包括改善健康…

BLIP和BLIP2

1.BLIP BLIP的第一个共享是将图像文本理解与图像文本生成任务进行了统一&#xff0c;形成了多模态统一模型&#xff0c;模型在ITC任务上的效果也比CLIP更好。 1.1任务 ITC&#xff1a;就是CLIP中的图像文本对比学习任务 ITM&#xff1a;针对ITC任务中匹配不正确的样本&#…

FreeRtos第一个task是怎么run起来的

第一个task是怎么起来的呢&#xff1f;分析完vTaskStartScheduler&#xff0c;就会有答案了。 那vTaskStartScheduler()干了啥呢&#xff1f; 一、创建prvIdleTask task 二、xTimerCreateTimerTask里创建prvTimerTask task 三、初始化一些全局变量 3.1 xNextTaskUnblockTime…

业务数据治理体系化实施流程学习总结

目录 一、业务数据治理实施流程 步骤 1&#xff1a;发现问题和制定目标 步骤 2&#xff1a;针对问题进行拆解&#xff0c;设计可衡量的指标 步骤 3&#xff1a;制定解决SOP和检查研发标准规范 步骤 4&#xff1a;推广运营&#xff0c;以拿结果为核心目标 步骤 5&#xff…

navicat某些表为什么不按主键排序

不知道大家注没注意过navicat的这种情况 为什么不是按主键排序呢 我们来全表扫描看下他的执行计划 explain select * from orsql3; 可以发现不是全表扫描而是索引树扫描&#xff0c;由此得知了共性&#xff0c;不按主键顺序排序的表&#xff0c;肯定是在二级索引上就保存着全部…

计算机网络体系的形成

目录 1、开放系统互连参考模型OSI/RM 2、两种国际标准 3、协议与划分层次 4、网络协议的三要素 5、划分层次 &#xff08;1&#xff09;文件发送模块使两个主机交换文件 &#xff08;2&#xff09;通信服务模块 &#xff08;3&#xff09;接入网络模块 6、分层带来的好…

pytorch 模型量化quantization

pytorch 模型量化quantization 1.workflow1.1 PTQ1.2 QAT 2. demo2.1 构建resnet101_quantization模型2.2 PTQ2.3 QAT 参考文献 pytorch框架提供了三种量化方法&#xff0c;包括&#xff1a; Dynamic QuantizationPost-Training Static Quantization&#xff08;PTQ&#xff0…

随心玩玩(十)git

写在前面&#xff1a;研究生一年多了&#xff0c;一直浑浑噩噩的&#xff0c;在深度学习的泥潭挣扎了好久&#xff0c;终于走出了精神内耗的泥潭…好久没有写博客了&#xff0c;决定重新捡起来…记录一下学习吧~ 之前写了一篇git的博客&#xff0c;【github 从0开始的基本操作…

Ubuntu 22.04安装mysql-server 8.0.34(使用bundle.tar)

《Ubuntu 20.04 使用mysql-server_8.0.31-1ubuntu20.04_amd64.deb-bundle.tar安装MySQL 8.0.31》是我以前写的博客。 https://downloads.mysql.com/archives/community/是社区版的官网&#xff0c;可以选择版本下载。 sudo wget -c https://downloads.mysql.com/archives/ge…

【数据库原理】函数依赖、三范式、视图、事务、数据库设计(概念、逻辑、物理结构设计,实施)、数据流图、数据字典、存储过程、触发器、备份与还原【我统统拿下!】

函数依赖 函数依赖是关系数据库中的重要概念&#xff0c;用于描述关系中属性之间的依赖关系。 在关系数据库中&#xff0c;如果关系 R 中的某个属性或属性组的值能够唯一确定关系中其他属性的值&#xff0c;那么我们就说这个属性或属性组对其他属性具有函数依赖关系。 举个例…

分享84个节日PPT,总有一款适合您

分享84个节日PPT&#xff0c;总有一款适合您 84个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1TSIGR8ZIytnTKmQRa0rGnw?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…