Windows安装ChatGLM3

Git clone

GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型

查看cuda版本

CUDA(Compute Unified Device Architecture)是NVIDIA公司开发的一个平行计算平台和编程模型,它允许开发者利用NVIDIA的GPU(图形处理单元)来进行通用计算,这种计算通常与图形渲染无关。通过使用CUDA,开发者可以将GPU作为强大的并行处理器,用于执行复杂的计算任务,这在科学计算、数据分析、机器学习等领域非常有用。

CUDA提供了API(应用程序编程接口),支持多种编程语言,如C、C++和Python等,使得开发者能够较为容易地编写出能在GPU上运行的并行程序。使用CUDA编写的程序可以在支持CUDA的NVIDIA GPU上运行,从而实现计算任务的加速。

CUDA通过以下方式工作:

1. 内核(Kernels):在CUDA中,内核是并行执行的函数,它在GPU上为每个数据元素执行。开发者可以定义内核来处理大量的数据。

2. 内存管理:CUDA提供了专门的内存管理功能,允许开发者控制数据在GPU和主机(CPU)之间的传输。

3. 线程层次结构:CUDA中的并行执行模型是基于线程层次结构的,包括线程网格(grid)、线程块(block)和线程(thread)。

4. 同步和通信:CUDA提供了线程间的同步和通信机制,使得开发者可以控制线程的行为和数据的共享。

CUDA是高性能计算领域中一个非常重要的技术,它使得许多计算密集型任务能够通过GPU加速,从而大幅提高计算效率。

(以上信息来自智谱清言的回答)

ChatGLM通过PyTorch支持CUDA计算加速,如果你的GPU支持cuda,下面安装PyTorch的时候,请安装支持CUDA的PyTorch版本。

要查看CUDA版本,可以:

CMD中执行:nvidia-smi

安装Python3

ChatGLM中大量代码使用python编写,需要安装Python3。

官方下载最新windows安装包安装即可。

安装PIP

Pip是Python install package的简写,python的库通过pip命令安装。

安装了Python3后,原则上就已经安装好pip了。如果没有安装,可以安装Conda,Conda中也集成了pip。

安装PyTorch

PyTorch是python支持机器学习的一个库。Pytorch支持Nvidia的GPU的CUDA来计算,也支持CPU来计算,但肯定用GPU比CPU计算更好。

PyTorch官方提供了PyTorch安装指导,网址如下:

Start Locally | PyTorch

不同的操作系统,不同的包,不同的计算平台,安装命令也不同。

在上面的页面中,按你自己的情况选择操作系统、Package、编程语言和计算平台后,会生成一条安装命令。在CMD中执行这条命令就会安装,安装过程会下载whl包,大约2.5GB。

注:whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。可以在不具备编译环境的情况下,选择合适自己的Python环境进行安装。说白了,.whl就是python的压缩包。目前wheel被认为是Python的二进制包的标准格式

安装后,可以验证一下,是否安装成功。在CMD中输入

python

切换到python环境。

然后依次输入下面的代码:

import torch

x = torch.rand(5,3)

print(x)

输出应类似于:

tensor([[0.7522, 0.4874, 0.5922],

        [0.7667, 0.7001, 0.3312],

        [0.8241, 0.3392, 0.6829],

        [0.5461, 0.8977, 0.5320],

        [0.8009, 0.4389, 0.7881]])

安装PyTorch及验证见下图:

此外,要检查 GPU 驱动程序和 CUDA 是否已启用并由 PyTorch 访问,请运行以下命令以返回是否启用了 CUDA 驱动程序:

import torch
torch.cuda.is_available()

以上信息,基本都来自PyTorch官网的网页翻译

安装Conda(可选)

Conda中也包含了pip。

ChatGLM可通过Conda启动,也可通过vs code启动。我们推荐使用vs code来启动,因为vs code还可以调试ChatGLM。

(以下信息来自智谱清言回答)

Conda是一个开源的包管理器和环境管理器,用于安装、运行和更新包和它们的依赖项。Conda特别适用于Python程序,但它也可以管理R、Ruby、Lua、Scala、Java、JavaScript、C/ C++、FORTRAN等语言的包。Conda是由Anaconda公司开发的,并且是Anaconda Distribution的一部分,这是一个流行的Python数据科学平台。

Conda的主要特点包括:

1. 环境管理:Conda允许用户创建隔离的Python环境,这意味着您可以为不同的项目或不同的版本创建独立的环境,从而避免包版本冲突。(刘树伟注:就是在Anaconda Prompt中创建一个虚拟环境,然后激活这个虚拟环境,在这个虚拟环境中的配置,不影响其它虚拟环境,所以,使用Conda,一般都是在虚拟环境中运行)

2. 跨平台:Conda可以在Windows、macOS和Linux上运行,这使得它非常适合于需要跨多个系统工作的数据科学家和开发者。

3. 依赖性解决:Conda能够自动解决包之间的依赖关系,确保所有必要的包都被正确安装。

4. 二进制安装:Conda提供了预编译的二进制包,这意味着安装速度通常比从源代码编译要快。

5. 社区支持:Conda有一个活跃的社区,提供了大量的包和库,这些都可以通过Conda的包索引(conda-forge)获得。

6. 集成工具:Conda可以与其他工具如Jupyter Notebook和Pandas等集成,为数据分析和机器学习提供强大的支持。

Conda通常通过Anaconda Distribution或Miniconda来安装,Anaconda是一个包含Python和许多常用科学计算包的发行版,而Miniconda是一个更轻量级的Conda安装包,只包含Python和Conda,用户可以根据需要安装其他包。

安装Conda后,您可以使用命令行界面来管理包和环境。例如,创建一个新的环境可以使用以下命令:

```shell

conda create --name myenv python=3.8

```

激活这个环境可以使用:

```shell

conda activate myenv

```

在环境中安装包可以使用:

```shell

conda install numpy

```

Conda是数据科学和科学计算领域中非常受欢迎的工具,因为它简化了包管理和环境配置的过程。

(智谱清言结束)

官网:

Getting started with conda — conda 24.3.0 documentation

我们安装全功能的Anaconda Distribution,网址:

Installing on Windows — Anaconda documentation

Anaconda包含了pip。

安装过程中,官方不推荐把Anaconda添加到PATH环境变量,原话是:

选择是将 Anaconda 添加到 PATH 环境变量,还是将 Anaconda 注册为默认 Python。我们不建议 Anaconda 添加到 PATH 环境变量中,因为这可能会干扰其他软件。除非您计划安装和运行多个版本的 Anaconda 或多个版本的 Python,否则请接受默认值并选中此框。相反,通过打开 Anaconda Navigator Anaconda Prompt 开始菜单来使用 Anaconda 软件。

因为没有把Anaconda加到PATH环境变量,所以之后使用Conda的时候,不能直接在CMD中输入Conda命令,而应该通过打开 Anaconda Navigator Anaconda Prompt 开始菜单来使用 Anaconda 软件。

安装vs code

从微软官网下载安装即可,注意安装上python扩展。

运行ChatGLM的综合Demo

运行ChatGLM,实际上是执行"ChatGLM3\composite_demo\main.py"的python文件。

通过Anaconda Prompt来运行

官网:ChatGLM3/composite_demo/README.md at main · THUDM/ChatGLM3 · GitHub

由于我们安装Conda的时候,没有把Conda加入到PATH环境变量中,所以,执行Conda命令的时候,要从开始菜单中,通过Anaconda Prompt来执行。

先在Anaconda Prompt中切换到刚克隆的ChatGLM根目录下。然后执行:

  1. conda create -n chatgm3-demo python=3.10

是创建一个虚拟环境

  1. conda activate chatgm3-demo

进入这个虚拟环境

  1. pip instal -r requirements.txt

在这个虚拟环境中安装" ChatGLM3\requirements.txt" 中指定的东西。

conda create -n chatglm3-demo python=3.10和pip install -r requirements.txt两个命令只需要运行一次即可,下次打开Anaconda Prompt后,只需要运行conda activate chatglm3-demo进入虚拟环境即可。

因为chatglm运行需要MODEL_PATH这个环境变量,在UNIX系统中,是通过

export MODEL_PATH=/path/to/model

来设置环境变量的。Chatglmgithub的介绍页,也是写的export

但在 Windows 的 Anaconda Prompt 中,不能使用 export 命令来设置环境变量,因为 export 是类 Unix 系统中的命令。在 Windows 中,包括在 Anaconda Prompt 中,您应该使用 set 命令来设置环境变量。

例如,如果您想在 Anaconda Prompt 中设置 MODEL_PATH 环境变量,可以使用以下命令:

  1. set MODEL_PATH= D:\chatglm3-6b

D:\chatglm3-6b中存放着大模型

运行:

  1. streamit run main.py
 

正常情况下,会自动调用默认浏览器来显示ChatGLM页面。如果提示:

huggingface_hub.inference._text_generation未找到。应该是huggingface_hub的版本不对。我们可以通过

  1. pip show huggingface-hub

查看huggingface-hub的版本

  1. pip uninstall huggingface-hub

来卸载掉huggingface_hub

然后再通过

  1. pip install huggingface-hub==0.21.4

安装指定版本的是huggingface-hub

通过VS Code来运行

VS 打开ChatGLM3文件夹。并打开"ChatGLM3\composite_demo\main.py"文件,然后执行

通过launch.json来调试main.py。这会自动创建launch.json文件。

launch.json改成下面这样:

{

    // 使用 IntelliSense 了解相关属性。

    // 悬停以查看现有属性的描述。

    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",

    "configurations": [

        {

            "name": "streamlit",

            "type": "debugpy",

            "request": "launch",

            "module": "streamlit",

            "console": "integratedTerminal",

            "args": ["run", "${file}"],

            "env": {

                "MODEL_PATH": "D:/chatglm3-6b"

            }

        }

    ]

}

注意MODEL_PATH是值根据你实际路径修改。

接着,在弹出的框中选streamlit

这时,就会自动启动默认浏览器来显示chatglm了。如果提示找不到huggingface_hub.inference._text_generation

应该也是huggingface_hub的版本不对。只需要卸载高版本,重装低版本的huggingface_hub即可。

Torch使用GPU代替CPU来推理

使用CPU推理的速度极其慢。在安装PyTorch一节中,介绍了验证PyTorch是否支持GPU推理的方法。也可以通过运行下面的命令来查看:

pip list

如果列出的torch版本号如下:

torch                     2.2.2

就表示不支持,如果列出的版本号是

torch                     2.2.2+cu121

就表示支持。

如果不支持GPU,按《安装PyTorch》一节中介绍的,去PyTorch官方中,找支持cuda的Torch来安装。

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

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

相关文章

antd3.x Tree组件遇到的坑

在使用antd 3.x低版本组件的过程中&#xff0c;使用Tree组件&#xff0c;加载树形数据时候&#xff0c;第一次始终无法加载数据&#xff0c;在查阅antd文档后发现Tree组件会缓存数据&#xff0c;需要进行判断数据是否已加载 {microFolderList.length ?<TreedefaultExpanded…

OpenHarmony图像解码库—stb-image [GN编译]

简介 stb_image主要是C/C实现的图像解码库。 下载安装 直接在OpenHarmony-SIG仓中搜索stb-image并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径&#xff1a;./third_party/stb-image 修改添加依赖的编译脚本&#xff0c;路径&#xff1a;/devel…

前端三剑客 HTML+CSS+JavaScript ① 基础入门

光永远会照亮你 —— 24.4.18 一、C/S架构和B/S架构 C:Client&#xff08;客户端&#xff09; B:Browser&#xff08;浏览器&#xff09; S:Server&#xff08;服务器&#xff09; C/S 架构&#xff1a; B/S 架构&#xff1a; 大型专业应用、安全性要求较高的应用&#xff0c;还…

Docker使用教程及docker部署Vue项目

什么是Docker及其工作原理 虚拟化技术Docker是什么&#xff1f;三大基本术语核心算法原理和具体操作步骤 Docker和传统虚拟化技术区别为什么使用Docker&#xff1f;Docker有什么作用&#xff1f;1.解决应用部署的环境问题遇到问题达到效果 2.容器化 docker的各种命令解释运行机…

nodejs版本过高导致vue-cli无法启动的解决方案

目录 前言异常现象解决方案总结 前言 之前使用软件管家升级了Nodejs&#xff0c;今天在运行Vue项目的时候老是报错&#xff0c;查了很多资料&#xff0c;最后确定是Nodejs版本过高导致的。 异常现象 E:\project\ry\RuoYi-Cloud\ruoyi-ui>npm run dev> ruoyi3.6.4 dev …

ubuntu上安装调试SVN服务

刚成立团队需要临时搭建一台SVN服务器&#xff0c;所以对照网上的一些提示做了下&#xff0c;操作起来不复杂&#xff0c;还是踩了不少坑&#xff0c;顺便原理性了解了下。 主要操作步骤如下&#xff1a; 1&#xff1a;安装svn sudo apt-get install subversion 2: 创建svn版…

C++入门之类和对象(中)

C入门之类和对象(中) 文章目录 C入门之类和对象(中)1. 类的6个默认对象2. 构造函数2.1 概念2.2 特性2.3 补丁 3. 析构函数3.1 概念3.2 特性3.3 总结 4. 拷贝构造函数4.1 概念4.2 特性4.3 总结 1. 类的6个默认对象 如果一个类中什么都没有&#xff0c;那么这个类就是一个空类。…

NLP任务全览:涵盖各类NLP自然语言处理任务及其面临的挑战

自然语言处理(Natural Language Processing, 简称NLP&#xff09;是计算机科学与语言学中关注于计算机与人类语言间转换的领域。NLP将非结构化文本数据转换为有意义的见解&#xff0c;促进人与机器之间的无缝通信&#xff0c;使计算机能够理解、解释和生成人类语言。人类等主要…

chatgpt免费使用网站

在人工智能的浪潮中&#xff0c;OpenAI的ChatGPT作为一款前沿的语言处理工具&#xff0c;已经引起了广泛的关注和讨论。 ChatGPT以其卓越的语言理解和生成能力&#xff0c;为用户提供了多样化的应用场景&#xff0c;从日常对话、编程辅助到内容创作等。然而&#xff0c;对于许…

FL Studio21.2.4重磅发布更新发布功能介绍2024最新

FL Studio21是一款功能强大的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;它在音乐制作领域占据着重要的地位。以下是对FL Studio 21的详细介绍&#xff1a; 一、功能与特点 音频编辑&#xff1a;FL Studio 21提供了强大的音频编辑功能&#xff0c;包括波形编辑&a…

车载诊断系统应用方案选型,ESP8266方案让成本降低了35%,销售数据提升47%

车载诊断系统简称OBD&#xff0c;这个系统随时监控发动机的运行状况和尾气后处理系统的工作状态&#xff0c;一旦发现有可能引起排放超标的情况&#xff0c;会马上发出警示。当系统出现故障时&#xff0c;故障灯(MIL)或检查发动机(Check Engine)警告灯亮&#xff0c;同时OBD系统…

分支结构(if)

一.关于if 1.什么是if 在我们判断一个条件的时候&#xff0c;需要执行一些条件&#xff0c;这时就需要我们的"if"闪亮登场。 2.怎么使用if if是这样使用的&#xff1a; if(判断条件){判断过后执行的 } 然后我们需要一道例题洛谷的P5712 【深基3.例4】Apples&am…

SVN泄露(ctfhub)

目录 下载安装dvcs-ripper 使用SVN 一、什么是SVN&#xff1f; 使用SVN能做什么&#xff1f; 二、SVN泄露&#xff08;ctfhub&#xff09; SVN源代码漏洞的主要原因&#xff1a; 工具准备&#xff1a;dirsearch、dvcs-ripper 网络安全之渗透测试全套工具篇&#xff08;内…

正式发布的Spring AI,能让Java喝上AI赛道的汤吗

作者:鱼仔 博客首页: https://codeease.top 公众号:Java鱼仔 前言 最近几年AI发展实在太快了&#xff0c;仿佛只要半年没关注&#xff0c;一个新的大模型所产生的效果就能超越你的想象。Java在AI这条路上一直没什么好的发展&#xff0c;不过Spring最近出来了一个新的模块叫做S…

【学习笔记】Vue3源码解析:第五部分 - 实现渲染(2)

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第五部分-&#xff1a;&#xff08;对应课程的第33 - 35节&#xff09; 第33节&#xff1a;《讲解组件渲染流程》 1、在 render 函数中拿到虚拟dom vnode后…

Ubuntu的终端中启用鼠标左键即为选中复制,右键粘贴的功能

在Ubuntu终端中启用鼠标复制和粘贴的功能需要进行一些设置。 首先&#xff0c;打开终端窗口&#xff0c;在菜单栏中找到“Edit”选项&#xff0c;点击“Profile Preferences”。然后&#xff0c;在“General”选项卡中&#xff0c;勾选“Use custom font”选项&#xff0c;可以…

博客文章:AWS re:Invent 2023 新产品深度解析 - 第四部分

TOC &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff0c;共同成长&#xff01; 写在最前面 去年发布文章的一部分&#xff0c;由于内…

微光成束,星火燎原,酷雷曼扶持政策再升级!

从北纬 18 度的三亚海角&#xff0c; 到北纬 53 度的漠河不夜城&#xff0c; 从东经 81 度的塞外江南伊犁&#xff0c; 到东经 120 度的上海魔都。 酷雷曼合作商为客户服务的范围 遍及全国 300 余个地区&#xff0c; 跨越了东南西北的辽阔地域。 即便如此&#xff0c; 面…

基于Bootstrap 5的创新网络服务公司网站模板

一.前言 这个网站的内容包括&#xff1a; 标题&#xff1a;Web service - Business Category Bootstrap Responsive Website Template - Home导航栏&#xff1a;Home, About, Services, Pages&#xff08;包括Blog posts、Blog single、404、Landing page等页面&#xff09;、…

fastjson转换json时默认将属性第一个字母转小写

描述&#xff1a; 我新建了一个实体类&#xff0c;但是实体类的首字母是大写的&#xff0c;但是使用fastjson后打印的&#xff0c;Json字符串首字母却是小写的&#xff0c;这是fastjson的一个bug 实体类&#xff1a; Json字符串&#xff1a; 解决方法&#xff1a; 一、使…