Gần đây, có nhu cầu về dịch vụ chatbot riêng tư như một giải pháp thay thế hoàn chỉnh cho ChatGPT của OpenAI. Vì vậy, tôi quyết định triển khai một dịch vụ tại nhà và cho phép mọi người trong gia đình tôi cùng với máy in mạng và NAS (OpenMediaVault) của tôi có thể truy cập.
Trước đây, tôi thường khuyên mọi người sử dụng chuỗi Llama cho các nhiệm vụ tiếng Anh và chuỗi Qwen cho các nhiệm vụ tiếng Trung. Không có mô hình nguồn mở nào đủ mạnh trong các nhiệm vụ đa ngôn ngữ so với các mô hình độc quyền (GPT/Claude).
Tuy nhiên, như chúng ta đều biết—mọi thứ đã thay đổi gần đây. Tôi đã sử dụng DeepSeek-V2 thỉnh thoảng mỗi khi tôi cảm thấy mệt mỏi với Qwen2.5 và đã tụt hậu với DeepSeek V2.5 và V3 do thiếu phần cứng. Nhưng DeepSeek đã không làm tôi thất vọng, R1 hoạt động rất ấn tượng và cung cấp nhỏ tới 1,5B!
Điều này có nghĩa là chúng ta có thể chạy nó ngay cả trên CPU với một số kinh nghiệm người dùng đáng kể. Vì nhiều người có GPU để chơi game, tốc độ không phải là vấn đề. Việc khiến LLM cục bộ xử lý các tài liệu và hình ảnh đã tải lên là một lợi thế lớn vì OpenAI giới hạn việc sử dụng này cho các tài khoản miễn phí.
Mặc dù việc cài đặt Open WebUI với hỗ trợ Ollama Bundled rất dễ dàng bằng lệnh một dòng chính thức:
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
Nhưng để sử dụng RAG (Tìm kiếm trên web) không phải là điều dễ dàng với hầu hết mọi người, vì vậy tôi muốn tìm ra một giải pháp đột phá.
Như tôi đã đề cập trong bài đăng trước , harbor là một nền tảng thử nghiệm tuyệt vời để thử nghiệm với các ngăn xếp LLM khác nhau. Nhưng nó không chỉ tuyệt vời cho mục đích đó mà còn là giải pháp tất cả trong một để tự lưu trữ LLM cục bộ với RAG hoạt động ngay lập tức. Vì vậy, hãy bắt đầu triển khai nó từ đầu và thoải mái bỏ qua các bước vì hầu hết mọi người không bắt đầu từ cài đặt hệ điều hành.
Tương tự như trước đây , hãy thực hiện quá trình cài đặt bằng debian-11.6.0-amd64-netinst.iso
Thêm vào sudoer usermod -aG sudo username
sau đó khởi động lại
(Tùy chọn) Thêm hoán đổi bổ sung
fallocate -l 64G /home/swapfile chmod 600 /home/swapfile mkswap /home/swapfile swapon /home/swapfile
và làm cho tệp hoán đổi liên tục nano /etc/fstab
UUID=xxxxx-xxx swap swap defaults,pri=100 0 0 /home/swapfile swap swap defaults,pri=10 0 0
Kiểm tra bằng swapon --show
hoặc free -h
Vô hiệu hóa trình điều khiển 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
Cài đặt các phụ thuộc
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
(Tùy chọn) Thực hiện gỡ cài đặt nếu cần
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*
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
Cài đặt NVIDIA Container Toolkit vì harbor dựa trên 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
Sau đó sudo apt-get update
và sudo apt-get install -y nvidia-container-toolkit
Thực hiện hành động cuda sau khi cài đặt 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}}
Sau đó sudo update-initramfs -u
, ldconfig
hoặc source ~/.bashrc
để áp dụng các thay đổi
sau khi khởi động lại, xác nhận bằng nvidia-smi
và nvcc --version
Cài đặt Miniconda (Tùy chọn, không dành cho bến cảng)
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
Thực hiện cài đặt sau cho docker mà không cần sudo
sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker run hello-world
git clone https://github.com/av/harbor.git && cd harbor ./harbor.sh ln
Xác minh với harbor --version
Thêm với hỗ trợ RAG vào mặc định với harbor defaults add searxng
Sử dụng harbor defaults list
để kiểm tra, hiện tại có ba dịch vụ đang hoạt động: ollama
, webui
, searxng
Chạy với harbor up
để đưa các dịch vụ này lên docker
Sử dụng harbor ps
như docker ps
và harbor logs
để xem nhật ký đuôi
Hiện tại, giao diện open-webui đang phục vụ tại 0.0.0.0:33801
và có thể truy cập từ http://localhost:33801
hoặc từ máy khách trong mạng LAN bằng địa chỉ IP của máy chủ.
Theo dõi việc sử dụng VRAM với watch -n 0.3 nvidia-smi
Theo dõi nhật ký với harbor up ollama --tail
hoặc harbor logs
Tất cả các lệnh ollama đều có thể sử dụng như harbor ollama list
Đã đến lúc truy cập từ các thiết bị khác (máy tính để bàn/di động) để đăng ký tài khoản quản trị và tải xuống mô hình ngay bây giờ.
Sau khi đăng nhập bằng tài khoản quản trị, hãy nhấp vào biểu tượng ảnh đại diện góc trên bên phải, mở Admin Panel
rồi Settings
hoặc chỉ cần truy cập qua `http://ip:33801/admin/settings.
Nhấp vào Models
và ở trên cùng bên phải, nhấp vào Manage Models
trông giống như nút tải xuống.
Nhập deepseek-r1
hoặc bất kỳ mô hình nào khác vào hộp văn bản bên dưới. Pull a model from Ollama.com
và nhấp vào nút tải xuống ở bên phải.
Sau khi tải xuống mô hình, có thể cần phải làm mới và mô hình mới tải xuống sẽ có thể sử dụng được trong menu thả xuống trên trang New Chat
(trang chủ).
Giờ đây, nó không chỉ chạy một chatbot thay thế cho ChatGPT mà còn là một API thay thế đầy đủ chức năng cho OpenAI API, cùng với một công cụ tìm kiếm riêng tư thay thế cho Google!
webui có thể truy cập trong LAN qua: http://ip:33801
ollama có thể truy cập trong LAN qua: http://ip:33821
searxng có thể truy cập trong LAN qua: http://ip:33811
Gọi Ollama API với bất kỳ ứng dụng nào có tích hợp LLM API:
http://ip:33821/api/ps http://ip:33821/v1/models http://ip:33821/api/generate http://ip:33821/v1/chat/completionsb