Thuật toán quyết định giá mỗi token: bên trong cỗ máy suy luận LLM năm 2026
Ảnh: NVIDIA Developer

Thuật toán quyết định giá mỗi token: bên trong cỗ máy suy luận LLM năm 2026

Prefill nghẽn phép tính, decode nghẽn băng thông — từ sự lệch pha đó sinh ra PagedAttention, prefix caching, gộp lô liên tục, suy đoán rồi kiểm, attention thưa và lai tuyến tính. Đây là tầng thuật toán đang quyết định chi phí thật của AI năm 2026.

Cập nhật: tháng 8/2026.

Nếu 2023–2024 câu hỏi nóng nhất về AI là “mô hình nào giỏi hơn”, thì từ đầu 2026 câu hỏi đắt tiền nhất đã đổi thành: chạy nó một token tốn bao nhiêu, và ai chạy rẻ hơn ai. Đây không còn là câu hỏi phần cứng — GPU ai cũng mua được. Thứ tách người thắng khỏi người thua giờ là một tầng thuật toán rất cụ thể nằm giữa mô hình và con chip: cách sắp xếp bộ nhớ, cách xếp lịch, cách đoán trước, cách bỏ bớt việc.

Điều lạ của 2026 là giá API vẫn giảm trong khi bộ nhớ và GPU đắt kỷ lục. Phần lớn khoảng chênh đó đến từ những thuật toán dưới đây.

Gốc rễ: một yêu cầu có hai pha, hai nút thắt trái ngược

Muốn hiểu vì sao hàng loạt kỹ thuật tưởng như rời rạc lại cùng ra đời, phải nhìn đúng một sự thật vật lý: sinh văn bản gồm hai pha có tính chất hoàn toàn khác nhau.

Pha prefill — mô hình đọc cả prompt. Toàn bộ token vào cùng lúc nên GPU làm được phép nhân ma trận cỡ lớn và chạy gần hết công suất: đây là pha nghẽn ở phép tính, chi phí tăng theo độ dài và riêng attention tăng theo bình phương độ dài.

Pha decode — mô hình sinh từng token một, cái sau phụ thuộc cái trước, không cách nào song song hoá. Mỗi bước phải đọc lại toàn bộ trọng số đang hoạt động từ HBM chỉ để sinh đúng một token: với mô hình vài chục tỷ tham số, đó là hàng chục gigabyte đọc ra cho một token, trong khi số phép tính thực sự cần thì bé tí. Kết quả: ở lô nhỏ, GPU chỉ dùng vài phần trăm năng lực tính toán, phần còn lại ngồi chờ bộ nhớ.

Một yêu cầu chia làm hai pha: prefill nghẽn ở phép tính, decode nghẽn ở băng thông bộ nhớ. Gần như mọi thủ thuật tăng tốc năm 2026 đều sinh ra từ sự lệch pha này.
Một yêu cầu chia làm hai pha: prefill nghẽn ở phép tính, decode nghẽn ở băng thông bộ nhớ. Gần như mọi thủ thuật tăng tốc năm 2026 đều sinh ra từ sự lệch pha này.

Cả bài này thực chất chỉ là hệ quả của một câu: trong pha decode, phép tính thì thừa mà băng thông thì thiếu. Mọi thuật toán tăng tốc suy luận đều là một cách tiêu bớt cái đang thừa để mua lại cái đang thiếu.

KV-cache: khi mô hình cần một hệ điều hành nhỏ

Để khỏi tính lại attention cho toàn bộ quá khứ ở mỗi bước, mô hình giữ lại vector khoá và giá trị của mọi token đã đi qua — đó là KV-cache, thứ biến ngữ cảnh dài thành tiền: mỗi token mới lại nối thêm một mẩu, và cache đó phải nằm trong HBM, tranh chỗ với chính trọng số.

Cách làm ngây thơ là cấp cho mỗi yêu cầu một vùng nhớ liền mạch đủ cho độ dài tối đa — hậu quả là phân mảnh khủng khiếp, phần lớn bộ nhớ bị giữ chỗ mà không dùng. PagedAttention giải đúng như hệ điều hành giải bài toán bộ nhớ ảo: chia KV-cache thành các khối cố định, có bảng ánh xạ từ vị trí logic sang khối vật lý, cấp phát dần theo nhu cầu. Không cần liền mạch, gần như không phân mảnh, và quan trọng hơn — hai yêu cầu có chung phần đầu thì dùng chung khối, y hệt copy-on-write.

Từ ý tưởng chia khối đó mọc ra thứ tiết kiệm nhiều tiền nhất thực tế: prefix caching. Prompt hệ thống, mô tả công cụ, tài liệu đính kèm, lịch sử hội thoại — trong ứng dụng thật, phần lặp lại chiếm đa số đầu vào. Băm nội dung từng khối rồi tra bảng là đủ để bỏ hẳn phần lớn pha prefill cho lần gọi sau. Đây là lý do các nhà cung cấp lớn niêm yết riêng giá cho đầu vào đã cache, thường rẻ khoảng một phần mười. Nói cách khác: một cấu trúc dữ liệu đã thành một dòng trong bảng giá.

Sang 2026, cache này được phân tầng xuống RAM máy chủ rồi SSD, và bộ định tuyến phải biết cache nằm ở máy nào để đẩy yêu cầu tới đúng máy đó — cân bằng tải kiểu chia đều đã thành lựa chọn sai, vì gửi yêu cầu sang máy trống mà không có cache còn đắt hơn xếp hàng ở máy có cache.

Xếp lịch: gộp lô liên tục và chia nhỏ prefill

Gộp nhiều yêu cầu vào một lượt chạy giúp chia sẻ chi phí đọc trọng số — đọc một lần, dùng cho cả lô. Nhưng gộp kiểu cũ (chờ đủ lô, chạy, chờ cả lô xong) thì lãng phí: yêu cầu ngắn phải nằm chờ yêu cầu dài. Continuous batching xếp lịch ở mức từng bước sinh token: ai xong thì rời lô ngay, chỗ trống được lấp bằng yêu cầu mới ở bước kế tiếp. Chỉ đổi hạt lập lịch thôi đã nâng thông lượng lên nhiều lần trên tải thực, mà không đụng gì tới mô hình.

Vấn đề còn lại là hai pha giẫm chân nhau: một prompt dài đang prefill chiếm GPU cả trăm mili-giây khiến mọi yêu cầu đang decode khựng lại. Chunked prefill cắt prefill thành từng mẩu trộn xen kẽ với các bước decode, đổi chút thời gian chờ chữ đầu tiên lấy sự mượt mà cho tất cả — chỗ ranh giới giữa thuật toán và chính sách kinh doanh mờ đi.

Suy đoán rồi kiểm: tiêu cái đang thừa để mua cái đang thiếu

Nếu decode thừa phép tính mà thiếu băng thông, thì kiểm tra năm token trong một lượt chạy gần như không đắt hơn kiểm tra một token — vì cả hai đều phải đọc đúng ngần ấy trọng số. Đó là toàn bộ trực giác của speculative decoding.

Suy đoán rồi kiểm: mô hình nháp đề xuất vài token, mô hình lớn kiểm tất cả trong một lượt. Vì decode thừa phép tính mà thiếu băng thông, việc kiểm 5 token gần như không đắt hơn kiểm 1.
Suy đoán rồi kiểm: mô hình nháp đề xuất vài token, mô hình lớn kiểm tất cả trong một lượt. Vì decode thừa phép tính mà thiếu băng thông, việc kiểm 5 token gần như không đắt hơn kiểm 1.

Cơ chế: một mô hình nháp rẻ tiền đề xuất vài token tiếp theo; mô hình lớn chạy một lượt duy nhất kiểm cả chuỗi; token khớp thì nhận, token đầu tiên lệch thì bỏ và sinh lại. Điểm tinh tế nhất là bước kiểm dùng phép lấy mẫu có hiệu chỉnh, sao cho phân phối đầu ra y hệt như chạy mô hình lớn bình thường. Đây không phải phép xấp xỉ đánh đổi chất lượng — đó là lý do nó được bật mặc định mà không cần ai xin phép.

Chuyện của 2026 là mô hình nháp thôi đứng ngoài: thay vì huấn luyện một mô hình bé riêng, người ta gắn thẳng đầu dự đoán nhiều token vào chính mô hình lớn, hoặc dùng đầu nháp nhẹ đọc trực tiếp trạng thái bên trong mô hình. Dòng EAGLE-3 và các biến thể multi-token prediction đã vào nhánh chính của vLLM, SGLang và TensorRT-LLM ngay đầu năm; số token nhận trung bình rơi vào khoảng hai tới ba mỗi lượt.

Nhưng phải nói thẳng giới hạn: lợi ích teo dần khi lô đông. Lô càng đông, GPU càng gần no tải tính toán, chỗ trống để đoán thừa không còn; tỷ lệ chấp nhận cũng tụt khi ngữ cảnh rất dài. Vì thế đây là vũ khí cho độ trễ và cho giờ thấp điểm, không phải liều thuốc tăng thông lượng vô điều kiện.

Cú nhảy thật sự của 2026: attention thôi nhìn hết mọi token

Tất cả những thứ trên đều là tối ưu vận hành: mô hình không đổi. Thay đổi lớn nhất từ đầu 2026 nằm sâu hơn — người ta sửa chính kiến trúc để KV-cache đừng phình nữa. Ba hướng đang chạy song song:

  • Nén KV thành trạng thái ẩn. Thay vì lưu đầy đủ khoá và giá trị cho từng đầu attention, chiếu chúng xuống một vector tiềm ẩn nhỏ hơn nhiều rồi mới bung ra khi tính — hướng multi-head latent attention cắt dung lượng cache xuống nhiều lần mà gần như không mất chất lượng.
  • Attention thưa có học. Mỗi token mới không cần nhìn hết quá khứ; một bộ chỉ mục rẻ tiền chọn ra nhóm nhỏ token đáng chú ý rồi chỉ tính attention với nhóm đó. Khác với “cửa sổ trượt” đời cũ, việc chọn ở đây được huấn luyện cùng mô hình chứ không phải luật cứng do người đặt.
  • Lai với attention tuyến tính — hướng gây bất ngờ nhất. Phần lớn lớp được thay bằng một dạng hồi quy có cổng, mỗi lớp giữ một trạng thái kích thước cố định thay vì cache dài vô hạn, và cứ vài lớp mới chèn một lớp attention đầy đủ để giữ khả năng nhớ chính xác. Tỷ lệ ba lớp tuyến tính một lớp đầy đủ đã xuất hiện ở nhiều họ mô hình mở nửa đầu 2026.

Ý nghĩa kinh tế của hướng thứ ba rất lớn. Với attention truyền thống, ngữ cảnh gấp đôi thì mỗi bước decode phải đọc gấp đôi — chi phí mỗi token tăng theo độ dài cuộc trò chuyện. Với phần lớn lớp là hồi quy trạng thái cố định, chi phí mỗi token gần như phẳng theo độ dài. Đúng vào lúc mô hình suy luận và agent bắt đầu sinh ra những phiên dài hàng trăm nghìn token, đó là khác biệt giữa có và không có mô hình kinh doanh.

Phần chưa chắc cũng cần nói: bỏ bớt token để nhìn thì luôn có rủi ro bỏ sót đúng token quan trọng. Các bài kiểm tra truy hồi chính xác trong ngữ cảnh dài vẫn là chỗ những kiến trúc này bị soi kỹ nhất, và cách đo hiện nay chưa thống nhất.

Tách máy ra: prefill một cụm, decode một cụm

Nếu hai pha đòi hai loại tài nguyên trái ngược, nhốt chúng trong cùng một máy là ép cả hai cùng thoả hiệp. Năm 2026, tách prefill khỏi decode đã thành cấu hình mặc định ở quy mô lớn: một nhóm máy chỉ chạy prefill, sinh KV-cache rồi chuyển qua đường mạng tốc độ cao sang nhóm máy chỉ chạy decode. Mỗi bên chọn cấu hình song song và cỡ lô riêng, co giãn độc lập theo tỷ lệ prompt dài/ngắn của tải thực.

Ghép với nó là song song hoá chuyên gia diện rộng cho mô hình MoE. MoE chỉ kích hoạt một phần nhỏ tham số cho mỗi token, nhưng nếu mọi chuyên gia nằm chung vài GPU thì vẫn phải đọc rất nhiều. Trải chuyên gia ra hàng chục GPU nối bằng liên kết băng thông cực cao — kiểu tủ rack GB200/GB300 NVL72 — thì mỗi GPU chỉ giữ vài chuyên gia, lượng trọng số đọc cho mỗi token giảm hẳn, thông lượng trên mỗi GPU tăng nhiều lần so với chạy trong một máy đơn.

Góc kinh tế: bốn con số đứng sau giá mỗi token

Chi phí một token, rút gọn tàn nhẫn, là tiền thuê GPU mỗi giờ chia cho số token mỗi giờ GPU đó sản xuất được. Tử số do thị trường phần cứng quyết định và đang căng; toàn bộ tầng thuật toán ở trên chỉ làm một việc là đẩy mẫu số lên — nhưng phải giữ nguyên cam kết độ trễ, vì thông lượng có được bằng cách bắt người dùng chờ thì không bán được. Ngành gọi thứ đo đúng là goodput. Bốn đòn bẩy, xếp theo mức độ ăn tiền:

  • Tỷ lệ trúng prefix cache — rẻ nhất và bị bỏ quên nhiều nhất. Một prompt hệ thống ổn định, xếp phần bất biến lên đầu, cắt được phần lớn chi phí đầu vào mà không đổi một dòng mô hình.
  • Cỡ lô hiệu dụng. Lô đông chia đều chi phí đọc trọng số, nhưng lại cần nhiều KV-cache hơn trong khi HBM có hạn. Nên hạ độ chính xác KV xuống FP8, hoặc nén KV bằng kiến trúc, đều là cách gián tiếp mua thêm cỡ lô — đó là lý do lượng tử hoá KV thuộc nhóm thuật toán giảm giá chứ không phải nhóm nén dữ liệu.
  • Số token sinh ra cho mỗi lượt chạy. Suy đoán rồi kiểm nâng con số này từ một lên hai–ba.
  • Lượng trọng số phải đọc cho mỗi token. MoE cộng song song chuyên gia diện rộng tấn công thẳng vào đây — đòn bẩy có biên độ lớn nhất.

Có một hệ quả ít người để ý: mô hình suy luận sinh ra rất nhiều token đầu ra so với đầu vào, tức dịch trọng tâm chi phí từ prefill sang decode. Nghĩa là mọi thứ tối ưu cho decode — băng thông, KV nhỏ, suy đoán, MoE — đột nhiên đáng giá gấp bội so với hai năm trước, còn tối ưu prefill thì bớt quan trọng. Hạ tầng năm 2026 đang được vẽ lại quanh sự dịch chuyển đó.

Dự đoán

  • Attention lai trở thành mặc định. Đến cuối 2026, phần lớn mô hình mở mới ra sẽ dùng một dạng lai giữa lớp tuyến tính/thưa và lớp attention đầy đủ; attention đầy đủ toàn bộ sẽ thành ngoại lệ, chỉ giữ cho mô hình nhỏ hoặc ngữ cảnh ngắn.
  • Mô hình nháp biến mất khỏi hồ sơ triển khai. Đầu dự đoán nhiều token sẽ được huấn luyện và phát hành kèm trọng số như một phần của mô hình, thay vì là thứ người vận hành phải tự lắp.
  • Đơn vị đo hiệu năng đổi từ GPU sang tủ rack. Con số đáng so sánh sẽ là token mỗi giây trên mỗi tủ ở mức độ trễ cam kết — vì tách pha và song song chuyên gia diện rộng chỉ có nghĩa khi tính theo cả cụm.
  • Cache thành một tầng lưu trữ có giá riêng. Prefix cache phân tầng HBM → RAM → SSD, dùng chung giữa nhiều máy, kèm định tuyến biết cache; bảng giá API tiếp tục tách nhỏ theo trạng thái cache thay vì một giá đầu vào duy nhất.
  • Một đợt vỡ mộng nhỏ về đo đạc. Càng nhiều hệ thống bỏ bớt token để tiết kiệm, càng dễ có tranh cãi lớn về việc điểm số ngữ cảnh dài che giấu mất mát thật ở tác vụ truy hồi chính xác.

Điểm đáng giữ lại: suốt hai năm qua, phần lớn mức giảm giá của AI không đến từ chip mới mà đến từ việc đọc bộ nhớ ít lần hơn cho mỗi token. Cả bảng thuật toán ở trên — phân trang, cache tiền tố, gộp lô liên tục, suy đoán rồi kiểm, attention thưa và tuyến tính, tách pha, trải chuyên gia — đều là những cách khác nhau để nói đúng câu đó. Ai hiểu chỗ nghẽn nằm ở băng thông chứ không ở phép tính thì tối ưu trúng; ai không hiểu thì mua thêm GPU và vẫn trả đắt.

Chia sẻ

Thảo luận