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根目录下。然后执行:
- conda create -n chatgm3-demo python=3.10
是创建一个虚拟环境
- conda activate chatgm3-demo
进入这个虚拟环境
- 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
来设置环境变量的。Chatglm的github的介绍页,也是写的export。
但在 Windows 的 Anaconda Prompt 中,不能使用 export 命令来设置环境变量,因为 export 是类 Unix 系统中的命令。在 Windows 中,包括在 Anaconda Prompt 中,您应该使用 set 命令来设置环境变量。
例如,如果您想在 Anaconda Prompt 中设置 MODEL_PATH 环境变量,可以使用以下命令:
- set MODEL_PATH= D:\chatglm3-6b
D:\chatglm3-6b中存放着大模型
运行:
- streamit run main.py
正常情况下,会自动调用默认浏览器来显示ChatGLM页面。如果提示:
huggingface_hub.inference._text_generation未找到。应该是huggingface_hub的版本不对。我们可以通过
- pip show huggingface-hub
查看huggingface-hub的版本
- pip uninstall huggingface-hub
来卸载掉huggingface_hub
然后再通过
- 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来安装。