Chào mừng! Trong bài hướng dẫn này, tôi sẽ hướng dẫn bạn cách chạy DeepSeek V3 0324, một mô hình ngôn ngữ mạnh mẽ với 671 tỷ tham số, trên máy tính của bạn. Chúng ta sẽ xem xét mọi thứ từ chuẩn bị đến việc chạy các prompt đầu tiên của bạn bằng các kỹ thuật định lượng động cân bằng độ chính xác của mô hình với yêu cầu bộ nhớ.
DeepSeek V3 0324: Nó tốt như thế nào?

Cập nhật tháng 3 năm 2024 của DeepSeek mang lại những cải tiến đáng kể về hiệu suất so với mô hình V3 trước đó:
- Điểm số MMLU-Pro cải thiện +5.3% (lên 81.2%)
- Điểm số AIME cải thiện +19.8%
- Điểm số LiveCodeBench cải thiện +10.0%
- Điểm số GPQA cải thiện +9.3%
Mô hình gốc có 671 tỷ tham số khổng lồ, nghĩa là chúng ta cần các kỹ thuật định lượng hiệu quả để chạy nó trên phần cứng tiêu dùng.
Dưới đây là các tùy chọn định lượng có sẵn để cân bằng dung lượng đĩa và độ chính xác:
Loại bit MoE | Kích thước đĩa | Độ chính xác | Chi tiết |
---|---|---|---|
1.78bit (IQ1_S) | 173GB | Đủ tốt | 2.06/1.56bit |
1.93bit (IQ1_M) | 183GB | Khá | 2.5/2.06/1.56 |
2.42bit (IQ2_XXS) | 203GB | Đề xuất | 2.5/2.06bit |
2.71bit (Q2_K_XL) | 231GB | Đề xuất | 3.5/2.5bit |
3.5bit (Q3_K_XL) | 320GB | Tuyệt vời | 4.5/3.5bit |
4.5bit (Q4_K_XL) | 406GB | Tốt nhất | 5.5/4.5bit |
Mô hình float8 gốc tiêu tốn 715GB, vì vậy những phiên bản định lượng này mang lại tiết kiệm không gian đáng kể!
Hướng dẫn từng bước: Chạy DeepSeek V3 0324 trong llama.cpp
Trước khi bắt đầu, hãy cùng hiểu các thiết lập tối ưu cho DeepSeek V3 0324:
- Nhiệt độ: 0.3 (sử dụng 0.0 cho các tác vụ lập trình)
- Min_P: 0.01 (giúp lọc bỏ các token không khả thi)
- Mẫu chat:
<|User|>YOUR_PROMPT<|Assistant|>
- Đối với định lượng bộ nhớ KV, sử dụng 8bit (không sử dụng 4bit) để có hiệu suất tốt hơn
Bước 1: Thiết lập llama.cpp
Đầu tiên, chúng ta cần tải và biên dịch llama.cpp:
# Cập nhật gói và cài đặt các phụ thuộc cần thiết
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
# Nhân bản kho lưu trữ llama.cpp
git clone <https://github.com/ggml-org/llama.cpp>
# Biên dịch với hỗ trợ CUDA cho GPU (sử dụng -DGGML_CUDA=OFF cho chỉ CPU)
# Lưu ý: việc biên dịch với CUDA có thể mất khoảng 5 phút
cmake llama.cpp -B llama.cpp/build \\\\
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
# Biên dịch các công cụ cần thiết
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split
# Sao chép các công cụ đã biên dịch để tiện truy cập
cp llama.cpp/build/bin/llama-* llama.cpp/
Bước 2: Tải mô hình đã định lượng
Cài đặt các gói Python cần thiết và tải mô hình:
pip install huggingface_hub hf_transfer
# Thiết lập môi trường để tải xuống nhanh hơn
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
# Tải mô hình (ở đây chúng tôi đang sử dụng 2.7bit định lượng động để cân bằng)
from huggingface_hub import snapshot_download
snapshot_download(
repo_id = "unsloth/DeepSeek-V3-0324-GGUF",
local_dir = "unsloth/DeepSeek-V3-0324-GGUF",
allow_patterns = ["*UD-Q2_K_XL*"], # Định lượng động 2.7bit (230GB)
# Sử dụng "*UD-IQ_S*" cho định lượng động 1.78bit (151GB) nếu dung lượng bị hạn chế
)
Bước 3: Chạy một prompt thử nghiệm
Chúng ta hãy kiểm tra mô hình với một prompt yêu cầu nó tạo một trò chơi Flappy Bird:
./llama.cpp/llama-cli \\\\
--model unsloth/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL/DeepSeek-V3-0324-UD-Q2_K_XL-00001-of-00006.gguf \\\\
--cache-type-k q8_0 \\\\
--threads 20 \\\\
--n-gpu-layers 2 \\\\
-no-cnv \\\\
--prio 3 \\\\
--temp 0.3 \\\\
--min_p 0.01 \\\\
--ctx-size 4096 \\\\
--seed 3407 \\\\
--prompt "<|User|>Tạo một trò chơi Flappy Bird bằng Python. Bạn phải bao gồm các điều sau:
1. Bạn phải sử dụng pygame.
2. Màu nền nên được chọn ngẫu nhiên và là một tông màu sáng. Bắt đầu với màu xanh nhạt.
3. Nhấn SPACE nhiều lần sẽ tăng tốc độ của chim.
4. Hình dạng của chim nên được chọn ngẫu nhiên là hình vuông, hình tròn hoặc hình tam giác. Màu sắc nên được chọn ngẫu nhiên là một màu tối.
5. Đặt ở dưới cùng một số đất có màu nâu tối hoặc vàng được chọn ngẫu nhiên.
6. Hiển thị điểm trên góc trên bên phải. Tăng lên nếu bạn vượt qua ống và không chạm vào chúng.
7. Tạo các ống được spaced ngẫu nhiên với đủ không gian. Đánh màu chúng ngẫu nhiên là màu xanh lá cây tối hoặc nâu nhạt hoặc một tông màu xám tối.
8. Khi bạn thua, hiển thị điểm số cao nhất. Hiển thị văn bản bên trong màn hình. Nhấn q hoặc Esc sẽ thoát khỏi trò chơi. Nhấn SPACE một lần nữa sẽ khởi động lại trò chơi.
Trò chơi cuối cùng nên nằm trong một phần markdown bằng Python. Kiểm tra mã của bạn cho các lỗi và sửa chúng trước khi gửi vào phần markdown cuối cùng.<|Assistant|>"
Đây là những giải thích về các tham số:
-model
: Đường dẫn đến tệp mô hình-cache-type-k q8_0
: Sử dụng định lượng 8-bit cho bộ nhớ KV-threads 20
: Số lượng luồng CPU (điều chỉnh tùy theo CPU của bạn)-n-gpu-layers 2
: Số lượng lớp sẽ được chuyển cho GPU (điều chỉnh nếu bạn gặp vấn đề về bộ nhớ)no-cnv
: Vô hiệu hóa convolution vì lý do hiệu suất-prio 3
: Cài đặt độ ưu tiên-temp 0.3
: Cài đặt nhiệt độ (sử dụng 0.0 cho lập trình deterministique)-min_p 0.01
: Xác suất tối thiểu cho việc lấy mẫu token-ctx-size 4096
: Kích thước cửa sổ ngữ cảnh-seed 3407
: Hạt giống ngẫu nhiên để tái tạo
Kiểm tra Deepseek V3 0324 với "Thử thách Hình bát giác"
Bạn có thể kiểm tra thêm khả năng của mô hình của mình bằng cách chạy "Thử thách Hình bát giác," yêu cầu mô hình tạo một mô phỏng vật lý phức tạp với các quả bóng bật nhảy trong một hình bát giác xoay:
./llama.cpp/llama-cli \\\\
--model unsloth/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL/DeepSeek-V3-0324-UD-Q2_K_XL-00001-of-00006.gguf \\\\
--cache-type-k q8_0 \\\\
--threads 20 \\\\
--n-gpu-layers 2 \\\\
-no-cnv \\\\
--prio 3 \\\\
--temp 0.3 \\\\
--min_p 0.01 \\\\
--ctx-size 4096 \\\\
--seed 3407 \\\\
--prompt "<|User|>Viết một chương trình Python cho thấy 20 quả bóng bật nhảy trong một hình bát giác xoay:
- Tất cả các quả bóng đều có cùng kích thước.
- Tất cả các quả bóng có một số từ 1 đến 20.
- Tất cả các quả bóng rơi từ tâm hình bát giác khi bắt đầu.
- Màu sắc là: #f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35
- Các quả bóng đều bị ảnh hưởng bởi trọng lực và ma sát, và chúng phải bật nhảy khỏi các bức tường xoay một cách thực tế. Cũng có thể xảy ra va chạm giữa các quả bóng.
- Vật liệu của tất cả các quả bóng quyết định rằng chiều cao bật nhảy của chúng sẽ không vượt quá bán kính của hình bát giác, nhưng cao hơn bán kính của quả bóng.
- Tất cả các quả bóng đều xoay với lực cản, các số trên quả bóng có thể được sử dụng để chỉ ra sự xoay của quả bóng.
- Hình bát giác đang xoay quanh tâm của nó, và tốc độ xoay là 360 độ trong 5 giây.
- Kích thước hình bát giác phải đủ lớn để chứa tất cả các quả bóng.
- Không sử dụng thư viện pygame; tự triển khai các thuật toán phát hiện va chạm và phản ứng va chạm... Các thư viện Python sau đây là cho phép: tkinter, math, numpy, dataclasses, typing, sys.
- Tất cả mã nên được đặt trong một tệp Python duy nhất.<|Assistant|>"
Tối ưu hóa hiệu suất Deepseek V3 0324
Flash Attention: Để giải mã nhanh hơn, sử dụng Flash Attention khi biên dịch llama.cpp:
-DGGML_CUDA_FA_ALL_QUANTS=ON
Kiến trúc CUDA: Đặt kiến trúc CUDA cụ thể của bạn để giảm thời gian biên dịch:
-DCMAKE_CUDA_ARCHITECTURES="80" # Điều chỉnh cho GPU của bạn
Điều chỉnh Tham số:
- Nếu bạn gặp phải vấn đề hết bộ nhớ, hãy thử giảm
-n-gpu-layers
- Đối với dự đoán chỉ CPU, hãy loại bỏ tham số
-n-gpu-layers
- Điều chỉnh
-threads
dựa trên số lõi CPU của bạn
Bây giờ bạn đã có DeepSeek V3 0324 chạy trên máy tính địa phương! Tóm tắt lại:
- Chúng ta đã thiết lập llama.cpp với sự hỗ trợ CUDA
- Tải về một phiên bản đã định lượng của mô hình (định lượng động 2.7bit)
- Chạy các prompt thử nghiệm để xác minh khả năng của mô hình
- Học về các thiết lập tối ưu và mẹo hiệu suất
Định lượng động 2.7bit cung cấp sự cân bằng tuyệt vời giữa dung lượng đĩa (231GB) và độ chính xác của mô hình, cho phép bạn chạy mô hình 671B tham số này hiệu quả trên phần cứng của riêng bạn.
Bạn có thể thoải mái thử nghiệm với các prompt và tham số khác nhau để tận dụng tối đa mô hình mạnh mẽ này!
Kiểm tra DeepSeek API với Apidog
Nếu bạn đang phát triển ứng dụng sử dụng DeepSeek qua API của nó thay vì chạy trên máy tính địa phương, Apidog cung cấp các công cụ mạnh mẽ cho phát triển, thử nghiệm và gỡ lỗi API.
Thiết lập Apidog cho Thử nghiệm API DeepSeek
Bước 1: Tải xuống và Cài đặt Apidog
- Truy cập https://apidog.com/download/ để tải xuống ứng dụng khách Apidog cho hệ điều hành của bạn.
2. Cài đặt và khởi động Apidog, sau đó tạo tài khoản hoặc đăng nhập bằng Google/Github.
3. Khi được nhắc, chọn vai trò của bạn (ví dụ: "Nhà phát triển Fullstack") và chế độ làm việc ưa thích (ví dụ: "Thiết kế API trước").
Bước 2: Tạo Dự án API Mới cho DeepSeek
- Tạo một dự án HTTP mới trong Apidog cho việc thử nghiệm API DeepSeek của bạn.
- Thêm các điểm cuối API DeepSeek của bạn vào dự án.

Gỡ lỗi phản hồi streaming từ DeepSeek
DeepSeek và nhiều mô hình AI khác sử dụng Server-Sent Events (SSE) để phản hồi streaming. Apidog (phiên bản 2.6.49 trở lên) có hỗ trợ tích hợp để gỡ lỗi SSE:
- Tạo và cấu hình điểm cuối API DeepSeek của bạn trong Apidog.
- Gửi yêu cầu đến API DeepSeek của bạn.
- Nếu phản hồi bao gồm tiêu đề
Content-Type: text/event-stream
, Apidog tự động xử lý nó như một sự kiện SSE. - Xem phản hồi streaming theo thời gian thực trong chế độ xem Timeline của bảng phản hồi.

Apidog có hỗ trợ tích hợp cho các định dạng mô hình AI phổ biến, bao gồm:
- Định dạng tương thích API OpenAI
- Định dạng tương thích API Gemini
- Định dạng tương thích API Claude
Đối với DeepSeek cụ thể, Apidog có thể hiển thị quá trình suy nghĩ của mô hình trong dòng thời gian, cung cấp cái nhìn về lý do của AI.
Tùy chỉnh xử lý phản hồi SSE cho DeepSeek
Nếu định dạng phản hồi của DeepSeek không khớp với các quy tắc nhận diện tích hợp của Apidog, bạn có thể:
Cấu hình các quy tắc trích xuất JSONPath cho phản hồi SSE định dạng JSON:
- Đối với một phản hồi như:
data: {"choices":[{"index":0,"message":{"role":"assistant","content":"H"}}]}
- Sử dụng JSONPath:
$.choices[0].message.content
Sử dụng các tập lệnh xử lý hậu cho các thông điệp SSE không phải JSON:
- Viết các tập lệnh tùy chỉnh để xử lý định dạng dữ liệu
- Xử lý các thông điệp theo yêu cầu cụ thể của bạn
Tạo Các Bài Kiểm Tra Tự Động cho API DeepSeek
Với điểm cuối API DeepSeek của bạn đã được thiết lập, bạn có thể tạo các bài kiểm tra tự động trong Apidog để đảm bảo nó hoạt động chính xác:
- Tạo các kịch bản kiểm tra cho các loại prompt khác nhau trong mô-đun Tests.
- Thêm các xác thực và khẳng định để xác minh cấu trúc và nội dung phản hồi.
- Cấu hình kịch bản kiểm tra để chạy với các môi trường khác nhau (ví dụ: phát triển, sản xuất).
- Thiết lập chạy hàng loạt để kiểm tra nhiều kịch bản cùng một lúc.
Đối với tích hợp CI/CD, Apidog CLI cho phép bạn chạy các bài kiểm tra này như một phần của quy trình:
# Cài đặt Apidog CLI
npm install -g apidog-cli
# Chạy kịch bản kiểm tra
apidog run test-scenario -c <collection-id> -e <environment-id> -k <api-key>

Bạn có thể đọc thêm về cách apidog-cli hoạt động trong Tài liệu Chính thức.
Kiểm tra Hiệu suất API DeepSeek
Apidog cũng cung cấp khả năng kiểm tra hiệu suất để đánh giá cách API DeepSeek của bạn hoạt động dưới tải:
Tạo một kịch bản kiểm tra bao gồm các cuộc gọi đến API DeepSeek của bạn.
Cấu hình các thiết lập kiểm tra hiệu suất:
- Đặt số lượng người dùng ảo (lên đến 100)
- Chỉ định thời gian kiểm tra
- Cấu hình thời gian tăng tốc để mô phỏng sự gia tăng người dùng dần dần
Chạy kiểm tra hiệu suất để xem các số liệu chính như:
- Thông lượng trung bình
- Thời gian phản hồi trung bình
- Thời gian phản hồi tối đa/tối thiểu
- Tỷ lệ lỗi
Điều này đặc biệt hữu ích để hiểu cách triển khai DeepSeek của bạn xử lý nhiều yêu cầu đồng thời.
Kết luận
Bây giờ bạn đã có cả DeepSeek V3 0324 chạy trên máy tính địa phương và kiến thức để kiểm tra API DeepSeek hiệu quả bằng cách sử dụng Apidog! Tóm tắt lại:
- Chúng ta đã thiết lập llama.cpp với sự hỗ trợ CUDA
- Tải về một phiên bản đã định lượng của mô hình (định lượng động 2.7bit)
- Chạy các prompt thử nghiệm để xác minh khả năng của mô hình
- Học cách sử dụng Apidog cho việc thử nghiệm và gỡ lỗi API DeepSeek
- Khám phá mẹo tối ưu hóa hiệu suất cho cả triển khai địa phương và kiểm tra API
Định lượng động 2.7bit cung cấp sự cân bằng tuyệt vời giữa dung lượng đĩa (231GB) và độ chính xác của mô hình, cho phép bạn chạy mô hình 671B tham số này một cách hiệu quả trên phần cứng của riêng bạn. Trong khi đó, Apidog cung cấp cho bạn các công cụ mạnh mẽ để phát triển, thử nghiệm và gỡ lỗi các triển khai API DeepSeek, đặc biệt với khả năng gỡ lỗi SSE cho các phản hồi streaming.
Bạn hãy thoải mái thử nghiệm với các tùy chọn định lượng khác nhau và các tính năng của Apidog để tìm ra thiết lập phù hợp nhất với nhu cầu cụ thể của bạn!