ChatGLM-6B (介绍以及本地部署)

中文ChatGPT平替——ChatGLM-6B

  • ChatGLM-6B
    • 简介
    • 官方实例
    • 本地部署
      • 1.下载代码
      • 2.通过conda创建虚拟环境
      • 3.修改代码
      • 4.模型量化
      • 5.详细代码
    • 调用示例

ChatGLM-6B

简介

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

ChatGLM 参考了 ChatGPT 的设计思路,在千亿基座模型 GLM-130B1 中注入了代码预训练,通过有监督微调(Supervised Fine-Tuning)等技术实现人类意图对齐。ChatGLM 当前版本模型的能力提升主要来源于独特的千亿基座模型 GLM-130B。它是不同于 BERT、GPT-3 以及 T5 的架构,是一个包含多目标函数的自回归预训练模型。2022年8月,我们向研究界和工业界开放了拥有1300亿参数的中英双语稠密模型 GLM-130B1,该模型有一些独特的优势:

  • 双语: 同时支持中文和英文。
  • 高精度(英文): 在公开的英文自然语言榜单 LAMBADA、MMLU 和 Big-bench-lite 上优于 GPT-3 175B(API: davinci,基座模型)、OPT-175B 和 BLOOM-176B。
  • 高精度(中文): 在7个零样本 CLUE 数据集和5个零样本 FewCLUE 数据集上明显优于 ERNIE TITAN 3.0 260B 和 YUAN 1.0-245B。
  • 快速推理: 首个实现 INT4 量化的千亿模型,支持用一台 4 卡 3090 或 8 卡 2080Ti 服务器进行快速且基本无损推理。
  • 可复现性: 所有结果(超过 30 个任务)均可通过我们的开源代码和模型参数复现。
  • 跨平台: 支持在国产的海光 DCU、华为昇腾 910 和申威处理器及美国的英伟达芯片上进行训练与推理。

在这里插入图片描述
在这里插入图片描述

官方实例

>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
>>> print(response)
晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。
2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。
3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。
4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。
5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。
6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。

本地部署

1.下载代码

git clone https://github.com/THUDM/ChatGLM-6B.git

2.通过conda创建虚拟环境

# 新建chatglm环境
conda create -n chatglm python=3.8
# 激活chatglm环境
conda activate chatglm
# 安装PyTorch环境(根据自己的cuda版本选择合适的torch版本)
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
# 安装gradio用于启动图形化web界面
pip install gradio
# 安装运行依赖
pip install -r requirement.txt

3.修改代码

  • 在web_demo.py的最后一句demo.queue().launch(share=True),加两个server_name=“0.0.0.0”, server_port=1234参数。
demo.queue().launch(share=True,server_name="0.0.0.0",server_port=9234)

4.模型量化

默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:

  • GPU
# FP16精度加载,需要13G显存
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
# int8精度加载,需要10G显存
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(8).cuda()
# int4精度加载,需要6G显存
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(4).cuda()
  • CPU
#32G内存
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).float()
#16G内存
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).bfloat16()

5.详细代码

from transformers import AutoModel, AutoTokenizer
import gradio as grtokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
# model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
# 按需修改,目前只支持 4/8 bit 量化
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(4).cuda()
model = model.eval()MAX_TURNS = 20
MAX_BOXES = MAX_TURNS * 2def predict(input, history=[]):response, history = model.chat(tokenizer, input, history)updates = []for query, response in history:updates.append(gr.update(visible=True, value=query))updates.append(gr.update(visible=True, value=response))if len(updates) < MAX_BOXES:updates = updates + [gr.Textbox.update(visible=False)] * (MAX_BOXES - len(updates))return [history] + updateswith gr.Blocks() as demo:state = gr.State([])text_boxes = []for i in range(MAX_BOXES):if i % 2 == 0:label = "提问:"else:label = "回复:"text_boxes.append(gr.Textbox(visible=False, label=label))with gr.Row():with gr.Column(scale=4):txt = gr.Textbox(show_label=False, placeholder="Enter text and press enter").style(container=False)with gr.Column(scale=1):button = gr.Button("Generate")button.click(predict, [txt, state], [state] + text_boxes)
demo.queue().launch(share=True,server_name="0.0.0.0",server_port=9234)

调用示例

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Bagging 和 随机森林(Random Forest,RF)

前面已经了解到集成学习有两个流派&#xff0c;一个是 Boosting 派系&#xff0c;它的特点是各个弱学习器之间有依赖关系。另一种是 Bagging 流派&#xff0c;它的特点是各个弱学习器之间没有依赖关系&#xff0c;可以并行拟合。而随机森林又是对 Bagging 的一个改进算法&#…

随机森林Random Forest

引言 在机器学习中,随机森林由许多的决策树组成,因为这些决策树的形成采用了随机的方法,因此也叫做随机决策树。随机森林中的树之间是没有关联的。当测试数据进入随机森林时,其实就是让每一颗决策树进行分类,最后取所有决策树中分类结果最多的那类为最终的结果。因此随机…

随机森林(random forest)

1.随机森林基本思想 Bagging决策树作为base model 每个决策树权重为1 Boostrap有放回的采样 2.决策树采用投票的方式。 假如训练了5颗树&#xff0c;其中4颗树是True,1颗树是False 那么结果就是True 3.单颗决策树建立的过程 &#xff08;1&#xff09;随即在N个样本中选择…

随机森林详解

随机森林&#xff08;Random Forest&#xff09;是属于集成学习的一种组合分类算法&#xff0c;集成学习的核心思想就是将若干个弱&#xff08;基&#xff09;分类器组合起来&#xff0c;得到一个分类性能显著优越的强分类器。如果各弱分类器之前没有强依赖关系、可并行生成&am…

Bagging与随机森林

下图是基于树的算法的发展历程 1、Bagging Bagging [Breiman, 1996a] 是并行式集成学习方法最著名的代表. 1.1、Bagging原理 bagging算法&#xff1a;bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样&#xff0c;我们就可以得到T个采样集&#xff…

随机森林-参数解说

sklearn–随机深林 1.集成算法概述 集成学习&#xff08;ensemble learning&#xff09;是时下非常流行的机器学习算法&#xff0c;它本身不是一个单独的机器学习算法&#xff0c;而是通过在数据上构建多个模型&#xff0c;集成所有模型的建模结果。基本上所有的机器学习领域都…

Random Forest随机森林算法

Random Forest是加州大学伯克利分校的Breiman Leo和Adele Cutler于2001年发表的论文中提到的新的机器学习算法&#xff0c;可以用来做分类&#xff0c;聚类&#xff0c;回归&#xff0c;这里只简单介绍该算法在分类上的应用。 Random Forest&#xff08;随机森林&#xff09;算…

【随机森林】random forests 简单介绍

Random Forest&#xff0c;顾名思义 Random 就是随机抽取&#xff1b; Forest 就是说这里不止一棵树&#xff0c;而由 一群决策树组成的一片森林 &#xff0c;连起来就是用随机抽取的方法训练出一群决策树来完成分类任务。RF用了两次随机抽取, 一次是对训练样本的随机抽取; 另一…

随机森林!

定义:在以决策树为基学习器构建Bagging集成的基础上&#xff0c;进一步在决策树节点分裂时引入随机属性扰动。 随机性体现(与传统决策树的差异):对基决策树的每个节点&#xff0c;先从该节点的属性集合中随机选择包含K(log2(d))个属性的子集&#xff0c;然后再从这个子集中选择…

随机森林 (Random Forests) 简单介绍与应用

1 集成方法(Ensemble methods) 1.1 什么是集成方法 简单来说&#xff0c;集成方法 就是组合多个模型&#xff0c;以获得更好效果。 1.2 两种集成方法 平均法(averaging methods)&#xff1a;也有人直接称之为“袋装法”&#xff0c;所有算法进行 相互独立 训练得到各自的模…

随机森林--

----------------------集成学习---------------------- 集成学习可以被分为三个主要研究领域&#xff1a; -----------------------------------------------------模型融合----------------------------------------------------- 模型融合在最初的时候被称为“分类器结合…

R随机森林实现

原文链接&#xff1a;来自公众号生信数据挖掘 目录 R实现随机森林随机森林R包估值过程袋外错误率&#xff08;oob error&#xff09;R randomForest函数实现安装程序包&#xff0c;查看样本数据结构建模与观察 R实现随机森林 该文只简单的讲解关于的R的随机森林具体实现步骤&a…

随机森林 – Random forest

随机森林 – Random forest 随机森林是一种由决策树构成的集成算法&#xff0c;他在很多情况下都能有不错的表现。 本文将介绍随机森林的基本概念、4 个构造步骤、4 种方式的对比评测、10 个优缺点和 4 个应用方向。 什么是随机森林&#xff1f; 随机森林属于 集成学习 中的 …

随机森林原理详解 random forest 代码+参数讲解

事实上随机森林的基本单元决策树很早就被提出来了&#xff0c;只不过单个决策树效果不好。这个情况和神经网络差不多。 到了2001年Breiman把分类树组合成随机森林&#xff08;Breiman 2001a&#xff09;&#xff0c;即在变量&#xff08;列&#xff09;的使用和数据&#xff0…

随机森林及应用

学习了B站视频《随机森林及应用》&#xff0c;记录一下学习笔记啦&#xff0c;原视频链接&#xff1a;Python机器学习算法实践Ⅲ-随机森林及应用。 一、随机森林属于集成学习&#xff0c;所以首先了解集成学习。在集成学习中&#xff0c;主要分为Bagging算法和Boosting算法。 B…

随机森林(Random Forests)介绍

1.决策树&#xff08;Decision Tree&#xff09; 决策树是一种树形结构&#xff0c;其中每个内部节点表示一个属性上的测试&#xff0c;每个分支代表一个测试输出&#xff0c;每个叶节点代表一种类别。常见的决策树算法有C4.5、ID3和CART。ID3算法用的是信息增益&#xff0c;C…

使用随机森林进行特征选择

绘制随机森林每棵树的决策边界 首先导入必要的库函数&#xff1a; from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_moons from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt import numpy as…

python实现随机森林

定义&#xff1a; 随机森林指的是利用多棵决策树对样本进行训练并预测的一种分类器。可回归可分类。 所以随机森林是基于多颗决策树的一种集成学习算法&#xff0c;常见的决策树算法主要有以下几种&#xff1a; 1. ID3&#xff1a;使用信息增益g(D,A)进行特征选择 2. C4.5&…

教你体验目前最火AI - 在craft AI assistant 使用chatGPT

atGPT大火之后&#xff0c;很多人都想体验一把&#xff0c;今天为大家推荐一种免费方式&#xff0c;体验chatGPT同款内核的AI助手。 craft AI assistant Craft 推出的 AI 助手产品 Craft AI Assistant&#xff0c;并且现在就可以使用。根据 Craft 官方介绍&#xff0c;Craft …

【ChatGPT+AI】持续更新

ChatGPT的缘分 ChatGPT的缘分 一、小白必知1.1ChatGPT是什么&#xff1f;1.2ChatGPT怎么用&#xff1f;1.3ChatGPT登录注意事项 二、ChatGPT实战2.1什么Prompt&#xff1f;2.2ChatGPT怎么发图片2.3ChatGPT快速制作PPT 三、其他AI与免费镜像网站四、星球介绍 ChatGPT的缘分 大家…