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) შედარებით.


თუმცა, როგორც ყველამ ვიცით, ცოტა ხნის წინ ყველაფერი შეიცვალა. მე ხშირად ვიყენებდი DeepSeek-V2-ს ყოველ ჯერზე, როცა დავიღალე Qwen2.5-ით და ჩამოვრჩებოდი DeepSeek V2.5-სა და V3-ს აპარატურის ნაკლებობის გამო. მაგრამ DeepSeek-მა არ დამიწუნა, R1 იმდენად შთამბეჭდავია და უზრუნველყოფს 1,5 B-ს!


ეს ნიშნავს, რომ ჩვენ შეგვიძლია მისი გაშვება CPU-ზეც კი, მომხმარებლის მნიშვნელოვანი გამოცდილებით. რადგან ბევრ ადამიანს აქვს სათამაშო პროცესორები, სიჩქარე არ არის პრობლემა. ადგილობრივი LLM-ების მიერ ატვირთული დოკუმენტების და სურათების დამუშავება დიდი უპირატესობაა, რადგან OpenAI ზღუდავს ამ გამოყენებას უფასო ანგარიშებისთვის.


მიუხედავად იმისა, რომ Open WebUI-ის დაყენება შეფუთული Ollama მხარდაჭერით ძალიან მარტივია ოფიციალური ერთსტრიქონიანი ბრძანებით:

 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-ის (ვებ ძიების) მუშაობა არ არის მარტივი ადამიანების უმრავლესობისთვის, ამიტომ მსურს ვიპოვო გამოსავალი.


როგორც ჩემს ბოლო პოსტში აღვნიშნე, ჰარბორი შესანიშნავი ტესტია სხვადასხვა LLM სტეკთან ექსპერიმენტებისთვის. მაგრამ ეს არა მხოლოდ შესანიშნავია ამისთვის, ის ასევე არის ყოვლისმომცველი გადაწყვეტა ადგილობრივი LLM-ების თვითმასპინძლობისთვის, RAG-ით, რომელიც მუშაობს გარედან. მაშ ასე, დავიწყოთ მისი დანერგვა ნულიდან და მოგერიდებათ გამოტოვოთ ნაბიჯები, რადგან ადამიანების უმეტესობა არ იწყებს OS-ის ინსტალაციას.

სისტემის მომზადება (სურვილისამებრ)

ისევე, როგორც ადრე , გაიარეთ ინსტალაციის პროცესი 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


და გახადეთ swapfile მუდმივი nano /etc/fstab

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

შეამოწმეთ swapon --show ან free -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 დაფუძნებულია დოკერზე

 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 update და sudo apt-get install -y nvidia-container-toolkit


შეასრულეთ სხვა ინსტალაციის შემდგომი მოქმედება 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 -u , ldconfig ან source ~/.bashrc ცვლილებების გამოსაყენებლად


გადატვირთვის შემდეგ დაადასტურეთ nvidia-smi და nvcc --version


დააინსტალირეთ Miniconda (სურვილისამებრ, არა ნავსადგურისთვის)

 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

დააინსტალირეთ დოკერი

 # 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 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 შესამოწმებლად, ახლა არის სამი სერვისი აქტიური: ollama , webui , searxng


გაუშვით harbor up თან ერთად, რომ ეს სერვისები გამოიტანოთ დოკერში


გამოიყენეთ harbor ps , როგორც docker ps , და harbor logs კუდის მორების სანახავად


ახლა open-webui frontend ემსახურება 0.0.0.0:33801 და მისი წვდომა შესაძლებელია http://localhost:33801 ან კლიენტებიდან LAN-დან სერვერის IP მისამართით.


VRAM-ის გამოყენების მონიტორინგი watch -n 0.3 nvidia-smi ით



მონიტორის ჟურნალი harbor up ollama --tail ან harbor logs


ყველა olama ბრძანება გამოსაყენებელია, როგორიცაა harbor ollama list


დროა შეხვიდეთ სხვა მოწყობილობებიდან (დესკტოპიდან/მობილურიდან), რომ დაარეგისტრიროთ ადმინისტრატორი და ჩამოტვირთოთ მოდელები ახლავე.

ლოკალური LLM-ის გამოყენება

ადმინისტრატორის ანგარიშით შესვლის შემდეგ, დააწკაპუნეთ ავატარის ზევით მარჯვენა ხატულაზე, გახსენით Admin Panel და შემდეგ Settings , ან უბრალოდ შედით `http://ip:33801/admin/settings-ით.


დააწკაპუნეთ Models და ზედა მარჯვენა კუთხეში დააწკაპუნეთ Manage Models , რომელიც ჩამოტვირთვის ღილაკს ჰგავს.


განათავსეთ deepseek-r1 ან ნებისმიერი სხვა მოდელი ქვემოთ მოცემულ ტექსტურ ყუთში. Pull a model from Ollama.com და დააწკაპუნეთ ჩამოტვირთვის ღილაკს მარჯვენა მხარეს.


მოდელის ჩამოტვირთვის შემდეგ, მას შეიძლება დასჭირდეს განახლება და ახლად ჩამოტვირთული მოდელი გამოყენებული იქნება ჩამოსაშლელი მენიუში New Chat (მთავარი) გვერდზე.


ახლა, ის არა მხოლოდ აწარმოებს ჩეთბოტის ალტერნატივას ChatGPT-ის, არამედ სრულად ფუნქციონალური API ალტერნატივის OpenAI API-ს, პლუს პირადი საძიებო სისტემის ალტერნატივას Google-ისთვის!


webui ხელმისაწვდომია LAN-ის ფარგლებში: http://ip:33801

olama ხელმისაწვდომია LAN-ის ფარგლებში: http://ip:33821

searxng ხელმისაწვდომია LAN-ში: http://ip:33811


დაურეკეთ Olama API-ს ნებისმიერი აპლიკაციით LLM API ინტეგრაციით:

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