paint-brush
Chạy Deepseek (Hoặc bất kỳ mô hình AI nào khác) tại nhà của bạn chỉ bằng một vài dòng mãtừ tác giả@techshinobi
Bài viết mới

Chạy Deepseek (Hoặc bất kỳ mô hình AI nào khác) tại nhà của bạn chỉ bằng một vài dòng mã

từ tác giả Tech Shinobi5m2025/01/30
Read on Terminal Reader

dài quá đọc không nổi

Cách xây dựng dịch vụ chatbot cục bộ riêng tư với RAG hoạt động ngay lập tức.
featured image - Chạy Deepseek (Hoặc bất kỳ mô hình AI nào khác) tại nhà của bạn chỉ bằng một vài dòng mã
Tech Shinobi HackerNoon profile picture
0-item

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.

Chuẩn bị hệ thống (Tùy chọn)

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*


Cài đặt cuda-tookit và 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 updatesudo 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-sminvcc --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

Docker & Bến cảng

Cài đặt 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

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

Cài đặt thủ công Harbor

 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 psharbor 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ờ.

Sử dụng LLM địa phương

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