Chuyển đến nội dung chính

Cách sử dụng DeepSeek Janus-Pro tại máy local

Tìm hiểu cách thiết lập dự án DeepSeek Janus-Pro, tự xây dựng image Docker và chạy ứng dụng web Janus cục bộ trên laptop của bạn.
Đã cập nhật 5 thg 10, 2026  · 13 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

DeepSeek, một startup AI của Trung Quốc, đã làm rung chuyển ngành AI toàn cầu, thổi bay 1 nghìn tỷ đô khỏi các sàn chứng khoán Mỹ và khiến các ông lớn công nghệ như Nvidia và OpenAI phải dè chừng. Họ nhanh chóng nổi lên dẫn đầu ở các mảng tạo sinh văn bản, suy luận, mô hình thị giác và tạo ảnh. Gần đây, DeepSeek ra mắt các mô hình tiên tiến, bao gồm Janus, một mô hình đa phương thức có khả năng hiểu dữ liệu thị giác và tạo ảnh từ văn bản.

Hình ảnh: Tác giả

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Janus Series, thiết lập dự án Janus, xây dựng container Docker để chạy mô hình cục bộ và kiểm thử khả năng của nó với nhiều lời nhắc hình ảnh và văn bản.

Tìm hiểu về các mô hình DeepSeek đang làm thay đổi ngành AI toàn cầu:

DeepSeek Janus-Series là gì?

DeepSeek Janus-Series là dòng mô hình đa phương thức mới được thiết kế để hợp nhất các tác vụ hiểu và tạo sinh thị giác bằng các khung phương pháp sáng tạo. Dòng sản phẩm gồm Janus, JanusFlow và bản nâng cao Janus-Pro, mỗi bản xây dựng trên thế hệ trước với những cải tiến đáng kể về hiệu năng, hiệu quả và năng lực đa phương thức.

1. Janus

Janus là một khung autoregressive sáng tạo tách mã hoá thị giác thành các nhánh riêng cho tác vụ hiểu và tạo sinh, đồng thời sử dụng kiến trúc transformer thống nhất. Cách tiếp cận này giải quyết xung đột giữa các vai trò đó, tăng tính linh hoạt và hiệu quả. Janus sánh ngang hoặc vượt các mô hình chuyên biệt theo tác vụ, trở thành ứng viên sáng giá cho thế hệ hệ thống đa phương thức tiếp theo.

2. JanusFlow

JanusFlow kết hợp mô hình hoá ngôn ngữ autoregressive với rectified flow, một kỹ thuật tạo sinh tối tân. Thiết kế tối giản cho phép huấn luyện dễ dàng trong khung LLM mà không cần chỉnh sửa phức tạp. JanusFlow thể hiện hiệu năng vượt trội trên các thang đo so với cả cách tiếp cận chuyên biệt lẫn hợp nhất, hiệu quả mở rộng ranh giới của mô hình hoá thị giác-ngôn ngữ.

3. Janus-Pro

Janus-Pro nâng cấp các mô hình trước bằng việc giới thiệu chiến lược huấn luyện tối ưu, mở rộng tập dữ liệu huấn luyện và scale lên kích thước mô hình lớn hơn. Những cải tiến này giúp tăng đáng kể khả năng hiểu đa phương thức và tuân thủ hướng dẫn văn bản-to-ảnh, đồng thời đảm bảo việc tạo ảnh từ văn bản ổn định hơn.

Janus Pro benchmark

Nguồn: deepseek-ai/Janus

Đọc Janus-Pro của DeepSeek: Tính năng, so sánh với DALL-E 3 & hơn thế nữa để tìm hiểu thêm về dòng Janus, cách truy cập và so sánh với DALL-E 3 của OpenAI.

Thiết lập dự án Janus

Janus là mô hình tương đối mới, hiện chưa có phiên bản lượng tử hoá hoặc ứng dụng AI cục bộ sẵn sàng để dùng dễ dàng trên laptop hay desktop. 

Tuy vậy, kho Janus trên GitHub cung cấp một bản demo ứng dụng web Gradio rất tốt để mọi người thử. Tuy nhiên, thách thức là bản demo thường không chạy do xung đột nhiều gói.

Để khắc phục, trong dự án này, chúng ta sẽ chỉnh sửa mã gốc, tự xây dựng image Docker và chạy container cục bộ bằng ứng dụng Docker Desktop. 

1. Cài đặt Docker Desktop

Bắt đầu bằng cách tải và cài đặt phiên bản mới nhất của Docker Desktop từ trang web chính thức của Docker.

Lưu ý cho người dùng Windows:

Nếu dùng Windows, bạn cũng cần cài đặt Windows Subsystem for Linux (WSL). Mở terminal và chạy lệnh sau để cài WSL:

wsl --install

2. Sao chép kho Janus

Tiếp theo, sao chép kho Janus từ GitHub và chuyển đến thư mục dự án:

git clone https://github.com/deepseek-ai/Janus.git
cd Janus

3. Chỉnh sửa mã demo

Đi tới thư mục demo và mở tệp app_januspro.py trong trình soạn thảo bạn thích. Thực hiện các thay đổi sau:

  1. Đổi tên mô hình: Thay deepseek-ai/Janus-Pro-7B bằng deepseek-ai/Janus-Pro-1B.

Thay đổi này sẽ tải phiên bản nhẹ hơn của mô hình, chỉ 4,1 GB, phù hợp hơn để dùng cục bộ.

Modifying the janus pro web application file

  1. Cập nhật dòng cuối của script: Sửa hàm demo.queue thành như sau:
demo.queue(concurrency_count=1, max_size=10).launch(
    server_name="0.0.0.0", server_port=7860
)

Modifying the janus pro web application file

Thay đổi này đảm bảo tương thích với URL và cổng Docker.

4. Tạo image Docker

Để container hoá ứng dụng, tạo một Dockerfile ở thư mục gốc của dự án. Dùng nội dung sau cho Dockerfile:

# Use the PyTorch base image
FROM pytorch/pytorch:latest

# Set the working directory inside the container
WORKDIR /app

# Copy the current directory into the container
COPY . /app

# Install necessary Python packages
RUN pip install -e .[gradio]

# Set the entrypoint for the container to launch your Gradio app
CMD ["python", "demo/app_januspro.py"]

Dockerfile sẽ: 

  • Tạo image Docker sử dụng image nền PyTorch.
  • Thiết lập thư mục làm việc bên trong container.
  • Sao chép tất cả tệp cần thiết từ máy local của bạn vào thư mục /app trong container Docker.
  • Cài đặt mọi phụ thuộc cần thiết cho ứng dụng.
  • Cuối cùng, khởi chạy ứng dụng Gradio trong container.

Xây dựng và chạy Docker Image 

Khi Dockerfile đã sẵn sàng, chúng ta sẽ build image Docker và chạy container.

Bạn có thể học khóa Introduction to Docker để nắm các kiến thức cơ bản về xây dựng và triển khai image Docker. 

Gõ lệnh sau trong terminal để tạo image Docker. Lệnh này sẽ dùng Dockerfile ở thư mục gốc và gán tên janus cho image:

docker build -t janus . 

Việc build từ đầu mất khoảng 10 đến 15 phút, tuỳ tốc độ internet của bạn. 

building the Janus Docker image

Lệnh sau sẽ khởi chạy một container Docker cho ứng dụng Janus. Nó bật hỗ trợ GPU, ánh xạ cổng 7860 để truy cập app Gradio và đảm bảo lưu trữ bền vững cho các tệp mô hình của Hugging Face.

docker run -it -p 7860:7860 -d -v huggingface:/root/.cache/huggingface -w /app --gpus all --name janus janus:latest

Nếu mở ứng dụng Docker Desktop và chuyển tới thẻ “Containers”, bạn sẽ thấy container janus đang chạy. Tuy nhiên, nó chưa sẵn sàng để sử dụng.

Running the Janus Image in the container.

Để kiểm tra tiến trình, bấm vào container janus rồi vào thẻ “Logs”. Tại đây, bạn sẽ thấy container đang tải tệp mô hình từ Hugging Face Hub.

Logs on janus Container

Khi mô hình đã tải xong, logs sẽ hiển thị thông báo cho biết ứng dụng đang chạy.

The model have successfully downloaded and web application is running.

Sau đó, bạn có thể truy cập ứng dụng bằng cách mở URL sau trên trình duyệt: http://localhost:7860/.

Nếu gặp sự cố, vui lòng kiểm tra phiên bản cập nhật của dự án Janus tại kingabzpro/Janus: Janus-Series.

Kiểm thử mô hình Janus Pro

Ứng dụng web có giao diện sạch, mọi thứ có vẻ hoạt động trơn tru. Ở phần này, chúng ta sẽ kiểm thử khả năng hiểu đa phương thức và tạo ảnh từ văn bản của Janus Pro.

Kiểm thử khả năng hiểu đa phương thức

Để đánh giá khả năng hiểu đa phương thức, trước tiên chúng ta tải một hình ảnh từ hướng dẫn của DataCamp và yêu cầu mô hình giải thích. Kết quả rất ấn tượng — ngay cả với bản 1B nhỏ hơn, phản hồi vẫn chính xác và chi tiết.

Janus Web application UI Multimodal Understanding

Tiếp theo, chúng ta tải một hình khác và yêu cầu mô hình tóm tắt nội dung của một infographic. Mô hình hiểu chính xác văn bản trong ảnh và đưa ra phản hồi rất chuẩn xác, mạch lạc. Điều này cho thấy khả năng xử lý và diễn giải cả yếu tố thị giác lẫn văn bản rất tốt.

Janus Web application UI Multimodal Understanding

Kiểm thử tạo ảnh từ văn bản

Kéo xuống ứng dụng, bạn sẽ thấy mục “Text-to-Image Generation”. Tại đây, bạn có thể nhập lời nhắc tuỳ chọn và bấm nút “Generate Images”. Mô hình sẽ tạo năm biến thể của ảnh, có thể mất vài phút để hoàn tất.

Janus Web application UI Text to image generations

Kết quả rất đáng chú ý, chất lượng và mức độ chi tiết tương đương Stable Diffusion XL.

Bạn có thể học cách fine-tune Stable Diffusion XL với DreamBooth và LoRA trên ảnh cá nhân của bạn. 

Janus Web application UI Text to image generations

Hãy thử một lời nhắc khác:

Prompt:

“Bức ảnh khắc hoạ một con mắt được thiết kế tinh xảo trên nền tròn trang trí bằng các hoạ tiết xoáy cầu kỳ gợi nên cả chủ nghĩa hiện thực lẫn siêu thực. Tâm điểm là mống mắt xanh rực rỡ được bao quanh bởi những mạch nhỏ toả ra từ đồng tử, tạo chiều sâu và cường độ. Hàng mi dài, sẫm, đổ bóng nhẹ lên vùng da xung quanh, vốn trông mịn nhưng hơi có kết cấu như thể đã nhuốm thời gian.

Phía trên mắt là một cấu trúc như đá, gợi liên tưởng đến một phần của kiến trúc cổ điển, bổ sung tầng lớp bí ẩn và nét thanh lịch vượt thời gian cho bố cục. Yếu tố kiến trúc này tương phản rõ nét nhưng hài hoà với những đường cong hữu cơ xung quanh. Bên dưới con mắt là một họa tiết trang trí khác gợi phong cách baroque, càng làm nổi bật cảm giác vĩnh cửu được gói trọn trong từng chi tiết chế tác tỉ mỉ.

Tổng thể, bầu không khí toát lên một hào quang huyền bí đan xen trơn tru với những yếu tố gợi nhắc sự vượt thời gian, đạt được thông qua sự đặt cạnh giữa kết cấu hiện thực và những nét chấm phá nghệ thuật siêu thực. Mỗi thành phần — từ các thiết kế tinh vi bao quanh con mắt đến mảnh đá có vẻ cổ xưa phía trên — đều góp phần độc đáo tạo nên một bức hoạ thị giác cuốn hút, thấm đẫm vẻ hấp dẫn bí ẩn.””

Janus Web application UI Text to image generations

Một lần nữa, kết quả rất ấn tượng. Ảnh được tạo nắm bắt trọn vẹn các chi tiết tinh xảo và yếu tố nghệ thuật siêu thực được mô tả trong lời nhắc.

Kết luận

Để kiểm thử đầy đủ khả năng của mô hình, DeepSeek đã triển khai cùng phiên bản ứng dụng web trên Hugging Face Spaces. Bạn có thể truy cập tại Chat With Janus-Pro-7B. Một trong những điểm nổi bật của Janus Pro là độ chính xác cao, ngay cả khi dùng các biến thể nhỏ như bản 1B.

Trong hướng dẫn này, chúng ta đã khám phá Janus Pro, một mô hình đa phương thức có thể vừa hiểu ảnh vừa tạo ảnh từ lời nhắc văn bản. Bên cạnh đó, chúng ta đã xây dựng giải pháp cục bộ để sử dụng mô hình riêng tư trên GPU laptop. Thiết lập này nhanh, hiệu quả và cho phép bạn thoải mái thử nghiệm với nguồn lực hạn chế.

Xem hướng dẫn mới nhất của chúng tôi về Fine-Tuning DeepSeek R1 (Mô hình suy luận). Bạn sẽ học cách huấn luyện mô hình suy luận trên bộ dữ liệu chuỗi suy nghĩ trong y khoa để xây dựng các "bác sĩ" AI tốt hơn trong tương lai.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

Chủ đề
Trí tuệ Nhân tạo
Mô hình Ngôn ngữ Lớn

Top khóa học AI

Khóa học

Nhập môn LLMs trong Python

3 giờ
37K
Hãy tìm hiểu chi tiết về các mô hình ngôn ngữ lớn (LLMs) và kiến trúc transformer cách mạng mà chúng được xây dựng dựa trên!
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm