使用chatglm.cpp本地部署ChatGLM3-6B模型

ChatGLM3模型介绍

ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:

  1. 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的预训练模型中最强的性能。
  2. 更完整的功能支持: ChatGLM3-6B 采用了全新设计的 Prompt 格式,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
  3. 更全面的开源序列: 除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM-6B-Base、长文本对话模型 ChatGLM3-6B-32K。以上所有权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用

本地部署ChatGLM3模型

使用chatglm.cpp部署模型

下载chatglm.cpp

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

编译chatglm.cpp

cmake -B build
cmake --build build -j 16 --config Release

下载chatglm3-6b模型文件

当前chatglm3是开源的最高版本。我们可以选择从huggingface或openi下载模型

从huggingface下载

安装huggingface:

pip install -U huggingface_hub

下载模型

创建models目录,到目录里下载chatglm3-6b模型到chatglm3目录里。命令:

huggingface-cli download --resume-download THUDM/chatglm3-6b --local-dir chatglm3


使用openi下载模型

首先安装库:pip install openi 

然后登录账户: 

openi login

按照提示输入token 。token可以从openi官网应用栏目创建。 Sign In - OpenI - 启智AI开源社区提供普惠算力!

登录之后,就可以使用openi命令下载模型了 

openi model download -r Zhipu.AI/ChatGLM3 -m chatglm3-6b -p chatglm3-6b

转换模型文件到ggml

先安装需要的库

python3 -m pip install -U pip
python3 -m pip install tabulate tqdm transformers accelerate sentencepiece
# pip install sentencepiece

转换模型还需要安装torch,这个可以到官网获取安装命令,这里就不具体说明了。

 开始转换:

# cd chatglm.cpp
python3 chatglm_cpp/convert.py -i ~/models/chatglm3-6b -t q4_0 -o ~/models/chatglm3-6b/chatglm3-ggml.bin

 部署完成的测试

执行下面命令:

./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -p 你好,最好的大模型是哪一款?

看这个回答,情商不错啊

./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -p 你好,最好的大模型是哪一 款?


您好!关于“最好的大模型”,这其实是一个因应用场景而异的问题。在不同的领域和任务中,最适合的大模型可能有所不同。

在自然语言处理领域,清华大学 KEG 实验室和智谱 AI 共同训练的 GLM3-6B 模型在许多 NLP 任务中表现优秀。在计算机视觉领域,OpenAI 的 DALL-E 和特斯拉的 GPT-3 都是目前表现出众的大模型。在音频处理领域,Google 的 Wavenet 和 Facebook 的 GLA 的表现较好。

因此,要确定哪一款大模型是“最好的”,需要根据您的具体需求和应用场景来判断。

实战ChatGLM3

 与ChatGLM3交互

./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -i

效果还是不错的:

./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -i
    ________          __  ________    __  ___                 
   / ____/ /_  ____ _/ /_/ ____/ /   /  |/  /_________  ____  
  / /   / __ \/ __ `/ __/ / __/ /   / /|_/ // ___/ __ \/ __ \ 
 / /___/ / / / /_/ / /_/ /_/ / /___/ /  / // /__/ /_/ / /_/ / 
 \____/_/ /_/\__,_/\__/\____/_____/_/  /_(_)___/ .___/ .___/  
                                              /_/   /_/       

Welcome to ChatGLM.cpp! Ask whatever you want. Type 'clear' to clear context. Type 'stop' to exit.

Prompt   > 你好
ChatGLM3 > 你好👋!我是人工智能助手 ChatGLM3-6B,很高兴见到你,欢迎问我任何问题。
Prompt   > 如果小朋友一直刷手机,应该怎么引导? 
ChatGLM3 > 小朋友一直刷手机可能会对他们的身心健康和发展产生负面影响。以下是一些建议,可以帮助引导孩子减少手机使用时间:

1. 设定规则:家长可以和孩子一起制定一些规则,例如在规定的时间内使用手机,例如晚餐后、睡觉前。严格遵守这些规则可以帮助孩子养成良好的习惯。

2. 互动交流:家长可以和孩子一起进行其他活动,例如阅读、玩游戏或进行户外活动等,以减少孩子对手机的依赖。

3. 激发兴趣:家长可以鼓励孩子培养其他兴趣爱好,例如绘画、音乐、运动等,这样孩子可以更有效地利用时间,而不是一直在手机上。

4. 教育应用:家长可以和孩子一起学习如何使用手机,例如使用教育应用、导航等,让孩子更加积极地使用手机。

5. 关注孩子的情绪:孩子过度使用手机可能是因为他们感到无聊、孤独或其他情绪问题。家长可以关注孩子的情绪,尝试了解他们的需求,并帮助他们应对这些情绪问题。

6. 做出榜样:家长是孩子的榜样,因此家长的行为会对孩子产生影响。家长可以减少自己的手机使用时间,并和孩子一起度过更多 quality time。

总之,家长可以通过制定规则、互动交流、激发兴趣、教育应用、关注情绪和做出榜样等方式,引导孩子减少手机使用时间,并帮助他们养成良好的习惯。
Prompt   > 如何用大模型做一个有趣的项目? 
ChatGLM3 > 用大模型做一个有趣的项目可以参考以下步骤:

1. 确定项目目标:首先确定项目的目标和主题,例如你想用大模型制作一个对话机器人、一个文本生成器或者一个图像生成器等。

2. 收集数据:根据项目目标,收集相关的数据,例如文本数据、图像数据、语音数据等。

3. 数据预处理:对收集的数据进行预处理,例如清洗、标注、归一化等,以便于大模型进行处理。

4. 选择大模型:根据项目需求,选择合适的大模型,例如ChatGPT、ChatGLM、LLaMA等。

5. 训练模型:使用收集的数据对大模型进行训练,并根据项目需求进行优化和调整。

6. 测试模型:在模型训练完成后,进行测试和评估,以确保模型的性能和质量符合预期。

7. 应用和展示:将训练好的模型应用到项目中,例如构建一个对话机器人或者一个文本生成器,并进行展示和分享。

总之,用大模型做一个有趣的项目需要首先确定项目目标,然后收集数据,进行数据预处理,选择大模型进行训练,测试模型并进行应用和展示。
Prompt   > 

 当然还有我们著名的打鸟的脑筋急转弯:

Prompt   > 树上8只鸟,打死3只,还有几只? 
ChatGLM3 > 如果树上有8只鸟,打死3只后,树上将剩下5只鸟。
Prompt   > 再想想
ChatGLM3 > 非常抱歉,我的回答有误。如果树上有8只鸟,打死3只后,树上将剩下0只鸟。
 

调式

Huggingface下载模型慢,使用镜像:

HF-Mirror - Huggingface 镜像站

即使用了镜像,还是慢。解决方法:从openi网站OpenI - 启智AI开源社区提供普惠算力!下模型。可以用浏览器下载,也可以用python或命令行来下载。

openi下载报错

FileNotFoundError: ❌ 本机尚未登录OpenI,请参考 https://openi.pcl.ac.cn/docs/index.html#/api/cli/login.
使用openi login 登录,后面输入token即可。

具体见openi官网:OpenI

chatglm.cpp转换模型报错

  File "/home/skywalk/github/chatglm.cpp/chatglm_cpp/convert.py", line 577, in main
    with open(args.save_path, "wb") as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/skywalk/models/chatglm3/chatglm3-ggml.bin'
 是因为没有那个目录,换成chatglme3-6b目录。后来发现是硬盘空间不够了,清理出足够硬盘空间,搞定。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32_HAL__TIM_输出比较

概述 STM32的输出比较功能通常是指在微控制器的PWM(脉冲宽度调制)生成能力中的一个方面。STM32微控制器拥有一个或多个定时器/计数器,这些定时器/计数器可以用来生成PWM信号。PWM信号是一种重要的控制信号,广泛应用于电机控制、亮…

爬虫案例-亚马逊反爬流程分析梳理(验证码突破)(x-amz-captcha)

总体概览:核心主要是需要突破该网站的验证码,成功后会返回我们需要的参数后再去请求一个中间页(类似在后台注册一个session),最后需要注意一下 IP 是不能随意切换的 主要难点: 1、梳理整体反爬流程 2、验证…

分子对接 molecular docking

https://www.sciencedirect.com/science/article/pii/S094471132400374X?via%3Dihub GitHub - beikwx/SailVina: SailVina重构增强版 Molecular docking Download the PTPRB protein structure on the PDB database (RCSB PDB: Homepage). Select the high-resolution PTP…

深入理解SVM和浅层机器学习算法的训练机制

深入理解SVM和浅层机器学习算法的训练机制支持向量机(SVM)的训练过程SVM的基本概念SVM的损失函数训练方法 浅层机器学习算法的训练机制决策树K-最近邻(K-NN)朴素贝叶斯 结论 深入理解SVM和浅层机器学习算法的训练机制 在探讨浅层…

RedHat9 | DNS剖析-建立子域并进行区域委派

一、实验环境 1、委派DNS服务器 域名空间由多个域构成,DNS提供了将域名空间划分为1个或多个区域的方法,这样使得管理更加方便。在域的规模增大后,可以为域添加附加域,上级域为父域,下级域为子域,下列案例…

FuTalk设计周刊-Vol.051

#AI漫谈 热点捕手 1.ChatGPT 多端加入生成图像工具 DALL-E OpenAI 发文,宣布用户可以在 ChatGPT 中跨 Web、iOS 和 Android 使用 DALL-E 生成图像。在官方放出的视频演示中可以看到,用户能够通过添加、删除或调整图像中的元素来完善自己的 DALL-E 作品。…

【小技巧】KEIL C51 报错`Warning L6: XDATA Space Memory Overlap`

DeBug 记录: 软件:Keil C51 C51V961版本 电脑:Win10 报错: Warning L6: XDATA Space Memory Overlap *** WARNING L6: XDATA SPACE MEMORY OVERLAP 对应代码: LCD.h文件 //static volatile unsigned char xdata LC…

【机器学习】——线性模型

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

前端设计模式学习记录

设计模式介绍 概念 设计模式是我们在解决问题的时候针对特定的问题给出的简洁而优化的处理方案在JS设计模式中,最核心的思想:封装变化将变与不变分离,确保变化的部分灵活、不变的部分稳定 注意:下面文章介绍的设计模式&#xff…

使用 Ollama框架 下载和使用 Llama3 AI大模型的完整指南

🏡作者主页:点击! 🤖AI大模型部署与应用专栏:点击! ⏰️创作时间:2024年5月24日20点59分 🀄️文章质量:96分 目录 💥Ollama介绍 主要特点 主要优点 应…

流量控制的艺术:深入探索分布式限流策略与实践

前言 ​ 当资源成为瓶颈时,服务框架需要对消费者做限流,启动流控保护机制。流量控制有多种策略,比较常用的有:针对访问速率的静态流控、针对资源占用的动态流控、针对消费者并发连接数的连接控制和针对并行访问数的并发控制。 常…

【全开源】排队叫号系统源码(FastAdmin+GatewayWorker)

一款基于FastAdminGatewayWorker开发的多项目多场景排队叫号系统,支持大屏幕投屏,语音播报叫号,可用于餐厅排队取餐、美甲店排队取号、排队领取、排队就诊、排队办理业务等诸多场景,助你轻松应对各种排队取号叫号场景。 ​打造高…

【C语言】大小端字节序存储

引子 不知道你是否像我一样好奇过一个问题:为什么每当我们在调试查看内存窗口时,(以int类型为例)4个字节内容存储的顺序好像是倒着的。 比如下面这张图,十进制数2077转换为十六进制是0x81d,四个字节分别是…

Activiti7_使用

Activiti7_使用 一、Activiti7二、绘制工作流三、通过代码部署流程,再对流程进行实例化,完整运行一遍流程即可四、在springbooot中使用 一、Activiti7 为了实现后端的咨询流转功能,学习Activiti7,记录下使用的过程及遇到的问题 二…

【赠书第24期】Java项目开发实战(微视频版)

文章目录 前言 1 项目选择与需求分析 1.1 项目选择 1.2 需求分析 2 系统设计 2.1 系统架构设计 2.2 数据库设计 2.3 接口设计 3 编码实现 3.1 环境搭建 3.2 编码规范 3.3 编码实现 4 测试与部署 4.1 单元测试 4.2 系统测试 4.3 部署与上线 5 总结与展望 6 推…

行为神经科学研究利器 | FiPhA:光纤光度分析开源平台

摘要 意义:光纤光度法(FP)是现代行为神经科学中广泛使用的技术,利用基因编码荧光传感器监测清醒行为动物的神经活动和神经递质。然而,分析光度数据既费力又耗时。 目的:本研究提出了一种通用的FP分析应用——光纤光度分析(FiPhA…

n7. 图

1.定义 图的每个结构之间有着某种关系。 六度空间理论等; 1.1引子: 最短路径问题 1.2什么是图 表示一种多对多的关系 线性关系表示的是一对一的关系,树表示的是一对多的关系。其实线性表和树其实都可以认为是图的一种特殊的情况。包含&am…

一种改进的形态学滤波算法-以心电信号的基线校正和噪声抑制为例(MATLAB环境)

信号在釆集和传输过程中难免受到噪声源的干扰,反映非线性动力学行为的特征信息有可能被噪声所掩盖。尤其是在混沌振动信号噪声抑制方面,因为混沌信号的高度非线性及宽频特性,噪声和混沌信号往往具有重叠的带宽。传统的时域及频域降噪方法效果…

【设计模式】JAVA Design Patterns——Data Access Object(数据访问对象模式)

🔍目的 对象为某种类型的数据库或其他持久性机制提供了抽象接口。 🔍解释 真实世界例子 有一组客户数据需要持久化到数据库中。 我们需要整个额外的增删改查操作以便操作客户数据。 通俗描述 DAO是我们通过基本持久性机制提供的接口。 维基百科 在计算机…

第七届数字峰会即将举行!正宇软件助力数字赋能社会发展!

据人民日报消息,由国家发展改革委、国家数据局、国家网信办、科技部、国务院国资委、福建省人民政府共同主办,福州市人民政府和相关单位承办的“第七届数字中国建设峰会”,将于5月24日至25日在福建省福州市举行,主题是“释放数据要…