AI系统性学习06—开源中文语言大模型

1、ChatGLM

ChatGLM-6B的github地址:https://github.com/THUDM/ChatGLM-6B

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

为了方便下游开发者针对自己的应用场景定制模型,我们同时实现了基于 P-Tuning v2的高效参数微调方法 (使用指南) ,INT4 量化级别下最低只需 7GB 显存即可启动微调。

2、硬件部署

2.1 硬件需求

量化等级最低GPU显存(推理)最低GPU显存(高效参数微调)
FP16(无量化)13GB14GB
INT88GB9GB
INT46GB7GB

2.2 环境安装

推荐在AutoDL上运行。

  • 创建AutoDL容器,下载好后使用ssh工具连接上去
    在这里插入图片描述
  • 下载模型
    因为huggingface被墙,所以我的建议是先将模型下载到本地,然后再在无卡模式下上传到服务器上,操作可以看这篇博文:huggingface下载模型
  • 安装环境
conda create -n chatglm python=3.8
conda activate chatglm
pip install protobuf transformers==4.30.2 cpm_kernels torch>=2.0 gradio mdtex2html sentencepiece accelerate
  • 从pycharm上连接到服务器上
    使用下面的代码
    注意将其中的模型地址换成自己本机上的地址
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("/root/autodl-tmp/huggingface/hub/models--THUDM--chatglm-6b/snapshots/8b7d33596d18c5e83e2da052d05ca4db02e60620", trust_remote_code=True)
model = AutoModel.from_pretrained("/root/autodl-tmp/huggingface/hub/models--THUDM--chatglm-6b/snapshots/8b7d33596d18c5e83e2da052d05ca4db02e60620", 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)

成功如下:
在这里插入图片描述

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

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

相关文章

透视未来工厂:山海鲸可视化打造数字孪生新篇章

在信息化浪潮的推动下,数字孪生工厂项目正成为工业制造领域的新宠。作为一名山海鲸可视化的资深用户,我深感其强大的数据可视化能力和数字孪生技术在工厂管理中的应用价值,同时我们公司之前也和山海鲸可视化合作制作了一个智慧工厂项目&#…

OceanBase生产环境安装部署的最优实践

关于生产环境,为了尽量确保性能和稳定性,我们比较建议采用标准化的配置进行部署,例如接下来会提到的服务初始化、日志管理和数据分盘等关键步骤。而在非生产环境中,如果条件满足,同样建议遵循规范部署的原则。 前期准备…

项目实战-开发工具入门/基本框架搭建/项目初始化/引入组件库

上周更新完了之前vue3的shopping项目,接下来,将会开启一个新的项目,效果是类似于移动端的一个伙伴匹配项目,今天这篇文章从需求分析到架构设计再到项目初始化,基本框架搭建几个部分来为大家详细介绍。 从这个项目开始…

YOLOV5 改进:替换backbone为Swin Transformer

1、前言 本文会将YOLOV5 backbone更换成Swin Transformer 具体为什么这样实现参考上文:YOLOV5 改进:替换backbone(MobileNet为例)-CSDN博客 这里只贴加入的代码 训练结果如下: 2、common文件更改 在common文件中加入下面代码: 这里是swin transformer的实现,参考:…

VMware部署银河麒麟遇到的问题记录

1. 解决VMware Workstation安装VMware Tools显示灰色的办法 1.关闭虚拟机; 2.在虚拟机设置分别设置CD/DVD、CD/DVD2和软盘为自动检测三个步骤; 3.再重启虚拟机,灰色字即点亮。 2.Linux安装vmTool

Pytest接口自动化测试框架搭建模板

auto_api_test 开发环境: Pycharm 开发语言&版本: python3.7.8 测试框架: Pytest、测试报告: Allure 项目源码Git地址 项目目录结构 api – 模仿PO模式, 抽象出页面类, 页面类内包含页面所包含所有接口, 并封装成方法可供其他模块直接调用config – 配置文件目录data…

打造高效自动化渗透测试系统:关键步骤与实践

随着当前网络安全威胁的不断扩展与升级,开展渗透测试工作已经成为广大企业组织主动识别安全漏洞与潜在风险的关键过程。然而,传统的人工渗透测试模式对测试人员的专业能力和经验水平有很高的要求,企业需要投入较大的时间和资源才能完成。在此…

品牌纷纷推出“穷鬼套餐”的原因竟然有这些?

被大众戏称为“千元店”的山姆也开穷鬼套餐了??该套餐包括1.59公斤售价21.9元的鸡蛋、7个装售价23.9元的原味贝果以及16片装售价59.8元的瑞士卷。 穷鬼套餐最开始是麦当劳和肯德基的推出的概念,由麦当劳推出的11随心配、肯德基超值午餐等。为…

python(django)之产品后台管理功能实现

1、添加新项目 在命令行输入以下代码 python manage.py startapp prroduct 2、添加路径和代码结构 在新项目目录下admin.py中加入以代码 from .models import Product class ProductAdmin(admin.ModelAdmin):list_display [product_name, product_desc,producter,created_…

CC-DefineTag:一个简单好用的标签组件,支持自动换行、自适应高度,且可设置行数、标签文字颜色等属性

CC-DefineTag:一个简单好用的标签组件,支持自动换行、自适应高度,且可设置行数、标签文字颜色等属性 摘要: 在前端开发中,标签组件是常见的UI组件之一,用于显示一组相关的标签。然而,传统的标签…

Postman Runner 使用指南

什么是 Postman Runner? 而 Postman Runner 是 Postman 中的一个模块,它提供了一种批量运行 API 请求的方式,这些请求可以是已经保存的历史请求、集合中的请求或者手动添加的请求。在批量运行 API 请求的过程中,Postman Runner 可…

4.1 用源文件写汇编代码

汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行伪指令没有对应的机器指令,最终不被CPU所执行伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作 1.2…

arm-linux实现onvif server+WS-UsernameToken令牌验证

目录 一、环境搭建 1、安装openssl 2、安装bison 3、安装flex 二、gsoap下载 三、编译x86版本gsoap 四、编译arm-linux版本gsoap 1、交叉编译openssl 1.1、下载openssl 1.2、交叉编译 2、交叉编译zlib 2.1、下载zlib 2.2、交叉编译 3、交叉编译gsoap 3.1、编译过…

Day75:WEB攻防-验证码安全篇接口滥用识别插件复用绕过宏命令填入滑块类

目录 图片验证码-识别插件-登录爆破&接口枚举 登录爆破 接口枚举 图片验证码-重复使用-某APP短信接口滥用 滑块验证码-宏命令-某Token&Sign&滑块案例 知识点: 1、验证码简单机制-验证码过于简单可爆破 2、验证码重复使用-验证码验证机制可绕过 3、…

TypeScript在学习(0)

1.什么是TypeScript? 答:TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 个人浅见,我一直把ts简单理解成,其实就是javascript上多了的类型限制; 2.优势和缺点 答…

文件编码探测与原理、Java实现与构造让探测器失效文件

文章目录 构造让探测器失效的文件文件编码探测原理探测器Java实现版本测试 构造让探测器失效的文件 我们用vscode打开一个文本文件的时候,默认会使用UTF-8编码,所以当文件不是UTF-8编码的时候就会乱码。 但是,好像notepad–这类编辑器就似乎…

评估单细胞数据聚类指标 AvgBIO

从scGPT的报告中看到的: 从ChatGPT到scGPT 生成式AI助力单细胞生物学_哔哩哔哩_bilibili

深入理解Mysql索引底层原理(看这一篇文章就够了)

目录 前言 1、Mysql 索引底层数据结构选型 1.1 哈希表(Hash) 1.2 二叉查找树(BST) 1.3 AVL 树和红黑树 1.4 B 树 1.5 B树 2、Innodb 引擎和 Myisam 引擎的实现 2.1 MyISAM 引擎的底层实现(非聚集索引方式) 2.2 Innodb 引…

Kubernetes的Namespace使用

在 Kubernetes 中,命名空间提供了一种用于隔离单个集群中的资源组的机制。资源名称在命名空间内必须是唯一的,但不能跨命名空间。基于命名空间的作用域仅适用于命名空间物体 (例如部署、服务等)而不是集群范围的对象(例…

ini配置文件操作方法

一、ini文件介绍 ini配置文件常用于存储项目全局变量 如:接口地址、输出文件路径、项目地址、用户名、密码等 二、ini文件编写格式 [节点] 选项选项值 ;表示注释 注意:节点名不可以重复【所以写入新节点前要判断是否存在】 三、.ini 文件读取 1…