mac M系列芯片安装chatGLM3-6b模型

1 环境安装

1.1 mac安装conda.

下载miniconda,并安装

curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
sh Miniconda3-latest-MacOSX-arm64.sh

1.2 创建虚拟环境并激活

创建名为chatglm3的虚拟环境,python版本为3.10.2
激活环境(后续要在这个环境安装pytorch及依赖包)

conda create -n chatglm3 python==3.10.2
conda activate chatglm3

1.3 安装pytorch-nightly

conda install pytorch torchvision torchaudio -c pytorch-nightly

1.4 下载chatglm3 代码

1 下载地址,git地址:https://github.com/THUDM/ChatGLM3
2 进入代码中,安装依赖包

git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3-main
pip install -r requirement.txt

2 模型下载

推荐使用方式3下载,可以下载任意开源大模型,且速度飞快,没有墙限制

方式1: 直接在huggingface官网下载(国内比较难)

https://huggingface.co/dwdcth/chatglm3-6b-int4

方式2 使用国内镜像

https://hf-mirror.com/dwdcth/chatglm3-6b-int4

方式3

  • 使用modelscope下载
    https://modelscope.cn/models/ZhipuAI/chatglm3-6b/summary

  • 安装魔塔依赖
    pip install modelscope -U

  • 代码中的路径即为要下载的模型,可以自行选择模型下载(mac 16G推荐下载int4)
    model_dir = snapshot_download(‘ZhipuAI/chatglm3-6b’, revision=‘v1.0.1’)

  • 模型默认保存路径为家目录下, ~/.cache/modelscope/hub/ZhipuAI/ChatGLM3-6B/

1 安装依赖
pip install modelscope -U2 使用代码下载
from modelscope import snapshot_download
model_dir = snapshot_download("ZhipuAI/chatglm3-6b", revision = "v1.0.0")

3 模型使用

1 修改web_demo2.py中的device为"mps"
DEVICE = ‘mps’
如果测试cli_demo.py文件,修改如下代码,模型需要时float()类型的,不然会报错。(不过好像还没有用到mps,待测试)
DEVICE = ‘mps’
model = AutoModel.from_pretrained(TOKENIZER_PATH, trust_remote_code=True).float()

# web_demo2.py 运行
streamlit run basic_demo/web_demo2.py 

4 模型web展示

streamlit run basic_demo/web_demo2.py

在这里插入图片描述

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

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

相关文章

Stream API 方法使用总结

文章目录 1.1、Stream介绍1.2、Stream创建对象(1)empty()方法(2)of()方法(3)Arrays.stream()方法(4)list.stream()方法 1.3、Stream中间方法(1)filter()方法&…

算法设计与实现--贪心篇

贪心算法 贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法,以期望能够通过一系列局部最优的选择达到全局最优。贪心算法的关键是定义好局部最优的选择,并且不回退,即一旦做出了选择,就不能撤销。 一般来说&#xf…

opencv项目开发实战--填补字母的空白

目录 完成/填写字母 OpenCV C++ 完成opencv表中缺失的行 如何使用 OpenCV 获取图像中所有文本的位置? 完成/填写字母 OpenCV C++ 解决方案一: 您似乎已经对图像进行了

弦理论:技术视角下的宇宙密码

弦理论:技术视角下的宇宙密码 一、引言 弦理论,这个一度被认为是物理学终极理论的候选者,如今已成为了研究微观世界的关键工具。它主张宇宙的基本单元并非点状粒子,而是像弦一样的物体,这些弦以各种方式振动,对应着不同的基本粒子。本文将从技术角度深入探讨弦理论,包括…

pybind11教程

pybind11教程 文章目录 pybind11教程1. pybind11简介2. cmake使用pybind11教程3. pybind11的历史 1. pybind11简介 项目的GitHub地址为: pybind11 pybind11 是一个轻量级的头文件库,用于在 Python 和 C 之间进行互操作。它允许 C 代码被 Python 调用&am…

EtherCAT主站SOEM -- 7 -- SOEM之ethercatmain.h/c文件解析

EtherCAT主站SOEM -- 7 -- SOEM之ethercatmain.h/c文件解析 一 ethercatmain.h/c文件功能预览:1.1 ethercatmain里面的结构体1.2 ethercatmain里面的函数二 ethercatmain.h/c 文件的主要函数的作用:2.1 结构体介绍2.1.1 `ec_adaptert` 结构体:2.1.2 `ec_fmmut` 结构体:2.1.3 …

C语言-内存分配

内存分配 1. 引入 int nums[10] {0}; //对int len 10; int nums[len] {0}; //错是因为系统的内存分配原则导致的2. 概述 在程序运行时,系统为了 更好的管理进程中的内存,所以有了 内存分配机制。 分配原则: 2.1 静态分配 静态分配原…

CSS——复合选择器、CSS特性、背景属性、显示模式

1、复合选择器 复合选择器:由两个或多个基础选择器,通过不同的方式组合而成。 作用:更准确、更高效的选择目标元素(标签) 1.1 后代选择器 后代选择器:选中某元素的后代元素 选择器写法:父选…

常用PHP数学函数 学习资料

常用PHP数学函数 abs($number): 返回一个数的绝对值。sqrt($number): 返回一个数的平方根。pow($base, $exponent): 返回一个数的指定次幂。exp($number): 返回指数函数的值。log($number, $base): 返回一个数的对数。round($number, $precision): 对一个数进行四舍五入。ceil…

Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)

单线程Reactor package org.example.utils.echo.single;import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.*; import java.util.Iterator; import java.util.Set;public class EchoServerReactor implements Runnable{Selector sele…

Android Studio build.gradle获取项目绝对路径

通过这个字段 ${project.rootProject.projectDir}";如项目根build.gradle中: // Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {google()mavenCentral()// jcenter() // kee…

C++基础 -35- string类

string类的格式 string a;如下图,使用string类比常规的字符串处理方便很多 而且需要进行的字符串处理,在类中都能完成 #include "iostream"using namespace std;extern "C" {#include "string.h" }int main() {//c的写…

[Firefly-Linux] RK3568 pca9555芯片驱动详解

文章目录 一、PAC9555 介绍二、ITX-3568JQ PAC9555 使用2.1 原理图2.2 设备树三、RK3568 I2C 介绍四、PAC9555 驱动4.1 介绍4.2 数据结构4.3 驱动分析一、PAC9555 介绍 PAC9555 是一种高性能、低功耗 I/O 扩展芯片,能够提供 16 个 GPIO 通道,每个通道可以单独配置为输入或输…

C语言--求一个十进制整数中1的个数

一.题目描述⭐ 求一个十进制整数中1的个数 比如: 输入:10201 输出:2 (这个数字中1的个数是2) 二.思路分析⭐ 数字类的问题我们可以用取模,或者取余运算。 首先定义一个计数器,用来统计1的个数。 输入数字…

Python——import和from import方法总结

基本概念: 模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或from)。 包(package): 包是更大的组织单位,用来组织区别管理多个模块文件。 import 用来导入模块 from 用于从模块中导入工具(可以是某个函…

挖漏洞之SQL注入

(一)漏洞原理 1、 漏洞原理 SQL注入的原理是,是应用系统没有对传递的参数进行过滤,让参数直接拼接到SQL语句中,攻击通过对参数进行篡改,当参数传递到数据库中,逻辑上就会发生变化,就…

Python面向对象③:封装【侯小啾python领航班系列(二十一)】

Python面向对象③【侯小啾python领航班系列(二十一)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

.[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?

引言: 在数字时代的网络森林里,[support2022cock.li].faust、[tsai.shenmailfence.com].faust、[Encrypteddmailfence.com].faust、.[backupsairmail.cc].faust 勒索病毒如同一只潜伏的狼,威胁着我们珍贵的数据。这篇文章将深入揭示这个狡猾…

关于前端学习的思考-word-wrap和word-break的区别

如上图word-wrap里面的break-word就是按照单词来换行的,空格在前,连字符在后的时候,按照连字符进行换行,那么空格和连字符哪一个拥有优先级呢? 连字符在前,空格在后的时候,还是按照连字符进行换…

分享66个焦点幻灯JS特效,总有一款适合您

分享66个焦点幻灯JS特效,总有一款适合您 66个焦点幻灯JS特效下载链接:https://pan.baidu.com/s/10bqe09IAZt_hbsZlXaxkxw?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,…