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

Hướng dẫn SGLang: Triển khai Mistral Medium 3.5 cục bộ

Thiết lập môi trường Docker đa GPU với song song tensor và EAGLE speculative decoding để phục vụ Mistral Medium 3.5 128B qua API tương thích OpenAI.
Đã cập nhật 1 thg 6, 2026  · 12 phút đọc

Chạy các mô hình ngôn ngữ lớn cục bộ không còn bị giới hạn ở các mô hình nhỏ 7B hoặc 13B. Với thiết lập GPU phù hợp, framework phục vụ, và môi trường đóng gói bằng container, giờ đây bạn có thể chạy các mô hình mở quy mô tiên tiến như Mistral Medium 3.5 128B trên máy chủ GPU của riêng bạn.

Trong hướng dẫn này, chúng ta sẽ đi qua cách phục vụ Mistral Medium 3.5 128B cục bộ bằng SGLang. Thiết lập sử dụng máy chủ đa GPU, Docker, quyền truy cập model trên Hugging Face và máy chủ API tương thích OpenAI của SGLang. 

Chúng ta sẽ bắt đầu bằng cách cấp phát một phiên bản GPU 4× H100, sau đó cài Docker và NVIDIA container runtime, kéo image Docker của SGLang, khởi chạy máy chủ model, kiểm thử endpoint bằng curl, và cuối cùng kết nối model cục bộ với OpenCode cho các quy trình tác tử lập trình. Chúng ta cũng sẽ thử một thiết lập EAGLE speculative decoding để so sánh hiệu năng và xem liệu nó có cải thiện độ trễ cho suy luận cục bộ không. 

Kết thúc hướng dẫn, bạn sẽ có một endpoint cục bộ hoạt động cho Mistral Medium 3.5 có thể truy cập thông qua API tương thích OpenAI.

SGLang là gì?

SGLang là một framework phục vụ LLM hiệu năng cao, được xây dựng cho suy luận mô hình lớn, sinh có cấu trúc, tác vụ ngữ cảnh dài, và phục vụ đa GPU. 

Trong hướng dẫn này, chúng ta dùng nó để phục vụ Mistral Medium 3.5 128B qua một API tương thích OpenAI, để model có thể dùng với curl, Python, OpenCode, hoặc các công cụ tác tử khác.

SGLang phù hợp hơn so với llama.cpp trong trường hợp này vì đây không phải là một model GGUF nhỏ chạy trên laptop. Chúng ta đang phục vụ một model dày đặc 128B trên 4 GPU H100 với song song tensor, ngữ cảnh dài và phục vụ GPU dựa trên Docker. llama.cpp rất tuyệt cho suy luận cục bộ đơn giản và các model đã lượng tử hóa, nhưng SGLang phù hợp hơn cho phục vụ API lớn đa GPU.

So với vLLM, ưu điểm không phải là SGLang có các tính năng phục vụ cơ bản mà vLLM thiếu. vLLM cũng là một engine phục vụ sản xuất mạnh với PagedAttention, batching liên tục, lưu đệm tiền tố và speculative decoding. 

Lý do SGLang phù hợp cho hướng dẫn này là vì nó đặc biệt mạnh ở sinh có cấu trúc, quy trình tác tử nặng tiền tố, speculative decoding mang tính thử nghiệm. Runtime của nó tập trung vào RadixAttention cho tái sử dụng tiền tố, đầu ra có cấu trúc, song song tensor, và speculative decoding kiểu EAGLE, phù hợp với những gì chúng ta đang kiểm thử với Mistral Medium 3.5 EAGLE.

Vì vậy, có thể đóng khung thực tế như sau: 

  • llama.cpp cho suy luận cục bộ nhẹ
  • vLLM cho phục vụ sản xuất nói chung
  • SGLang khi bạn cần phục vụ đa GPU nâng cao cho khối lượng công việc ngữ cảnh dài, có cấu trúc, tác tử, hoặc speculative decoding

Để tìm hiểu về các lựa chọn thay thế SGLang, tôi khuyên bạn nên đọc các hướng dẫn llama.cppvLLM của chúng tôi.

Bước 1: Thiết lập phần cứng

Trong hướng dẫn này, tôi đã dùng một máy ảo GPU 4× H100 80GB. Mistral Medium 3.5 là model dày đặc 128B, nên cần thiết lập đa GPU. SGLang khuyến nghị chạy với song song tensor dùng --tp 4 trên GPU H100 hoặc H200. Model hỗ trợ cửa sổ ngữ cảnh lớn, nhưng tôi khuyên nên bắt đầu với 100.000 token trước thay vì toàn bộ ngữ cảnh 256K để dễ kiểm thử và gỡ lỗi hơn.

Tôi đã dùng Hyperbolic vì nó cho quyền truy cập toàn bộ máy ảo GPU, giúp dễ cài Docker, cấu hình NVIDIA container runtime, và chạy image Docker SGLang thủ công. Bạn cũng có thể dùng các nền tảng như RunPod hoặc Vast.ai, nhưng một số phiên bản của họ đã gắn với môi trường Docker tùy chỉnh, khiến bạn ít kiểm soát hơn.

Trong Hyperbolic, chọn H100 PCIe 80GB, chọn 4 GPU, thêm khoảng 3TB lưu trữ, nhập khóa công khai SSH của bạn, và đặt tên cho phiên bản, ví dụ MM-35. Tôi chọn H100 PCIe vì đây là tùy chọn H100 rẻ nhất có sẵn cho thử nghiệm này. 

Thiết lập VPS 4X H100 GPU trên Hyperbolic.

Sau khi nhấp Start Building, máy có thể mất khoảng 10 phút để khởi động. Khi sẵn sàng, Hyperbolic sẽ hiển thị lệnh truy cập SSH bạn cần cho bước tiếp theo.

Phiên bản VPS 4X H100 GPU Hyperbolic đang chạy và bạn có thể truy cập bằng ssh.

Bước 2: SSH vào máy chủ

Khi phiên bản sẵn sàng, kết nối đến đó từ terminal cục bộ của bạn bằng lệnh SSH hiển thị trong bảng điều khiển Hyperbolic:

ssh ubuntu@XXXXXX

Để truy cập API SGLang từ máy cục bộ sau này, bạn cũng có thể chuyển tiếp cổng 30000:

ssh -L 30000:localhost:30000 ubuntu@XXXXXX

Nếu khóa SSH của bạn có mật khẩu, hãy nhập khi được nhắc. Sau khi đăng nhập, kiểm tra rằng tất cả GPU khả dụng:

Nvidia-smi

Bạn sẽ thấy 4× NVIDIA H100 PCIe 80GB được liệt kê. Điều này xác nhận máy chủ đã sẵn sàng cho thiết lập Docker và SGLang.

Liệt kê 4× NVIDIA H100 PCIe 80GB GPUs

Bước 3: Cài Docker trên máy chủ Linux

Đầu tiên, export token Hugging Face của bạn để máy chủ có thể tải model Mistral sau này:

echo 'export HF_TOKEN="your_huggingface_token_here"' >> ~/.bashrc
source ~/.bashrc

Lưu ý: Bạn có thể lấy token Hugging Face từ trang Access Tokens.

Tạo thư mục cache của Hugging Face:

mkdir -p ~/.cache/huggingface

Bây giờ cài Docker:

sudo apt update
sudo apt install -y docker.io

Khởi động Docker và bật tự động chạy sau khi khởi động lại:

sudo systemctl start docker
sudo systemctl enable docker

Kiểm tra Docker đã cài đúng chưa:

docker –version

Bạn cũng có thể dùng lệnh tìm kiếm của Docker để xác nhận Docker có thể tìm image công khai từ Docker Hub:

docker search nvidia/cuda

Lệnh này sẽ trả về các image NVIDIA CUDA khả dụng. Sau đó, chúng ta sẽ dùng một trong các image CUDA này để xác minh Docker có thể truy cập GPU.

Tiếp theo, cho phép người dùng của bạn chạy lệnh Docker không cần sudo:

sudo usermod -aG docker $USER
newgrp docker

Giờ hãy cài và cấu hình NVIDIA Container Toolkit để Docker có thể truy cập GPU:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update
sudo apt install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Cuối cùng, kiểm tra Docker có thể thấy GPU từ trong container:

docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi

Nếu lệnh này in ra cùng danh sách GPU H100 bên trong container Docker, thiết lập Docker GPU của bạn hoạt động đúng.

4× NVIDIA H100 PCIe 80GB GPUs khả dụng trong Docker

Bước 4: Kéo image Docker SGLang

Tiếp theo, kéo image Docker SGLang được xây cho Mistral Medium 3.5:

docker pull lmsysorg/sglang:dev-mistral-medium-3.5

Kéo image docker lmsysorg/sglang:dev-mistral-medium-3.5

Bước này có thể mất thời gian tùy tốc độ mạng. Trường hợp của tôi mất khoảng 10 phút. Khi image tải xong, Docker sẽ hiển thị thông báo thành công tương tự:

Status: Downloaded newer image for lmsysorg/sglang:dev-mistral-medium-3.5

Bước 5: Phục vụ Mistral Medium 3.5 128B bằng SGLang

Bây giờ khởi động máy chủ SGLang:

docker run -d \
 --name mistral-sglang \
 --gpus all \
 --shm-size 64g \
 --ipc=host \
 --cap-add SYS_NICE \
 -p 30000:30000 \
 -v ~/.cache/huggingface:/root/.cache/huggingface \
 -e HF_TOKEN=$HF_TOKEN \
 -e PYTORCH_ALLOC_CONF=expandable_segments:True \
 lmsysorg/sglang:dev-mistral-medium-3.5 \
 sglang serve \
   --model-path mistralai/Mistral-Medium-3.5-128B \
   --served-model-name mistral-medium-3.5 \
   --host 0.0.0.0 \
   --port 30000 \
   --tp 4 \
   --trust-remote-code \
   --dtype bfloat16 \
   --context-length 100000 \
   --mem-fraction-static 0.85 \
   --disable-custom-all-reduce \
   --tool-call-parser mistral \
   --reasoning-parser mistral

Tôi dùng --dtype bfloat16 vì thiết lập EAGLE sau đó cũng yêu cầu bf16, nên giữ lần chạy cơ bản và lần chạy speculative đồng bộ giúp tránh phải đổi dtype giữa các bài kiểm thử. Tôi cũng bắt đầu với --context-length 100000 thay vì cửa sổ ngữ cảnh đầy đủ để lần chạy đầu dễ gỡ lỗi hơn.

Kiểm tra log của container bằng:

docker logs -f mistral-sglang

đang tải Mistral Medium 3.5 128B

Lần khởi động đầu sẽ lâu hơn vì SGLang cần tải các tệp model từ Hugging Face. Kho lưu trữ đầy đủ rất lớn, nên có thể mất khoảng một giờ hoặc hơn, tùy tốc độ của phiên bản máy.

Khi máy chủ sẵn sàng, log sẽ hiển thị Uvicorn đang chạy trên cổng 30000.

máy chủ SGLang đã sẵn sàng phục vụ model Mistral Medium 3.5 128B

Trong một terminal khác, SSH vào máy chủ lần nữa và kiểm tra endpoint của model:

curl http://localhost:30000/v1/models

Bạn sẽ thấy mistral-medium-3.5 được liệt kê với max_model_len100000.

{"object":"list","data":[{"id":"mistral-medium-3.5","object":"model","created":1779816738,"owned_by":"sglang","root":"mistral-medium-3.5","parent":null,"max_model_len":100000}]}

Cuối cùng, kiểm thử một chat completion:

curl http://localhost:30000/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
   "model": "mistral-medium-3.5",
   "messages": [
     {
       "role": "user",
       "content": "Write a short introduction to Mistral Medium 3.5."
     }
   ],
   "max_tokens": 300,
   "temperature": 0.7,
   "top_p": 0.95
 }'

Phản hồi được tạo bởi Mistral Medium 3.5 128B

Trong thử nghiệm của tôi, model phản hồi thành công và hoàn tất yêu cầu gọn gàng, xác nhận endpoint SGLang hoạt động. Lần chạy cơ bản tạo khoảng 35,6 token mỗi giây.

Bước 6: Chạy Mistral Medium 3.5 128B với EAGLE Speculative Decoding

Speculative decoding có thể tăng tốc sinh bằng cách dùng một model nháp nhỏ hơn để dự đoán trước token, trong khi model chính xác minh chúng. 

EAGLE hữu ích ở đây vì nó được thiết kế cho phục vụ nhạy cảm độ trễ, đặc biệt khi bạn chạy một model lớn như Mistral Medium 3.5 cục bộ. Nó sẽ không phải lúc nào cũng nhanh hơn, nhưng đáng để thử vì lợi ích phụ thuộc vào độ dài prompt, độ dài đầu ra, mức độ song song và mức sử dụng GPU.

Trước tiên, gỡ container cơ bản:

docker rm -f mistral-sglang

Sau đó khởi động phiên bản EAGLE:

docker run -d \
 --name mistral-sglang-eagle \
 --gpus all \
 --shm-size 64g \
 --ipc=host \
 --cap-add SYS_NICE \
 -p 30000:30000 \
 -v ~/.cache/huggingface:/root/.cache/huggingface \
 -e HF_TOKEN="$HF_TOKEN" \
 -e PYTORCH_ALLOC_CONF=expandable_segments:True \
 lmsysorg/sglang:dev-mistral-medium-3.5 \
 sglang serve \
   --model-path mistralai/Mistral-Medium-3.5-128B \
   --served-model-name mistral-medium-3.5-eagle \
   --host 0.0.0.0 \
   --port 30000 \
   --tp 4 \
   --trust-remote-code \
   --dtype bfloat16 \
   --context-length 100000 \
   --mem-fraction-static 0.85 \
   --disable-custom-all-reduce \
   --tool-call-parser mistral \
   --reasoning-parser mistral \
   --enable-metrics \
   --speculative-algorithm EAGLE \
   --speculative-draft-model-path mistralai/Mistral-Medium-3.5-128B-EAGLE \
   --speculative-num-steps 3 \
   --speculative-eagle-topk 1 \
   --speculative-num-draft-tokens 4

SGLang khuyến nghị thiết lập EAGLE này như một điểm khởi đầu tốt: --speculative-num-steps 3, --speculative-eagle-topk 1, và --speculative-num-draft-tokens 4. Lần chạy đầu có thể lâu hơn vì nó cũng tải model nháp EAGLE. 

Khi đã tải, bạn có thể kiểm tra mức dùng GPU bằng nvidia-smi; trong lần chạy của tôi, model dùng khoảng 44GB trên mỗi GPU H100.

Với model nháp EAGLE, SGlang tiêu thụ 44GB trên mỗi GPU H100

Theo dõi log bằng:

docker logs -f mistral-sglang-eagle

Mistral Medium 3.5 128B với EAGLE đang phục vụ

Khi log hiển thị Uvicorn đang chạy trên 0.0.0.0:30000, hãy kiểm thử endpoint:

curl http://localhost:30000/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
   "model": "mistral-medium-3.5-eagle",
   "messages": [
     {
       "role": "user",
       "content": "Generate a simple Python game."
     }
   ],
   "reasoning_effort": "none",
   "max_tokens": 300,
   "temperature": 0.7,
   "top_p": 0.95
 }'

Phản hồi của model Mistral Medium 3.5 128B với EAGLE

Trong thử nghiệm của tôi, máy chủ EAGLE phản hồi chính xác và tạo ra một trò chơi Python đơn giản. Lần chạy đạt khoảng 32 token mỗi giây, hơi chậm hơn lần chạy cơ bản, nên EAGLE không cải thiện bài test cụ thể này. 

Điều này là bình thường: speculative decoding phụ thuộc rất nhiều vào khối lượng công việc, và cách đánh giá tốt nhất là thử với chính prompt và mức độ song song của bạn.

Bước 7: Thiết lập OpenCode với Mistral Medium 3.5

OpenCode là một tác tử lập trình AI mã nguồn mở có thể kết nối đến các endpoint model tương thích OpenAI. Vì SGLang cung cấp Mistral Medium 3.5 qua API tương thích OpenAI cục bộ, chúng ta có thể dùng trực tiếp trong OpenCode.

Cài OpenCode nếu bạn chưa cài:

curl -fsSL https://opencode.ai/install | bash

Sau đó chuyển vào thư mục dự án của bạn và tạo tệp opencode.json.

Thêm cấu hình sau: 

{
 "$schema": "https://opencode.ai/config.json",
 "provider": {
   "sglang": {
     "npm": "@ai-sdk/openai-compatible",
     "name": "SGLang Local",
     "options": {
       "baseURL": "http://127.0.0.1:30000/v1",
       "apiKey": "EMPTY"
     },
     "models": {
       "mistral-medium-3.5-eagle": {
         "name": "Mistral Medium 3.5 EAGLE",
         "limit": {
           "context": 100000,
           "output": 8192
         }
       }
     }
   }
 },
 "model": "sglang/mistral-medium-3.5-eagle"
}

Giờ khởi động OpenCode từ cùng thư mục dự án: 

Opencode

Bạn sẽ thấy Mistral Medium 3.5 EAGLE SGLang Local được chọn trong OpenCode. Điều này có nghĩa OpenCode đang giao tiếp với máy chủ SGLang cục bộ của bạn qua cổng 30000 đã chuyển tiếp, tương tự như gọi bất kỳ API tương thích OpenAI nào. 

Dùng Mistral Medium 3.5 128B với EAGLE trong OpenCode cục bộ

Trong thử nghiệm của tôi, tôi yêu cầu OpenCode giải thích dự án, và nó đã đọc các tệp trong kho trong vài giây và sinh bản tóm tắt. 

hiểu dự án trong opencode

Sau đó, tôi yêu cầu tạo một trình giả lập Badger 2040, và trước tiên nó kiểm tra các tệp dự án hiện có, xác thực cấu trúc, rồi tạo tệp Python cần thiết. Toàn bộ quá trình mất khoảng 2 phút

yêu cầu Mistral Medium 3.5 128B tạo trình giả lập Badger 2040

Sau đó, tôi yêu cầu kiểm thử trình giả lập cục bộ. OpenCode đã chạy mã và mở cửa sổ trình giả lập thành công. 

yêu cầu Mistral Medium 3.5 128B kiểm thử trình giả lập Badger 2040

Phông chữ không hoàn toàn giống màn hình Badger 2040 thật, nhưng bố cục, hiển thị thời gian, vị trí ngày tháng và cấu trúc tổng thể gần như hoàn hảo. 

image4.png

Tôi thực sự bất ngờ với kết quả vì trước đó tôi đã thử tác vụ tương tự với Claude Code và GPT-5.5, cả hai đều gặp khó khăn, trong khi Mistral Medium 3.5 xử lý rất tốt qua thiết lập SGLang cục bộ. 

Khắc phục sự cố và ghi chú thiết lập

Có vài điểm dễ mắc lỗi trong quá trình. Hãy cùng điểm qua những vấn đề bạn có thể gặp và cách giải quyết.

1. Kiên nhẫn: Thiết lập này cần thời gian

Trước hết, bạn sẽ cần kiên nhẫn. Toàn bộ thiết lập này mất của tôi gần 3 giờ. Khởi chạy máy ảo GPU mất khoảng 15 phút, cài Docker và NVIDIA container toolkit khoảng 10 phút, kéo image Docker SGLang khoảng 30 phút, và tải cùng nạp trọng số model Mistral Medium 3.5 khoảng 1 giờ

Bắt đầu thiết lập EAGLE cũng tốn thêm thời gian vì nó nạp model lại và có thể tải model nháp EAGLE. Nếu muốn trải nghiệm mượt hơn, hãy dùng mạng nhanh hơn, GPU mới hơn như H200 nếu có, và đủ dung lượng cho toàn bộ cache của Hugging Face.

Phiên bản 4x H100 GPU chạy trong 3 giờ 14 phút.

2. Docker không thấy GPU

Nếu nvidia-smi hoạt động trên máy chủ host nhưng Docker không truy cập được GPU, có thể NVIDIA container runtime chưa được cấu hình đúng. Chạy lại cấu hình NVIDIA container toolkit và khởi động lại Docker:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Tài liệu của NVIDIA cũng khuyến nghị bước cấu hình runtime nvidia-ctk này cho truy cập GPU trong Docker.

3. Model liên tục tải lại

Hãy đảm bảo cache Hugging Face được mount vào container:

-v ~/.cache/huggingface:/root/.cache/huggingface

Điều này cho phép Docker tái sử dụng các tệp model đã tải thay vì tải lại mỗi lần. Hugging Face dùng cache cục bộ để tránh tải lại các tệp đã cập nhật.

4. Tải xuống chậm hoặc bị treo

Kho Mistral Medium 3.5 rất lớn, nên lần tải đầu có thể mất lâu. Nếu có vẻ bị treo, hãy kiểm tra tốc độ mạng, dung lượng đĩa và token Hugging Face. Đồng thời, đảm bảo bạn đã chấp nhận các điều khoản truy cập model bắt buộc trên Hugging Face trước khi chạy container.

5. API endpoint không phản hồi

Máy chủ chưa sẵn sàng cho đến khi log hiển thị Uvicorn đang chạy trên cổng 30000. Kiểm tra log bằng:

docker logs -f mistral-sglang

hoặc với EAGLE:

docker logs -f mistral-sglang-eagle

Ngoài ra, đảm bảo container đã mở cổng đúng với:

-p 30000:30000

6. EAGLE không nhanh hơn lần chạy cơ bản

Điều này bình thường. Speculative decoding không đảm bảo cải thiện mọi yêu cầu. Nó hoạt động bằng cách dùng model nháp đề xuất token và model chính xác minh, nhưng mức tăng tốc phụ thuộc vào tỷ lệ chấp nhận, độ dài prompt, độ dài đầu ra, mức độ song song và sử dụng GPU.

7. Lỗi thiếu bộ nhớ

Nếu gặp vấn đề bộ nhớ, hãy giảm độ dài ngữ cảnh trước. Ví dụ, bắt đầu với --context-length 100000 thay vì thử ngay cửa sổ ngữ cảnh đầy đủ. Bạn cũng có thể giảm nhẹ --mem-fraction-static nếu khởi động thất bại, nhưng giảm độ dài ngữ cảnh thường là bước đầu dễ nhất.

8. OpenCode không kết nối được model

Hãy đảm bảo máy chủ SGLang đang chạy và opencode.json của bạn dùng đúng endpoint cục bộ:

"baseURL": "http://127.0.0.1:30000/v1"

Nếu bạn truy cập máy chủ từ máy cục bộ, hãy khởi động SSH với chuyển tiếp cổng:

ssh -L 30000:localhost:30000 ubuntu@XXXXXX

Sau đó khởi chạy OpenCode từ cùng thư mục nơi lưu tệp opencode.json.

Suy ngẫm cuối

Tôi thật sự ngạc nhiên về độ trơn tru của thiết lập kỹ thuật. Chạy Mistral Medium 3.5 128B với image Docker gốc của SGLang dễ hơn tôi mong đợi. Image Docker được kéo chính xác, model nạp thành công, endpoint tương thích OpenAI hoạt động và OpenCode kết nối mà không gặp nhiều trục trặc. T

ôi khuyên bạn, nếu tự thử, hãy dùng image Docker của SGLang thay vì cài mọi thứ bằng gói Python. Khi cài qua Python, rất dễ phát sinh xung đột với CUDA, PyTorch và các phụ thuộc khác. Docker giữ mọi thứ sạch và tách biệt.

Nhưng điều đáng chú ý nhất tôi rút ra là chi phí. Thành thật mà nói, tôi không biết các công ty AI kiếm tiền từ suy luận bằng cách nào. Ngay cả với một trong những tùy chọn H100 PCIe cũ và rẻ hơn, thiết lập này vẫn vào khoảng $10 mỗi giờ. Và đây chỉ là một model 128B trên 4 GPU. Hãy tưởng tượng chạy một model nghìn tỷ tham số lớn hơn nhiều trên 16× H100. Hóa đơn dễ dàng chạm $40+ mỗi giờ, trước khi tính đến lưu trữ, mạng, giám sát, uptime và công việc kỹ thuật.

Với các công ty nhỏ, tôi không nghĩ việc phục vụ các model như thế này cục bộ là hợp lý trừ khi có lý do rất mạnh như quyền riêng tư, nghiên cứu, hoặc cần kiểm soát sâu ngăn xếp suy luận. Chi phí suy luận đã cao, nhưng gánh nặng vận hành cũng là vấn đề. Bạn cần giữ máy chủ luôn chạy, đảm bảo model không sập, giám sát bộ nhớ GPU, xử lý container lỗi và duy trì endpoint sẵn sàng.

Serverless cũng không thực sự giải quyết được điều này cho các model rất lớn. Thời gian khởi chạy lạnh đơn giản là quá dài. Với thiết lập này, khởi chạy máy ảo GPU, cài phụ thuộc, kéo image Docker, tải trọng số và nạp model mất gần 3 giờ tất cả. 

Ngay cả khi thiết lập của bạn nhanh hơn, việc nạp một model cỡ này vẫn mất nhiều thời gian. Vì vậy nếu mỗi yêu cầu mới đòi hỏi khởi chạy một cụm GPU khác và nạp lại model, điều đó đi ngược mục đích của serverless. Trên thực tế, các công ty cần giữ cụm GPU ở trạng thái warm, đồng nghĩa vẫn phải trả tiền ngay cả khi GPU nhàn rỗi.

Điều này cũng giải thích vì sao có mức giá GPU ngoài giờ cao điểm. Nhà cung cấp muốn người dùng tận dụng công suất GPU nhàn rỗi vì GPU không được dùng chỉ đốt tiền. Với người dùng, đó có thể là cách thử nghiệm rẻ hơn, nhưng cũng cho thấy bài toán kinh tế của suy luận model lớn khó khăn thế nào.

Tổng thể, tôi rất thích SGLang cho thiết lập này. Quy trình dựa trên Docker khiến việc phục vụ Mistral Medium 3.5 128B dễ hơn nhiều so với kỳ vọng, và bài test với OpenCode thực sự ấn tượng. Nhưng thử nghiệm này cũng làm tôi thấy rõ một điều: chạy các model mở lớn cục bộ là khả thi, nhưng vận hành chúng một cách ổn định và hợp chi phí như một sản phẩm thực sự là một thách thức hoàn toàn khác.


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ủ đề

Học AI cùng DataCamp!

Tracks

Kỹ sư Trợ lý Trí tuệ Nhân tạo (AI) cho Lập trình viên

26 giờ
Học cách tích hợp trí tuệ nhân tạo (AI) vào các ứng dụng phần mềm thông qua việc sử dụng các giao diện lập trình ứng dụng (API) và các thư viện mã nguồn mở. Hãy bắt đầu hành trình trở thành Kỹ sư Trí tuệ Nhân tạo ngay hôm nay!
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow