paint-brush
Kør Deepseek (eller enhver anden AI-model) i dit hjem med et par linjer kodeved@techshinobi
Ny historie

Kør Deepseek (eller enhver anden AI-model) i dit hjem med et par linjer kode

ved Tech Shinobi5m2025/01/30
Read on Terminal Reader

For langt; At læse

Sådan opbygger du en privat lokal chatbot-tjeneste med RAG, der arbejder ude af boksen.
featured image - Kør Deepseek (eller enhver anden AI-model) i dit hjem med et par linjer kode
Tech Shinobi HackerNoon profile picture
0-item

På det seneste har der været behov for privat chatbot-tjeneste som et komplet alternativ til OpenAIs ChatGPT. Så jeg beslutter mig for at implementere en derhjemme og gøre den tilgængelig for alle i min husstand sammen med min netværksprinter og NAS (OpenMediaVault) .


Tidligere plejede jeg at anbefale folk at bruge Llama-serien til engelske opgaver og Qwen-serien til kinesiske opgaver. Der var ingen open source-model, der er stærk nok i flersprogede opgaver sammenlignet med proprietære (GPT/Claude).


Men som vi alle ved - har tingene ændret sig for nylig. Jeg har brugt DeepSeek-V2 af og til, hver gang jeg blev træt med Qwen2.5 og er kommet bagud med DeepSeek V2.5 og V3 på grund af mangel på hardware. Men DeepSeek svigtede mig ikke, R1 præsterer så imponerende og giver så lille som 1,5B!


Dette betyder, at vi kan køre det selv på CPU med en betydelig brugeroplevelse. Da mange mennesker har GPU'er til spil, er hastighed ikke et problem. At få lokale LLM'er til at behandle uploadede dokumenter og billeder er en stor fordel, da OpenAI begrænser denne brug for gratis konti.


Selvom det er meget nemt at installere Open WebUI med bundtet Ollama-support med den officielle kommando på én linje:

 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


Men at få RAG (Websøgning) til at virke er ikke let for de fleste, så jeg vil gerne finde en out-of-box løsning.


Som jeg nævnte i mit sidste indlæg , er havn en fantastisk testplads til at eksperimentere med forskellige LLM-stak. Men det er ikke kun fantastisk til det, det er også en alt-i-én-løsning til selv-hosting af lokale LLM'er med RAG, der arbejder out-of-box. Så lad os begynde at implementere det fra bunden, og du er velkommen til at springe trin over, da de fleste mennesker ikke starter fra OS-installation.

Systemforberedelse (valgfrit)

Som det samme som tidligere , gå gennem installationsprocessen ved hjælp af debian-11.6.0-amd64-netinst.iso


Tilføj til sudoer usermod -aG sudo username og genstart derefter


(Valgfrit) Tilføj ekstra swap

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


og gør swapfilen til vedvarende nano /etc/fstab

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

Tjek med swapon --show eller free -h


Deaktiver Nouveau-driver

 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


Installer afhængigheder

 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


(Valgfrit) Udfør afinstallation, hvis det er nødvendigt

 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*


Installer cuda-tookit og 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


Installer NVIDIA Container Toolkit, da havnen er docker-baseret

 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


Derefter sudo apt-get update og sudo apt-get install -y nvidia-container-toolkit


Udfør en cuda post-install handling 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}}


Derefter sudo update-initramfs -u , ldconfig eller source ~/.bashrc for at anvende ændringer


efter genstart, bekræft med nvidia-smi og nvcc --version


Installer Miniconda (valgfrit, ikke til havn)

 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

Installer 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

Udfør efterinstallation til docker uden sudo

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

Manuel installation af Harbor

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


Bekræft med harbor --version


Tilføj med RAG-understøttelse til standarder med harbor defaults add searxng


Brug harbor defaults list til at tjekke, nu er der tre aktive tjenester: ollama , webui , searxng


Kør med harbor up for at bringe disse tjenester op i docker


Brug harbor ps som docker ps , og harbor logs for at se tailing logs


Nu serverer open-webui-frontenden på 0.0.0.0:33801 og kan tilgås fra http://localhost:33801 eller klienter fra LAN med serverens IP-adresse.


Overvåg VRAM-brug med watch -n 0.3 nvidia-smi



Overvåg log med harbor up ollama --tail eller harbor logs


Alle ollama-kommandoer er brugbare, såsom harbor ollama list


Det er tid til at få adgang fra andre enheder (desktop/mobil) for at registrere en administratorkonto og downloade modeller nu.

Brug af Local LLM

Når du har logget ind med en administratorkonto, skal du klikke på øverste højre avatarikon, åbne Admin Panel og derefter Settings eller blot få adgang via `http://ip:33801/admin/settings.


Klik på Models , og øverst til højre klik på Manage Models , der ligner en downloadknap.


Indsæt deepseek-r1 eller en hvilken som helst anden model i tekstboksen nedenfor Pull a model from Ollama.com og klik på download-knappen i højre side.


Efter modellen er downloadet, kan det kræve en opdatering, og den nyligt downloadede model vil være brugbar under rullemenuen på siden New Chat (hjemmesiden).


Nu kører det ikke kun en chatbot-alternativ til ChatGPT, men også et fuldt funktionelt API-alternativ til OpenAI API, plus et privat søgemaskinealternativ til Google!


webui er tilgængelig i LAN via: http://ip:33801

ollama er tilgængelig i LAN via: http://ip:33821

searxng er tilgængelig i LAN via: http://ip:33811


Kald Ollama API med enhver applikation med LLM API-integration:

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