paint-brush
只需几行代码即可在家中运行 Deepseek(或任何其他 AI 模型)经过@techshinobi
新歷史

只需几行代码即可在家中运行 Deepseek(或任何其他 AI 模型)

经过 Tech Shinobi5m2025/01/30
Read on Terminal Reader

太長; 讀書

如何使用 RAG 构建开箱即用的私人本地聊天机器人服务。
featured image - 只需几行代码即可在家中运行 Deepseek(或任何其他 AI 模型)
Tech Shinobi HackerNoon profile picture
0-item

最近,需要私人聊天机器人服务来完全替代 OpenAI 的 ChatGPT。因此,我决定在家里实现一个,并让家里的每个人都可以访问它以及我的网络打印机和NAS(OpenMediaVault)


过去,我经常建议大家用 Llama 系列做英语任务,用 Qwen 系列做中文任务。没有开源模型在多语言任务上比专有模型(GPT/Claude)更强大。


然而,众所周知,最近情况发生了变化。每当我厌倦了 Qwen2.5 时,我就会偶尔使用 DeepSeek-V2,并且由于缺乏硬件而落后于 DeepSeek V2.5 和 V3。但 DeepSeek 没有让我失望,R1 的表现非常出色,并且仅提供 1.5B!


这意味着我们甚至可以在具有一定用户体验的 CPU 上运行它。由于许多人都有用于游戏的 GPU,因此速度不是问题。让本地 LLM 处理上传的文档和图像是一个很大的优势,因为 OpenAI 限制免费帐户的此类使用。


尽管使用官方的单行命令安装捆绑的 Ollama 支持的 Open WebUI非常容易:

 docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama


但是对于大多数人来说,让 RAG(网络搜索)正常工作并不容易,所以我想找到一些开箱即用的解决方案。


正如我在上一篇文章中提到的,harbor 是试验不同 LLM 堆栈的绝佳试验台。但它不仅如此,它还是一个自托管本地 LLM 的一体化解决方案,RAG 开箱即用。所以,让我们从头开始实现它,并且可以随意跳过步骤,因为大多数人不会从操作系统安装开始。

系统准备(可选)

之前相同,使用debian-11.6.0-amd64-netinst.iso完成安装过程


添加sudoer usermod -aG sudo username然后重启


(可选)添加额外交换

fallocate -l 64G /home/swapfile chmod 600 /home/swapfile mkswap /home/swapfile swapon /home/swapfile


并使交换文件持久化nano /etc/fstab

 UUID=xxxxx-xxx swap swap defaults,pri=100 0 0 /home/swapfile swap swap defaults,pri=10 0 0

使用swapon --showfree -h检查


禁用 Nouveau 驱动程序

bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" update-initramfs -u update-grub reboot


安装依赖项

apt install linux-headers-`uname -r` build-essential libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev gcc software-properties-common sudo git python3 python3-venv pip libgl1 git-lfs -y


(可选)如果需要,执行卸载

apt-get purge nvidia* apt remove nvidia* apt-get purge cuda* apt remove cuda* rm /etc/apt/sources.list.d/cuda* apt-get autoremove && apt-get autoclean rm -rf /usr/local/cuda*


安装 cuda-tookit 和 cuda

 wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-debian11-12-4-local_12.4.1-550.54.15-1_amd64.deb sudo dpkg -i cuda-repo-debian11-12-4-local_12.4.1-550.54.15-1_amd64.debsudo cp /var/cuda-repo-debian11-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo add-apt-repository contrib sudo apt-get update sudo apt-get -y install cuda-toolkit-12-4 sudo apt install libxnvctrl0=550.54.15-1 sudo apt-get install -y cuda-drivers


安装 NVIDIA Container Toolkit,因为 Harbor 是基于 Docker 的

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list


然后sudo apt-get updatesudo apt-get install -y nvidia-container-toolkit


执行 cuda 安装后操作nano ~/.bashrc

 export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


然后sudo update-initramfs -uldconfigsource ~/.bashrc应用更改


重启后,使用nvidia-sminvcc --version确认


安装 Miniconda(可选,不适用于 Harbor)

 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && sudo chmod +x Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh

Docker 和 Harbor

安装 docker

 # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

无需 sudo 即可执行 docker 的后续安装

sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker run hello-world

手动安装 Harbor

 git clone https://github.com/av/harbor.git && cd harbor ./harbor.sh ln


使用harbor --version进行验证


添加 RAG 支持到默认设置,使用harbor defaults add searxng


使用harbor defaults list检查,目前有三个服务处于活动状态: ollamawebuisearxng


运行harbor up在 docker 中启动这些服务


使用harbor ps作为docker ps ,并使用harbor logs查看 tailing 日志


现在 open-webui 前端服务于0.0.0.0:33801 ,可以从http://localhost:33801或使用服务器 IP 地址的 LAN 客户端进行访问。


使用watch -n 0.3 nvidia-smi监控 VRAM 使用情况



使用harbor up ollama --tail或者harbor logs监控日志


所有 ollama 命令均可用,例如harbor ollama list


现在是时候从其他设备(桌面/移动设备)访问以注册管理员帐户并下载模型了。

使用本地法学硕士

使用管理员帐户登录后,单击右上角的头像图标,打开Admin Panel然后打开Settings ,或者直接通过“http://ip:33801/admin/settings”访问。


单击Models ,然后单击右上角的Manage Models (看起来像下载按钮)。


deepseek-r1任何其他模型放在下面的文本框中Pull a model from Ollama.com ,然后单击右侧的下载按钮。


模型下载后,可能需要刷新,新下载的模型将在New Chat (主页)的下拉菜单下可用。


现在,它不仅运行着 ChatGPT 的聊天机器人替代品,还运行着 OpenAI API 的功能齐全的 API 替代品,以及 Google 的私人搜索引擎替代品!


局域网内可以通过以下方式访问 webui: http://ip:33801

ollama 可在 LAN 内通过以下方式访问: http://ip:33821

searxng 可在局域网内通过以下方式访问: http://ip:33811


使用任何具有 LLM API 集成的应用程序调用Ollama API

 http://ip:33821/api/ps http://ip:33821/v1/models http://ip:33821/api/generate http://ip:33821/v1/chat/completionsb