Đọc kiến trúc Kimi K3
Ba cơ chế mới của Kimi K3 là quyết định phần cứng trước khi là quyết định chất lượng. Mình đọc abstract, đọc sơ đồ khối, rồi lấy bảng giá GPU ra tính.
Ba cơ chế mới trong K3 là quyết định về phần cứng trước khi là quyết định về chất lượng. Mỗi cái chữa một chỗ nghẽn, và mỗi cái để lại một dấu vết trên hoá đơn. Cộng hết lại, "trọng số mở" của K3 không có nghĩa là bạn chạy được nó.
Câu thứ hai trong abstract mới là câu đáng đọc
Abstract mở đầu bằng bộ số đã đi khắp các bản tin: 2.8 nghìn tỷ tham số, 104 tỷ kích hoạt cho mỗi token, cửa sổ một triệu token, thị giác gắn sẵn trong mô hình [1]. Câu ngay sau đó nói K3 dựa trên Kimi Delta Attention cùng Attention Residuals, hai thứ cải thiện dòng thông tin qua chiều dài chuỗi và qua độ sâu mô hình.
Câu đó chỉ đúng vào hai chỗ nghẽn quen thuộc của transformer, rồi nói Moonshot chữa mỗi chỗ bằng một cơ chế riêng.
Một mô hình ngôn ngữ phải chuyển thông tin theo hai trục vuông góc nhau. Trục ngang chạy dọc theo chuỗi: chữ ở token số 3 phải còn tác dụng khi mô hình đọc tới token thứ chín trăm nghìn. Trục dọc chạy xuống các lớp: thứ mà lớp thứ tám nhận ra phải còn nguyên khi lớp thứ tám mươi cần tới. Hai trục hỏng theo hai kiểu khác nhau, nên chúng cần hai cách chữa khác nhau.
Cơ chế 1: đổi kho lưu trữ vô hạn lấy một cuốn sổ cố định
Attention kiểu softmax làm việc như một người đọc có trí nhớ hoàn hảo nhưng lười tóm tắt. Gặp token mới, nó lật lại toàn bộ token đã đọc, chấm điểm liên quan cho từng cái, rồi trộn theo điểm. Với một nghìn token thì việc đó rẻ. Với một triệu token, số cặp phải chấm tăng theo bình phương, còn bộ nhớ giữ key và value của mọi token đã đọc thì phình tuyến tính cho tới lúc GPU hết chỗ.
Nhóm linear attention chọn hướng ngược lại. Chúng bỏ kho lưu trữ vô hạn và giữ một cuốn sổ tóm tắt kích thước cố định, thực chất là một ma trận trạng thái. Đọc cuốn sổ chỉ tốn một phép nhân, không phụ thuộc chuỗi đã dài bao nhiêu. Cái giá phải trả là mô hình buộc phải chọn: cái gì đáng ghi vào sổ, cái gì bỏ.
Delta rule là cách chọn đó. Trước khi ghi token mới, mô hình tra sổ xem với khoá này nó đang trả về giá trị gì, đem so với giá trị mới, rồi chỉ ghi phần chênh lệch [2]. Cách này tránh ghi đè thô bạo lên thứ đã nhớ, và tránh cộng dồn trùng lặp khi cùng một thông tin xuất hiện nhiều lần trong văn bản.
Chữ delta ở đây là hiệu giữa thông tin mới và thứ bộ nhớ đang trả về, không phải hiệu giữa hai token cạnh nhau. Cơ chế so thực tế với dự đoán của chính bộ nhớ, và nhầm chỗ này thì phần còn lại đọc sai hết.
Một cuốn sổ cố định thì phải quên có kỷ luật, nếu không nó bão hoà. Các biến thể gated giải quyết bằng một cái van cho từng kênh, quyết định phần cũ bị làm mờ bao nhiêu trước khi phần mới được ghi vào. Quên chủ động là thứ giữ cho cuốn sổ còn dùng được ở độ dài lớn.
Moonshot mô tả Kimi Delta Attention lần đầu trong báo cáo Kimi Linear tháng 10 năm 2025, và chính báo cáo đó gọi KDA là bản mở rộng của Gated DeltaNet bằng một cơ chế cổng mịn hơn [3]. Phần cơ chế mình vừa kể đọc theo mạch đó, không trích từ phần công thức của báo cáo K3.
Cuốn sổ đó to bằng bao nhiêu
Không cần đợi bản PDF đầy đủ. Trọng số đã mở, nên config.json trả lời thẳng [4].
Mỗi head giữ một ma trận \(S \in \mathbb{R}^{d_k \times d_v}\) với \(d_k = d_v = 128\), tức 16.384 số. K3 có 96 head, và 69 trong 93 lớp là KDA.
| Kimi Linear 48B-A3B | Kimi K3 | |
|---|---|---|
| \(d_k \times d_v\) mỗi head | 128 x 128 | 128 x 128 |
| Số head | 32 | 96 |
| Sổ mỗi lớp, bf16 | 1 MiB | 3 MiB |
| Lớp KDA / full attention | 20 / 7 | 69 / 24 |
| Tổng sổ mỗi chuỗi | 20 MiB | 0,20 GiB |
Cột cuối là chỗ đáng nhìn: nó không đổi. Một token hay một triệu token vẫn 0,20 GiB.
Thứ vẫn phình theo độ dài là KV cache của 24 lớp full attention còn lại. Với kv_lora_rank 512 cộng qk_rope_head_dim 64, mỗi token tốn 1152 byte mỗi lớp:
| Độ dài ngữ cảnh | 24 lớp MLA của K3 | Nếu cả 93 lớp đều full attention |
|---|---|---|
| 131.072 token | 3,38 GiB | 13,08 GiB |
| 1.048.576 token | 27,00 GiB | 104,62 GiB |
Giữ lại 24 trên 93 lớp là 25,8 phần trăm. Con số ấy nằm cùng khoảng với mức giảm 75 phần trăm mà paper Kimi Linear báo cáo trên mô hình 48 tỷ tham số [3], nhưng đây là phép nhân mình tự làm từ config của chính K3, không phải số mượn.
Công thức, viết đúng như kernel chạy
Linear attention cổ điển chỉ biết cộng dồn:
\[S_t = S_{t-1} + k_t v_t^\top, \qquad o_t = S_t^\top q_t\]
Delta rule đọc sổ trước rồi chỉ ghi phần sai:
\[S_t = S_{t-1} + \beta_t\, k_t \bigl(v_t - S_{t-1}^\top k_t\bigr)^{\!\top}\]
KDA thêm một bước làm mờ trước khi ghi. Đặt \(\tilde S_t = \operatorname{Diag}(\alpha_t)\, S_{t-1}\) là cuốn sổ sau khi đã phai:
\[S_t = \tilde S_t + \beta_t\, k_t \bigl(v_t - \tilde S_t^{\top} k_t\bigr)^{\!\top}, \qquad o_t = S_t^\top q_t\]
Khai triển ra là thấy cái tên DPLR trong abstract:
\[S_t = \underbrace{\bigl(I - \beta_t k_t k_t^\top\bigr)}_{\text{hạng một}} \underbrace{\operatorname{Diag}(\alpha_t)}_{\text{đường chéo}} S_{t-1} + \beta_t k_t v_t^\top\]
Ma trận chuyển là đường chéo cộng hạng một. Đường chéo là cái van quên, hạng một là cú sửa của delta rule. Bốn dòng trong kernel fused_recurrent_kda chạy đúng thứ tự đó: nhân trạng thái với cổng, trừ đi giá trị bộ nhớ đang trả về, nhân sai số với \(\beta_t\), cộng tích ngoài vào [5].
Hai hệ số, và chỗ KDA khác Gated DeltaNet
\[\beta_t = \sigma(W_b\, x_t) \in \mathbb{R}^{H}, \qquad \alpha_t = \exp(g_t) \in \mathbb{R}^{d_k}\]
Đọc kích thước là ra sự khác nhau. Lớp sinh \(\beta\) xuất đúng num_heads giá trị, nên \(\beta_t\) là một số cho cả head: mức tin vào token này. Còn \(g_t\) có một giá trị cho từng kênh [5]. Gated DeltaNet nhân cả ma trận với một \(\alpha\) vô hướng; KDA dùng \(\operatorname{Diag}(\alpha_t)\) với 128 nhịp quên độc lập, nên kênh này giữ suốt triệu token trong khi kênh kia xoá sau vài câu. Đó là toàn bộ nội dung của chữ "mịn hơn".
K3 còn siết thêm hai chỗ so với bản 48 tỷ. Config đặt gate_lower_bound bằng -5, nghĩa là \(\alpha_t \in (e^{-5}, 1)\) và một bước không bao giờ xoá sạch được kênh nào. Và use_full_rank_gate bật, tức bỏ nút thắt hạng thấp mà bản 48 tỷ dùng để sinh cổng [4].
Vì sao gọi là delta
Đặt hàm mất mát "hãy làm cuốn sổ trả về \(v_t\) khi hỏi bằng \(k_t\)":
\[\mathcal{L}_t(S) = \tfrac{1}{2}\bigl\lVert S^\top k_t - v_t \bigr\rVert^2 \quad\Longrightarrow\quad \nabla_S \mathcal{L}_t = k_t\bigl(S^\top k_t - v_t\bigr)^{\!\top}\]
Thay vào bước ghi ở trên:
\[S_t = \tilde S_t - \beta_t\, \nabla_S \mathcal{L}_t(\tilde S_t)\]
Bước ghi là một bước gradient descent, và \(\beta_t\) là learning rate. Bộ nhớ không phải cái kho, nó là một mô hình tuyến tính đang được huấn luyện online ngay trong lúc đọc văn bản. Chữ delta lấy từ delta rule của Widrow và Hoff năm 1960, nghĩa là sai số dự đoán.
Cơ chế 2: một dòng chung cho tám mươi lớp là quá ít
Residual connection có từ 2015 và transformer nào cũng dùng. Mỗi khối cộng đầu ra của nó vào đầu vào, nên khi khối không đóng góp gì thì tín hiệu vẫn đi qua nguyên vẹn. Cách này đã cứu việc huấn luyện mạng sâu khỏi chỗ chết.
Ở mô hình rất sâu, tín hiệu vẫn đi qua nhưng loãng dần. Nhiều chục lớp cùng đổ đóng góp vào một dòng chung, tới lớp cuối thì thứ mà lớp thứ mười tìm ra chỉ còn là một phần rất nhỏ trong tổng. Lớp trên đọc được bản trộn, không đọc được từng phần.
Cái tên Attention Residuals nói rằng Moonshot mở thêm một dòng riêng cho nhánh attention: đầu ra attention của các lớp trước nối thẳng lên attention của lớp sau, thay vì hoà hết vào dòng chung. Lớp trên nhờ đó đọc được lớp dưới đã chú ý vào đâu.
Hình trên vẽ ý tưởng, không vẽ đúng sơ đồ K3. Paper Attention Residuals tháng 3 năm 2026 phát biểu vấn đề chặt hơn cách người ta thường kể lại: nó không nói residual làm thông tin biến mất, mà nói residual cộng mọi đầu ra của lớp với trọng số cố định bằng một, khiến hidden state phình lên không kiểm soát theo chiều sâu và phần đóng góp của từng lớp bị pha loãng dần [6]. AttnRes thay phép cộng đều đó bằng trọng số học được, phụ thuộc vào đầu vào: mỗi lớp mang một truy vấn, chấm điểm các lớp đứng trước bằng softmax, rồi lấy tổng có trọng số. Bản dùng được ở quy mô lớn là Block AttnRes, chia lớp thành khối rồi chấm điểm ở mức khối, vì nối mọi lớp với mọi lớp thì tốn cả bộ nhớ lẫn băng thông liên GPU.
Moonshot chọn bản khối vì băng thông giữa các GPU chịu không nổi bản đầy đủ. Phần cứng vừa sửa một quyết định kiến trúc, và trong bài này nó còn sửa thêm hai lần.
Cơ chế 3: chia việc cho 896 chuyên gia mà không để họ đổi việc mỗi bước
Mixture of Experts chia mạng thành nhiều chuyên gia và chỉ đánh thức vài người cho mỗi token. K3 có 896 chuyên gia được định tuyến và dùng 16 cho mỗi token, trong khi K2 có 384 và dùng 8 [1]. Nhờ vậy một mô hình 2.8 nghìn tỷ tham số chỉ tốn chi phí tính toán của một mô hình 104 tỷ.
Router là một lớp nhỏ chấm điểm cho từng chuyên gia rồi lấy nhóm điểm cao nhất. Phần khó nằm ở chỗ giữ cho lựa chọn đó đứng yên. Trong lúc huấn luyện, biểu diễn của token dịch chuyển từng bước, và thứ hạng của những chuyên gia có điểm sát nhau lật qua lật lại. Một chuyên gia vừa bắt đầu học một loại token thì mất loại đó vào tay hàng xóm, vài trăm bước sau lại nhận về.
Hậu quả đi ra tận phần cứng. Vài chuyên gia bị bỏ đói nên không học được gì, vài người quá tải, và khi các chuyên gia nằm trên những GPU khác nhau thì mất cân bằng biến thành thời gian ngồi chờ. Cách chữa quen thuộc là cộng thêm một loss phụ ép router chia đều, nhưng loss phụ kéo mô hình chệch khỏi mục tiêu chính.
Chữ Latent trong tên gọi dễ làm người đọc tưởng router quyết định trên một biểu diễn đã nén. Sơ đồ khối nói khác [7]. Token đi vào router ở chiều đầy đủ, và cũng đi thẳng vào nhóm chuyên gia dùng chung ở chiều đầy đủ. Chỉ sau khi router chọn xong, token mới bị chiếu xuống chiều thấp rồi mới đi vào 16 chuyên gia được chọn, tính xong lại kéo ngược lên. Config cho biết mức nén đúng bằng một nửa: trục chính chạy ở 7168 chiều, còn chuyên gia được định tuyến làm việc ở 3584 [4]. Quyết định chọn ai vẫn dựa trên thông tin nguyên vẹn. Thứ bị nén là gói tin chạy trên dây giữa các GPU.
Chữ Stable nằm ở chỗ khác: Quantile Balancing. Thay vì cộng thêm một khoản thưởng phạt vào điểm của từng chuyên gia rồi chỉnh dần, Moonshot suy thẳng suất phân bổ từ phân vị của điểm router, bỏ được cả bước cập nhật thủ công lẫn một siêu tham số nhạy [7]. Ở quy mô này, bỏ được một siêu tham số nhạy đáng giá hơn vài điểm benchmark: nó là một thứ không còn cơ hội chỉnh sai giữa một lần huấn luyện dài.
2.5 lần, theo lời nhà sản xuất
Moonshot gộp ba thay đổi này với công thức huấn luyện và dữ liệu mới, rồi quy thành một con số: hiệu suất scaling tốt hơn K2 khoảng 2.5 lần [1]. Abstract không định nghĩa phép đo đó, nên hãy đọc nó như tuyên bố của nhà sản xuất, không phải kết quả đo độc lập.
| Hạng mục | Kimi K2, 07/2025 | Kimi K3, 07/2026 |
|---|---|---|
| Tổng tham số | 1T | 2.8T |
| Kích hoạt mỗi token | 32B | 104B |
| Chuyên gia định tuyến | 384, chọn 8 | 896, chọn 16 |
| Cửa sổ ngữ cảnh | 128K | 1M |
| Thị giác | không | có sẵn trong mô hình |
| Trọng số | mở | mở |
Ba cơ chế đánh vào ba chi phí khác nhau. Delta Attention hạ chi phí theo chiều dài chuỗi, nên một triệu token khả thi về tiền chứ không chỉ khả thi về kỹ thuật. Attention Residuals giữ chất lượng khi mô hình dày lên. Stable LatentMoE giữ cho việc mở rộng số chuyên gia không biến thành lãng phí GPU. Muốn đẩy quy mô lên gấp gần ba lần mà không đội chi phí tương ứng thì phải chữa cả ba.
Con số 2.5 lần không chỉ đến từ ba cơ chế đó. Blog kỹ thuật liệt kê thêm một loạt thứ nhỏ hơn nhưng cộng dồn: Per-Head Muon tối ưu từng đầu attention riêng thay vì tối ưu chung, SiTU và Gated MLA siết lại phần kích hoạt và phần chọn lọc của attention, và huấn luyện nhận biết lượng tử hoá ngay từ giai đoạn SFT với trọng số MXFP4 và kích hoạt MXFP8 [7]. MXFP4 ở vế cuối quyết định luôn loại GPU nào chạy được K3.
Không cơ chế nào sinh ra cùng lúc với K3
Cả ba cơ chế đều có paper riêng trước K3. K3 là lần đầu chúng chạy cùng nhau ở quy mô 2.8 nghìn tỷ tham số [1], không phải lần đầu chúng tồn tại.
| Paper | Thời điểm | Đóng góp còn thấy trong K3 |
|---|---|---|
| Gated Delta Networks | 12/2024 | Ghép cổng quên với delta rule: cổng xoá nhanh, delta rule ghi có mục tiêu. Nền mà KDA đứng lên. |
| Kimi Linear | 10/2025 | KDA ra đời ở đây, mô tả là mở rộng Gated DeltaNet bằng cổng mịn hơn. Kèm thuật toán chunkwise dựa trên một biến thể của ma trận DPLR. |
| Attention Residuals | 03/2026 | Thay phép cộng dồn đều bằng softmax trên các lớp trước. Bản Block AttnRes chia lớp thành khối để giảm chi phí. |
| Kimi K3 | 27/07/2026 | Ba thứ trên cộng Stable LatentMoE, chạy ở 2.8T. Báo cáo kỹ thuật đầy đủ, hơn 400 tác giả. |
Hai con số hay bị gán nhầm cho K3 nằm ở hàng thứ hai. Giảm 75 phần trăm bộ nhớ KV cache và giải mã nhanh gấp sáu lần ở ngữ cảnh một triệu token là kết quả trong paper Kimi Linear, đo trên mô hình 48 tỷ tham số với 3 tỷ kích hoạt [3]. Đó là bằng chứng cho cơ chế, không phải số đo của K3. Mình thấy con số này được trích lại như số của K3 ở khá nhiều chỗ, kể cả trong vài video giải thích khá tử tế về mặt còn lại.
Cái gì đã công bố, cái gì mình đang đoán
Mình vẫn chưa đọc hết bản PDF đầy đủ: file tải về index ra byte thô không dùng được, còn bản HTML trên arXiv trả về 404 [1]. Nhưng trọng số mở kéo theo config.json mở, và file đó trả lời được phần lớn những gì mình định đợi paper [4]. Bảng dưới đây tách chỗ mình đọc được ra khỏi chỗ mình suy.
| Phát biểu | Mức tin | Căn cứ |
|---|---|---|
| 2.8T tham số, 104B kích hoạt, 1M ngữ cảnh, thị giác gắn sẵn | Đã công bố | Abstract |
| Ba cơ chế mang tên KDA, Attention Residuals, Stable LatentMoE | Đã công bố | Abstract |
| Chọn 16 trong 896 chuyên gia định tuyến | Đã công bố | Abstract |
| Hiệu suất scaling hơn K2 khoảng 2.5 lần | Đã công bố | Abstract, chưa có phép đo kèm theo |
| Quantile Balancing suy suất phân bổ từ phân vị điểm router | Đã công bố | Blog kỹ thuật |
| Khuyến nghị triển khai trên supernode từ 64 accelerator trở lên | Đã công bố | Blog kỹ thuật |
| Xen kẽ ba lớp KDA rồi một lớp Gated MLA, lặp lại theo khối | Đã công bố | config.json liệt kê từng lớp: 69 KDA, 24 full attention, trên tổng 93 |
| Nhóm chuyên gia dùng chung luôn bật, phép nén chỉ áp sau khi router chọn | Đọc từ sơ đồ | Sơ đồ khối trên blog |
| Công thức delta rule đầy đủ, cổng quên riêng cho từng kênh, beta một số mỗi head | Đọc từ mã nguồn | config.json và kernel KDA Moonshot tự mở |
| Block AttnRes chia lớp thành khối rồi chấm điểm ở mức khối | Đọc từ config | attn_res_block_size bằng 12 |
| Số lớp, kích thước ẩn, chiều của không gian nén trong LatentMoE | Đọc từ config | 93 lớp, hidden_size 7168, routed_expert_hidden_size 3584, tức nén đúng một nửa |
Tự chạy K3 tốn bao nhiêu
Thuê máy đủ để chạy K3 mất bao nhiêu một giờ.
Ba dữ kiện đầu vào đều xác nhận được. Mô hình có 2.8 nghìn tỷ tham số [1]. Moonshot huấn luyện nhận biết lượng tử hoá với trọng số MXFP4, tức 4 bit mỗi tham số cộng một hệ số tỷ lệ dùng chung cho mỗi khối 32 phần tử, thành 4.25 bit [7]. Và một con B300 mang 288 GB HBM3e [8].
Nhân ra thì trọng số chiếm 1487,5 GB. Chia cho 288 được 5,16, nên về lý thuyết cần 6 con B300 mới đủ chỗ đặt mô hình xuống [8]. Nhưng nhà cung cấp không bán lẻ 6 con. Đơn vị bán là node 8 GPU.

Đây là bảng giá thật của một nhà cung cấp trong nước, mình chụp ngày 7 tháng 8 năm 2026 [9]. Dấu chấm là dấu phân cách hàng nghìn. Giá tuyến tính, thuê 8 con không rẻ hơn thuê 8 lần một con.
Một node 8 con B300 cho 2304 GB. Trọng số ăn 1487,5 GB, còn dư 816,5 GB cho KV cache, giá trị trung gian và vùng làm việc, tức khoảng 35 phần trăm chỗ trống [8]. Chi tiết mình không ngờ: RAM hệ thống của node chỉ 1536 GB, hơn khối trọng số đúng 48,5 GB, nên riêng khâu nạp checkpoint đã phải cẩn thận [9].
| Mức | Mỗi giờ | Mỗi ngày | Mỗi tháng |
|---|---|---|---|
| 1 node, 8 GPU, vừa đủ nhét trọng số | 1.479.084 đ | 35.498.016 đ | 1,08 tỷ đ |
| 8 node, 64 GPU, mức Moonshot khuyến nghị | 11.832.672 đ | 283.984.128 đ | 8,64 tỷ đ |
Cột tháng tính theo 730 giờ, tức chạy liên tục không tắt. Quy sang đô la theo tỷ giá quanh 26.300 đầu tháng 8 năm 2026 thì một node là 56 đô mỗi giờ, còn cụm 64 GPU là 450 đô mỗi giờ, tương đương 328 nghìn đô một tháng [9].
Vì sao Moonshot khuyên 64 GPU chứ không phải 8
Nhét vừa bộ nhớ chỉ là điều kiện tối thiểu. Blog kỹ thuật khuyến nghị supernode từ 64 accelerator trở lên [7], và lý do chính là thứ đã nói ở phần MoE: 896 chuyên gia nằm rải ra, mỗi token sau khi định tuyến phải đi qua đường cáp tới đúng 16 chuyên gia của nó rồi quay về. Miền băng thông càng rộng thì phần đi lại đó càng rẻ. Nhét tất cả vào một node thì hết chỗ cho KV cache của ngữ cảnh dài, mà ngữ cảnh dài chính là thứ mô hình này bán.
Khoảng cách giữa mức nhét vừa và mức chạy tốt là gấp tám lần tiền [9].
Vì sao không lấy H100 cho rẻ
Cùng bảng giá đó, node 8 con H100 chỉ 543.398 đồng mỗi giờ, rẻ hơn gần ba lần [9].
H100 thuộc kiến trúc Hopper, và Hopper không có FP4 ở mức phần cứng. Thấp nhất chạy được là FP8, tức 1 byte mỗi tham số [8]. Trọng số K3 lúc đó phình từ 1487,5 GB lên 2800 GB. Mỗi con H100 chỉ có 80 GB, một node được 640 GB, nên phải gom 5 node, tức 40 GPU, mới đủ chỗ.
| 8xB300 | 8xH100 | |
|---|---|---|
| Bộ nhớ mỗi GPU | 288 GB | 80 GB |
| Độ chính xác thấp nhất | FP4 | FP8 |
| Trọng số K3 chiếm | 1487,5 GB | 2800 GB |
| Số GPU tối thiểu | 8 | 40 |
| Giá mỗi giờ | 1.479.084 đ | 2.716.990 đ |
Phần cứng rẻ hơn tính ra đắt hơn 1,84 lần, dùng gấp năm lần số GPU, và trải trên 5 node nên mọi token còn phải nhảy qua mạng giữa các máy [9]. Quyết định huấn luyện bằng MXFP4 vì thế không trung lập. Nó gắn mô hình này vào Blackwell. Cùng một dòng trong blog kỹ thuật vừa là lý do K3 chạy được ở 2.8 nghìn tỷ tham số, vừa là lý do bạn không mang nó sang thế hệ phần cứng trước đó.
So với việc gọi API
Giá công bố của Moonshot là 3 đô mỗi triệu token vào và 15 đô mỗi triệu token ra, riêng phần đọc lại từ cache còn 0,3 đô, phẳng trên toàn bộ một triệu token ngữ cảnh [10]. Lấy giá thuê chia cho giá token ra thì có điểm hoà vốn.
Một node phải sinh 3,75 triệu token ra mỗi giờ, tức khoảng 1.041 token mỗi giây liên tục, mới bằng tiền gọi API [10]. Cụm 64 GPU phải sinh 30 triệu token ra mỗi giờ, khoảng 8.332 token mỗi giây.
Một luồng hội thoại đơn lẻ chạy cỡ vài chục token mỗi giây. Muốn chạm ngưỡng nghìn token mỗi giây thì phải có vài chục yêu cầu chạy song song, kín cả ngày, không có giờ thấp điểm. Với tải nghiêng về token vào thì còn tệ hơn, vì token vào rẻ hơn token ra năm lần và cache hit rẻ hơn năm mươi lần [10].
Chỗ mình có thể sai
Điểm hoà vốn là con số sai để nhìn. Không mấy đội tự host để tiết kiệm tiền token, còn giá thuê theo giờ là mức đắt nhất trong các cách mua, nên phép tính này thổi phồng chi phí tự chạy.
Đúng ở cả hai vế. Phần lớn đội tự host không làm vì tiền token: họ làm vì dữ liệu không được rời mạng nội bộ, hoặc vì cần fine-tune trên miền riêng. Với hai lý do đó, API bị loại từ đầu, và điểm hoà vốn chẳng nói lên gì. Giá thuê theo giờ cũng là mức đắt nhất trong các cách mua, vì hợp đồng dài hạn rẻ hơn và máy tự mua khấu hao nhiều năm rẻ hơn nữa. Mình lấy giá theo giờ vì mình chụp được nó, không vì nó giống cách các đội lớn mua. Chỗ phép tính vẫn đứng được là ngưỡng throughput. Dù bạn mua GPU theo cách nào, một node vẫn phải sinh 1041 token mỗi giây liên tục mới bằng tiền API ở cùng khối lượng, và mua rẻ đi một nửa chỉ kéo ngưỡng đó xuống một nửa.
Nén sâu hơn 4 bit sẽ kéo trọng số xuống nữa, nhưng Moonshot đã huấn luyện K3 nhận biết lượng tử hoá ở MXFP4 [7]. 4 bit là điểm thiết kế. Ép thấp hơn là bạn rời khỏi cấu hình họ kiểm chứng và tự gánh phần rủi ro chất lượng.
Mọi mức B300 trong ảnh đều ghi hết hàng [9]. Mình chưa thuê được máy nào để chạy thử con số ở trên.
Điều này đổi gì ngoài bảng benchmark
Một triệu token nghĩa là cả một repo vừa hoặc vài trăm trang tài liệu nằm gọn trong một lượt. Việc cắt nhỏ tài liệu rồi đi tìm lại từng mẩu bớt cần thiết trong nhiều tình huống, dù chi phí mỗi lượt vẫn tính theo số token thật.
Thứ mình mang theo sau khi viết xong lại nằm ở chỗ khác. Trọng số mở ở quy mô này chỉ miễn cho bạn tiền bản quyền của phần bạn không chạy được. Ranh giới thật đã dịch từ giấy phép sang bảng giá phần cứng, và ba cơ chế mình vừa kể là ba bước Moonshot đi để dịch nó.
Mình vẫn chưa đọc hết bản báo cáo đầy đủ. Nếu trong đó có một con số làm phép tính này lệch đi, mình muốn biết trước khi có người khác trích lại bảng ở trên như một sự thật.
Bình
Phụ lục: Citations (10)
- Kimi Team. Kimi K3 Technical Report. arXiv. 2026-07-27. Trang abstract, đọc ngày 2026-08-07. Nguồn cho 2.8T tham số, 104B kích hoạt, 1M ngữ cảnh, thị giác gắn sẵn, ba cơ chế KDA / Attention Residuals / Stable LatentMoE, 16 trong 896 chuyên gia, và con số 2.5 lần hiệu suất scaling. Bản PDF đầy đủ chưa đọc hết: file index ra byte thô, bản HTML trả về 404.
- Songlin Yang, Jan Kautz, Ali Hatamizadeh. Gated Delta Networks: Improving Mamba2 with Delta Rule. arXiv. 2024-12-09. Nền mà KDA đứng lên. Nguồn cho ý tưởng ghép cổng quên với delta rule: cổng xoá nhanh, delta rule ghi có mục tiêu.
- Kimi Team. Kimi Linear: An Expressive, Efficient Attention Architecture. arXiv. 2025-10-30. Nơi Kimi Delta Attention ra đời. Nguồn cho mô tả KDA là bản mở rộng Gated DeltaNet bằng cổng mịn hơn, thuật toán chunkwise dựa trên biến thể DPLR, và hai con số hay bị gán nhầm cho K3: giảm 75% KV cache và giải mã nhanh gấp 6 lần ở 1M ngữ cảnh, đo trên mô hình 48B tổng / 3B kích hoạt.
- Moonshot AI. moonshotai/Kimi-K3, config.json. Hugging Face. 2026-08-08. Config của trọng số đã phát hành, đọc ngày 2026-08-08. Nguồn cho 93 lớp, hidden_size 7168, 96 head KDA với head_dim 128, danh sách 24 lớp full attention và 69 lớp KDA, kv_lora_rank 512 với qk_rope_head_dim 64, attn_res_block_size 12, routed_expert_hidden_size 3584 trên hidden_size 7168, gate_lower_bound -5.0 và use_full_rank_gate true.
- fla-org. fla/ops/kda, kernel KDA trong flash-linear-attention. GitHub. 2026-08-08. Kernel Moonshot mở kèm paper Kimi Linear. Nguồn cho công thức hồi quy chính xác, đọc trong fused_recurrent.py dòng 174-198: nhân trạng thái với cổng theo từng kênh, trừ đi giá trị bộ nhớ đang trả về, nhân sai số với beta, rồi cộng tích ngoài. Cùng gate.py cho dạng cổng và modeling_kimi.py cho biết beta là một số mỗi head còn cổng là một số mỗi kênh.
- Kimi Team. Attention Residuals. arXiv. 2026-03-18. Nguồn cho phát biểu chính xác về vấn đề: residual cộng mọi đầu ra của lớp với trọng số cố định bằng một, làm hidden state phình không kiểm soát theo chiều sâu. Nguồn cho Block AttnRes.
- Moonshot AI. Kimi K3. Moonshot AI. 2026-07-27. Blog kỹ thuật kèm sơ đồ khối. Nguồn cho Quantile Balancing, Per-Head Muon, SiTU, Gated MLA, MXFP4 weights với MXFP8 activations, khuyến nghị supernode từ 64 accelerator, và cấu trúc xen kẽ 3x KDA rồi 1x Gated MLA đọc từ sơ đồ.
- NVIDIA. NVIDIA Blackwell Ultra for the Era of AI Reasoning. NVIDIA Developer. 2026-01. Nguồn cho 288 GB HBM3e mỗi GPU Blackwell Ultra và việc kiến trúc này hỗ trợ nhiều định dạng FP4 ở mức phần cứng. Chụp màn hình có highlight đính kèm trong bài. Đối chiếu với H100 thuộc Hopper: 80 GB, thấp nhất là FP8. Trang gb300-nvl72 trên nvidia.com trả về 504 lúc kiểm.
- Nguyễn Anh Bình. Bảng giá thuê máy ảo GPU, ảnh chụp màn hình. omelet.tech. 2026-08-07. Ảnh chụp form chọn cấu hình của một nhà cung cấp trong nước, chụp ngày 2026-08-07. 8xB300 1.479.084 đồng mỗi giờ (CPU 224, RAM 1536 GB, NVME 24000 GB), 8xH100 543.398 đồng mỗi giờ, 1xB300 184.886 đồng mỗi giờ. Mọi mức B300 đều ghi Out of Stock. Ảnh đính kèm trong bài.
- Moonshot AI. Flagship Model Kimi K3 Pricing. Kimi API Platform. 2026-08-07. Giá niêm yết cho kimi-k3: 0,30 đô cache hit, 3,00 đô mỗi triệu token vào, 15,00 đô mỗi triệu token ra, cửa sổ 1.048.576 token. Một mức giá phẳng cho toàn bộ ngữ cảnh. Chụp màn hình có highlight đính kèm trong bài, kiểm ngày 2026-08-07.