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

Останнім часом виникла потреба в службі приватного чат-бота як повної альтернативи ChatGPT OpenAI. Тож я вирішив запровадити його вдома та зробити його доступним для всіх членів моєї родини разом із моїм мережевим принтером і NAS (OpenMediaVault) .


У минулому я рекомендував людям використовувати серію Llama для завдань з англійської мови та серію Qwen для завдань з китайської мови. Не було моделі з відкритим вихідним кодом, яка б була достатньо сильною в багатомовних завданнях порівняно з пропрієтарними (GPT/Claude).


Однак, як ми всі знаємо, нещодавно все змінилося. Я час від часу використовував DeepSeek-V2 щоразу, коли втомлювався з Qwen2.5, і відставав із DeepSeek V2.5 та V3 через брак обладнання. Але DeepSeek мене не підвів, R1 працює настільки вражаюче та забезпечує лише 1,5 B!


Це означає, що ми можемо запускати його навіть на процесорі з деяким значним досвідом користувача. Оскільки багато людей мають графічні процесори для ігор, швидкість не є проблемою. Змусити локальних 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 (веб-пошук) працювати для більшості людей непросто, тому я хотів би знайти якесь готове рішення.


Як я вже згадував у своєму минулому дописі , 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 --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, оскільки порт базується на докерах

 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


Виконайте дію 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 -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

Докер і гавань

Встановити докер

 # 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

 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 працює за 0.0.0.0:33801 і до нього можна отримати доступ із http://localhost:33801 або клієнти з локальної мережі за допомогою IP-адреси сервера.


Відстежуйте використання VRAM за допомогою watch -n 0.3 nvidia-smi



Журнал монітора з harbor up ollama --tail або harbor logs


Усі команди ollama можна використовувати, наприклад, 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 доступний у локальній мережі через: http://ip:33801

ollama доступний у локальній мережі через: http://ip:33821

searxng доступний у локальній мережі через: http://ip:33811


Виклик Ollama API з будь-якою програмою з інтеграцією LLM API:

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


L O A D I N G
. . . comments & more!

About Author

Tech Shinobi HackerNoon profile picture
Tech Shinobi@techshinobi
A Technologist who Cares about People

ПОВІСИТИ БИРКИ

ЦЯ СТАТТЯ БУЛА ПРЕДСТАВЛЕНА В...