当前位置: 首页 > news >正文

部署大模型LLM

在autodl上部署大模型

windows运行太麻烦,环境是最大问题。

选择云上服务器【西北B区 / 514机】

cpp (c++ c plus plus)
  • 纯 C/C++ 实现,无需外部依赖。
  • 针对使用 ARM NEON、Accelerate 和 Metal 框架的 Apple 芯片进行了优化。
  • 支持适用于 x86 架构的 AVX、AVX2 和 AVX512。
  • 提供 F16/F32 混合精度,并支持 2 位至 8 位整数量化。

参考:GitHub - li-plus/chatglm.cpp: C++ implementation of ChatGLM-6B & ChatGLM2-6B & ChatGLM3 & GLM4 & more LLMs

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

clone 上的app /mnt/workspace/chatglm.cpp

/root/chatglm.cpp

cd /mnt/workspace/chatglm.cpp

git submodule update --init --recursive

Quantize Model 量化模型
python3 -m pip install torch tabulate tqdm transformers accelerate sentencepiece

执行上面量化模型语句时:python3 -m pip install torch tabulate tqdm transformers accelerate sentencepiece

报错:/usr/bin/python3: No module named pip

slove: 执行下面命令:

sudo apt update

sudo apt install python3-pip

再次执行上面量化模型命令后,ok.

通过 convert 专为 GGML 格式
  • 用于 convert.py 将 ChatGLM-6B 转换为量化的 GGML 格式。要将 fp16 原始模型转换为 q4_0(量化 int4)GGML 模型,请运行:
python3 chatglm_cpp/convert.py -i THUDM/chatglm3-6b -t q4_0 -o chatglm3-ggml.bin

在autodll机器:西北B区 / 514机

执行命令:python3 chatglm_cpp/convert.py -i /root/autodl-tmp/chatglm3-6b -t q4_0 -o chatglm3-ggml.bin

注:/root/autodl-tmp/chatglm3-6b 是模型路径

GGML model saved to chatglm3-ggml.bin 代表执行成功。

上面的执行命令解释:

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

这个命令是在使用 Python 脚本将一个模型转换成另一种格式。下面是对命令的详细解释,特别是对 `THUDM/chatglm3-6b` 部分的说明:

- `python3`:这是运行 Python 解释器的命令。它指定脚本应该使用 Python 3 执行。

- `chatglm_cpp/convert.py`:这指定了正在执行的 Python 脚本的路径。脚本位于 `chatglm_cpp` 目录中,文件名为 `convert.py`。这个脚本很可能负责将模型从一种格式转换成另一种格式。

- `-i THUDM/chatglm3-6b`:`-i` 选项指定了脚本将要转换的输入模型。`THUDM/chatglm3-6b` 是要被转换的模型的标识符。在 Hugging Face 模型的上下文中,`THUDM` 很可能是上传模型的组织或用户,而 `chatglm3-6b` 是特定模型的名称。这意味着脚本将在 Hugging Face 模型中心或指定的目录下查找名为 `chatglm3-6b` 的模型。

- `-t q4_0`:`-t` 选项指定了转换的类型或版本。在这个例子中,`q4_0` 很可能代表脚本在转换模型时应该使用的特定转换目标或格式版本。

- `-o chatglm3-ggml.bin`:`-o` 选项指定了转换后模型的输出文件。脚本将把转换后的模型写入一个名为 `chatglm3-ggml.bin` 的文件。这个文件将在转换后包含新格式的模型。

总之,命令中的 `THUDM/chatglm3-6b` 部分指定了 `convert.py` 脚本将要转换的输入模型。它表示名为 `chatglm3-6b` 的模型,与 `THUDM` 组织或用户相关联,应该根据 `-t q4_0` 选项指定的新格式进行转换,并将结果保存到 `chatglm3-ggml.bin` 文件中。

在命令行启动服务
第一步:使用 CMake 配置项目并在当前目录下创建一个名为 "build" 的构建目录
cmake -B build

第二步:使用先前生成的构建系统文件在构建目录 "build" 中构建项目,采用并行构建和 Release 配置

cmake --build build -j --config Release

第三步:运行
./build/bin/main -m chatglm3-ggml.bin -p 你好

启动 web 服务
python3 ./examples/web_demo.py -m chatglm3-ggml.bin

上面的ssh命令复制到记事本中.

ssh -p 53421 root@connect.westc1.gpuhub.com

ssh -CNg -L 7860:127.0.0.1:7860 root@connect.westc1.gpuhub.com -p 53421

密码:t1sftwFjHSxKr123

在powershell中执行命令:ssh -CNg -L 7860:127.0.0.1:7860 root@connect.westc.gpuhub.com -p 53421

注:没有任何提示,表示成功。

访问web页面,chatGLM部署成功。

相关文章:

部署大模型LLM

在autodl上部署大模型 windows运行太麻烦,环境是最大问题。 选择云上服务器【西北B区 / 514机】 cpp (c c plus plus) 纯 C/C 实现,无需外部依赖。针对使用 ARM NEON、Accelerate 和 Metal 框架的 Apple 芯片进行了优化。支持适用于 x86 架构的 AVX、…...

【CT】LeetCode手撕—88. 合并两个有序数组

目录 题目1- 思路2- 实现⭐88. 合并两个有序数组——题解思路 2- ACM实现 题目 原题连接:88. 合并两个有序数组 1- 思路 模式识别 模式1:两个有序数组合并 ——> 双指针模式2:返回结果填充到 nums1[mn] ——> 需要开辟新的数组空间 …...

深入分析 Android BroadcastReceiver (二)

文章目录 深入分析 Android BroadcastReceiver (二)1. 深入理解 BroadcastReceiver 的高级使用和优化2. 有序广播(Ordered Broadcasts)2.1 实现有序广播 3. 粘性广播(Sticky Broadcasts)3.1 使用粘性广播 4. 本地广播(…...

Linux常⽤服务器构建-ssh和scp

目录 1.ssh <1>ssh介绍 <2>安装ssh A.安装ssh服务器 B.远程登陆 <3>使⽤ssh连接服务器 2.scp 本地⽂件复制到远程&#xff1a; 本地⽬录复制到远程&#xff1a; 远程⽂件复制到本地&#xff1a; 远程⽬录复制到本地&#xff1a; 1.ssh <1>…...

《QT实用小工具·七十》openssl+qt开发的P2P文件加密传输工具

1、概述 源码放在文章末尾 该项目实现了P2P的文件加密传输功能&#xff0c;具体包含如下功能&#xff1a; 1、 多文件多线程传输 2、rsaaes文件传输加密 3、秘钥随机生成 4、断点续传 5、跨域传输引导服务器 项目界面如下所示&#xff1a; 接收界面 发送界面 RSA秘钥生成…...

短链接生成器排名前三!长链接转化成短链接工具有哪些?

在现今的网络营销环境中&#xff0c;短链接的应用越来越广泛。它不仅能简化长链接&#xff0c;提高分享效果&#xff0c;还能提升企业品牌形象和用户体验。于是&#xff0c;市场上涌现出众多短链接生成工具。本文将为您揭秘短链接生成器排名前三的产品&#xff0c;帮您找到最适…...

Vue50-mixin混入

一、为什么要使用 mixin混入 两个组件共享一个配置。 二、使用 mixin混入 2-1、创建一个混合js文件 2-2、引入混合js文件 1、局部混合 在每个组件中都引入混合js文件 注意&#xff1a; 混合就是复用配置&#xff0c;vm实例中的所有的配置项&#xff0c;都能在混合.js文件中写…...

Java创建线程的方式

继承Thread类 这是创建线程的基本方式之一。你需要创建一个新的类&#xff0c;该类继承自Thread类&#xff0c;并重写run()方法。然后&#xff0c;你可以创建这个类的一个实例并调用它的start()方法来启动新线程。 public class MyThread extends Thread { Override public vo…...

C# 程序结构

C# 程序结构 C#(读作“C-sharp”)是一种由微软开发的高级编程语言,它是.NET框架的一部分。C# 设计用于现代软件开发,具有强大的类型系统、丰富的库支持和面向对象的特性。本文将详细介绍C#程序的基本结构,包括其语法、类型系统、控制结构、类和对象等。 C# 程序的基本结…...

【Linux】使用 iptables 验证访问HDFS 所使用到的端口

目录 ​编辑 一、实操背景 二、iptables 简介 三、模拟操作 一、实操背景 背景&#xff1a; 在客户有外网的服务器需要访问内网大数据集群HDFS&#xff0c;使用iptable模拟测试需要开放的端口。 二、iptables 简介 具体介绍看文章&#xff1a; 【Linux】Iptables 详解与实战…...

工程设计问题---多盘离合器制动器设计问题

这个问题的主要目的是使多片式离合器制动器的质量最小化。在这个问题中&#xff0c;使用了五个整数决策变量&#xff0c;它们是内半径&#xff08;x1&#xff09;、外半径&#xff08;x2&#xff09;、盘厚度&#xff08;x3&#xff09;、致动器的力&#xff08;x4&#xff09;…...

triton矩阵乘以及缓存优化

这里triton.cdiv(M, META[BLOCK_SIZE_M]) * triton.cdiv(N, META[BLOCK_SIZE_N])&#xff0c;所以grid的形状是一维的。 观察函数内部 pid tl.program_id(axis0)&#xff0c;因为grid是一维的&#xff0c;所以这里就是总块数&#xff0c;我们假设实际A*BC&#xff0c; A&…...

springboot 搭建一个 测试Kafka 集群连通性demo

废话不多说直接上代码&#xff1a; 1.pom <!-- https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka --><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><ve…...

Ant Design Vue 动态表头和数据填充

创作动态表头和数据填充的前端应用&#xff1a;使用 Ant Design Vue 在现代前端开发中&#xff0c;动态表格是一个常见而且非常有用的功能。Ant Design Vue作为一个优秀的UI组件库&#xff0c;为开发者提供了丰富的组件和API来实现复杂的前端需求&#xff0c;包括动态表头和数…...

在Spring Cloud项目中集成Springdoc OpenAPI生成OpenAPI 3文档的详细解析

在Spring Cloud项目中集成Springdoc OpenAPI生成OpenAPI 3文档的详细解析 在Spring Cloud项目中生成OpenAPI 3文档&#xff0c;可以使用Springdoc OpenAPI。Springdoc OpenAPI提供了一种简单的方法来生成符合OpenAPI 3规范的API文档。以下是详细的步骤和解析&#xff0c;展示如…...

Linux shell 重定向输入和输出

Linux shell 重定向输入和输出 1. Standard I/O streams2. Redirecting to and from the standard file handles (标准文件句柄的重定向)2.1. command > file2.2. command >> file2.3. command 2> file2.4. command 2>> file2.5. command < file2.6. comm…...

electron录制工具-视频保存、编辑页面

效果如下 electron录屏-保存录制视频 资源 导出视频使用了 mp4-wasm&#xff0c;基本使用&#xff0c;可参考 此文 想法 1、点击按钮导出&#xff0c;弹出选择保存文件夹 2、保存成功后&#xff0c;自动打开保存后文件夹窗口并关闭窗口 实现 获取保存文件夹路径&#xff0…...

curl命令行发送post/get请求

文章目录 curl概述post请求get请求 curl概述 curl 是一个命令行实用程序&#xff0c;允许用户创建网络请求curl 在Windows、 Linux 和 Mac 上皆可使用 post请求 一个简单的 POST 请求 -X&#xff1a;指定与远程服务器通信时将使用哪种 HTTP 请求方法 curl -X POST http://ex…...

Redis 分片集群

一. 前言 前面文章介绍了主从集群和哨兵模式。其中主从集群可以通过读写分离的方式解决高并发场景下的读问题&#xff1b;而在主节点出现故障时&#xff0c;又可以通过哨兵模式的自动选举来实现高可用。 Redis 主从集群 && 哨兵模式 二. Redis 分片集群 2.1 分片集群…...

学习分享-Callable 和 Runnable 任务

前言 顺带回顾学习一下Callable 或 Runnable 任务 Callable 和 Runnable 任务 Callable 和 Runnable 是 Java 中用于定义任务的接口&#xff0c;它们主要用于并发编程&#xff0c;允许任务在独立的线程中运行。 Runnable 任务 Runnable 是一个函数式接口&#xff0c;只包含…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...