Chạy DeepSeek-R1-671B-Q4_K_M trên Xeon với 1–2 Arc A770
(github.com/intel)- Đây là tài liệu khởi động nhanh IPEX-LLM portable zip/tgz dành cho người dùng muốn chạy trực tiếp llama.cpp trên GPU Intel; ở gói mới nhất còn đề cập đến việc chạy DeepSeek-R1-671B-Q4_K_M trên Xeon với 1 hoặc 2 Arc A770
- Môi trường mục tiêu bao gồm cả Windows và Linux, hướng dẫn quy trình chạy model GGUF trên Intel Core Ultra/thế hệ 11~14 và GPU Intel Arc A-Series/B-Series
- Luồng cơ bản là chuẩn bị model GGUF trên máy cục bộ rồi chạy
llama-clivới các tùy chọn như-ngl 99,-c 2500,-n 2048,--temp 0 - FlashMoE chỉ dành cho Linux là CLI được tối ưu để chạy MoE GGUF dòng DeepSeek V3/R1; với DeepSeek V3/R1, yêu cầu bộ nhớ CPU 380GB, 1~8 Arc A770 và 500GB dung lượng đĩa
- Trong môi trường trộn nhiều GPU Intel, mặc định hệ thống sẽ dùng tất cả GPU, vì vậy với cấu hình iGPU/dGPU có thể chỉ định GPU bằng
ONEAPI_DEVICE_SELECTORhoặc tắt kiểm tra bằngSYCL_DEVICE_CHECK=0
Chạy llama.cpp bằng portable zip/tgz
- llama.cpp portable zip là gói dựa trên
ipex-llmđể chạy trực tiếp llama.cpp trên GPU Intel - Tài liệu giả định theo luồng portable zip/tgz nhằm giảm cài đặt thủ công; portable zip mới nhất đề cập đến việc chạy DeepSeek-R1-671B-Q4_K_M trên Xeon với 1 hoặc 2 Arc A770
- Phạm vi phần cứng đã được xác thực:
- Intel Core Ultra processors
- Intel Core thế hệ 11~14
- GPU Intel Arc A-Series
- GPU Intel Arc B-Series
Khởi động nhanh trên Windows
-
Khuyến nghị cập nhật driver GPU Intel lên phiên bản mới nhất
-
Tải IPEX-LLM llama.cpp portable zip cho Windows từ bản phát hành v2.3.0-nightly rồi giải nén
-
Trong
cmd, chuyển vào thư mục đã giải néncd /d PATH\\TO\\EXTRACTED\\FOLDER
-
Người dùng nhiều GPU có thể áp dụng thiết lập chọn GPU trước khi chạy
-
Chạy model GGUF
- Trước khi chạy, cần tải xuống hoặc chép model GGUF từ cộng đồng vào thư mục cục bộ
- Model ví dụ là
DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguftừ bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF - Thay đường dẫn model bằng vị trí thực tế rồi chạy
llama-cli.exe
llama-cli.exe -m PATH\TO\DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf -p "A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: Question:The product of the ages of three teenagers is 4590. How old is the oldest? a. 18 b. 19 c. 15 d. 17 Assistant: <think>" -n 2048 -t 8 -e -ngl 99 --color -c 2500 --temp 0 -no-cnv- Kết quả ví dụ hiển thị 1 thiết bị SYCL
Intel Arc A770 Graphics, KV cache, SYCL compute buffer, thiết lập sampler và thông tin hiệu năng sinh token
Khởi động nhanh trên Linux
-
Khuyến nghị kiểm tra phiên bản driver GPU và nếu cần thì cài đặt theo Intel client GPU driver installation guide
-
Tải IPEX-LLM llama.cpp portable tgz cho Linux từ bản phát hành v2.3.0-nightly rồi giải nén
-
Trong terminal, chuyển vào thư mục đã giải nén
cd /PATH/TO/EXTRACTED/FOLDER
-
Khi dùng llama.cpp portable zip trên Linux thì không được source oneAPI
-
Chạy model GGUF
- Tương tự Windows, chuẩn bị sẵn model GGUF từ cộng đồng như
DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguftrên máy cục bộ - Thay đường dẫn model bằng vị trí thực tế rồi chạy
./llama-cli
./llama-cli -m /PATH/TO/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf -p "A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: Question:The product of the ages of three teenagers is 4590. How old is the oldest? a. 18 b. 19 c. 15 d. 17 Assistant: <think>" -n 2048 -t 8 -e -ngl 99 --color -c 2500 --temp 0 -no-cnv- Kết quả ví dụ bao gồm danh sách thiết bị SYCL,
llama_kv_cache_init,llama_init_from_model, chuỗi sampler,n_ctx = 2528,n_batch = 4096,n_predict = 2048và các thông tin chạy khác
- Tương tự Windows, chuẩn bị sẵn model GGUF từ cộng đồng như
Chạy DeepSeek V3/R1 bằng FlashMoE
-
FlashMoE là công cụ dòng lệnh được xây dựng trên
llama.cpp, tối ưu cho việc chạy các model MoE như DeepSeek V3/R1 -
Hiện chỉ dùng được trên nền tảng Linux
-
Các model MoE GGUF đã được thử nghiệm:
-
Các model MoE GGUF khác cũng được hỗ trợ
-
Yêu cầu và lưu ý
- Yêu cầu để chạy DeepSeek V3/R1:
- Bộ nhớ CPU 380GB
- 1~8 Arc A770
-
Dung lượng đĩa 500GB
- Model lớn hơn hoặc độ chính xác khác có thể cần nhiều tài nguyên hơn
- Trên nền tảng chỉ có 1 Arc A770, cần giảm độ dài ngữ cảnh để tránh OOM; ví dụ thêm
-c 1024vào cuối lệnh - Trên nền tảng dual-socket, bật
SNC (Sub-NUMA Clustering)trong BIOS và thêmnumactl --interleave=alltrước lệnh chạy có thể cho hiệu năng giải mã tốt hơn - Khi dùng FlashMoE cũng không được source oneAPI
- Yêu cầu để chạy DeepSeek V3/R1:
-
Chạy CLI
- Model ví dụ là DeepSeek-R1-Q4_K_M.gguf, chỉ định đường dẫn tới file phân mảnh đầu tiên
./flash-moe -m /PATH/TO/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --prompt "What's AI?" -no-cnv- Kết quả ví dụ hiển thị KV buffer của 8 thiết bị SYCL,
pipeline parallelism enabled, graph nodes/splits,n_threads = 48,n_ctx = 4096,n_batch = 4096và các thông tin chạy khác
-
Chạy chế độ Serving
./flash-moe -m /PATH/TO/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --serve -n 512 -np 2 -c 4096-nlà số token cần dự đoán,-nplà số chuỗi giải mã song song,-clà kích thước ngữ cảnh tổng thể- Có thể điều chỉnh các giá trị này cho phù hợp với yêu cầu
- Tính năng Serving dùng được từ v2.3.0 nightly build
- Kết quả ví dụ bao gồm
n_slots = 2,n_ctx_slot = 2048của từng slot, quá trình nạp model, chat template và trạng thái chờ server tạihttp://127.0.0.1:8080
Chọn nhiều GPU và lỗi SYCL
-
Phát hiện các thiết bị SYCL khác nhau
- Nếu trộn nhiều GPU khác nhau, có thể xuất hiện lỗi
Detected different sycl devices - Ví dụ là trường hợp cùng lúc phát hiện 2 Arc A770 và 1 iGPU Intel UHD Graphics 770
- Nếu GPU không giống nhau, tác vụ sẽ được phân bổ theo bộ nhớ thiết bị; trong ví dụ, iGPU nhận 2/3 khối lượng tính toán nên hiệu năng giảm mạnh
- Có hai lựa chọn
- Tắt iGPU để có hiệu năng tốt nhất
- Tắt kiểm tra và dùng tất cả thiết bị
set SYCL_DEVICE_CHECK=0 export SYCL_DEVICE_CHECK=0 - Nếu trộn nhiều GPU khác nhau, có thể xuất hiện lỗi
-
Chỉ định GPU sẽ dùng
- Nếu có nhiều GPU Intel, llama.cpp mặc định sẽ chạy trên tất cả GPU
- Để chỉ dùng GPU cụ thể, hãy đặt biến môi trường
ONEAPI_DEVICE_SELECTORtrước khi bắt đầu lệnh llama.cpp - Windows:
set ONEAPI_DEVICE_SELECTOR=level_zero:0 set ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"- Linux:
export ONEAPI_DEVICE_SELECTOR=level_zero:0 export ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"- Xem thêm chi tiết chọn nhiều GPU tại multi_gpus_selection.md
Tùy chọn hiệu năng và xác minh chữ ký
-
Immediate command lists
SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTSquyết định có dùng immediate command lists để gửi tác vụ GPU hay không- Thường có thể cải thiện hiệu năng, nhưng vẫn có ngoại lệ; nên thử cả khi bật và tắt biến môi trường để tìm mức hiệu năng tốt nhất
- Windows:
set SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1- Linux:
export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1- Xem chi tiết trong tài liệu về Level Zero immediate command lists của Intel
-
Xác minh chữ ký của portable zip/tgz 2.2.0
- Phiên bản portable zip/tgz 2.2.0 có thể xác minh chữ ký bằng
openssl - Trước khi xác minh, hệ thống cần cài
openssl
openssl cms -verify -in <portable-zip-or-tgz-file-name>.pkcs1.sig -inform DER -content <portable-zip-or-tgz-file-name> -out nul -noverify - Phiên bản portable zip/tgz 2.2.0 có thể xác minh chữ ký bằng
1 bình luận
Ý kiến trên Hacker News
Cấu hình này thiếu VRAM, nên phải chuyển nhiều dữ liệu qua lại giữa bộ nhớ CPU và GPU, vì vậy nhiều khả năng hiệu năng sẽ không thật sự tốt
Dù vậy vẫn có bản mô hình lượng tử hóa dưới 256GB của DeepSeek-R1, và không phải bản chưng cất: https://unsloth.ai/blog/deepseekr1-dynamic
Khó định lượng khác biệt so với DSR1 FP8 đầy đủ, nhưng ngay cả mô hình lượng tử hóa ~Q2 cũng dùng được khá ổn ngoài dự đoán
Một mô hình khác đáng nhắc đến là DeepSeek v2.5; nó có ít tham số hơn V3/R1, nhưng để chạy trên phần cứng tiêu dùng vẫn cần lượng tử hóa mạnh. Gần đây đã có người làm sẵn: https://www.reddit.com/r/LocalLLaMA/comments/1irwx6q/deepsee...
DeepSeek v2.5 có thể còn được xem là tốt hơn Llama 3 70B, nên tôi nghĩ đây là mô hình mà những ai muốn chạy suy luận cục bộ nên biết đến nhiều hơn
Với IQ2_XXS / 183GB, ngữ cảnh 16k, nếu chỉ dùng CPU thì xử lý prompt đạt 3 token/giây, trả lời 1,44 token/giây; với CPU + NVIDIA RTX 70GB VRAM thì xử lý prompt đạt 4,74 token/giây, trả lời 1,87 token/giây
Nếu Unsloth phát hành lượng tử hóa tương tự cho DeepSeek V3 thì có lẽ sẽ hữu ích hơn. Vì không cần token suy luận, nên dù cùng token/giây tổng thể vẫn có thể nhanh hơn
Tôi đang dùng Q2_K_XL và cá nhân thấy đủ tốt. Điểm thua FP8 là ở mảng viết sáng tạo, nên nếu đưa cùng prompt kể chuyện vài lần rồi so với FP8 sẽ thấy khác biệt
Trong lập trình, bản 1,58 bit chắc chắn gây lỗi nhiều hơn Q2XXS hoặc Q2_K_XL
https://github.com/intel/ipex-llm/blob/main/docs/mddocs/Quic...
Yêu cầu để đạt hơn 8 token/giây là 380GB bộ nhớ CPU, 1–8 card ARC A770 và 500GB ổ đĩa
Có vẻ dưới 10.000 USD, và hình như tôi cũng chưa thấy số liệu token/giây
Tôi thắc mắc trong tình huống này Xeon chính xác đóng vai trò gì. Có lý do nào khiến không thể dùng bộ xử lý x86 khác không?
Bo mạch chủ server có thể có tới 16 khe DIMM mỗi socket và hỗ trợ RDIMM/LRDIMM, nên có thể gắn nhiều module hơn và các module dung lượng lớn hơn.
Thời điểm đỉnh dịch COVID cũng từng có UDIMM 128GB được ra mắt.
Vừa tìm vài phút thì dễ thấy cấu hình dưới 1500 USD trước khi thêm card đồ họa hay SSD, và cấu hình 1024GB RAM cũng có dưới 2000 USD.
Ít nhất nếu muốn gắn nhiều card PCI-Express x16 3.0 chạy đủ tốc độ thì cũng cần đủ lane PCIe, điều này khó tìm trên bo mạch chủ workstation Intel single-socket.
Có thể nêu vài cấu hình tương đối rẻ với 512GB RAM làm ví dụ. Chúng sẽ ăn điện nhiều và ồn, nhưng các phần cứng x86-64 khác như hp hay supermicro cũng theo cùng cách tiếp cận. Thường là cấu hình 16 x 32GB DDR4 DIMM.
https://www.ebay.com/itm/186991103256?_skw=dell+poweredge+t6...
https://www.ebay.com/itm/235978320621?_skw=dell+poweredge+r7...
https://www.ebay.com/itm/115819389940?_skw=dell+poweredge+r7...
Tôi thắc mắc vì sao họ không tung ra GPU có nhiều RAM hơn, lớn hơn nhưng chậm hơn. Như vậy có thể chứa được các mô hình lớn hơn mà giá vẫn trong tầm chịu được.
Nhu cầu GPU cho AI đang vượt cung, và đằng sau phần lớn nhu cầu đó là dòng tiền nóng có thể nhận trợ cấp, vay vốn hoặc vốn đầu tư. Hãng GPU có thể thu lấy số tiền đó.
Đáng tiếc là VRAM là một tiêu chí hoàn hảo để phân tách nhu cầu dùng nhẹ và nhu cầu có tiền. Nó giống như SSO trở thành tiêu chí hoàn hảo để phân tách bản doanh nghiệp và không phải doanh nghiệp, rồi bị gắn thuế SSO.
DeepSeek học cách đặt tên mô hình từ OpenAI à?
Thuật ngữ K_M có vẻ đặc thù hơn với GGUF và mô tả chiến lược lượng tử hóa cụ thể.
Bài viết cần có thêm thông tin. Tôi muốn biết vì sao các số TPS đều bị che bằng x, có thể kỳ vọng hiệu năng thế nào từ cấu hình này, và so với cấu hình workstation dual Epyc đang thịnh hành gần đây thì ra sao.
Nhìn việc họ che giá trị token/giây trong kết quả mẫu thì chắc hẳn nó chạy rất tốt.
Có vẻ ngoài Nvidia cũng có vài lựa chọn để chạy suy luận LLM và Stable Diffusion. Có Intel Arc, dòng Apple M, và giờ có cả AMD Ryzen AI Max.
Rõ ràng chạy trên Nvidia là tối ưu nhất, nhưng vì khó kiếm card Nvidia VRAM cao với giá hợp lý nên tôi vẫn cứ nghĩ đến thiết bị không phải Nvidia.
Nếu không quan tâm đến huấn luyện hay tinh chỉnh, mà chỉ suy luận thôi, thì các giải pháp kiểu này có thực sự dùng được không? Cũng tò mò liệu có khả thi trên máy Linux không.
Bài này về cơ bản gần như chỉ là Intel nhắc rằng “chúng tôi cũng làm GPU rồi đấy”, và bản thân card giá rẻ thì ổn, nhưng hệ sinh thái còn tụt hậu quá xa.
Nói thật, đây là lĩnh vực khó có thể tiết kiệm ngân sách mà vẫn làm cho ra hồn.
Tôi nghĩ khi APU dành cho AI xuất hiện, sự quan tâm dành cho GPU sẽ nhanh chóng nguội đi.
Với AMD Halo Strix hay Apple M3 Studio APU, có thể dùng RAM 512GB hoặc 128GB, vậy tại sao phải mua Nvidia 4090 đắt đỏ?
Nvidia đã giữ giá cao và hiệu năng thấp lâu nhất có thể, và giờ cạnh tranh mới xuất hiện. Intel cũng có thể làm APU gắn thật nhiều RAM.
Hy vọng Nvidia đang hơi sốt ruột.