11.4k star! 部署清华开源的ChatGLM3,用私有化大模型无缝替换openai

news2024/11/15 11:18:14

转自AI技术实战

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的第三代开源模型,对话流畅、部署门槛低,测评显示其基础模型ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能,同时支持工具调用(Function Call)、代码执行(Code Interpreter)和Agent任务等复杂场景。

function call效果:

图片

code interpreter效果:

图片

github地址在文末,推理需要大约14G显存,本文基于ubuntu系统部署,windows系统类似。

1. 下载模型

下载模型需要用到git的LFS扩展,windows系统在https://git-lfs.com下载LFS,下面是ubuntu系统安装LFS的方式,其他linux系统可以参考文档https://github.com/git-lfs/git-lfs/blob/main/INSTALLING.md

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get install git-lfs
git lfs install

安装好LFS后就可以下载了,huggingface比较慢,可以在魔搭社区下载

https://modelscope.cn/models/ZhipuAI/chatglm3-6b/summary

执行以下命令,等待下载完成,总共24G。

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

2.安装部署

本文介绍两种部署方式,一种是使用上一篇介绍的25.7k star! 用langchain-chatchat部署私有化RAG知识库,另一种是使用ChatGLM官方项目部署。

2.1 在langchain-chatchat中使用

在上一篇文章中,我们使用docker部署了langchain-chatchat,但是默认模型是chatglm2-6b,现在只需要将模型修改为chatglm3-6b就可以了,将下载好的chatglm3-6b拷贝到docker容器的根目录下:

docker cp chatglm3-6b 你的容器名称:/

chatchat在容器的/langchain-chatchat目录,进入容器,再进入configs目录:

docker exec -it 你的容器名称 /bin/bashcd /langchain-chatchat/configs

编辑model_config.py文件,在llm_model中增加chatglm3-6b,如图所示:

图片

将LLM_MODELS中的chatglm2-6b修改为chatglm3-6b,如图所示:

图片

修改后重启容器,再打开,这里就变成chatglm3-6b了。

图片

2.2 使用ChatGLM官方项目部署

如果没有部署chatchat,也可以使用ChatGLM官方项目部署。

使用git下载ChatGLM源码

git clone git@github.com:THUDM/ChatGLM3.git

进入ChatGLM3源码目录,使用清华镜像安装依赖:

cd ChatGLM3-mainpip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

3. 运行

如果使用chatchat项目部署,直接在页面上选择chatglm3-6b就可以聊天了。下面是使用ChatGLM3项目部署的用法。

ChatGLM3项目提供了多个demo,进入相应demo目录下,修改模型路径运行就可以,下面以gradio网页demo举例说明,其他同理。

图片

进入basic_demo目录

cd basic_demo

修改web_demo_gradio.py,将MODEL_PATH的值改为第一步下载好的模型路径:

图片

运行

python3 web_demo_gradio.py

在浏览器打开http://localhost:7870就可以聊天了

4. 无缝替换openAI

ChatGLM提供了openai标准的API,通过这个API我们可以将任何接入openai的应用无缝切换为私有化部署的ChatGLM3。

cd openai_api_demo

修改api_server.py,将MODEL_PATH的值改为第一步下载好的模型路径:

图片

后台运行:

nohup python3 api_server.py &

这样就启动了openai接口的服务,可以把私有化部署的ChatGLM3当openai用了,比如之前文章中247.2k star! 超强大的私有化ChatGPT,支持图像识别/文生图/语音输入/文本朗读,个人电脑可运行!有接入openai的功能,现在我们可以把配置的openai的地址改为本地,从而将open-webui接入ChatGLM3:

图片

其他像各种基于openai的插件、应用等,只要可以配置url,都可以无缝切换为ChatGLM3。

github地址

https://github.com/THUDM/ChatGLM3

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

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

相关文章

ESP32CAM人工智能教学19

ESP32CAM人工智能教学19 Udp socket服务器 本课的工作模式,正好是第十四课工作模式的相反:第十四课中,ESP32Cam是客户端,运行在PC中的Python程序是服务器,就收到了摄像头数据后,调用openCV组件显示图像。而本课的ESP32Cam是服务器,Python是客户端,正好掉了个个,目的就…

蓝桥杯编程题讲解

给定一个正整数 N ,然后将 N 分解成 3 个正整数之和。 计算出共有多少种符合要求的分解方法。 要求: 分解的 3 3 3个正整数各不相同; 分解的 3 3 3个正整数中都不含数字3和7. 如:N为8,可分解为 ( 1 , 1 , 6 ) (1,1,6) (1,1,6)、 ( 1 , 2 ,…

位图与布隆过滤器 —— 海量数据处理

🌈 个人主页:Zfox_ 🔥 系列专栏:C从入门到精通 目录 🚀 位图 一: 🔥 位图概念 二: 🔥 位图的实现思路及代码实现三: 🔥 位图的应用四:…

云原生系列 - Nginx(基础篇)

前言 学习视频:尚硅谷Nginx教程(亿级流量nginx架构设计)本内容仅用于个人学习笔记,如有侵扰,联系删学习文档: 云原生系列 - Nginx(基础篇) 1、简介 1.1、背景介绍 Nginx(enginex)是一个高性能的HTTP和…

SpringBoot教程(二十四) | SpringBoot集成日志AOP切面

SpringBoot教程(二十四) | SpringBoot集成日志AOP切面 (一)AOP 概要1. 什么是 AOP ?2. 为什么要用 AOP?3. AOP一般用来干什么?4. AOP 的核心概念 (二)Spring AOP1. 简述2…

【芯智雲城】UDStore定制化存储模组和技术解决方案

一、方案详情: UDStore芯宇存储专注行业应用,根据不同应用场景,为客户提供包括车规级、工业级、工规宽温及高耐久型的存储模组产品和技术解决方案,可提供的产品和解决方案类型包括如下: 二、关键技术: 1&…

WLAN DNS proxy settings (Win 10)

WLAN DNS proxy settings (Win 10) 114.114.114.114 8.8.8.8

Ubuntu 22.04 安装 MySQL 8

Ubuntu 22.04 安装 MySQL 8 本文描述了Ubuntu安装MySQL 8的方法 CentOS7 的安装方法点击此处跳转 Windows 的安装方法点击此处跳转 Docker 的安装方法点击此处跳转 正文开始: 在一切开始之前,建议先切换到root #输入下方名,然后输入当…

【JavaSec】Java反射知识点补充

0x03反射-补充零散知识点 文章目录 0x03反射-补充零散知识点Runtime类setAccessible(true)三种命令执行的方法static变量赋值 前面学过 就不多说final变量赋值InDirect final间接赋值static final 向大佬致敬: https://drun1baby.top Runtime类 Runtime 类中有 …

JAVA itextpdf 段落自动分页指定固定行距打印

JAVA itextpdf 段落自动分页指定固定行距打印 前言:公司有个需求,打印的合同模板左上角要加上logo的图标。但是itext pdf 自动分页会按照默认的顶部高分页打印内容的,导致从第二页开始logo图标就会把合同的内容给覆盖掉了。然后尝试了挺多方法…

Electron31-ViteAdmin桌面端后台|vite5.x+electron31+element-plus管理系统Exe

原创自研Vue3Electron31ElementPlus桌面端轻量级后台管理Exe系统。 基于最新前端技术栈Vite5.x、Vue3、Electron31、ElementPlus、Vue-I18n、Echarts实战开发桌面端高颜值后台管理模板。内置4种布局模板,支持i18n国际化、动态权限路由,实现了表格、表单、…

基于Spring Boot的大学校园生活信息平台的设计与实现pf

TOC springboot523基于Spring Boot的大学校园生活信息平台的设计与实现pf 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关…

记录阿里云服务器购买和域名绑定解析的流程

购买阿里云域名和服务器 因为App备案的原因,需要购买域名和服务器,这篇文章介绍在阿里云上购买相关服务的流程。 注册阿里云的流程比较简单这里不再赘述了。请参考我之前写的 阿里云账号注册详细教程 购买顺序:一般是先购买阿里云服务器&…

【乐吾乐大屏可视化组态编辑器】事件交互-场景交互

场景交互 在线使用:https://v.le5le.com/ 乐吾乐大屏可视化可以实现大屏页面与内嵌2d/3d场景相互通信,底层原理是利用了iframe通过postMessage发送消息。 下面以2d场景为例,实现步骤如下: 1. 首先配置场景2(被嵌入…

Postman接口测试项目实战

第 1 章 什么是接口测试 1.1、为什么要进行接口测试 目前除了特别Low的公司外,开发都是前后端分离的,就是说前端有前端的工程师进行编码,后端有后端的工程师进行编码,前后端进行数据基本都是通过接口进行交互的。 1.2、接口测…

ant design 的 tree 如何作为角色中的权限选择之一

这种功能如何弄呢&#xff1f; 编辑的时候要让权限能选中哦。 <ProForm.Item name"permissions" label{intl.formatMessage({ id: permission_choose })}><Spin spinning{loading}><TreecheckableonExpand{onExpand}expandedKeys{expandedKeys}auto…

StringJoiner以及字符串小练习

概述 String Joiner跟String Builder一样&#xff0c;亦可以看成是一个容器&#xff0c;创建之后iu里面的内容是可变的 作用 提高字符串的操作效率&#xff0c;而且代码编写特别简洁&#xff0c;但是目前市场上很少有人用 JDK8 package stringdemo;import java.util.String…

iTOP-3A5000开发板流畅运行国产系统外加机箱就是一台电脑主机

性能强 采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片 采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA&a…

插入数据时,出现存在重复数据异常,捕获异常的信息

Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry xiaomi111-啊啊啊啊 for key edu_class.institution_account 执行插入操作的时候抛出这个异常 怎么捕获这个异常 可以判断 e instanceof 某个具体的异常 然后再进像下面操作&#xff0c;打印出来…

重生奇迹MU:‌重塑经典,‌再创辉煌

在浩瀚的游戏宇宙中&#xff0c;‌有一颗璀璨的星辰&#xff0c;‌它承载着无数玩家的青春回忆与梦想&#xff0c;‌那就是——重生奇迹MU‌。‌作为一款历经岁月洗礼的经典网游&#xff0c;重生奇迹MU不仅见证了游戏行业的蓬勃发展&#xff0c;‌更以其独特的魅力&#xff0c;…