ChatGLM3初体验

news2025/4/28 12:32:09

mac本地化部署ChatGLM3

  • 写在前面
  • 环境准备
    • 1. python环境
    • 2. 安装第三方依赖torch
    • 3.下载模型
  • 代码准备
    • 1.clone代码
  • run
    • 效果

写在前面

建议直接去看官方文档
https://github.com/THUDM/ChatGLM3?tab=readme-ov-file

环境准备

1. python环境

python -V
## 3.11.4

2. 安装第三方依赖torch

pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu

3.下载模型

https://modelscope.cn/models/ZhipuAI/chatglm3-6b/files
克隆下来,几个大文件可能需要手动下载,克隆完成后注意看看文件的大小

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

代码准备

1.clone代码

git clone https://github.com/THUDM/ChatGLM3.git
cd ChatGLM3

然后使用 pip 安装依赖:

pip install -r requirements.txt

ChatGLM3目录介绍

名称说明
basic_demo基础demo(cli_demo和web_demo)
composite_demo综合demo(聊天、工具和代码解释器)
finetune_demo基础模型微调
langchain_demolangchain demo
model自己创建的,将模型文件放在此目录下
openai_api_demoopenapi的api接口demo
tensorrt_llm_demotensorTR-llm demo

run

替换模型为本地文件
修改代码中MODEL_PATH为下载的模型的路径
在这里插入图片描述

MODEL_PATH = os.environ.get('MODEL_PATH', '/your local path/chatglm3-6b')
TOKENIZER_PATH = os.environ.get("TOKENIZER_PATH", MODEL_PATH)

tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)
model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).to('mps').eval()

然后直接run即可。

启动 composite_demo/main.py时出现

AttributeError: st.session_state has no attribute "chat_history". Did you forget to initialize it?

使用下面的命令启动、

streamlit run  main.py 

效果

在这里插入图片描述

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

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

相关文章

c++ - 动态载入DLL接口,可以给IDA静态分析增加一点麻烦

文章目录 c - 动态载入DLL接口,可以给IDA静态分析增加一点麻烦概述笔记测试工程test_load_dll_then_call_api.cppCMyUser32Dll.hCMyUser32Dll.cppLateLoad.hIDA静态分析引入表中没有PostMessageW字符串查找能找到PostMessageW备注看看CMyUser32Dll.h编译完的样子备注…

Rust - 所有权

所有的程序都必须和计算机内存打交道,如何从内存中申请空间来存放程序的运行内容,如何在不需要的时候释放这些空间,成了重中之重,也是所有编程语言设计的难点之一。在计算机语言不断演变过程中,出现了三种流派&#xf…

【JS】数组交换位置

公式 arr.splice(oldIndex, delCount, ...arr.splice(newIndex, delCount, arr[oldIndex])) arr - 操作的数组delCount - 删除的数组个数oldIndex - 交换位置的数组下标1newIndex - 交换位置的数组下标2...arr - 提取数组里的元素 splice删除元素时,返回一个数组&a…

每日一题:缺失的第一个正数

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组…

实验笔记之——RGBD GS-ICP SLAM配置与测试

《RGBD GS-ICP SLAM》是最新开源的一个3DGS-SLAM工作,通过利用GICP来实现当前帧gaussian与已mapping的gaussian进行匹配进行位姿的估算,并通过关键帧的选择策略来进一步提升performance~ Use G-ICP to align the current frame with the 3D GS map whic…

计算机网络----第十二天

交换机端口安全技术和链路聚合技术 1、端口隔离技术: 用于在同vlan内部隔离用户; 同一隔离组端口不能通讯,不同隔离组端口可以通讯; 2、链路聚合技术: 含义:把连接到同一台交换机的多个物理端口捆绑为一个逻辑端口…

HLOOKUP函数结合数据验证实现的动态图表

小伙伴们,大家好啊!今天我们分享一个使用HLOOKUP函数结合数据验证实现的动态图表技巧; 接下来我们具体说说操作步骤吧。 步骤1:选中A列的【路口车辆通过数】单元格区域,复制粘贴后到右边的空白区域,如I列…

【微服务】------架构设计及常用组件

前言 在当今迅猛发展的软件开发领域,微服务架构已经成为构建灵活、可扩展系统的关键方法之一。本文将带领读者深入了解微服务架构的核心思想,并介绍构建这一架构所需的常用组件,为各位开发者提供全面的指导和洞察力。 BigDiagram 我们从一…

HttpServletRequest/Response

HttpServletRequest 一些常用类的用法 package Demo;import javax.jws.WebService; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import ja…

改进YOLOv8系列:结合自研注意力模块MultiScaleAttentiveConv (MSAConv)

改进YOLOv8注意力系列七:结合空间关系增强注意力SGE、SKAttention动态尺度注意力、全局上下文信息注意力Triplet Attention 代码MultiScaleAttentiveConv (MSAConv)本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更…

计算机网络书籍--《网络是怎样连接的》阅读笔记

第一章 浏览器生成信息 1.1 生成HTTP请求信息 1.1.1 URL Uniform Resource Locator, 统一资源定位符。就是网址。 不同的URL能够用来判断使用哪种功能来访问相应的数据,比如访问Web服务器就要用”http:”,而访问FTP服务器用”ftp:”。 FTP&#xff…

笔记本台式机电脑 “睡眠和休眠”有什么区别,那个更省电

笔记本台式机电脑 Windows 系统里睡眠和休眠有什么区别,睡眠和休眠那个更省电,睡眠和休眠使用那个更好,当不用电脑时,通常有三种方式让电脑休息:关机、睡眠和休眠。关机的定义大家都懂,但睡眠和休眠就容易让…

基于Java的XxlCrawler网络信息爬取实战-以中国地震台网为例

目录 前言 一、信息网站介绍 1、网站介绍 2、 地震历史信息 3、 历史信息接口分析 二、XxlCrawler组件 1、关于XxlCrawler 2、核心概念介绍 三、实际信息爬取 1、新建maven项目 2、新建model层对象 3、实际爬取 总结 前言 如今,只要谈起网络信息爬取也就…

MathJax —— Vue3的使用方法

版本&#xff1a; mathjax3 需要实现效果 一、使用方式 1. index.html 中引入 <!-- 识别单行&#xff0c;行内&#xff0c;\( \)样式的公式 --><script>MathJax {tex: {inlineMath: [[$, $],[$$, $$], [\\(, \\)]]},};</script><script id"MathJ…

Pixel 手机上连接提示受阻,无法上网-解决方法

命令行中输入 adb shell settings delete global captive_portal_https_urladb shell settings delete global captive_portal_http_url输入服务器信息 adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204adb shell settings …

Autosar Dcm配置-手动配置RID及Routine功能实现-基于ETAS软件

文章目录 前言Routine介绍Routine配置DcmDsdDcmDspDcmDspRoutinesSWC配置总结前言 之前介绍了DID的配置,本文介绍UDS诊断中,另外一种常用的功能Routine的配置,及生成代码的使用。 Routine介绍 Routine一般用于ECU较复杂的控制功能。使用UDS服务ID为0x31 31后面跟的是子服…

antd+vue——datepicker日期控件——禁用日期功能

需求&#xff1a;今天之前的日期禁用 <a-date-pickerv-model.trim"formNE.deliveryTime":disabled-date"disabledDate"valueFormat"YYYY-MM-DD"allowClearstyle"width: 100%" />禁用日期的范围&#xff1a; //时间范围 disab…

机器学习第34周周报VBAED

文章目录 week34 VBAED摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 序列问题阐述3.2 变分模态分解3.3 具有 BiLSTM 和双向输入注意力的编码器3.4 具有 BiLSTM 和双向时间注意力的解码器 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 数据集数据预处…

ESP32系统监测(基于ESP-IDF)

主要参考资料&#xff1a; CSDN文章《ESP32 IDF开发调试奇技淫巧》: https://blog.csdn.net/qq_43332314/article/details/131859971 目录 查询系统剩余堆/最小堆大小查询线程剩余栈大小方法一方法二 查询CPU占用率 查询系统剩余堆/最小堆大小 查询系统剩余堆、最小堆大小的 A…

加速Python循环的12种方法,最高可以提速900倍

在本文中&#xff0c;我将介绍一些简单的方法&#xff0c;可以将Python for循环的速度提高1.3到900倍。 Python内建的一个常用功能是timeit模块。下面几节中我们将使用它来度量循环的当前性能和改进后的性能。 对于每种方法&#xff0c;我们通过运行测试来建立基线&#xff0…