Back to articles
Technology Insight

Hướng Dẫn Triển Khai Immich Kết Hợp Tăng Tốc Phần Cứng (Hardware Acceleration) Trên VPS GPU Để Nhận Diện Khuôn Mặt

June 2, 2026

Giới thiệu về Immich và bài toán hiệu năng xử lý ảnh bằng AI

Trong kỷ nguyên số, việc quản lý và lưu trữ kho ảnh khổng lồ của cá nhân cũng như doanh nghiệp đòi hỏi một giải pháp không chỉ an toàn mà còn thông minh. Immich đã nổi lên như một giải pháp thay thế mã nguồn mở hoàn hảo cho Google Photos với tốc độ phát triển chóng mặt và tính năng phong phú. Một trong những điểm mạnh nhất của Immich là khả năng phân loại ảnh tự động, tìm kiếm ngữ nghĩa (Smart Search) và đặc biệt là nhận diện khuôn mặt (Facial Recognition) dựa trên các mô hình Machine Learning tiên tiến.

Tuy nhiên, các tác vụ AI này cực kỳ tiêu tốn tài nguyên phần cứng. Nếu chạy các tác vụ này hoàn toàn trên CPU (Software Rendering), hệ thống VPS của bạn sẽ nhanh chóng rơi vào tình trạng quá tải (CPU 100%), gây ra hiện tượng nghẽn cổ chai, giảm tuổi thọ máy chủ và làm chậm toàn bộ các dịch vụ khác đi kèm. Để giải quyết triệt để bài toán này, việc triển khai Immich trên một VPS có hỗ trợ GPU kết hợp với tính năng Tăng tốc phần cứng (Hardware Acceleration) là giải pháp tối ưu nhất cho môi trường kinh doanh và hạ tầng doanh nghiệp.


Tại sao nên sử dụng VPS GPU cho tác vụ Machine Learning của Immich?

Sự khác biệt giữa CPU và GPU trong việc xử lý các mô hình học sâu (Deep Learning) nằm ở kiến trúc lõi. Trong khi CPU được thiết kế với ít lõi nhưng có tốc độ xử lý tuần tự cực cao, thì GPU sở hữu hàng ngàn lõi nhỏ hoạt động song song, đặc biệt phù hợp cho các phép tính ma trận phức tạp của AI.

  • Tốc độ xử lý vượt trội: Việc nhận diện khuôn mặt, trích xuất đặc trưng (embedding) trên GPU NVIDIA sử dụng kiến trúc CUDA nhanh hơn gấp 10 đến 50 lần so với CPU thông thường.
  • Tối ưu hóa chi phí vận hành: Bằng cách đẩy tải xử lý AI sang GPU, CPU của VPS hoàn toàn giải phóng để phục vụ các luồng truy cập HTTP, xử lý cơ sở dữ liệu PostgreSQL và đồng bộ hóa file, giúp hệ thống hoạt động mượt mà ổn định.
  • Khả năng mở rộng tốt: Khi số lượng người dùng và lượng ảnh tải lên đồng thời tăng mạnh, GPU sẽ đảm bảo các tiến trình nền (Background Jobs) như Face Detection và Smart Search không bị tồn đọng.

Các bước chuẩn bị hệ thống VPS GPU

Trước khi bắt đầu cấu hình Immich, bạn cần chuẩn bị một môi trường VPS chạy Linux (khuyến nghị Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS) được trang bị GPU của NVIDIA (ví dụ: NVIDIA T4, L4, hoặc RTX Series) và đã cài đặt đầy đủ driver cùng Docker container runtime.

1. Cài đặt NVIDIA Driver và CUDA Toolkit

Đảm bảo rằng hệ điều hành đã nhận diện được GPU và cài đặt driver phiên bản mới nhất. Bạn có thể kiểm tra bằng lệnh:

nvidia-smi

Nếu bảng thông số GPU hiển thị chính xác phiên bản Driver và phiên bản CUDA hỗ trợ, bạn đã sẵn sàng chuyển sang bước tiếp theo.

2. Cài đặt NVIDIA Container Toolkit

Đây là thành phần cốt lõi cho phép các container chạy trong Docker có thể trực tiếp truy cập và sử dụng tài nguyên phần cứng của GPU từ máy host. Để cài đặt, thực hiện các lệnh sau:

  1. Cấu hình repository sản phẩm của NVIDIA.
  2. Cài đặt gói nvidia-container-toolkit thông qua trình quản lý gói apt.
  3. Khởi động lại dịch vụ Docker để áp dụng thay đổi: sudo systemctl restart docker.

Cấu hình chi tiết Immich Docker Compose với GPU Acceleration

Để Immich có thể tận dụng GPU cho tác vụ học máy, chúng ta cần chỉnh sửa tệp cấu hình docker-compose.yml, cụ thể là tinh chỉnh service immich-machine-learning sử dụng image phiên bản có hậu tố -cuda và cấp quyền truy cập thiết bị phần cứng.

Thiết lập tệp cấu hình chính: docker-compose.yml

Dưới đây là đoạn mã cấu hình chuẩn chỉnh mẫu cho service xử lý AI của Immich sử dụng tài nguyên GPU:

version: "3.8"

services:
  # Các dịch vụ khác như immich-server, immich-microservices, redis, database...

  immich-machine-learning:
    container_name: immich_machine_learning
    # QUAN TRỌNG: Sử dụng image tag -cuda để kích hoạt thư viện tăng tốc
    image: ghcr.io/immich-app/immich-machine-learning:$${IMMICH_VERSION:-release}-cuda
    extends:
      file: hwaccel.ml.yml
      service: cuda
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

volumes:
  model-cache:

Tạo tệp cấu hình bổ sung: hwaccel.ml.yml

Để Docker Compose hiểu cách phân bổ tài nguyên GPU một cách chính xác và an toàn, hãy tạo một tệp riêng biệt cùng thư mục mang tên hwaccel.ml.yml với nội dung như sau:

version: "3.8"

services:
  cuda:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities:
                - gpu
                - compute

Lưu ý thương mại: Trong trường hợp VPS của bạn sở hữu nhiều GPU, bạn hoàn toàn có thể cấu hình biến môi trường MACHINE_LEARNING_DEVICE_IDS=0,1 và nâng số MACHINE_LEARNING_WORKERS lên tương ứng trong tệp .env để phân tải xử lý song song, tối ưu hóa triệt để hiệu suất phần cứng cao cấp.


Kích hoạt và cấu hình Nhận diện khuôn mặt trong Giao diện quản trị Immich

Sau khi chỉnh sửa cấu hình tệp tin, hãy khởi chạy lại toàn bộ cụm container bằng lệnh: docker compose up -d --remove-orphans.

Khi các container đã hoạt động ổn định, hãy truy cập vào giao diện Web của Immich dưới quyền tài khoản Admin và thực hiện các bước cấu hình sau để tối ưu hóa thuật toán nhận diện:

1. Kiểm tra trạng thái kết nối phần cứng

Điều hướng đến mục Administration -> Job Status. Tiến hành theo dõi log của container immich_machine_learning bằng lệnh CLI: docker logs -f immich_machine_learning. Khi một tiến trình kiểm tra hoặc tìm kiếm được kích hoạt, bạn sẽ thấy log hệ thống ghi nhận nhà cung cấp dịch vụ thực thi là CUDAExecutionProvider thay vì CPUExecutionProvider. Điều này chứng minh tác vụ đã được đẩy xuống GPU thành công.

2. Lựa chọn Mô hình nhận diện (Model Selection)

Tại mục Administration -> Settings -> Machine Learning Settings, bạn sẽ thấy các cấu hình liên quan đến Facial Recognition. Immich cho phép tùy chọn các mô hình từ nhẹ đến chuyên sâu:

  • Face Detection Model: Mặc định sử dụng mô hình hiệu năng cao buffalo_l. Mô hình này nhận diện các góc cạnh khuôn mặt rất chính xác ngay cả trong điều kiện thiếu sáng.
  • Min Score: Ngưỡng tin cậy tối thiểu để hệ thống ghi nhận một thực thể là khuôn mặt (Khuyến nghị giữ ở mức 0.7 để tránh nhận diện sai các vật thể hình tròn).

Sau khi thiết lập, hãy nhấn nút Save Changes và chọn All -> Missing tại mục Job Status để hệ thống tiến hành quét lại và phân loại toàn bộ thư viện ảnh hiện tại của bạn bằng sức mạnh của GPU.


Kết luận và các lưu ý quan trọng khi vận hành

Việc triển khai Immich kết hợp bộ tăng tốc phần cứng trên VPS GPU là một bước đi chiến lược giúp doanh nghiệp hoặc cá nhân sở hữu kho dữ liệu lớn tối ưu hóa hạ tầng công nghệ. Nó không chỉ mang lại trải nghiệm mượt mà, tức thì khi tìm kiếm và phân loại album ảnh mà còn đảm bảo tính ổn định lâu dài cho máy chủ.

Một số lưu ý bảo trì hệ thống:

  • Đồng bộ phiên bản: Luôn cập nhật đồng thời cả phiên bản hệ thống Immich chính và container Machine Learning để tránh lỗi xung đột thư viện ONNX Runtime.
  • Giám sát VRAM: Sử dụng công cụ watch -n 1 nvidia-smi trong quá trình chạy hàng loạt (Bulk Indexing) để đảm bảo bộ nhớ tài nguyên GPU không bị tràn. Nếu cần thiết, hãy điều chỉnh giảm số lượng luồng xử lý đồng thời để hệ thống vận hành an toàn.
Hướng Dẫn Triển Khai Immich Kết Hợp Tăng Tốc Phần Cứng (Hardware Acceleration) Trên VPS GPU Để Nhận Diện Khuôn Mặt | DPTCloud