Cách triển khai deepseek-v3.1 cục bộ thông qua ollama: Hướng dẫn Eastest

CometAPI
AnnaDec 2, 2025
Cách triển khai deepseek-v3.1 cục bộ thông qua ollama: Hướng dẫn Eastest

DeepSeek-V3.1 là một mô hình ngôn ngữ MoE lai "có suy nghĩ/không suy nghĩ" (tổng cộng 671B, ≈37B được kích hoạt cho mỗi mã thông báo) có thể chạy cục bộ nếu bạn sử dụng đúng nhà cung cấp/lượng tử hóa và công cụ. Dưới đây tôi sẽ giải thích DeepSeek-V3.1 là gì, các yêu cầu phần cứng/phần mềm, hướng dẫn chạy cục bộ từng bước (ví dụ Ollama + llama.cpp) và cách thực hiện. triển khai và sử dụng Chế độ tư duy (Các <think>/</think> mẫu trò chuyện) với các ví dụ mã bạn có thể sao chép/dán.


DeepSeek-V3.1 là gì?

DeepSeek-V3.1 là phiên bản v3.1 của dòng MoE (Hỗn hợp Chuyên gia) của DeepSeek. Nó được thiết kế như một mô hình suy luận lai hỗ trợ hai mẫu/chế độ hội thoại — Suy nghĩKhông suy nghĩ — từ cùng một điểm kiểm tra bằng cách thay đổi mẫu trò chuyện. Kiến trúc mô hình này dựa trên thiết kế DeepSeek-V3 MoE (tổng cộng 671 tỷ tham số; ≈37 tỷ tham số được kích hoạt cho mỗi mã thông báo để suy luận) và bổ sung các cải tiến sau đào tạo về cách sử dụng công cụ, kỹ năng của tác nhân và xử lý ngữ cảnh dài.

Điểm nổi bật nhanh về tính năng

  • Hỗn hợp Suy nghĩ / Không suy nghĩ chế độ (được chuyển đổi bằng mã thông báo mẫu trò chuyện).
  • Kiến trúc MoE: tổng số tham số lớn nhưng số tham số kích hoạt trên mỗi mã thông báo bị giới hạn (cho phép tăng hiệu quả).
  • Tăng cường sau đào tạo cho các lệnh gọi công cụ và quy trình làm việc của tác nhân (định dạng lệnh gọi công cụ và mẫu tác nhân được ghi lại trong tài sản mô hình).

Tôi cần gì để chạy DeepSeek-V3.1 cục bộ?

Chạy Full DeepSeek-V3.1 (điểm kiểm tra thô) là một công cụ nặng ký — việc lưu trữ điểm kiểm tra/huấn luyện và điều phối suy luận không hề đơn giản. Tuy nhiên, vẫn có những hướng đi thực tế:

Hàng sắt thép

  • Suy luận phân tán đầy đủ (nghiên cứu / cụm): nhiều GPU bộ nhớ cao (loại A100/H800) hoặc cụm GPU với chức năng phục vụ song song mô hình (thường dùng cho các điểm kiểm tra 600B+). Chỉ sử dụng nếu bạn đang chạy các cụm nghiên cứu sản xuất.
  • Các lựa chọn thực tế tại địa phương: sử dụng activated-param phối cảnh (kích hoạt ≈37B) hoặc bản dựng động GGUF/1-bit lượng tử hóa. Lượng tử hóa cộng đồng (động 1-bit / GGUF) giảm đáng kể yêu cầu về đĩa + RAM — ví dụ: các bài đăng cộng đồng báo cáo việc nén điểm kiểm tra 720GB xuống còn ~170GB GGUF cho một biến thể lượng tử hóa. Điều này giúp suy luận GPU trên máy chủ đơn cục bộ khả thi đối với máy tính để bàn/máy chủ có tài nguyên tốt.

Tóm lại: mong đợi một quy trình làm việc mô hình lớn (đĩa từ hàng chục đến hàng trăm GB cho các hiện vật được lượng tử hóa); đối với GPU VRAM, hãy sử dụng các biến thể được lượng tử hóa và mục tiêu ≥24–48GB VRAM để có thông lượng hợp lý; nếu không, hãy sử dụng CPU+hoán đổi với sự đánh đổi về hiệu suất.

Phần mềm & công cụ

Python 3.10+ (dành cho công cụ chuyển đổi/phân tích mã thông báo và tập lệnh tùy chỉnh).

transformers (cho các hàm phân tích và trợ giúp) — thẻ mô hình hiển thị các ví dụ sử dụng transformers.AutoTokenizer.

Một hoặc nhiều thời gian chạy suy luận cục bộ:

  • Ollama (dễ: ollama pull / ollama run tích hợp; một số bản dựng DeepSeek trên Ollama yêu cầu phiên bản trước khi phát hành, hãy kiểm tra ghi chú về mô hình/ollama). Ollama đã trở thành trình chạy cục bộ tiêu chuẩn cho các mô hình cộng đồng.
  • llama.cpp / ggml ngăn xếp hoặc llama-server dành cho các tệp lượng tử GGUF — tuyệt vời để thực thi GGUF trực tiếp.
  • suy luận tạo văn bản / Triton / ngăn xếp FlashAttention để suy luận GPU hiệu suất cao hơn (cài đặt nâng cao).

Đĩa: dung lượng trống lớn cho các tệp mô hình (hàng chục → hàng trăm GB tùy thuộc vào lượng tử hóa).

Các hiện vật mô hình (tệp nào cần lấy)

  • Các biến thể safetensor chính thức / BF16 / FP8 / GGUF: Hugging Face lưu trữ các hiện vật mô hình V3.1 và nhiều lượng tử hóa. Nếu bạn cần tệp GGUF/lượng tử hóa cho llama.cpp, hãy tìm bản phát hành lượng tử hóa cộng đồng (hoặc tập lệnh chuyển đổi từ safetensors → GGUF) — thẻ mô hình liệt kê các biến thể lượng tử hóa.

Làm thế nào để chuẩn bị mô hình cho suy luận cục bộ?

Dưới đây là các bước chuẩn bị được đề xuất theo thứ tự từ đơn giản → nâng cao.

Bước 1 — Chọn thời gian chạy (khuyến nghị)

  • Bài kiểm tra dành cho người mới bắt đầu/nhanh: Ollama — thiết lập tối thiểu: tải xuống, chạy mô hình, gọi API. Lưu ý: một số bản dựng DeepSeek-V3.1 ghi chú Ollama v0.11.7 là bắt buộc cho các tính năng cụ thể.
  • Kiểm soát nâng cao/mức thấp: llama.cpp + Lượng tử hóa GGUF (nếu có lượng tử hóa GGUF). Điều này cung cấp cho bạn khả năng kiểm soát suy luận trực tiếp và tích hợp với llama-server.

Bước 2 — Tải xuống mô hình

Nếu bạn sử dụng Ollama:

# install ollama (see https://ollama.com/docs)

# Pull the model (this downloads the model to your machine)
ollama pull deepseek-ai/DeepSeek-V3.1
# or a specific tag: ollama pull deepseek-ai/DeepSeek-V3.1:quant-q4_0

(Ollama của run sẽ tự động kéo nếu không có; pull cho phép bạn kiểm soát thời gian.)

Nếu bạn sử dụng Hugging Face + llama.cpp:

# Example: download via huggingface-cli or hf_transfer

pip install huggingface_hub
hf_hub_download(repo_id="deepseek-ai/DeepSeek-V3.1", filename="DeepSeek-V3.1.gguf")
# or use a community quant file (gguf) referenced on the Hugging Face model page

Hugging Face liệt kê các hiện vật, mẫu và lượng tử hóa của mô hình trên thẻ mô hình.

Bước 3 — Chuyển đổi / lượng tử hóa (tùy chọn)

Nếu bạn chỉ tìm thấy các bộ cảm biến an toàn hoặc các hiện vật BF16 nhưng cần GGUF cho llama.cpp, sử dụng các tập lệnh chuyển đổi trong llama.cpp (hoặc các công cụ cộng đồng) để chuyển đổi → lượng tử hóa. Có các công cụ cộng đồng cho lượng tử hóa động 1 bit, giữ nguyên độ chính xác trong khi giảm kích thước; xem các bài đăng của cộng đồng báo cáo dung lượng xuống còn ~170GB.


Làm thế nào để tôi có thể chạy DeepSeek-V3.1 cục bộ? (Hướng dẫn chạy thực tế)

Tôi sẽ chỉ cho bạn Ollama (dễ, được khuyến nghị) và cuộc gọi.cpp (GGUF) ví dụ cùng với một ví dụ Python ngắn sử dụng trình trợ giúp phân tích thẻ mô hình.

A — Chạy cùng Ollama (khởi động nhanh)

  1. Cài đặt Ollama (làm theo hướng dẫn chính thức).
  2. Kéo và chạy mô hình:
# pull model to disk (optional; run will pull automatically)

ollama pull deepseek-ai/DeepSeek-V3.1

# start an interactive session (runs model and exposes local API)

ollama run deepseek-ai/DeepSeek-V3.1
  1. Gửi yêu cầu HTTP tới máy chủ Ollama cục bộ:
# curl usage example (local Ollama server usually listens on port 11434)

curl -sS -X POST 'http://localhost:11434/api/generate' \
  -H 'Content-Type: application/json' \
  -d '{
    "model":"deepseek-ai/DeepSeek-V3.1",
    "prompt":"Explain the difference between thinking and non-thinking mode in DeepSeek.",
    "max_tokens":256
  }'

Các mẫu CLI và API của Ollama được thiết kế đơn giản: ollama run sẽ kéo nếu cần và khởi chạy máy chủ mô hình. Xem tài liệu Ollama và các trang mô hình để biết gợi ý về bộ nhớ và tên/thẻ mô hình chính xác.

B — Chạy GGUF lượng tử hóa thông qua llama.cpp

  1. Xây dựng llama.cpp với CUDA (tùy chọn) hoặc CPU:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# for CUDA:

make clean && make LLAMA_CUBLAS=1
# or CPU only:

make
  1. Đặt tệp GGUF của mô hình vào đường dẫn và chạy:
./main -m /path/to/DeepSeek-V3.1.q4_K_M.gguf \
  -p "Explain how to enable thinking mode." \
  --temp 0.2 --n_predict 512
  1. Để sử dụng cho máy chủ, llama-server (dự án cộng đồng) có thể hiển thị điểm cuối HTTP:
llama-server -m /path/to/DeepSeek-V3.1.q4_K_M.gguf
# then POST to the server like:

curl -X POST "http://localhost:8080/api/v1/generate" -d '{"prompt":"Hello","max_tokens":200}'

Sử dụng lượng tử hóa GGUF cộng đồng (q4/q8/1-bit động) để phù hợp với ngân sách GPU/CPU; llama.cpp repo cung cấp các công cụ chuyển đổi và hướng dẫn.

C — Ví dụ về Python sử dụng trình phân tích cú pháp + mẫu trò chuyện

Thẻ mô hình khuôn mặt ôm cung cấp một tokenizer.apply_chat_template người trợ giúp và cho thấy cách mã hóa một cuộc trò chuyện với thinking=True. Dưới đây là một ví dụ Python tối giản được chuyển thể từ thẻ mô hình:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")

messages = [
    {"role": "system", "content": "You are a helpful assistant"},
    {"role": "user", "content": "Who are you?"},
    {"role": "assistant", "content": "<think>Hmm</think>I am DeepSeek"},
    {"role": "user", "content": "1+1=?"}
]

# apply thinking chat template

s = tokenizer.apply_chat_template(messages, tokenize=False, thinking=True, add_generation_prompt=True)
print(s)  # the template includes the special <think> token placement

Sau đó, bạn có thể đưa lời nhắc được mã hóa vào thời gian chạy suy luận của mình (Ollama/llama.cpp/TGI) tùy thuộc vào ngăn xếp của bạn.


Chế độ suy nghĩ hoạt động như thế nào và làm sao để triển khai nó tại địa phương?

DeepSeek-V3.1 sử dụng mẫu trò chuyện chứa một mã thông báo suy nghĩ đặc biệt (ví dụ, <think></think>). Các mẫu xác định xem mô hình đang ở chế độ Suy nghĩ hay Không suy nghĩ:

  • Không suy nghĩ mẫu địa điểm </think> trong tiền tố trợ lý, hướng dẫn mô hình tạo ra phản hồi trực tiếp (định dạng toolcall được hỗ trợ trong chế độ không suy nghĩ).
  • Suy nghĩ mẫu địa điểm <think> trong tiền tố trợ lý, giúp mô hình xuất ra các tín hiệu trung gian theo kiểu chuỗi suy nghĩ nội bộ (mô hình được huấn luyện để sử dụng chuỗi mã thông báo đó để suy luận nội bộ và tạo ra các câu trả lời nhiều bước chất lượng cao hơn). Thẻ mô hình Hugging Face ghi lại các mã thông báo chính xác này và tokenizer.apply_chat_template(..., thinking=True) API.

Chuyển đổi theo chương trình (ví dụ)

A — Với trình phân tích cú pháp (Python):

# thinking=True or thinking=False changes how the prompt is formatted

prompt_thinking = tokenizer.apply_chat_template(messages, thinking=True, add_generation_prompt=True)
prompt_non_thinking = tokenizer.apply_chat_template(messages, thinking=False, add_generation_prompt=True)

Nuôi prompt_thinking vào thời gian chạy suy luận của bạn để có được hành vi Suy nghĩ.

B — Với dấu nhắc thô (llama.cpp / manual):

Chèn <think> trước khi trợ lý quay lại khi bạn nhắc:

<|begin_of_sentence|>You are a helpful assistant<|User|>How to optimize this code?<|Assistant|><think>

(Khung mã thông báo chính xác đó có trong thẻ mô hình — bạn phải tuân thủ khoảng cách và các dấu hiệu đặc biệt nếu sử dụng mẫu thô.)

C — Với Ollama (chuyển đổi giao diện người dùng):
Bản demo web chính thức và ghi chú phát hành của DeepSeek có đề cập đến nút chuyển đổi/bật tắt "DeepThink" để chuyển đổi chế độ trong giao diện người dùng được lưu trữ. Về mặt cục bộ, Ollama hoặc ứng dụng của bạn nên sao chép hành vi đó bằng cách chuyển đổi mẫu trò chuyện (tức là thay đổi lời nhắc bạn gửi đến thời gian chạy giữa hai biểu mẫu được mã hóa). Nếu bạn chạy DeepSeek thông qua Ollama, bạn có thể triển khai tính năng này trong ứng dụng của mình bằng cách duy trì hai mẫu lời nhắc (suy nghĩ và không suy nghĩ) và chuyển đổi giữa các mẫu này thông qua API Ollama.


Làm thế nào để triển khai Chế độ tư duy như một tác nhân (gọi công cụ, tác nhân mã)?

Tài liệu DeepSeek-V3.1 gọi công cụđại lý mẫu trong tài sản mô hình. Mô hình mong đợi các công cụ được trình bày theo định dạng JSON/hướng dẫn cụ thể và hỗ trợ kết nối nhiều lệnh gọi công cụ trong một lượt nếu bạn làm theo đúng mã thông báo bao bọc được mô tả trong thẻ mô hình.

Ví dụ: trình bao bọc lệnh gọi công cụ đơn giản (giả)

Mô hình chỉ định một khối mô tả công cụ và một tool_calls_begin / tool_call_begin định dạng. Một ví dụ tối thiểu (mang tính khái niệm):

## Tools

You have access to the following tools:

### web_search

Description: Query the web
Parameters: {"q": "string"}

<|begin_of_sentence|>{system prompt}

## Tools

...tool descriptions...

<|User|>Find the population of Tokyo<|Assistant|></think>
<|tool_calls_begin|><|tool_call_begin|>web_search<|tool_sep|>{"q":"population of Tokyo 2025"}<|tool_call_end|><|tool_calls_end|>

Sau đó, đầu ra của công cụ sẽ được đưa trở lại mô hình trong lượt tiếp theo theo định dạng được mô hình quy định (xem assets/search_tool_trajectory.html trên trang mô hình để biết luồng chính xác). Việc triển khai các tác nhân yêu cầu phối hợp theo chương trình: gọi công cụ → thu thập kết quả → đưa kết quả trở lại ngữ cảnh trò chuyện chính xác như mẫu quy định → gọi lại mô hình.


Mẹo thực tế, cách khắc phục sự cố và lưu ý về an toàn (Tôi nên chú ý điều gì?)

  • Mẫu mã thông báo rất nghiêm ngặt. Sử dụng mô hình tokenizer.apply_chat_template hoặc tái tạo chính xác <think>/</think> mã thông báo như minh họa. Khoảng cách không chính xác hoặc thiếu dấu hiệu sẽ thay đổi hành vi của mô hình.
  • Định dạng công cụ phải là JSON hợp lệ. Mô hình sẽ phân tích các đối số công cụ dưới dạng JSON — JSON không hợp lệ sẽ làm hỏng các lệnh gọi công cụ.
  • Sự đánh đổi trong lượng tử hóa. Lượng tử hóa động/tích cực 1-bit làm giảm dung lượng lưu trữ và RAM nhưng có thể làm thay đổi đôi chút độ trung thực của số. Hãy thử nghiệm trên khối lượng công việc của bạn. Có những lượng tử hóa cộng đồng làm giảm 80% mức sử dụng đĩa (ví dụ báo cáo: 720GB → ~170GB), nhưng hãy luôn xác thực bằng lời nhắc của bạn.
  • Khả năng tương thích của Ollama. Một số biến thể DeepSeek lưu ý Ollama v0.11.7 là yêu cầu bắt buộc đối với các tính năng phát hành trước — hãy kiểm tra trang mô hình Ollama và cập nhật cho phù hợp.

Ví dụ đầu cuối: chạy DeepSeek-V3.1 cục bộ với Chế độ suy nghĩ (hướng dẫn chi tiết)

  1. Cài đặt Ollama và kéo mô hình:
# install ollama per docs, then:

ollama pull deepseek-ai/DeepSeek-V3.1
ollama run deepseek-ai/DeepSeek-V3.1 &
  1. Sử dụng trình phân tích cú pháp Python để soạn lời nhắc suy nghĩ:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")

msgs = [
  {"role":"system","content":"You are a helpful assistant."},
  {"role":"user","content":"Plan a multi-step strategy to prototype a mobile app in 2 weeks."}
]
prompt = tokenizer.apply_chat_template(msgs, thinking=True, add_generation_prompt=True)

import requests
resp = requests.post("http://localhost:11434/api/generate", json={
    "model": "deepseek-ai/DeepSeek-V3.1",
    "prompt": prompt,
    "max_tokens": 400
})
print(resp.json())
  1. Nếu mô hình trả về lệnh gọi công cụ theo định dạng toolcall, hãy phân tích cú pháp JSON và chạy công cụ, sau đó đưa kết quả vào thông báo tiếp theo theo mẫu thẻ mô hình.

Bạn nên chọn lộ trình triển khai như thế nào?

  • Nếu bạn muốn có cách thử nghiệm nhanh nhất: sử dụng Ollama và các ví dụ về thẻ mô hình Hugging Face. Ollama ẩn nhiều chi tiết cơ sở hạ tầng và cung cấp API HTTP cục bộ.
  • Nếu bạn cần chi phí thấp hơn/tính di động cao hơn: sử dụng một cộng đồng GGUF lượng tử hóa hiện vật và chạy với llama.cpp or llama-server. Lượng tử hóa giúp tiết kiệm đĩa và bộ nhớ nhưng vẫn kiểm tra được độ chính xác cho khối lượng công việc của bạn.
  • Nếu bạn đang xây dựng tác nhân hoặc công cụ: làm theo thẻ mẫu gọi công cụđại lý mẫu chính xác; sắp xếp đầu ra của công cụ trở lại bối cảnh mô hình.

Bắt đầu

CometAPI là một nền tảng API hợp nhất tổng hợp hơn 500 mô hình AI từ các nhà cung cấp hàng đầu—chẳng hạn như dòng GPT của OpenAI, Gemini của Google, Claude của Anthropic, Midjourney, Suno, v.v.—thành một giao diện duy nhất thân thiện với nhà phát triển. Bằng cách cung cấp xác thực nhất quán, định dạng yêu cầu và xử lý phản hồi, CometAPI đơn giản hóa đáng kể việc tích hợp các khả năng AI vào ứng dụng của bạn. Cho dù bạn đang xây dựng chatbot, trình tạo hình ảnh, nhà soạn nhạc hay đường ống phân tích dựa trên dữ liệu, CometAPI cho phép bạn lặp lại nhanh hơn, kiểm soát chi phí và không phụ thuộc vào nhà cung cấp—tất cả trong khi khai thác những đột phá mới nhất trên toàn bộ hệ sinh thái AI.

Các nhà phát triển có thể truy cập DeepSeek V3.1 Thông qua CometAPI, các phiên bản mô hình mới nhất được liệt kê là tính đến ngày xuất bản bài viết. Để bắt đầu, hãy khám phá các khả năng của mô hình trong Sân chơi và tham khảo ý kiến Hướng dẫn API để biết hướng dẫn chi tiết. Trước khi truy cập, vui lòng đảm bảo bạn đã đăng nhập vào CometAPI và lấy được khóa API. Sao chổiAPI cung cấp mức giá thấp hơn nhiều so với giá chính thức để giúp bạn tích hợp.


Kết luận

DeepSeek-V3.1 mang đến một triết lý suy luận lai thực tế (một điểm kiểm tra + hành vi tư duy theo khuôn mẫu) giúp việc thử nghiệm lập luận theo kiểu chuỗi suy nghĩ và sử dụng công cụ tác nhân trở nên đơn giản khi bạn tuân thủ các mẫu trò chuyện và yêu cầu về công cụ. Hãy sử dụng thẻ mô hình Hugging Face và ghi chú phát hành DeepSeek làm điểm dừng chân đầu tiên, chọn một môi trường chạy cục bộ (ví dụ: Ollama để đơn giản hóa, llama.cpp để kiểm soát) và thử nghiệm các bản dựng lượng tử cho việc triển khai cục bộ thực tế.

SHARE THIS BLOG

500+ Mô hình trong Một API

Giảm giá lên đến 20%