首页
文章
隐私
  • 繁體中文
  • 简体中文
首页
文章
隐私
  • 繁體中文
  • 简体中文

【GPT】Ubuntu 上编译执行 GGML

2023 真可以说是 OpenAI 大鸣大放的一年,稍早前的 GPT-3.5 已经很厉害了,没想到近期的 GPT-4 在语气回应以及语言互动上,输出的结果显得更加的自然,更像是人跟人的对话。而且前后文的逻辑也能更加的连贯。

离线端本地执行

不过依赖云端 API 的调用方式,大大限制了运用上的弹性。如果对生成的内容不是要求太高,其实透过离线的方式在本地端执行,也是有些开源的选择。不过在编译与执行上有些需要留意的地方,笔者整理了几项要点如下。

半精度 __fp16 的支援

在 ARM 晶片搭配 Ubuntu 18.04 的配置上,笔者遇上了未定义 __fp16 编译上的错误。这时候需要修改 ggml.h,变量的定义改成 uint16_t 来完成编译工作。

开启 cuda 支持的编译方式

如果硬体能够搭配 cuda 编译,有可能发生找不到 nvcc 的错误。为了让 nvcc 可以顺利执行,需要将 cuda 程式库所在的路径 export 出来,让 shell 能够引用。例如:

/usr/local# export PATH=/usr/localcuda-11.4/bin:/usr/local/cuda/bin:$PATH

编译步骤中的 cmake 可能需要另外安装

在 Ubuntu 上透过 apt 即可简单的取得。

sudo su
apt update
apt install cmake

语言模型需要 git lfs 大档案的支援才能下载

在 Ubuntu 上安装的方式参考如下。

# 安装 git lfs
apt install git-lfs
#  Initialized lfs
git lfs install

需要留意 torch 与 numpy 版本上的匹配

笔者遇上最新版本的 numpy 反而 torch 在执行上找不到,透过特定版本的支持才获得解决。

apt install numpy==1.24.1
# 新版本的 Numpy 会产生 RuntimeError: Numpy is not available

实际执行的流程

以 ggml 为例的编译,以及模型下载,还有 inference 执行的步骤如下:

# Build ggml + examples
git clone https://github.com/ggerganov/ggml
cd ggml
mkdir build && cd build
cmake ..
make -j4 gpt-2 gpt-j

# Run the GPT-2 small 117M model
../examples/gpt-2/download-ggml-model.sh 117M
./bin/gpt-2 -m models/gpt-2-117M/ggml-model.bin -p "Tell me about artificial intelligence"

# Run the GPT-2 small 345M model
../examples/gpt-2/download-ggml-model.sh 345M
./bin/gpt-2 -m models/gpt-2-345M/ggml-model.bin -p "Tell me about artificial intelligence"

# Run the GPT-2 small 774M model
../examples/gpt-2/download-ggml-model.sh 774M
./bin/gpt-2 -m models/gpt-2-774M/ggml-model.bin -p "Tell me about artificial intelligence"

# Run the GPT-2 small 1558M model
../examples/gpt-2/download-ggml-model.sh 1558M
./bin/gpt-2 -m models/gpt-2-1558M/ggml-model.bin -p "Tell me about artificial intelligence"

另外,同样在 ggml build 这个目录下完成 Cerebras-GPT 的执行步骤

下载 Cerebras-GPT 111M 语言模型

git clone https://huggingface.co/cerebras
cd Cerebras-GPT-111M
git lfs pull

安装执行 python 所需要的程式库支援

# 安装 pip3
apt install python3-pip

# 安装 torch
apt install torch

# 安装 transformer
apt install transformer

# 安装 accelerate
apt install accelerate

# 安装 Numpy
apt install numpy==1.24.1
# 新版本的 Numpy 会产生 RuntimeError: Numpy is not available

实际执行 Cerebras-GPT 111M 模型

自 https://huggingface.co/cerebras 下载的模型还需要转换。

python3 ../examples/gpt-2/convert-cerebras-to-ggml.py /home/allen/Downloads/ggml/build/Cerebras-GPT-111M/
# 转换成功后即可透过 gpt-2 来执行
./bin/gpt-2 -m /home/allen/Downloads/ggml/build/Cerebras-GPT-111M/ggml-model-f16.bin -p "Tell me about artificial intelligence"