Mac(M1Pro)下运行ChatGLM2

news2024/9/21 11:04:39

      最近很多人都尝试在M1/M2芯片下跑chatglm/chatglm2,结果都不太理想,或者是说要32G内存才可以运行。本文使用cpu基于chatglm-cpp运行chatglm2的int4版本。开了多个网页及应用的情况下(包括chatglm2),总体内存占用9G左右。chatglm2可以流畅的运行了。虚拟环境为python 3.10,使用conda 创建。

 具体部署过程如下:

1.安装brew,主要需要安装core及cask

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2.添加git配置

git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core

git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask

3. 安装cmake

brew install cmake

4. 下载chatglm-cpp

git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp

5. 转换chatglm2模型(模型下载THUDM/chatglm2-6b at main,依赖安装)                


python3 convert.py -i THUDM/chatglm2-6b -t q4_0 -o chatglm2-ggml.bin

6. build main

cmake -B build
cmake --build build -j

7. 命令行调用

./build/bin/main -m chatglm2-ggml.bin -p 你好 --top_p 0.8 --temp 0.8    # ChatGLM2-6B
# 你好👋!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。

8. 安装chatglm-cpp

pip install -U chatglm-cpp

9. 运行web_demo.py

cd examples && python web_demo.py -m ../chatglm-ggml.bin

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

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

相关文章

PYTHON+YOLOV5+OPENCV,实现数字仪表自动读数,并将读数结果进行输出显示和保存

最近完成了一个项目,利用pythonyolov5实现数字仪表的自动读数,并将读数结果进行输出和保存,现在完成的7788了,写个文档记录一下,若需要数据集和源代码可以私信。 最后实现的结果如下: 项目过程 首先查阅文…

从单体到SpringBoot/SpringCloud微服务架构无感升级的最佳实践

目录导读 从单体到SpringBoot/SpringCloud微服务架构无感升级的最佳实践1. 业务背景2. 当前问题3. 升级方案3.1 架构设计4. 详细设计4.1 迁移阻碍4.2 解决思路 5. 实现过程5.1 认证兼容改造5.2 抽象业务流程5.2.1 抽象业务的思路5.2.2 抽象业务的抽象编码5.2.3 抽象业务的具体实…

BFF网关模式开发指南

BFF是近些年新衍生出来的一种开发模式,或者说是一种适配模式的系统,BFF全称为Backend OF Front意为后端的前端,为了适配微服务模式下前端后端系统接口调用混乱而出现的。在如今微服务盛行的趋势下,大型系统中划分出了数十个服务模…

前端优化的一些方向

对于浏览器来说,加载网页的过程可以分为两部分,下载文档并响应(5%左右),下载各种组件(95%左右)。 而对比大部分优秀网页来说下载文档(10%~ 20%),下载组件&…

23_7第一周LeetCode刷题回顾

目录 1. 两数之和2. 两数相加3.无重复字符的最长子串4.寻找两个正序数组的中位数5.最长回文子串6.N 形变换7.整数反转8.字符串转整数(atoi)9.回文数10. 正则表达式匹配11. 盛最多水的容器12. 整数转罗马数字13. 罗马数字转整数14. 最长公共前缀15.三数之…

MyBatis中的动态SQL(sql标签、where标签、set标签、批量增加与批量删除)

目录 sql标签 ​编辑 where标签 set标签 foreach标签 批量增加 批量删除 将基础SQL语句中重复性高的增加它的复用性&#xff0c;使得sql语句的灵活性更强 sql标签<sql> <sql id"text">select * from user</sql><select id"selectA…

如何在苹果商店发布App?

一、介绍 众所周知&#xff0c;苹果对于自家产品的安全问题十分重视&#xff0c;他们有严格的一套审核标准和流程&#xff0c;当我们想要在苹果商店发布一款App的时候就需要经过重重艰难险阻&#xff0c;克服不少繁杂的问题去完成这项工作。 另外有一点需要注意的是&#xff…

C语言库函数strcpy学习

strcpy是C语言的一个标准库函数&#xff1b; strcpy把含有\0结束符的字符串复制到另一个地址空间&#xff0c;返回值的类型为char*。 原型声明&#xff1a;char *strcpy(char* dest, const char *src); 头文件&#xff1a;#include <string.h> 和 #include <stdio.h&g…

领域驱动设计(三) - 快速开始 - 【3/3】事件风暴

使用DDD的最终目的是深入学习业务如何运作。然后基于学习试验、质疑、再学习和重建模的过程。过程中面临的最大挑战是如何快速学习&#xff0c;并且在保证学习质量的前提下压缩学习时间&#xff08;你的学习是需要公司付工资的&#xff09;。 事件风暴就是一种相对高效的分析工…

【电子学会】2023年05月图形化二级 -- 接水果

接水果 天上掉落各种水果下来&#xff0c;有草莓、苹果、香蕉&#xff0c;快拿大碗去接住水果吧。 1. 准备工作 &#xff08;1&#xff09;导入背景Blue Sky&#xff1b; &#xff08;2&#xff09;删除小猫角色&#xff0c;导入角色Bowl、Apple、Strawberry、Bananas。 2.…

【技能实训】DMS数据挖掘项目-Day03

文章目录 任务5【任务5.1】基础信息实体类【任务5.2.1】继承DataBase类&#xff0c;重构日志类【任务5.2.2】继承DataBase类&#xff0c;重构物流实体类【任务5.2.3】创建物流、日志测试类&#xff0c;测试任务5.2中的程序&#xff0c;演示物流信息、日志信息的采集及打印输出 …

【Redis】Transaction(事务)

&#x1f3af;前言 Redis事务是一个组有多个Redis命令的集合&#xff0c;这些命令可以作为一个原子操作来执行。 Redis事务通常用于以下两种情况&#xff1a; 保证操作的原子性&#xff1a;在多个命令的执行过程中&#xff0c;如果有一个命令执行失败&#xff0c;整个事务都需…

【数据编制架构】数据编织(Data fabric)架构完整指南

本文探讨了 Data Fabric 的内容、原因、方式和人员&#xff0c;包括 Data Fabric 架构、挑战、优势、核心功能、供应商等。 Data Fabric——以数据为中心的企业的“必备” 在过去几年中&#xff0c;“Data Fabric”一词已成为企业数据集成和管理的代名词。分析公司 Gartner 将“…

vtkButtonWidget Window 添加按钮

有时我们需要在 VTK 窗口中增加 按钮&#xff0c;右上角&#xff1b; 实现&#xff0c;通过回调函数&#xff0c;vtkButtonCallback 获取点击&#xff1a; #include <vtkVersion.h> #include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h> #include &…

Java性能权威指南-总结27

Java性能权威指南-总结27 数据库性能的最佳实践Java集合类API同步还是非同步设定集合的大小 集合与内存使用效率 数据库性能的最佳实践 Java集合类API Java的集合类API有很大的选择余地&#xff1b;Java 7至少提供了58个不同的集合类。在编写应用时&#xff0c;选择恰当的集合…

数据结构算法题——数组

leetcode-1.两数之和 leetcode-1.两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在…

阿里云AliYun物联网平台使用-申请免费试用及完成初始配置

一、项目简介 本专栏文章将围绕阿里云物联网平台&#xff0c;实现其设备向云平台的数据上传&#xff0c;客户端获取云平台数据。设备通过NBIOT技术实现无线采集&#xff0c;定时上传。 二、阿里云平台申请 阿里云物联网平台试用申请地址 进入上述超链接网址&#xff1a; 由于是…

【InnoDB 存储引擎】15.7.1 InnoDB Locking(锁实验,包含了如 记录锁、间隙锁、Next-Key Lock 算法等,重要)

文章目录 1 关于 Record Lock 的实验1.1 实验 1&#xff1a;没有主键时的如何锁定1.2 实验 1&#xff08;续&#xff09;&#xff1a;带着问题继续实验1.3 实验 2&#xff1a;有主键时如何锁定 2 关于 Next-Key Lock 的实验2.1 实验 3&#xff1a;如何确定算法的锁定范围2.2 实…

VS 字体不对齐解决方案

1. 问题描述 输入相同数量但不是同一类型的字符的字符&#xff0c;会出现字符显示不对齐的问题。 在某些需要根据对齐来写的代码的时候&#xff0c;这种情况是相当的折磨。 2. 解决方案 设置等宽字体。 依次点击 VS 上方的 工具 → 选项 → 字体和颜色 → 字体 → 随便选择一款…

基于simulink识别彩色视频序列中的交通警告标志

一、前言 此示例演示如何识别彩色视频序列中的交通警告标志&#xff0c;如“停止”、“请勿进入”和“让行”。 二、模型 下图显示了交通警告标志识别模型&#xff1a; 三、交通警告标志模板 该示例使用两组模板 - 一组用于检测&#xff0c;另一组用于识别。 为了节省计算…