GPU部署ChatGLM3

首先,检查一下自己的电脑有没有CUDA环境,没有的话,去安装一个。我的电脑是4060显卡,买回来就自带这些环境了。没有显卡的话,也不要紧,这个懒人安装包支持CPU运行,会自动识别没有GPU,就会以CPU运行,但是非常慢,毫无意义。

------------------------------------------------------懒人一键启动 start-----------------------------------------------------------------------------------------

1、下载一键安装包,解压后放到一个不带中文和特殊字符的路径

链接:https://pan.baidu.com/s/1ishHMyGpUkVjPVQk1GBGGA 
提取码:Zh6L 

 2、直接运行脚本,就能启动成功了

3、到这里,可以不用往下看了。


但是,作为一名java程序员,怎能不使用docker部署一个。下面,是docker方式部署。

 ---------------------------------------------------------懒人一键启动end---------------------------------------------------------------------------------------------------

--------------------------------------------------------docker容器启动 start---------------------------------------------------------------------------------------------------

拉取镜像

拉取一个Nvidia官方docker镜像,免去在容器中手动安装cuda、cudnn的烦恼。

docker pull nvcr.io/nvidia/pytorch:23.05-py3

运行容器

docker run --gpus all -itd --name chatglm3 -p 81:80 -p 6006:6006 -p 8888:8888 -p 7860:7860  -p 8501:8501 -p 8000:8000 --shm-size=32gb -v D:\temp\GLM3:/data nvcr.io/nvidia/pytorch:23.05-py3

如果没有GPU,就把 --gpus all 参数去掉,--shm-size=32gb是计算机的内存,我的是32G。

D:\temp\ChatGLM3 是挂载目录,就是刚刚下载解压的安装包目录,改成你自己的目录就行。

进入容器内部

docker exec -it chatglm3 /bin/bash

进入data目录

cd /data

安装依赖

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors.aliyun.com
pip install -r requirements.txt

 进入目录

cd openai_api_demo/

 下载依赖

pip install -r requirements.txt

返回上一层目录,进入ChatGLM3目录,执行启动脚本

cd ChatGLM3
nohup sh 02startApi.sh &

 02startApi.sh脚本内容为:

#!/bin/bashexport HF_ENDPOINT=https://hf-mirror.com
export HF_HOME=../huggingface
export MODEL_PATH=../../models/THUDM_chatglm3-6bcd openai_api_demopython openai_api.py

 如果运行报错,就用idea或者其他工具,转换一下格式,转成linux格式。(鼠标选中文件,就有这个选项了)

 不出意外的话,就启动成功了,使用postman等接口调用工具就可以调用接口了。

这是我的java调用代码

private static void chatglm3() {Map<String, Object> params = new HashMap<>();params.put("model", "chatglm3-6b");List<Map<String, Object>> messages = new ArrayList<>();Map<String, Object> prompt = new HashMap<>();prompt.put("role", "user");prompt.put("content", "给我讲一个笑话");messages.add(prompt);params.put("messages", messages);params.put("stream", false);params.put("max_tokens", 100);
//        params.put("temperature", 0.8);
//        params.put("top_p", 0.8);String url = "http://127.0.0.1:8000/v1/chat/completions";String result = post(url, JSONUtil.toJsonStr(params), new HashMap<>());System.out.println(result);
}

---------------------------------------------------------------docker 容器启动end------------------------------------------------------------------------

接下来,记录一下,将容器导出成镜像,并且把模型文件和代码文件一起打包到镜像中,方便以后在别的服务器上一键部署。

导出镜像命令:

docker commit [CONTAINER_ID_OR_NAME] [REPOSITORY_NAME]:[TAG]

  • [CONTAINER_ID_OR_NAME]是您的容器ID或名称。

  • [REPOSITORY_NAME]是您想要给新镜像起的名字。

  • [TAG]是镜像的标签,通常用于区分同一个镜像的不同版本,默认为latest

最终命令是:

docker commit chatglm3 chatglm3-cwp:v1.0.1

在懒人安装包解压目录下创建一个Dockerfile文件,文件内容为:

FROM chatglm3-cwp:v1.0.1MAINTAINER cwpCOPY ChatGLM3 /data
COPY models /dataENV TZ=Asia/ShanghaiEXPOSE 81
EXPOSE 8000
EXPOSE 7860
EXPOSE 8501
EXPOSE 8888
EXPOSE 6006

构建镜像

docker build -t chatglm3-gpu:1.0 .

 将镜像推送到自己的阿里云镜像仓库

阿里云镜像仓库访问地址 https://cr.console.aliyun.com/cn-hangzhou/instances

可以新建一个镜像仓库 

 

 跟着操作指南一步步做,最后推送到镜像仓库。

 以后就可以拉取自己的阿里云镜像,运行容器,一键启动ChatGLM3。参照下一篇文章,轻轻松松搭建自己的GPT了。

docker一键部署GPU版ChatGLM3-CSDN博客

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

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

相关文章

启明智显M4核心板驱动17寸屏 为您打造无与伦比的视觉盛宴

近日&#xff0c;启明智显推出M4核心板驱动17寸屏&#xff0c;8 Link LVDS接口下1280*1024分辨率为用户展现了超强的视觉体验。 M4核心板采用纯国产架构&#xff0c;内置了16位DDR内存&#xff0c;为设备提供强大的数据处理能力和高效的运行速度。无论是处理复杂的任务还是进…

【简单讲解下C++max函数的使用】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

Java | Leetcode Java题解之第13题罗马数字转整数

题目&#xff1a; 题解&#xff1a; class Solution {Map<Character, Integer> symbolValues new HashMap<Character, Integer>() {{put(I, 1);put(V, 5);put(X, 10);put(L, 50);put(C, 100);put(D, 500);put(M, 1000);}};public int romanToInt(String s) {int …

考研数学|刷题用汤家凤《1800》还是张宇《1000》?看完这篇你就懂了

考研数学的复习是一个系统的过程&#xff0c;不同的习题集有各自的特点和适用场景。汤家凤的1800题和张宇的1000题都是非常受欢迎的考研数学复习资料&#xff0c;它们各有侧重点和优势。 汤家凤的1800题以其全面性和基础性著称&#xff0c;题目覆盖了考研数学的各个知识点&…

缓存穿透问题

缓存穿透 &#xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库。 常见的两种解决方案&#xff1a; 1.缓存空对象 优点&#xff1a;实现简单&#xff0c;维护方便 缺点&#xff1a;占用…

【40分钟速成智能风控4】传统风险管理体系

目录 人工审核 纸质材料评估 电话回访 线下走访尽调 专家模型 业务规则库 专家调查权重法 熵权法 随着大数据和机器学习技术的发展与成熟&#xff0c;智能风控已经逐步取代传统风控&#xff0c;成为国内互联网金融机构主流的风险管理模式。一方面&#xff0c;传统风控是…

U盘中病毒了会影响电脑吗 U盘中病毒了怎么恢复数据 easyrecovery数据恢复软件免费版 easyrecovery绿色版破解版激活密钥无需注册

EasyRecovery是世界著名数据恢复公司 Ontrack 的技术杰作&#xff0c;EasyRecovery破解版是一个威力非常强大的硬盘数据恢复工具&#xff0c;能够帮你恢复丢失的数据以及重建文件系统。您只需要按软件提示一步一步操作&#xff0c;就能恢复出你电脑上的文档、表格、图片、音频、…

LeetCode 热题 100 | 多维动态规划(一)

目录 1 多维动态规划 2 62. 不同路径 3 64. 最小路径和 菜鸟做题&#xff0c;语言是 C&#xff08;细品动态规划 ing&#xff09; 1 多维动态规划 目前的感觉&#xff1a;抽象为二维数组。 2 62. 不同路径 题眼&#xff1a;“机器人每次只能向下或者向右移动一步”。…

什么是sso?

SSO&#xff08;Single Sign-On&#xff09;&#xff0c;即单点登录&#xff0c;是一种安全协议&#xff0c;它允许用户在多个应用程序之间使用同一组登录凭据进行身份验证。这意味着用户只需要登录一次&#xff0c;就可以访问多个需要身份验证的应用程序。 SSO的工作原理如下…

亚信安慧AntDB数据库分享“UltraSync特性介绍”技术演讲,助力客户降本增效

3月30日&#xff0c;由中国开源软件联盟组织的PostgreSQL技术峰会活动在南京举办&#xff0c;各数据库厂商研发带头人、企业资深DBA和众多技术爱好者齐聚一堂。湖南亚信安慧科技有限公司&#xff08;简称&#xff1a;亚信安慧&#xff09; AntDB-T产品线研发负责人梁博受邀参会…

「每日跟读」英语常用句型公式 第6篇

「每日跟读」英语常用句型公式 第6篇 1. As ___ as possible 越 ___ 越好 As soon as possible (ASAP)(越快越好) As happy as possible (越快乐越好) As prepared as possible (越有准备越好) As much/many as possible (越多越好 *不可数/可数) As early as possible …

探秘KMP算法:解密字符串匹配的黑科技

KMP算法 在正式进入KMP算法之前&#xff0c;不得不先引经据典一番&#xff0c;因为直接去理解KMP&#xff0c;你可能会很痛苦&#xff08;别问&#xff0c;问就是我也痛苦过&#xff09;。所以做好前面的预热工作非常非常重要&#xff0c;为了搞明白KMP&#xff0c;在没见到KMP…

快速理解vim编辑器和软硬连接

刚开始学习linux基础命令时最难搞懂的应该就是vi和ln命令了&#x1f62d;&#xff0c;写这篇文章主要想和大家分享一下我对这两个命令的理解&#xff0c;希望能更快的帮助到那些还没搞懂的同学&#x1f61c; 首先我们要知道vim编辑器主要分为三个工作模式&#xff0c;分别是图上…

基于单片机钢琴电子节拍器系统设计

**单片机设计介绍&#xff0c;基于单片机钢琴电子节拍器系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机钢琴电子节拍器系统设计是一个综合性的项目&#xff0c;它结合了单片机编程、音频处理、用户界面设计等多个领域的…

01 华为华三模拟器解决兼容问题

01 华为华三模拟器解决兼容问题 AI思路 要让华为和华三的模拟器兼容&#xff0c;您可以尝试以下方法&#xff1a; 更新模拟器版本&#xff1a;确保您使用的华为和华三模拟器都是最新版本。在华为官方网站或华三官方网站上下载最新的模拟器版本。 检查系统要求&#xff1a;确保…

ctfshow web入门 命令运行 web39---web52

ctfshow web入门 命令执行 昨天看了一下我的博客真的很恼火&#xff0c;不好看&#xff0c;还是用md来写吧 web39 查看源代码 看到include了&#xff0c;还是包含(其实不是) 源代码意思是当c不含flag的时候把c当php文件运行 php伪协议绕过php文件执行 data://text/plain 绕…

Jmeter 性能压测-TPS与QPS

1、TPS和QPS的区别 TPS&#xff1a;意思是每秒事务数&#xff0c;具体事务的定义都是人为的&#xff0c;可以一个接口、多个接口、一个业务流程等等。 一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程&#xff0c;以此来计算使用的时间和完成的事务个数。…

S32K324 数据初始化Rom到Ram Copy的方式

文章目录 前言基础知识ld文件中的段定义ld文件中的符号定义 ld定义copy地址范围启动文件中的定义Copy的使用总结 前言 之前一直不理解在ld文件中加__xxx_ram_start,__xxx_rom_start,__xxx_rom_end这些的作用&#xff0c;也不清楚原理。前几天遇到一个内存copy的问题&#xff0…

HarmonyOS时区和语言设置-使用相关api实现系统语言和地区设置

介绍 本示例展示了i18n&#xff0c;intl&#xff0c;resourceManager在eTS中的使用&#xff0c;使用相关api实现系统语言和地区设置、时间和时区设置&#xff0c;展示了区域格式化示例。 效果预览 使用说明 1.启动应用&#xff0c;进入应用&#xff0c;首页分为三个按钮&…

【JVM】GC导致的性能问题排查与解决方案,日志、堆分析工具介绍

一、必要性 重要应用程序在使用过程中&#xff0c;忽然无法响应用户请求&#xff0c;排查发现网络联通无问题&#xff0c;gateway能够正常接收分发请求&#xff0c;应用进程正常&#xff0c;正常向注册中心发送请求&#xff0c;但是接收http请求全部返回报错。 添加gc后发现内…