Chuyển tới nội dung chính

Dự đoán nhiều token

Xác suất từng đầu sửa đượcKế toán chính xácKhông phải chuỗi hình học

Dự đoán nhiều token

Không cần mô hình nháp riêng: gắn thêm vài đầu ra vào chính cái thân đang chạy, mỗi đầu nhìn xa hơn một bước. Chúng vừa là bản nháp lúc sinh chữ, vừa là tín hiệu học lúc huấn luyện.

Bài giải mã đầu cơ giải bài toán tốc độ bằng cách nuôi hai mô hình: một mô hình nháp nhỏ chạy trước, mô hình lớn kiểm lại một lượt. Cách đó hiệu quả nhưng phải trả giá bằng hạ tầng: thêm một mạng phải huấn luyện, phải nạp vào bộ nhớ, phải xếp lịch chạy, và phải cùng bộ từ vựng với mô hình lớn.

Dự đoán nhiều token đi lối khác. Ngoài đầu ra dự đoán token kế tiếp, mô hình mang thêm D đầu phụ, đầu thứ k dự đoán token cách đó k bước. Lúc huấn luyện, mỗi đầu có mất mát riêng nên mô hình bị ép nhìn xa hơn một bước. Lúc sinh chữ, các đầu phụ chính là bản nháp cho phép kiểm đầu cơ, và không tốn thêm một mô hình nào cả. Sim dưới đây tính cái giá và cái được của lối này, bạn sửa cấu hình thì nó tính lại.

Nhiều đầu dự đoán, một lần chạy · mô hình tự làm bản nháp cho chính nó
Token mỗi vòng 2,496Tăng tốc 2,17×Tham số thêm 905,97 triệu
Cấu hình mẫu:
3 đầu phụ, suy giảm vừa (minh hoạ). Nguồn: Cấu hình minh hoạ, không phải mô hình cụ thể nào. Dáng 32 lớp với chiều 4096 là dáng quen thuộc của lớp mô hình khoảng 7 tới 8 tỉ tham số. Đây là cấu hình bịa ra để minh hoạ.
Cấu hình✎ sửa được
số đầu phụ
ngoài đầu dự đoán token kế tiếp, mô hình có thêm bấy nhiêu đầu
độ chính xác đầu thứ nhất
xác suất token của đầu thứ nhất được kiểm và giữ lại
hệ số suy giảm mỗi đầu
đầu thứ k có độ chính xác bằng đầu thứ nhất nhân hệ số này mũ k trừ 1
chi phí thêm mỗi đầu
tính theo phần của một lượt chạy thân, 0,05 là 5%
số lớp của thân
chỉ dùng để so phần thêm vào với cả thân mô hình
chiều mô hình
chiều của trạng thái ẩn, quyết định gần hết bảng tham số
cỡ từ vựng
dùng để tính phần tiết kiệm nhờ chia sẻ lớp nhúng và đầu ra
tỉ lệ chiều FFN
chiều trong của khối FFN bằng chiều mô hình nhân số này
token kỳ vọng mỗi vòng1,000 + 0,800 + 0,480 + 0,216 = 2,496 token
nếu dùng một alpha chung(1 - 0,80^4) / (1 - 0,80) = 2,952 token
hệ số tăng tốc2,496 / (1 + 3 × 0,05) = 2,496 / 1,150 = 2,17×
tham số thêm vào3 × 18 × 4.096 × 4.096 = 905.969.664 tham số
2,496
token kỳ vọng mỗi vòng
trần 4
2,17×
hệ số tăng tốc
nhanh hơn giải mã thường
2,952
nếu dùng một alpha chung
chênh 0,456
0,50
chi phí mỗi đầu để hoà vốn
đang trả 0,05
905,97 triệu
tham số thêm vào
10,5% của thân
1,57 tỉ
tiết kiệm nhờ dùng lại đầu ra
gấp 1,74 lần phần thêm
Xác suất một bước nháp sống sót, và cái mà một alpha chung sẽ hứa
1,000,800,480,22chính1230,000,250,500,751,00bước nhápxác suất sống sót
token của đầu chính, luôn giữtích luỹ thật của từng đầua^k, tức một alpha chung
Nếu giả vờ mọi đầu đều tốt như đầu thứ nhất thì bạn sẽ ước lượng 2,952 token mỗi vòng, tức 118,3% con số thật 2,496. Chênh 0,456 token mỗi vòng.
Có lãi: mỗi vòng trả 1,150 lượt chạy mà nhận 2,496 token, tức 2,17×. Còn chịu được chi phí mỗi đầu tới 0,50 lượt chạy trước khi hoà.
Từng bước nháp: hai mô hình cạnh nhau
BướcĐộ chính xác đầu đóTích luỹ (từng đầu riêng)a^k (một alpha chung)Chênh lệch
đầu chính1,0001,0001,0000,000
10,8000,8000,8000,000
20,6000,4800,6400,160
30,4500,2160,5120,296
Thang số đầu phụ, từ 0 tới 8
Số đầu phụToken mỗi vòngChi phí một vòngTăng tốcđộ lớn
01,0001,0001,00×
11,8001,0501,71×
22,2801,1002,07×
3 ★ tốt nhất2,4961,1502,17×
42,5691,2002,14×
52,5871,2502,07×
62,5911,3001,99×
72,5911,3501,92×
82,5911,4001,85×

Ba con số ở trạng thái mở bài

Số token kỳ vọng mỗi vòng là 2,496, không phải 2,85. Cấu hình mở bài có 3 đầu phụ với độ chính xác 0,8 cho đầu thứ nhất và hệ số suy giảm 0,75, nên ba đầu lần lượt đạt 0,8 rồi 0,6 rồi 0,45. Cái bẫy là cộng thẳng ba số đó lại. Không được, vì phép kiểm chạy tuần tự: token nháp thứ ba chỉ được giữ nếu cả thứ nhất và thứ hai đều đúng, bởi nó được sinh ra với giả định hai token kia có mặt. Cho nên phải nhân tích luỹ: 0,8, rồi 0,8 × 0,6 = 0,48, rồi 0,48 × 0,45 = 0,216. Cộng cả token của đầu chính vào, một vòng cho 1 + 0,8 + 0,48 + 0,216 = 2,496 token.

Hệ số tăng tốc là 2,17× chứ không phải 2,496×. Mỗi vòng phải trả một lượt chạy thân cộng chi phí của ba đầu phụ, ở đây mỗi đầu 0,05 lượt, tức 1 + 3 × 0,05 = 1,150 lượt cho 2,496 token. Chia ra được 2,17×. Con số đáng để ý hơn nằm ở thẻ chi phí mỗi đầu để hoà vốn: 0,50. Ba cái đầu này có thể đắt tới nửa lượt chạy thân mỗi cái rồi mới hết lãi, tức còn rất nhiều chỗ thở.

Phần tham số thêm vào là 905,97 triệu, khoảng 10,5% thân mô hình. Mỗi đầu phụ ở đây được đếm là một khối transformer nhỏ cộng một ma trận trộn, tức 18 × 4096 × 4096 = 301,99 triệu tham số, trong khi một lớp thường của thân là 268,44 triệu. Nói cách khác ba đầu phụ nặng bằng khoảng 3,38 lớp thường. Không rẻ, nhưng cũng không phải một mô hình thứ hai.

Vì sao đây không phải chuỗi hình học

Đây là chỗ bài này khác bài giải mã đầu cơ, và là điểm đáng nhớ nhất.

Ở bài kia, mô hình nháp là một mạng riêng chạy tự hồi quy, nên người ta mô hình hoá nó bằng một tỉ lệ chấp nhận chung a cho mọi bước. Khi đó số token kỳ vọng thu gọn thành chuỗi hình học 1 + a + a² + ... + a^D, và có công thức đóng (1 - a^(D+1)) / (1 - a).

Ở đây thì không có tỉ lệ chung nào. Đầu thứ nhất đoán token kế tiếp, việc dễ. Đầu thứ ba đoán token cách ba bước, việc khó hơn hẳn, và nó phải đoán mà chưa biết hai token ở giữa hoá ra là gì. Nên p₁ > p₂ > p₃, và số token kỳ vọng là tổng các tích luỹ chứ không phải chuỗi hình học:

E = 1 + p₁ + p₁p₂ + ... + p₁p₂...p_D

Bảng từng bước nháp trong sim đặt hai mô hình cạnh nhau. Ở trạng thái mở bài, cột a^k với a = 0,8 cho 1 + 0,8 + 0,64 + 0,512 = 2,952 token, còn cột tích luỹ thật chỉ cho 2,496. Tức nếu bạn giả vờ mọi đầu đều tốt như đầu thứ nhất, bạn sẽ ước lượng thừa: 118,3% con số thật, chênh 0,456 token mỗi vòng. Cứ thêm một đầu nữa thì hai cột lại doãng ra thêm, vì một bên nhân với a còn bên kia nhân với một số nhỏ dần.

Hai cột trùng khít nhau đúng khi mọi p bằng nhau. Bấm preset 4 đầu phụ, không suy giảm để thấy: hệ số suy giảm đặt bằng 1 nên mọi đầu đều đạt 0,7, và cả hai cột đều đọc 2,773. Có một trường hợp trùng nữa, nhẹ nhàng hơn: khi chỉ có 1 đầu phụ thì hệ số suy giảm chưa kịp tác dụng vào đâu, nên hai cột luôn bằng nhau dù bạn đặt hệ số bao nhiêu. Phải từ 2 đầu trở lên chênh lệch mới hiện ra.

Chiều ngược lại thì bấm 6 đầu phụ, tụt rất nhanh: với hệ số 0,5, một alpha chung sẽ hứa 3,951 token mỗi vòng, còn thực tế là 2,191. Đầu phụ thứ sáu đóng góp 0,000 khi làm tròn ba chữ số, nhưng bạn vẫn phải trả tiền cho nó đủ.

Cái được miễn phí: lớp nhúng và đầu ra

Nếu mỗi đầu phụ phải có ma trận đầu ra riêng để chiếu về từ vựng thì cách này gần như không dùng được. Ở cấu hình mở bài, một ma trận như vậy tốn 128000 × 4096 = 524,29 triệu tham số, tức lớn hơn cả khối transformer của chính cái đầu đó. Thực tế các đầu phụ dùng lại lớp nhúng và đầu ra của thân, nên chi phí chỉ còn một khối nhỏ cộng một ma trận trộn 2 × 4096 × 4096 = 33,55 triệu, dùng để gộp trạng thái ẩn của thân với vector nhúng của token kế tiếp.

Sim ghi phần đó ở thẻ tiết kiệm nhờ dùng lại đầu ra: 1,57 tỉ tham số, gấp 1,74 lần chính cái phần bạn vừa thêm vào. Bấm sang preset dáng DeepSeek-V3 để thấy con số này ở quy mô khác: với chiều mô hình 7168 và từ vựng 129.280, một đầu phụ tốn 924,84 triệu, còn một ma trận đầu ra riêng sẽ tốn 926,68 triệu. Tỉ lệ đúng 1,00. Nghĩa là nếu không chia sẻ đầu ra thì chi phí gần đúng gấp đôi, và toàn bộ sức hấp dẫn của kỹ thuật này biến mất.

Thêm đầu không phải càng nhiều càng tốt

Bảng thang số đầu phụ quét từ 0 tới 8 với cùng bộ xác suất và chi phí. Số token kỳ vọng không bao giờ giảm khi thêm đầu, đó là điều hiển nhiên vì mỗi tích luỹ đều không âm. Nhưng hệ số tăng tốc thì có đỉnh, và ở trạng thái mở bài đỉnh nằm đúng ở 3 đầu.

Lý do nằm ở hai tốc độ tăng. Đầu phụ thứ tư thêm 0,073 token mỗi vòng, đưa 2,496 lên 2,569. Cùng lúc nó đẩy chi phí một vòng từ 1,150 lên 1,200. Mẫu số tăng nhanh hơn tử số, nên tăng tốc tụt từ 2,17× xuống 2,14×. Tới 8 đầu thì tình hình còn tệ hơn: 2,591 token nhưng phải trả 1,400 lượt chạy, chỉ còn 1,85×. Bạn đang trả tiền cho năm cái đầu mà cộng lại chưa được một phần mười token.

Kéo chi phí thêm mỗi đầu về 0 rồi xem: lúc đó đầu nào cũng đáng thêm và đỉnh chạy tới 8. Kéo lên 1 thì ngay cả một đầu cũng lỗ. Cái tạo ra điểm dừng là tương quan giữa hai đường, không phải một con số cố định nào.

Lợi ích thứ hai: huấn luyện, và sim không đo được nó

Đến đây bạn có thể nghĩ dự đoán nhiều token là một thủ thuật tốc độ. Nó không chỉ là vậy, và cái phần còn lại thì sim này hoàn toàn không chạm tới.

Khi huấn luyện, mỗi vị trí trong chuỗi sinh ra D + 1 số hạng mất mát thay vì 1: đầu chính bị chấm trên token kế tiếp, đầu phụ thứ nhất bị chấm trên token cách hai bước, và cứ thế. Mô hình vì vậy không được phép chỉ tối ưu bước ngay trước mắt. Người ta lập luận rằng ép nhìn xa như thế cho tín hiệu học dày hơn và biểu diễn được quy hoạch tốt hơn, và trong một số báo cáo thì các đầu phụ được giữ lại sau huấn luyện chỉ để làm bản nháp, còn có báo cáo dùng chúng chỉ trong huấn luyện rồi bỏ đi.

Sim đếm được số hạng mất mát, vì đó là số học. Nó không đo được liệu những số hạng ấy có dạy được mô hình cái gì hay không. Đó là câu hỏi thực nghiệm, phải huấn luyện thật rồi so perplexity và điểm đánh giá mới trả lời được. Hãy nghi ngờ bất cứ ai suy từ D + 1 số hạng mất mát ra kết luận về chất lượng mô hình.

Trung thực: sim này nói được gì và không nói được gì

Phần này quan trọng hơn mọi con số ở trên, nên nó được viết thẳng ra chứ không giấu trong chú thích.

Các xác suất từng đầu là tham số bạn đặt, không phải số đo. Không có chỗ nào trong trang này chạy một mô hình thật. Con số 0,8 và hệ số suy giảm 0,75 ở trạng thái mở bài là hai số tròn được chọn để phép tính đẹp, không phải kết quả đo trên bất kỳ mạng nào. Hình dạng suy giảm p_k = p₁ × decay^(k-1) cũng là một lựa chọn mô hình hoá, đặt ra để bạn có đúng một núm cho câu hỏi "các đầu ở xa tệ đi nhanh cỡ nào".

Vì vậy sim cho thấy đúng quan hệ, không cho thấy mức. Nó chứng minh được rằng nếu độ chính xác từng đầu là như vậy và chi phí là như vậy thì hệ số tăng tốc phải là như vậy. Nó không nói được mô hình nào ngoài kia đạt bao nhiêu.

Bảng tham số dùng quy ước khối dày. Sim đếm ma trận: chú ý là 4 × hidden² theo kiểu nhiều đầu đầy đủ, khối FFN là số ma trận × tỉ lệ × hidden², ma trận trộn là 2 × hidden². Các vector chuẩn hoá cỡ vài nghìn tham số mỗi lớp bị bỏ qua. Mô hình dùng trộn chuyên gia có khối khác hẳn, nên với preset DeepSeek-V3 thì con số tuyệt đối chỉ là mức tương đương dày, không phải bảng tham số thật của nó. Ở preset đó, chỉ có ba con số lấy từ nguồn công bố là số lớp 61, chiều mô hình 7168 và cỡ từ vựng 129.280, đọc từ config.json ngày 27/07/2026, cùng với việc báo cáo kỹ thuật của mô hình dùng 1 mô đun dự đoán nhiều token. Mọi thứ còn lại trong preset đó là quy ước của sim, và giao diện ghi rõ điều đó ngay dưới hàng preset.

Mô hình chi phí cũng là một quy ước. Sim tính một vòng bằng một lượt chạy thân cộng D lần chi phí mỗi đầu, coi lượt chạy thân đó vừa kiểm bản nháp cũ vừa sinh bản nháp mới. Hệ thống phục vụ thật còn có chi phí xếp lịch, chi phí bộ nhớ cho các nhánh bị loại, và hiệu ứng gộp lô. Những thứ đó không có ở đây.

Cổng kiểm số của bài này canh phép tính, không canh lời khẳng định về mô hình. Nó có một phép thử đặc biệt đáng nói: khi đặt hệ số suy giảm bằng 1, số token kỳ vọng phải trùng khít công thức (1 - a^(D+1)) / (1 - a) của bài giải mã đầu cơ, và điều đó được khẳng định trên 99 tổ hợp aD với sai số dưới 1e-12, bằng một phép tính viết độc lập trong file kiểm. Hai bài học khác nhau bị buộc vào cùng một con số.

Điều rút ra

Dự đoán nhiều token gắn D đầu ra phụ vào chính cái thân đang chạy, nên nó có bản nháp mà không cần mô hình nháp riêng. Vì mỗi đầu nhìn xa một khoảng khác nhau, độ chính xác của chúng giảm dần, và số token kỳ vọng là tổng các tích luỹ 1 + p₁ + p₁p₂ + ... chứ không phải chuỗi hình học. Hai cách tính chỉ trùng nhau khi mọi p bằng nhau, và giả định sai chỗ đó sẽ làm bạn ước lượng thừa tốc độ. Cái giá là một khối nhỏ cho mỗi đầu, rẻ được là nhờ dùng lại lớp nhúng và đầu ra, và vì mỗi đầu đều phải trả tiền dù token của nó có sống hay không nên số đầu tối ưu là hữu hạn. Lợi ích thứ hai nằm ở huấn luyện, và không có phép số học nào trên trang này đo được nó.

Câu hỏi tự kiểm0/3 đúngchưa trả lời
  1. 1Một mô hình có 3 đầu phụ với độ chính xác lần lượt 0,8 rồi 0,6 rồi 0,45. Số token kỳ vọng mỗi vòng là bao nhiêu?
  2. 2Khi nào tổng các tích luỹ trùng khít công thức chuỗi hình học (1 trừ a mũ D cộng 1) chia (1 trừ a) mà bài giải mã đầu cơ dùng?
  3. 3Ở trạng thái mở bài, thêm đầu phụ thứ tư làm số token kỳ vọng tăng từ 2,496 lên 2,569, vậy vì sao hệ số tăng tốc lại tụt từ 2,17 lần xuống 2,14 lần?