ChatGLM-6B-部署与使用


Blog’s 主页: 白乐天_ξ( ✿>◡❛)
🌈 个人Motto:他强任他强,清风拂山冈!
💫 欢迎来到我的学习笔记!

什么是ChatGLM-6B

一、简介

ChatGLM-6B 是由清华大学知识工程实验室(KEG)与智谱 AI 联合打造的一个开源的、支持中英双语的对话语言模型。

二、基本参数

  • 参数量:62 亿参数。

三、技术架构与特点

  • 架构基础:基于 General Language Model(GLM)架构,参考了 OpenAI 的 GPT 和 Google’s BERT 结构,并融合了 GLM 的技术特点。
  • 语言能力:具备良好的中英双语对话生成能力,能够理解和处理中英文混合输入。

四、应用场景

  • 智能客服:为企业提供高效的客户服务解决方案,回答用户的问题,解决用户的疑虑。
  • 智能助手:作为个人智能助手,帮助用户完成各种任务,如日程安排、信息查询、文本创作等。
  • 教育培训:辅助教学,回答学生的问题,提供学习建议和指导。
  • 内容创作:生成文章、故事、诗歌等各种文本内容。

ChatGLM-6B 模型的使用方法

ChatGLM - 6B 模型的使用方法主要有以下几种:
  1. 本地部署运行
  • 环境准备:
    • 安装 Python(建议使用 Python 3.8 及以上版本)。
    • 安装必要的库和依赖项,使用pip install -r requirements.txt,其中transformers库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可。
  • 模型加载:
  from transformers import AutoTokenizer, AutoModeltokenizer = AutoTokenizer.from_pretrained("thudm/chatglm - 6b", trust_remote_code=True)model = AutoModel.from_pretrained("thudm/chatglm - 6b", trust_remote_code=True).half().cuda()model = model.eval()
  • 对话交互
  response, history = model.chat(tokenizer, "白乐天", history=())print(response)response, history = model.chat(tokenizer, "你好,白乐天!", history=history)print(response)
  1. 使用网页版 Demo
    1. 下载模型仓库:git clone https://github.com/thudm/chatglm - 6b
    2. 进入仓库目录:cd chatglm - 6b
    3. 安装gradio库:pip install gradio
    4. 运行网页版程序:python web_demo.py,程序会运行一个 Web 服务器,并输出地址,在浏览器中打开输出的地址即可使用。

3.通过 API 调用
安装额外的依赖:pip install fastapi uvicorn
运行仓库中的api.py文件:python api.py,默认部署在本地的 8000 端口。

DAMODEL(丹摩智算)平台-ChatGLM-6B 服务端部署

1.什么是DAMODEL(丹摩智算)?

DAMODEL(丹摩智算)是专为 AI 打造的智算云,致力于提供丰富的算力资源与基础设施助力 AI 应用的开发、训练、部署。

2.实例创建

1. 首先先进入丹摩平台,按照图示进行操作:

  1. 进入创建页面后,首先在实例配置中选择付费类型为按量付费,其次选择单卡启动,然后选择需求的 GPU 型号,本次实验可以选择选择:按量付费GPU 数量 1NVIDIA-GeForc-RTX-4090,该配置为 60GB 内存,24GB 的显存。

方法和前一篇文章【Llama3.1的部署与使用】一样,看着操作就行了!

  1. 配置数据硬盘的大小选择默认大小 50GB,选择 PyTorch1.13.1 的框架启动
  2. 点击创建密钥对,输入自定义的名称。创建好密钥对后,选择刚刚创建好的密钥对,并点击立即创建,等待一段时间后即可启动成功!

3.模型准备

  1. 启动环境后,打开终端,用 git 克隆ChatGLM-6B项目
cd /home/aistudio/work/
git clone https://github.com/THUDM/ChatGLM-6B.git
# 如果遇见github因为网络问题导致失败,可选择gitcode站点进行下载
# git clone https://gitcode.com/applib/ChatGLM-6B.git
  1. 成功克隆项目后,会显示如下文件夹:

  1. cd进入该文件夹,使用pip安装项目依赖:
pip install -r requirements.txt
  1. 等待一会儿看见显示如 Successfully installed,就表示安装完成!

  1. 安装完依赖,我们现在就开始引入模型文件。
    1. 首先点击文件存储,点击上传文件。

  1. 下载 Hugging Face 上的 ChatGLM-6B 预训练模型,也可以进入魔塔社区选择Chatglm3-6B里的所有文件进行下载。

  1. 将下载下来的模型文件及配置进行上传并解压,上传时尽量保持该界面首页显示,等待上传成功后再进行其他操作。

4.模型启动

上传好预训练模型及解压后,我们就可以启动Python脚本进行运行了。

  1. 首先我们使用cli_demo.py命令行进行交互;
  2. 然后我们再使用web_ demo.py命令行,使用本机服务器进行网页交互。
  3. 确定预训练模型的本地路径。假设你的模型解压后存放在/home/user/models/chatglm-6b路径下。
  4. 打开cli_demo.py文件:
    • 找到类似以下的代码行:
tokenizer = AutoTokenizer.from_pretrained("thudm/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("thudm/chatglm-6b", trust_remote_code=True).half().cuda()
  • 将其修改为:
tokenizer = AutoTokenizer.from_pretrained("/home/user/models/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("/home/user/models/chatglm-6b", trust_remote_code=True).half().cuda()
  • 注意将路径替换为你实际的模型存放路径。
  1. 打开web_demo.py文件:
    • 同样找到类似的代码行并进行修改,修改方式与cli_demo.py文件一致。

修改完成后,保存文件。现在你就可以使用本地模型启动了,根据你的需求运行相应的脚本文件即可进行命令行交互或网页交互。

  1. 如果在终端输入python cli_demo.py成功启动模型后,你将进入一个交互界面,可以按照以下方式进行操作:
    1. 对话交互: 当你输入文本时,模型会根据你的输入生成相应的回复。例如,你输入 “今天天气怎么样?”,模型可能会给出类似 “很抱歉,不清楚你所在地区的具体天气情况呢。你可以通过天气预报网站或应用查询。” 这样的回答。
    2. 清空对话历史和清除屏幕: 如果输入 “clear”,程序会清空之前的对话历史,并且清除屏幕,为新的对话做好准备。
    3. 退出程序: 当你输入 “stop” 时,程序会退出,结束当前的交互会话。

这种交互方式为用户提供了灵活的操作选择,可以根据自己的需求随时调整对话状态或结束程序。同时,通过不断输入不同的问题和指令,可以更好地了解模型的能力和特点。

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

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

相关文章

Python:百度贴吧实现自动化签到

早知道,还是python。 Github项目仓库在这。 相关API 签到贴吧列表 签到分为两个接口,PC端签到一次经验2,而移动端签到则是一次经验6。该用哪个接口已经很明显了。不过这里还是列出PC端的签到API。 # PC端签到接口 # sign_url "https:…

时序预测 | Python实现KAN+LSTM时间序列预测

时序预测 | Python实现KAN+LSTM时间序列预测 目录 时序预测 | Python实现KAN+LSTM时间序列预测预测效果基本介绍程序设计预测效果 基本介绍 时序预测 | KAN+LSTM时间序列预测(Python) KAN作为这两年最新提出的机制,目前很少人用,很适合作为时间序列预测的创新点,可以结合…

python全栈开发《37.列表(元组)的count函数》

元组的count函数的功能和用法与列表的count函数完全一致。 1.count的功能 返回当前列表中某个成员的个数。 2.count的用法 fruits [苹果,西瓜,水蜜桃,西瓜,雪梨] count fruits.count(西瓜) print(count) 运行结果: 2 注意:列表的内置函数count拿到需要…

【读书笔记-《30天自制操作系统》-24】Day25

本篇内容也比较简单。首先开发了蜂鸣器的API,然后增加更多的颜色显示。为了同时运行两个应用程序,又增加了一个命令行窗口。 1. 蜂鸣器 首先是增加蜂鸣器的功能。 蜂鸣器与定时器一样,是由PIT控制的。 蜂鸣器发声的控制: 音高…

Linux:Bash中的文件描述符详解

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Linux中的所有进程,都拥有自己的文件描述符(File Descriptor, FD),它是操作系统在管理进程和文件时的一种抽象概念。每个文件描述符由一个非负整…

开关电源自动测试系统的测试设备与特色

突破传统测试系统的操作维护困难等限制,NSAT-8000开关电源自动测试系统以其开放式架构和0代码模式,带来了不一样的开关电源自动化测试体验。 开关电源自动测试系统的测试设备 开关电源自动测试系统核心硬件包括:可编程交直流电源、电子负载、…

使用 HFD 加快 Hugging Face 模型和数据集的下载,解决443报错

Hugging Face 提供了丰富的预训练模型和数据集,而且使用 Hugging Face 提供的 from_pretrained() 方法可以轻松加载它们,但是,模型和数据集文件通常体积庞大,用默认方法下载起来非常花时间。 本文将指导你如何使用 HFD&#xff08…

小新 Pro13 + windows 11 家庭中文版(网络适配器及地址配置)

网络适配器位置及地址配置 网络适配器简介 计算机系统:网络适配器详解,全面剖析 网络适配器位置 不同于win11之前的版本,win11的网络适配器的位置如下: 1、右键 右下角的网络图标-》网络和internet设置-》高级网络设置-》可以…

冒泡排序bubble sort

冒泡排序(bubble sort)通过连续地比较与交换相邻元素实现排序。这个过程就像气泡从底部升到顶部一样,因此得名冒泡排序。 算法流程 def bubble_sort(nums: list[int]):"""冒泡排序"""n len(nums)# 外循环&…

46.哀家要长脑子了!

1.435. 无重叠区间 - 力扣(LeetCode) 方法一:动态规划 实际上本质就是找最长的无重叠子序列,那么我们可以遍历这个区间的集合,只要前一个区间的右端点是小于等于后一个区间的左端点,那么这两个区间就不是重…

如何将Excel表格嵌入Web网页在线预览、编辑并保存到自己服务器上?

猿大师办公助手作为一款专业级的网页编辑Office方案,不仅可以把微软Office、金山WPS和永中Office的Word文档内嵌到浏览器网页中实现在线预览、编辑保存等操作,还可以把微软Office、金山WPS和永中Office的Excel表格实现网页中在线预览、编辑并保存到服务器…

虚拟机:4、配置12.5的cuda和gromacs

前言:本机环境是win11,通过wsl2安装了ubuntu实例并已实现gpu直通,现在需要下载12.5的cuda 一、查看是否有gpu和合适的cuda版本 在ubuntu实例中输入 nvidia-smi输出如下: 说明该实例上存在gpu驱动,且适合的CUDA版本…

硬件测试(五):信号补偿

一、简介 高速信号的趋肤效应以及传输线的介质损耗,使信号在传输过程中衰减很大,导致最后得到的信号失真。为了在接收终端能得到比较好的波形,就需要对受损的信号进行补偿,常用的补偿技术有:预加重、去加重和均衡三种信…

思科安全网络解决方案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

告别xx搜索,我用这个AI工具...

点击“终码一生”,关注,置顶公众号 每日技术干货,第一时间送达! 前段时间,逛 GitHub 的时候发现了一个评估报告,对AI搜索引擎进行了详细的准确性测试,覆盖6种主流语言和5类场景。 其中&#xf…

苍穹外卖上半部分总结

苍穹外卖一个很经典的项目 虽然已经烂大街,但项目依旧是很优秀,并且代码十分规范,很值得学习。 前置介绍 niginx反向代理 前端和后端的url请求不一致的原因:前端是请求到nginx服务器,再由nginx服务器转发到后端 ngi…

箭头与数字识别系统源码分享

箭头与数字识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

《CUDA编程》1.GPU硬件与CUDA环境搭建

1 GPU 介绍 GPU(graphics processing unit),意为图形处理器,也被称为显卡(graphics card)。GPU的浮点数运算峰值就比同时期的CPU高一个量级;GPU的内存带宽峰值也比同时期的CPU高一个量级。 CP…

数据结构 - 排序算法

一.直接插入排序 /*** description: 直接插入排序算法* param - a : 要进行排序的数组的指针* return : 无 */ void Seqsort(int *a) {/* i 用于表示无序部分的第一个元素的下标 , j 用于表示有序部分的最后一个元素的下标 &…

如何登录通义灵码,快速开启AI编码之旅?

通义灵码个人版开发者可以使用阿里云账号登录通义灵码 IDE 端插件,本文介绍个人版开发者登录 IDE 端插件的操作指南。 登录通义灵码 步骤 1:准备工作 已成功注册阿里云账号,具体操作可参考:账号注册(PC端)…