在 WSL 上安装支持 GPU 的 PrivateGPT

2025-05-24

在 WSL 上安装支持 GPU 的 PrivateGPT

[更新于2024年3月23日]

PrivateGPT是一个可立即投入生产的 AI 项目,即使在没有互联网连接的情况下,它也能让您利用大型语言模型 (LLM) 的强大功能对您的文档提出问题。100% 私密,任何时候都不会有数据离开您的执行环境。

在支持 GPU 的 Windows Linux 子系统 (WSL) 上运行它可以显著提升其性能。在本指南中,我将逐步指导您在 WSL 上安装支持 GPU 加速的 PrivateGPT。

安装这个真是太麻烦了,我花了两天时间才把它弄好。希望这能对你的旅程有所帮助……祝你好运!

先决条件

在开始之前,请确保您已安装最新版本的 Ubuntu WSL。您可以从 Windows 应用商店中提供的 Ubuntu-22-04-3 LTS 或 Ubuntu-22-04-6 LTS 等版本中进行选择。

Updating Ubuntu
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
Enter fullscreen mode Exit fullscreen mode

ℹ️“升级”非常重要,因为如果不升级,python 的东西以后会爆炸。

克隆 PrivateGPT 仓库

git clone https://github.com/imartinez/privateGPT
Enter fullscreen mode Exit fullscreen mode

设置Python环境

为了管理 Python 版本,我们将使用 pyenv。按照以下命令安装它并设置 Python 环境:

sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev
curl https://pyenv.run | bash
export PATH="/home/$(whoami)/.pyenv/bin:$PATH"
Enter fullscreen mode Exit fullscreen mode

将以下行添加到您的 .bashrc 文件:

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Enter fullscreen mode Exit fullscreen mode

刷新你的终端

source ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

安装重要的缺失的 pyenv 内容

sudo apt-get install lzma
sudo apt-get install liblzma-dev
Enter fullscreen mode Exit fullscreen mode

安装 Python 3.11 并将其设置为全局版本:

pyenv install 3.11
pyenv global 3.11
pip install pip --upgrade
pyenv local 3.11
Enter fullscreen mode Exit fullscreen mode

诗歌装置

安装 poetry 来管理依赖项:

curl -sSL https://install.python-poetry.org | python3 -
Enter fullscreen mode Exit fullscreen mode

将以下行添加到您的 .bashrc:

export PATH="/home/<YOU USERNAME>/.local/bin:$PATH"
Enter fullscreen mode Exit fullscreen mode

ℹ️ 替换为您的 WSL 用户名($ whoami

重新加载您的配置

source ~/.bashrc
poetry --version # should display something without errors
Enter fullscreen mode Exit fullscreen mode

安装 PrivateGPT 依赖项

导航到 PrivateGPT 目录并安装依赖项:

cd privateGPT
poetry install --extras "ui embeddings-huggingface llms-llama-cpp vector-stores-qdrant"
Enter fullscreen mode Exit fullscreen mode

需要为运行本地 LLM 而构建的免费开源多代理框架吗?

▶️结账 Yacana


Nvidia驱动程序安装

访问Nvidia 官方网站,下载并安装适用于 WSL 的 Nvidia 驱动程序。选择“Linux > x86_64 > WSL-Ubuntu > 2.0 > deb(网络)”

按照页面上提供的说明进行操作。

将以下行添加到您的 .bashrc:

export PATH="/usr/local/cuda-12.4/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH"
Enter fullscreen mode Exit fullscreen mode

ℹ️ 或许可以检查一下“/usr/local”的内容,确保你确实有“cuda-12.4”文件夹。你的版本可能不一样。

重新加载配置并检查一切是否按预期工作

source ~/.bashrc
nvcc --version
nvidia-smi.exe
Enter fullscreen mode Exit fullscreen mode

ℹ️ “nvidia-smi” 在 WSL 上不可用,因此只需验证 .exe 程序是否检测到你的硬件即可。这两个命令应该会显示乱码,但没有明显的错误。

构建和运行 PrivateGPT

最后,安装 LLAMA CUDA 库和 Python 绑定:

CMAKE_ARGS='-DLLAMA_CUBLAS=on' poetry run pip install --force-reinstall --no-cache-dir llama-cpp-python
Enter fullscreen mode Exit fullscreen mode

让私人 GPT 为您下载本地 LLM(默认为 mixtral):

poetry run python scripts/setup
Enter fullscreen mode Exit fullscreen mode

要运行 PrivateGPT,请使用以下命令:

make run
Enter fullscreen mode Exit fullscreen mode

这将在您的 WSL 环境上初始化并启动具有 GPU 支持的 PrivateGPT。

ℹ️ 如果 GPU 卸载正在工作,您应该看到“blas = 1”。

...............................................................................................
llama_new_context_with_model: n_ctx      = 3900
llama_new_context_with_model: freq_base  = 1000000.0
llama_new_context_with_model: freq_scale = 1
llama_kv_cache_init:      CUDA0 KV buffer size =   487.50 MiB
llama_new_context_with_model: KV self size  =  487.50 MiB, K (f16):  243.75 MiB, V (f16):  243.75 MiB
llama_new_context_with_model: graph splits (measure): 3
llama_new_context_with_model:      CUDA0 compute buffer size =   275.37 MiB
llama_new_context_with_model:  CUDA_Host compute buffer size =    15.62 MiB
AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 |
18:50:50.097 [INFO    ] private_gpt.components.embedding.embedding_component - Initializing the embedding model in mode=local 
Enter fullscreen mode Exit fullscreen mode

127.0.0.1:8001ℹ️在浏览器中访问

图片描述
上传了 Orca 论文并询问了有关它的一些随机问题。

结论

按照这些步骤,您已成功在 WSL 上安装支持 GPU 的 PrivateGPT。享受 PrivateGPT 为您的自然语言处理任务带来的增强功能。

如果出了问题,就打开窗户,把电脑扔掉。然后从第一步重新开始。

您还可以使用以下命令删除 WSL:

wsl.exe --list -v
wsl --unregister <name of the wsl to  remove>
Enter fullscreen mode Exit fullscreen mode

如果这篇文章对你有帮助,请点个赞!谢谢

故障排除

在提问或执行 make run 时遇到崩溃?以下是我遇到的问题以及解决方法。

  • Cuda 错误
CUDA error: the provided PTX was compiled with an unsupported toolchain.
  current device: 0, in function ggml_cuda_op_flatten at /tmp/pip-install-3kkz0k8s/llama-cpp-python_a300768bdb3b475da1d2874192f22721/vendor/llama.cpp/ggml-cuda.cu:9119
  cudaGetLastError()
GGML_ASSERT: /tmp/pip-install-3kkz0k8s/llama-cpp-python_a300768bdb3b475da1d2874192f22721/vendor/llama.cpp/ggml-cuda.cu:271: !"CUDA error"
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
        - Avoid using `tokenizers` before the fork if possible
        - Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
make: *** [Makefile:36: run] Aborted
Enter fullscreen mode Exit fullscreen mode

这个问题是由于下载了最新的 CUDA 驱动程序而导致的。因此,请在 Windows 中打开 Nvidia 的“Geforce experience”应用程序,升级到最新版本,然后重启。

  • 仅限 CPU

如果 privateGPT 仍然将 BLAS 设置为 0 并且仅在 CPU 上运行,请尝试关闭所有 WSL2 实例。然后重新打开一个实例再试一次。

如果仍然仅在 CPU 上运行,请尝试重启电脑。这可不是开玩笑……很遗憾。

关于使用 LM Studio 作为后端的说明

我尝试使用 LMStudio 的服务器作为伪造的 OpenAI 后端。它确实能用,但效果不太好。我需要做更多测试,之后我会在这里更新。

目前我所做的是在端口 8002 上启动 LMStudio 服务器并取消选中“应用提示格式”。

在 PrivateGPT 上,我编辑“settings-vllm.yaml”并更新了“openai > api_base”,“http://localhost:8002/v1"并将模型更新为“dolphin-2.7-mixtral-8x7b.Q5_K_M.gguf”,这是我在 LMStudio 中使用的模型。如果你想知道的话,它会显示在 LMStudio 中。

您可能喜欢的其他作者

人为僵尸网络的兴起——网络空间的非常规威胁

文章来源:https://dev.to/docteurrs/installing-privategpt-on-wsl-with-gpu-support-1m2a
PREV
如何从头开始构建 React 音乐播放器简介先决条件和设置环境依赖项 Player.js 输出附加功能结论
NEXT
我如何克隆自己,获得法学硕士学位,全天候工作——即使在睡觉时