ChatGLM 本地部署搭建及测试运行

这篇简要说下清华开源项目 ChatGLM 本地部署的详细教程。清华开源项目 ChatGLM-6B 已发布开源版本,这一项目可以直接部署在本地计算机上做测试,无需联网即可体验与 AI 聊天的乐趣。

项目地址:GitHub - THUDM/ChatGLM-6B: ChatGLM-6B:开源双语对话语言模型 | An Open Bilingual Dialogue Language Model

官网介绍:

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

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

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

第一步,本地安装 Python

这一步暂略,可以自行下载安装 Python 环境。

Python 下载地址:Download Python | Python.org

注意:安装 >9 以上版本,建议安装 10。

第二步,下载项目程序包

地址见上面的项目地址,直接下载下来并解压。我这里解压到 E:\chatGPT\ 下。

第三步,下载模型包 chatglm

下载地址:https://huggingface.co/THUDM/chatglm-6b/tree/main

官网介绍:

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

注意:下载后放到第二步程序包下,自行创建目录 chatglm-6b,如下:

第四步,下载依赖包

Window + R 快捷键打开运行窗口,输入 cmd 打开控制台命令行,进入到程序目录下。

分别执行如下两条命令:

pip install -r requirements.txt

pip install gradio

注意:如果执行有报错,请查阅文章末尾的错误处理。

等待依赖包下载成功,结果如下:

第五步,运行网页版 demo

执行如下命令,运行网页版本的 demo,如下:

python web_demo.py

程序会运行一个 Web Server,并输出地址。在浏览器中打开输出的地址即可使用。最新版 Demo 实现了打字机效果,速度体验大大提升。注意,由于国内 Gradio 的网络访问较为缓慢,启用 demo.queue().launch(share=True, inbrowser=True) 时所有网络会经过 Gradio 服务器转发,导致打字机体验大幅下降,现在默认启动方式已经改为 share=False,如有需要公网访问的需求,可以重新修改为 share=True 启动。

执行结果如下:

注意:如果执行提示信息和上图对不上,请查阅文章末尾的错误处理。

第七步,测试网页版程序

浏览器打开地址 并访问,输入问题,可以看到 ChatGLM 会给予回复。

Very Good!查看电脑性能,感觉 CPU 和内存都要爆掉了 ^ ^

第八步,运行命令行 Demo

执行如下命令,运行命令行版本的 demo,如下:

python cli_demo.py

程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入 clear 可以清空对话历史,输入 stop 终止程序。

错误一:下载依赖包超时

E:\chatGPT\ChatGLM-6B-main>pip install -r requirements.txt
Collecting protobuf<3.20.1,>=3.19.5Downloading protobuf-3.20.0-cp310-cp310-win_amd64.whl (903 kB)---------------------------------------- 903.8/903.8 kB 4.0 kB/s eta 0:00:00
Collecting transformers==4.27.1Downloading transformers-4.27.1-py3-none-any.whl (6.7 MB)----------- ---------------------------- 2.0/6.7 MB 5.4 kB/s eta 0:14:29
ERROR: Exception:
Traceback (most recent call last):File "D:\Python\Python310\lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcheryieldFile "D:\Python\Python310\lib\site-packages\pip\_vendor\urllib3\response.py", line 561, in readdata = self._fp_read(amt) if not fp_closed else b""File "D:\Python\Python310\lib\site-packages\pip\_vendor\urllib3\response.py", line 527, in _fp_readreturn self._fp.read(amt) if amt is not None else self._fp.read()File "D:\Python\Python310\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 90, in readdata = self.__fp.read(amt)File "D:\Python\Python310\lib\http\client.py", line 465, in reads = self.fp.read(amt)File "D:\Python\Python310\lib\socket.py", line 705, in readintoreturn self._sock.recv_into(b)File "D:\Python\Python310\lib\ssl.py", line 1274, in recv_intoreturn self.read(nbytes, buffer)File "D:\Python\Python310\lib\ssl.py", line 1130, in readreturn self._sslobj.read(len, buffer)
TimeoutError: The read operation timed outDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "D:\Python\Python310\lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapperstatus = run_func(*args)File "D:\Python\Python310\lib\site-packages\pip\_internal\cli\req_command.py", line 247, in wrapperreturn func(self, options, args)File "D:\Python\Python310\lib\site-packages\pip\_internal\commands\install.py", line 419, in runrequirement_set = resolver.resolve(File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 92, in resolveresult = self._result = resolver.resolve(File "D:\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 481, in resolvestate = resolution.resolve(requirements, max_rounds=max_rounds)File "D:\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 348, in resolveself._add_to_criteria(self.state.criteria, r, parent=None)File "D:\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 172, in _add_to_criteriaif not criterion.candidates:File "D:\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\structs.py", line 151, in __bool__return bool(self._sequence)File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 155, in __bool__return any(self)File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 143, in <genexpr>return (c for c in iterator if id(c) not in self._incompatible_ids)File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 47, in _iter_builtcandidate = func()File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 206, in _make_candidate_from_linkself._link_candidate_cache[link] = LinkCandidate(File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 297, in __init__super().__init__(File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 162, in __init__self.dist = self._prepare()File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 231, in _preparedist = self._prepare_distribution()File "D:\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 308, in _prepare_distributionreturn preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)File "D:\Python\Python310\lib\site-packages\pip\_internal\operations\prepare.py", line 491, in prepare_linked_requirementreturn self._prepare_linked_requirement(req, parallel_builds)File "D:\Python\Python310\lib\site-packages\pip\_internal\operations\prepare.py", line 536, in _prepare_linked_requirementlocal_file = unpack_url(File "D:\Python\Python310\lib\site-packages\pip\_internal\operations\prepare.py", line 166, in unpack_urlfile = get_http_url(File "D:\Python\Python310\lib\site-packages\pip\_internal\operations\prepare.py", line 107, in get_http_urlfrom_path, content_type = download(link, temp_dir.path)File "D:\Python\Python310\lib\site-packages\pip\_internal\network\download.py", line 147, in __call__for chunk in chunks:File "D:\Python\Python310\lib\site-packages\pip\_internal\cli\progress_bars.py", line 53, in _rich_progress_barfor chunk in iterable:File "D:\Python\Python310\lib\site-packages\pip\_internal\network\utils.py", line 63, in response_chunksfor chunk in response.raw.stream(File "D:\Python\Python310\lib\site-packages\pip\_vendor\urllib3\response.py", line 622, in streamdata = self.read(amt=amt, decode_content=decode_content)File "D:\Python\Python310\lib\site-packages\pip\_vendor\urllib3\response.py", line 560, in readwith self._error_catcher():File "D:\Python\Python310\lib\contextlib.py", line 153, in __exit__self.gen.throw(typ, value, traceback)File "D:\Python\Python310\lib\site-packages\pip\_vendor\urllib3\response.py", line 443, in _error_catcherraise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.E:\chatGPT\ChatGLM-6B-main>

可以看到错误信息提示超时,应该是网络问题,可以尝试在命令中加上超时时间设置的参数,命令修改后如下:

pip --default-timeout=1688 install -r requirements.txt

问题二:又一次实时下载模型包

当运行程序时,如果提示信息中看到又一次下载模型包,而没有使用第三步提前准备的模型包时,需要把模型包复制到程序运行时的缓存目录中,缓存路径可能如下:

C:\Users\用户目录\.cache\huggingface\hub\models--THUDM--chatglm-6b\snapshots\fb23542cfe773f89b72a6ff58c3a57895b664a23

模型包拷贝到该目录后再次运行程序即可。

Good Luck!

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

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

相关文章

部署了一个ChatGPT

部署了一个ChatGPT ChatGPT火爆了一段时间了&#xff0c;但是基于一些不可描述的原因&#xff0c;不能注册使用。为了方便大家体验&#xff0c;我部署了一个服务&#xff0c;能简单地体验一下ChatGPT的强大。话不多说&#xff0c;直接展示几个例子截图。文章最后放上体验地址和…

一键部署自己的ChatGPT!

昨晚咱们群友推荐了一个叫做ChatGPT-Next-Web项目&#xff0c;可以一键免费部署你的私人 ChatGPT 网页应用。 今早起来尝试了下&#xff0c;整体过程非常丝滑&#xff0c;觉得有必要推荐给大家。 项目整体是基于Vercel平台开发的&#xff0c;只要提供api key&#xff0c;即可在…

史上最简单的自建ChatGPT部署方案,只需要一个HTML文件

今天发现一个史上最简单的自建ChatGPT部署方案&#xff0c;只需要一个HTML文件&#xff0c;把它配置到Nginx就能跑起来。 效果如下&#xff1a; 他能做什么用&#xff1f; 平常我们使用chatgpt需要配魔法上网才能登上官方网站&#xff0c;对于很多人来说这是个很棘手的问题&a…

【ChatGPT本地部署-- ChatGLM】

这里写自定义目录标题 ChatGPT本地部署--- ChatGLM(转载)一、什么是ChatGLM&#xff1f;二、本地部署三、模型与ChatGPT和GPT4AII 效果对比 ChatGPT本地部署— ChatGLM(转载) 目录 一、什么是ChatGLM&#xff1f; 二、本地部署 2.1 模型下载 2.2 模型部署 2.3 模型运行 …

跟AI唠嗑,年入33万美金!ChatGPT时代的必备新技能

编&#xff5c;好困 Aeneas源&#xff5c;新智元 AI在我们的生活中&#xff0c;越来越不可或缺。显然&#xff0c;谁能更好地掌握提示工程&#xff0c;就能比别人多掌握一个强大的利器。 ChatGPT的爆火&#xff0c;也让提示工程师的薪水水涨船高。 现在&#xff0c;已经有人拿到…

如何利用ChatGPT搞科研?

这位研究僧&#xff0c;GPT-4都发布了&#xff0c;你还在纯人工搞科研吗&#xff1f; 已经有人实测&#xff1a; ChatGPT科研全流程都能用&#xff0c;尤其是对于 英语非母语的科研人员&#xff0c;可以极大地提高日常科研工作效率。 连写给导师的请假信&#xff0c;都能编得有…

你应该知道的ChatGPT提示语

ChatGPT 自上线以来&#xff0c;凭借其优异的自然语言理解和输出能力&#xff0c;仅花 5天就成为了活跃用户过百万的现象级产品。而上一个现象级产品 instagram 花了 2 个半月。到目前为止 ChatGPT 在全球累计用户数量已经过亿&#xff0c;相信现在也有很多人在跟 ChatGPT 聊过…

真诡异,ChatGPT 竟让知乎股价暴涨

大家好&#xff0c;我是校长。 今天一大早&#xff0c;看到一条新闻&#xff1a;2 月 8 日&#xff0c;知乎涨幅扩大至超 50%&#xff0c;股价创新高&#xff0c;报 34.8 港元。 根据中银国际发表的研究报告所说&#xff0c;ChatGPT 注册用户激增&#xff0c;AIGC 潜力巨大&…

刷榜GitHub!中科院学术科研专用版 ChatGPT开源了!斩获24K star。。论文润色、语法检查,一键搞定!...

最近&#xff0c;一位开发者在GitHub上开源的「科研工作专用ChatGPT」项目大受好评。论文润色、语法检查、中英互译、代码解释等等一键搞定。这个项目就是「中科院学术专业版 ChatGPT」。 自从ChatGPT发布之后&#xff0c;各路大神都开始研究如何把它加入到自己的「科研工作流」…

【ChatGPT进阶】如何使用ChatGPT做知乎好物?

如果你想通过知乎赚钱&#xff0c;知乎好物是一个不错的选择&#xff0c;门槛很低&#xff0c;而且是一个可以长期“躺赚”的项目&#xff0c;如果你会ChatGPT的话&#xff0c;可以去卷同行。 知乎好物是什么&#xff1f; 知乎好物是一种在知乎平台上创作内容或回答问题时&am…

干货|如何更好地使用ChatGPT,请从与它的第一句对话开始

ChatGPT是一个强大的人工智能助手&#xff0c;它可以提供各种问题的解答和建议。因此&#xff0c;在使用ChatGPT时&#xff0c;了解如何向它提问、如何与它互动以及如何获得最有价值的回答变得尤为重要。本文旨在为您介绍如何较好地开启与它的第一句对话&#xff0c;以更好地探…

ChatGPT帮我写了个方案

文章目录 ChatGPT会不会导致程序员失业2023年做什么生意赚钱Java开发面试自我介绍 废话不多说&#xff0c;先看录屏 体验后我惊呆了&#xff0c;一时不知如何形容这该死的功能 然后我又问了大家都在讨论的的问题 ChatGPT会不会导致程序员失业 失业倒不至于&#xff0c;但是像…

知乎精选 | ChatGPT与数学优化

来源&#xff1a;运筹or帷幄‍‍‍ 本文约2200字&#xff0c;建议阅读9分钟 ChatGPT的准确性和速度以及处理复杂任务的能力使其成为一种非常有用的工具。 作者信息&#xff1a;宋志刚&#xff0c;中国科学院大学物理学博士 一、引言 ChatGPT是一个由OpenAI训练的大型语言生成模…

小孩都能学明白ChatGPT的AI读物,给你们看一眼,就一眼

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 小区底层面馆旁新开了家幼儿ChatGPT培训班。ChatGPT的火热&#xff0c;又拱起了一波关于AI学习的焦虑。 AI 2.0时代&#xff0c;不想掉队的人&#xff0c;不只自己狠狠恶补&#xff0c;还从AI Native的娃娃开始抓起。 不妨一起以小见大…

ChatGPT专业应用:批量生成知乎回答

正文共 930字&#xff0c;阅读大约需要 7 分钟 数字/内容营销市场人群必备技巧&#xff0c;您将在7分钟后获得以下超能力&#xff1a; 1.批量生成知乎答案 2.多元化产出内容 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐…

如何让ChatGPT写出更符合知乎调性的文章

文 / 韩彬&#xff08;微信公众号&#xff1a;量子论&#xff09; 很多朋友疑问&#xff0c;怎么起的”量子论”这个不伦不类的名字。 这背后的故事&#xff0c;有必要做个解释。 最早时候&#xff0c;我们想起个与ChatGPT有关的名字&#xff0c;比如“ChatGPT学习指南”、“Ch…

作为NLP算法,最近被ChatGPT刷屏后的心路历程

Datawhale干货 作者&#xff1a;刘聪NLP&#xff0c;中国药科大学&#xff0c;来源&#xff1a;李rumor 作者&#xff1a;刘聪NLP&#xff08;知乎同名&#xff09;原文链接&#xff1a;https://zhuanlan.zhihu.com/p/605331104 卷友们好&#xff0c;我是刘聪。 作为一个NLP工…

ChatGPT助力校招----面试问题分享(五)

1 ChatGPT每日一题&#xff1a;简述SPI通信协议 问题&#xff1a;简述SPI通信协议 ChatGPT&#xff1a;SPI通信协议是一种同步的串行通信协议&#xff0c;主要用于在微控制器、传感器、存储器等器件之间进行数据传输。SPI通信协议的基本结构包括一个主设备和一个或多个从设备…

ChatGPT助力校招----面试问题分享(二)

1 ChatGPT每日一题&#xff1a;DC-DC与LDO的区别 问题&#xff1a;介绍一下DC-DC与LDO的区别 ChatGPT&#xff1a;DC-DC和LDO都是电源管理电路&#xff0c;它们的主要作用是将输入电压转换为所需的输出电压&#xff0c;以供电子设备使用。但是&#xff0c;它们之间存在一些重…

当我把chatGPT作为Java面试官,它问了我这些问题

向chatGPT提问 面试官&#xff1a;你好&#xff0c;欢迎参加我们的Java面试。请先自我介绍一下。 面试者&#xff1a;非常感谢&#xff0c;我是一名资深Java开发工程师&#xff0c;具有丰富的Java开发经验。我在过去的五年里&#xff0c;主要从事了企业级Java应用的设计、开发…