本地部署 ChatGLM-6B

本地部署 ChatGLM-6B

  • 1. 什么是 ChatGLM-6B
  • 2. Github 地址
  • 3. 安装 Miniconda3
  • 4. 创建虚拟环境
  • 5. 安装 ChatGLM-6B
  • 6. 启动 ChatGLM-6B
  • 7. 访问 ChatGLM-6B
  • 8. API部署
  • 9. 命令行部署
  • 10. 其他,修改使用显存大小
  • 11. ChatGLM-6B 的推理参数含义

1. 什么是 ChatGLM-6B

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

不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 GLM-130B 的 ChatGLM 正在内测开发中。

2. Github 地址

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

3. 安装 Miniconda3

下载 Conda 安装脚本,

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行安装脚本,

bash Miniconda3-latest-Linux-x86_64.sh

按提示操作。当提示是否初始化 Conda 时,输入 “yes”,

在这里插入图片描述

安装完成后,关闭当前终端并打开新终端,这将激活 Conda,

sudo su - root

更新 Conda 至最新版本,

conda update conda

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

添加必要的 Conda 通道以获取更多软件包,

conda config --add channels conda-forge
conda config --add channels defaults 

测试是否安装成功,

conda list

如果显示 Conda 及其内部包的列表,则说明安装成功。

4. 创建虚拟环境

conda create -n chatglm python==3.10.4
conda activate chatglm

5. 安装 ChatGLM-6B

git clone --recursive https://github.com/THUDM/ChatGLM-6B; cd ChatGLM-6B
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit-chat

6. 启动 ChatGLM-6B

streamlit run web_demo2.py

7. 访问 ChatGLM-6B

使用浏览器打开 http://localhost:8501/

在这里插入图片描述
问它一个问题,清华大学在哪?

在这里插入图片描述

8. API部署

先需要安装额外的依赖,

pip3 install fastapi uvicorn

然后运行仓库中的 api.py,

python3 api.py

默认部署在本地的 8000 端口,通过 POST 方法进行调用,

curl -X POST "http://127.0.0.1:8000" \-H 'Content-Type: application/json' \-d '{"prompt": "你好", "history": []}'

得到的返回值为,

{"response":"你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。","history":[["你好","你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。"]],"status":200,"time":"2023-03-23 21:38:40"
}

9. 命令行部署

运行仓库中 cli_demo.py,

python cli_demo.py

程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复。

输入 clear 可以清空对话历史,输入 stop 终止程序。

10. 其他,修改使用显存大小

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

vi web_demo2.py--- 按需修改,目前只支持 4/8 bit 量化
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half().cuda()
---

进行 2 至 3 轮对话后,8-bit 量化下 GPU 显存占用约为 10GB,4-bit 量化下仅需 6GB 占用。随着对话轮数的增多,对应消耗显存也随之增长,由于采用了相对位置编码,理论上 ChatGLM-6B 支持无限长的 context-length,但总长度超过 2048(训练长度)后性能会逐渐下降。

模型量化会带来一定的性能损失,经过测试,ChatGLM-6B 在 4-bit 量化下仍然能够进行自然流畅的生成。

量化过程需要在内存中首先加载 FP16 格式的模型,消耗大概 13GB 的内存。如果你的内存不足的话,可以直接加载量化后的模型,INT4 量化后的模型仅需大概 5.2GB 的内存:

# INT8 量化的模型将"THUDM/chatglm-6b-int4"改为"THUDM/chatglm-6b-int8"
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True).half().cuda()

11. ChatGLM-6B 的推理参数含义

  • Maximum length 参数
    通常用于限制输入序列的最大长度,因为 ChatGLM-6B 是 2048 长度推理的,一般这个保持默认就行,太大可能会导致性能下降。

  • Top P 参数
    Top P 参数是指在生成文本等任务中,选择可能性最高的前 P 个词的概率累加和。这个参数被称为 Top P,也称为 Nucleus Sampling。
    例如,如果将 Top P 参数设置为 0.7,那么模型会选择可能性排名超过 70% 的词进行采样。这样可以保证生成的文本准确性较高,但可能会缺之多样性。相反,如果将 Top P 参教设置为 0.3,则会选择可能性超过 30% 的词进行采样,这可能会导致生成义本的准确性下降,但能够更好地增加多样性。

  • Temperature 参数
    Temperature 参数通常用于调整 softmax 函数的输出,用于增加或减少模型对不类别的置信度。具体来说,softmax 函数将模型对每个类别的预测转换为概率分布。Temperature 参数可以看作是一个缩放因子,它可以增加或减少 softmax 函数输出中每个类别的置信度。
    比如将 Temperature 设置为 0.05 和 0.95 的主要区别在于,T=0.05 会使得模型更加自信,更加倾向于选择概率最大的类别作为输出,而 T=0.95 会使得模型更加不确定,更加倾向于输出多个类别的概率值较大。

完结!

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

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

相关文章

文心:PPT 制作、数字人主播一键开播等应用场景惊艳到我了,下面给到Prompt工程详细教程应用场景及案例

文心:PPT 制作、数字人主播一键开播等应用场景惊艳到我了,下面给到Prompt工程详细教程应用场景及案例 1.文心千帆简介 文心千帆优势 基础强大、知识丰富 文心千帆平台基于百度智能云,采用飞桨深度学习框架作为底层支撑,并内置文心…

【SQLAlchemy】第二篇——连接失效及连接池

一、背景 为了节约资源,MySQL会对建立的连接进行监控,当某些连接处于不活跃状态的时间超过一个阈值时,则关闭它们。 用户可以执行show variables like %wait_timeout%;来查看这个阈值: 可以看到,在默认的情况下&…

一个程序员的意想流

Readme:记录生活、工作、学习中自己的思考和想法,但是可能很杂乱的。目的为了提升自己BB的能力。 2023.3.9: 作为一个嵌入式(底层)开发者,通过对Linux内核的不断深入,包括VFS、内存管理、进程管…

ChatGPT提示词工程师 | prompt engineering | 吴恩达教你写提示词 课程笔记

Lecture1 引言 两种大语言模型(LLMs,Large Language Models): Base LLM: Predicts next word, based on text training dataInstruction Tuned LLM: Tries to follow instructions Lecture2 指南 使用C…

chatgpt提示词学习指南,提示词工程,提示词汇总

这篇gpt提示词指南我会随着我的学习一直更新。 结构 好的提示词角色(能力)上下文详细的指令说明风格输出格式 角色(必填):可以给模型提供特定的能力,让它更好的解决我们的问题,在声明角色后,…

股票入门基础知识之投资家有哪些?股票入门基础知识中的投资角色

《量化分析海龟训练营》课程学员:一般来说哪些人投资做得好呢? 同济桥博士:投资是一门科学,有很多研究投资的人拿到过诺贝尔经济学奖,投资做得好有五类人:科学家、哲学家、神学家、交易员、民间高手。最后…

投资理财启蒙之理财入门必看?

投资基金股票是怎么赚钱的 ? 公司上市就是为了融资扩大规模,需要在上海/深圳证券交易所去审批,现在国家注册制落实后,现在企业要上市很严格的需要公开公司的各方面情况的 ,投资渠道也正规,比如支付宝/微信&…

金融业务知识(2):股票交易的基本流程

股票交易的基本流程 (一)开户 需要开立证券账户和资金账户 证券账户用来记载投资者所持有的证券种类、数量和相应的变动情况 资金账户则用来记载和反映投资者买卖证券的货币收付和结存数额。 开立证券账户和资金账户后,投资者买卖证券所涉…

基金投资入门3:中外常见金融指数类型说明

在每天的新闻及财经类文章中,经常听到当日的上证综指、深证成指、沪深300指数是多少点、涨跌幅是多少。 大家潜意识中认为指数点、涨跌幅越高越好,至于各指数代表的是什么意思并不清楚,但是对于刚接触投资理财的朋友,只有搞懂各指…

最新FRM一级二级handbook官方教材原版书

最新FRM一级二级教材囊括了FRM考试需要掌握的所有要点和难点,并进行了深入细致地讲解。本教材紧扣GARP协会新版教材的章节编排,加入了编著者多本同类教材的编写经验和一线教学经验的总结,并关注了国际国内**的风控热点。

证券交易金融知识学习(1)

学习目标: 需要做一些关于投资交易软件的测试,需要了解操作背后的交易意义,需要学习一些金融基础知识。本人是金融证券交易的小白,从0开始学习。故记录一些金融知识学习的笔记,比较零散,目的是为了让自己复…

【转】投资从入门到精通,七本经典书籍

http://www.create.hk/archives/158 随着我国股市的复苏、资本市场的规律,却去研究一些“技术分析”之类的理论,是不科学的。“技术分析”属于玄学,也就是形而上学。目前在我国东部沿海地区,由于投资者知识和经验的日益增多&…

投资学翻译1

生产网络与股票回报:垂直创造性破坏的作用 本文从实证和理论两方面研究了生产网络中企业风险与企业与消费者距离之间的关系。我们记录了两个新事实:离消费者越远的企业,其风险溢价越高,对总生产率的影响也越大。我们用一个具有多层生产过程的一般均衡模…

电商设计师(美工)必备的素材网站|优图!

平时我们再做设计的时候,时间长了也很苦恼,而甲方或者老班总是要求我们要做高大上或者有灵感的作品。而灵感不是说来就来的呀~~~ 电商大致的素材类型你知道么? 首焦海报、PC促销海报、M端海报、大促首页、M端大促页面、页面设计、详情页、电…

电商设计师(美工)必备|模板素材网站!

优图网:站内的分类特别清新,每日都有新的素材图片更新,韩国清新风比较明显,是难得的符 合国情的素材网站! 网址:www.uppsd.com 素材路上: 大量针对淘宝设计这一块的素材,前段时间刚…

【电商】电商后台设计—售后流程

在电商系统中,订单售后是整个平台系统最为重要的组成部分之一,好的售后产品能够极大提升用户对于整个电商产品的用户体验,提高口碑。产生售后的原因很多,处理平台本身的问题还有其他物流时效、配送员服务态度等因素,产…

【电商】电商后台系统整体介绍

电商后台系统支撑了电商企业亿万级的交易量,其重要性不言而喻。本文章将从电商后台系统的的各个模块来分析,让大家的后台真正”硬“起来。 当前关于产品经理的文章主要偏向方法论、业界动向、产品分析、用户体验、交互等,关于后台系统的文章比…

跨境电商必备:SS客服聊天机器人,无需再逐一回复消息,彻底解放你的双手,SaleSmartly让你的营销变得更加简单

跨境电商必备:SS客服聊天机器人,无需再逐一回复消息,彻底解放你的双手,SaleSmartly让你的营销变得更加简单 关键词:跨境电商、聊天机器人、智能客服 AI在近年来的发展十分迅速,人工智能和自动化成为科技发…

电商设计师(美工)必备的素材网站!

优图网 站内的分类特别清新,每日都有新的素材图片更新,韩国清新风比较明显,是难得的符合国情的素材网站! 网址:www.uppsd.com MaterialUp —— 每日 Material Design 设计案例 Material Design, Daily – MaterialU…