Bản gốc tiếng Anh: https://argusic.com/methodology

Bản tiếng Anh là bản có giá trị ràng buộc; nếu bản tiếng Việt này khác bản tiếng Anh, bản tiếng Anh được áp dụng.

Cập nhật lần cuối 8 tháng 10, 2026.

Phương pháp của Argusic

Argusic test xem phần mềm thật có chạy được không bằng cách nào, và chấm điểm các AI coding agent ra sao. Mọi quy tắc ở đây được công khai có chủ ý: mục đích chính là để bất kỳ ai cũng kiểm tra được công việc của chúng tôi. Mọi thay đổi với các quy tắc này được ghi vào nhật ký thay đổi ở cuối trang, có hiệu lực từ chu kỳ test kế tiếp, và không bao giờ áp dụng ngược về trước.

1. Tóm tắt

2. Câu hỏi mà phương pháp này trả lời

Với một dự án mã nguồn mở thật, liệu một AI coding agent, hoàn toàn tự mình, có thể cài đặt nó, khởi chạy nó, xử lý các lỗi, và xác minh rằng phần mềm chạy được, như một kỹ sư vào ngày làm việc đầu tiên, mà không có người giúp không?

3. Vì sao dùng dự án mới

Benchmark tĩnh mất giá trị dần khi đáp án của chúng lọt vào dữ liệu huấn luyện. SWE-rebench (Badertdinov và cộng sự, 2025) đã chạy cùng các agent trên SWE-bench Verified và trên các task được thu thập sau khi benchmark đó được công khai, và điểm số chênh nhau rất xa: Bảng 2 của nghiên cứu ghi nhận DeepSeek-V3-0324 giải được 39.7% SWE-bench Verified và 21.3% bộ task được lọc theo thời gian, chênh 18 điểm phần trăm chỉ riêng trên một model. Argusic test các dự án đang thịnh hành trong vài tuần gần nhất, với một nhóm dự án bí mật được luân phiên hằng tháng, nên không có gì để học thuộc.

4. Đo cái gì

Chúng tôi đo đúng một thứ: khả năng tự chủ làm cho phần mềm thật chạy được. Mỗi agent được test là một tổ hợp cố định gồm một model ở phiên bản được ghim, một harness ở phiên bản được ghim, bộ hướng dẫn chuẩn đã công bố của Argusic, và giới hạn thời gian cùng tài nguyên giống hệt nhau. Mọi agent nhận đúng cùng một điều kiện.

5. Các agent được test

Chu kỳ đầu tiên đang diễn ra. Danh sách agent được công bố cùng bảng xếp hạng đầu tiên. Mỗi agent là một cấu hình cố định, được ghim, trình bày dưới một danh tính Argusic trung lập; các phiên bản chính xác của nó được ghi lại và lưu giữ để mọi con số trên bảng truy về đúng cấu hình đã tạo ra nó, và một kết quả có thể được tái lập qua Argusic khi có yêu cầu (xem "Cách tái lập một kết quả").

6. Nhóm dự án

6a. Cái gì có thể là một dự án được test

Một dự án được test là thứ mà một agent có thể được yêu cầu cài đặt và chạy. Hôm nay Argusic test một loại và được xây dựng để thêm các loại khác mà không thay đổi gì trong cách một kết quả đạt được: thang chấm điểm, quy tắc bằng chứng và bộ từ ngữ kết luận giống hệt nhau giữa các nguồn, nên một con số từ nguồn này mang cùng ý nghĩa với một con số từ nguồn khác.

Nguồn"Chạy được" ở đây nghĩa là gìTrạng thái
Repo mã nguồn mởClone commit được ghim, cài đặt, khởi chạy, và xác minh nó làm đúng việc mà README của chính nó mô tảĐang dùng. 3669 dự án đã được test
Model trên Hugging FaceTải model ở một revision được ghim và chạy suy luận đúng như model card của nó mô tả, trên một worker có GPU. Model được tính là chạy được khi đoạn mã mẫu theo tài liệu cho ra kết quả trên một máy sạch mà người test không phải viết lại nóĐang dùng. 1 dự án đã được test
Hugging Face SpaceBuild và khởi chạy Space từ định nghĩa của chính nó, rồi mở giao diện của nó và hoàn tất tương tác mà nó quảng cáoĐã khai báo, chưa bắt đầu
Package đã phát hành (npm, PyPI)Cài phiên bản được ghim vào một dự án trống và chạy phần quickstart trong README của chính nóĐã khai báo, chưa bắt đầu
Công cụ của nhà cung cấpCài đặt và khởi chạy bản build do chính nhà cung cấp phát hành, chỉ làm theo hướng dẫn của chính nhà cung cấpĐã khai báo, chưa bắt đầu
Template cloud dựng sẵnTriển khai template đúng như trang niêm yết của nó mô tả và kiểm tra nó khởi động và phục vụ đúng thứ nó quảng cáo, mà người test không phải vá trướcĐã khai báo, chưa bắt đầu
Container imagePull image ở một digest được ghim và chạy lệnh mà phần mô tả của chính nó đưa ra, rồi kiểm tra nó làm đúng điều phần mô tả đó khẳng địnhĐã khai báo, chưa bắt đầu
MCP serverCài đặt và khởi động server như tài liệu mô tả, kết nối một client, và xác nhận nó liệt kê và trả lời các tool mà nó quảng cáoĐã khai báo, chưa bắt đầu

Cột Trạng thái ở trên không được viết tay. Nó được đọc từ cơ sở dữ liệu mỗi lần trang này được phục vụ: một nguồn hiển thị là đang dùng khi một dự án đã công bố thuộc loại đó có một lần chạy được ghi lại, và hiển thị số lượng. Đó cũng là quy tắc mà mọi con số khác trên trang này tuân theo, và nó có nghĩa là không ai phải nhớ cập nhật trang này khi một nguồn mới tạo ra kết quả đầu tiên.

Có hai điều khiến một dự án Hugging Face khác với một repo, và cả hai đều được ghi cùng lần chạy chứ không bị làm mờ đi. Nó cần một worker có GPU, nên chi phí mỗi lần thử cao hơn và ngân sách của nó được quyết định riêng. Và một model card thường mô tả một đoạn mã mẫu chứ không phải một ứng dụng, nên hành vi được xác minh là "đoạn mã mẫu theo tài liệu đã cho ra kết quả", không phải "sản phẩm hoạt động": trang lần chạy nói rõ là trường hợp nào, bằng đúng những từ đó, và điểm số đạt được theo cùng một cách.

Bảng ghi "chưa bắt đầu" thay vì "sắp có" là có chủ ý. Một nguồn được tính là đang dùng vào ngày một lần chạy thật thuộc loại đó được ghi lại cùng bằng chứng, không sớm hơn một ngày. Cho đến lúc đó, dòng đó là một tuyên bố về phạm vi, không bao giờ là về kết quả: không trang nào hiển thị kết luận, số lượng, thứ hạng hay thẻ chia sẻ cho một nguồn chưa chạy, và bảng này là nơi duy nhất một nguồn dự kiến được nêu tên.

7. Một phép đo

  1. Một máy sạch, dùng một lần (môi trường chính xác của nó được công bố). Máy
  2. không nhận kết nối từ bên ngoài vào và bị hủy khi lần chạy kết thúc. Truy cập mạng đi ra không bị lọc trong phiên bản này; thứ giới hạn một lần chạy là máy dùng một lần và các quy tắc về model key bên dưới danh sách. Máy chỉ tải về commit được ghim, không tải lịch sử của dự án, vốn không thuộc phạm vi bài test.

  3. Agent nhận một nhiệm vụ: làm cho dự án này hoạt động, theo bộ hướng dẫn chuẩn
  4. đã công bố.

  5. Một giới hạn thời gian. Mỗi lần chạy nhận một trong đúng ba mức ngân sách
  6. (bảng bên dưới danh sách), và ngân sách mà lần chạy được cấp hiển thị trên trang lần chạy của nó.

  7. Ba lần chạy độc lập; kết quả ở giữa được tính. Nếu ba kết quả chênh nhau hơn
  8. 30%, bộ kết quả bị gắn cờ không ổn định và để riêng khỏi bảng của chu kỳ đó.

  9. Mỗi lần chạy lưu một log đầy đủ và một bản ghi terminal hoàn chỉnh, được công
  10. bố cùng kết quả.

  11. Ứng dụng desktop được khởi chạy trên một màn hình ảo bên trong máy (từ
  12. v1.1). "Đã khởi chạy" nghĩa là tiến trình chính của ứng dụng đã khởi động trên màn hình đó và tiếp tục chạy, hoặc đã trả lời một lệnh xem phiên bản hay lệnh trợ giúp. Không có gì được nhấp chuột; thứ được đo là phần mềm có lên được trên một máy mới hay không, cùng câu hỏi đặt ra cho mọi dự án khác. Agent được dặn không gửi hình ảnh cho model của nó (từ v1.3): model chuẩn chỉ nhận văn bản, và một ảnh chụp màn hình đính kèm trong một tin nhắn đã làm phiên kết thúc trước khi có báo cáo.

Các mức ngân sách thời gian của mục 3:

HạngNgân sách
standard90 phút
heavy120 phút
gpu120 phút

Ngân sách standard là 45 phút trước v1.3: trong tuần đầu tiên, 36 trong số 38 lần hết giờ của một ngày là các bản build vẫn đang chạy khi đã dùng hết ngân sách, nên nó được tăng gấp đôi. Hạng heavy có từ v1.2, dành cho dự án được Owner đánh dấu heavy, hoặc có repo lớn hơn 500 MB theo số liệu GitHub báo, vì một trò chơi lớn hay một ứng dụng desktop lớn cần chừng đó thời gian để build. Một dự án cần GPU nhận cùng 120 phút.

Ba con số ở trên không phải để trang trí. scripts/check-ttl-methodology.sh đọc bảng này và so sánh với các ngân sách mà orchestrator thực sự được cấu hình, và make test thất bại nếu chúng không khớp. Phép kiểm tra đó tồn tại vì từ 2026-09-06 đến 2026-09-11 ngân sách GPU trong hệ thống đang chạy là 240 phút trong khi trang này ghi 120, và không có gì so sánh hai con số đó (ISSUE-072).

Model key. Một agent cần một key để gọi model của nó, và một lần chạy thực thi mã từ một dự án không đáng tin cậy, nên key đó là thông tin xác thực đáng giới hạn nhất. Với các agent gọi model qua lớp định tuyến của Argusic, mỗi lần chạy nhận một key riêng, được tạo chỉ cho lần chạy đó. Mức chi tối đa cho model key của mỗi lần chạy: 3 USD. Key bị xóa khi lần chạy kết thúc, bị hủy hoặc hết giờ, và một tác vụ quét định kỳ xóa mọi key không còn thuộc về một job đang chạy. Nếu không tạo được key cho một lần chạy, lần chạy đó không được bắt đầu và sẽ được thử lại; không bao giờ dùng một key chung để thay thế. Các agent dùng dịch vụ riêng của hãng làm ra model gọi dịch vụ đó bằng một key chung do Argusic giữ, không phải key riêng cho từng lần chạy; chuyển chúng sang key riêng cho từng lần chạy nằm trong backlog của chúng tôi. Dòng mức chi ở trên được đọc bởi scripts/check-cost-methodology.sh, script này làm make test thất bại nếu nó không khớp với giá trị đã cấu hình, cùng lý do như các ngân sách thời gian.

8. Chấm điểm, trên thang 100

Kết quả của một lần chạy là một trong các giá trị sau:

Kết quảÝ nghĩa
pass_fullĐã chạy và được xác minh thật
pass_mockĐã chạy, xác minh với dịch vụ giả lập
failKhông cài đặt được hoặc không khởi chạy được
timeoutHết thời gian

Bốn dòng chấm điểm để ngỏ một số trường hợp. Chúng được quy định rõ ở đây chứ không chỉ trong mã nguồn, vì một quy tắc không ai đọc được là một quy tắc không ai kiểm tra được. Chấm điểm là một chương trình tất định có test bao phủ mọi quy tắc bên dưới; không AI model nào tham gia chấm điểm ở bất kỳ thời điểm nào.

9. Từ nhiều lần chạy thành một điểm trên bảng

Chấm điểm đánh giá một cặp dự án và agent. Bảng xếp hạng cần một con số duy nhất cho mỗi agent, và cách kết hợp các điểm đó là một lựa chọn phương pháp, nên nó được nêu ở đây.

Điểm trên bảng của một agent là giá trị ở giữa của các điểm ở giữa theo từng dự án của nó. Chúng tôi lại dùng giá trị ở giữa, thay vì trung bình cộng, vì cùng một lý do: một dự án thảm họa không nên kéo một agent có năng lực xuống, và một dự án may mắn không nên đẩy một agent yếu lên.

Hai loại kết quả bị loại khỏi con số đó, và cả hai vẫn hiển thị trên bảng để việc loại trừ được nhìn thấy, không âm thầm: các kết quả bị gắn cờ không ổn định (xem mục tiếp theo), và mọi kết quả trên một dự án bị gắn cờ đang xem xét (xem kiểm soát chất lượng môi trường).

Một agent có toàn bộ kết quả bị loại thì không có điểm trên bảng. Nó được hiển thị ở cuối bảng, không có điểm, chứ không bị gỡ đi, vì một agent đã được test mà không tạo ra được gì dùng được thì bản thân điều đó là một kết quả, và giấu nó đi sẽ âm thầm tô đẹp cho cả nhóm.

Tỷ lệ đạt tính mọi lần thử của một agent trong chu kỳ, kể cả các lần không đạt và hết giờ. Xem phần độc lập và không chọn lọc kết quả bên dưới.

10. Độ chênh và tính không ổn định

Độ chênh là khoảng cách giữa ba lần chạy tính theo phần trăm của giá trị ở giữa:

spread = (highest - lowest) / middle * 100

Một bộ kết quả bị gắn cờ không ổn định khi độ chênh lớn hơn hẳn 30%. Đúng 30% không phải là hơn 30% và vẫn ở trên bảng. Từ công thức suy ra hai trường hợp biên:

11. Kết luận về dự án

Bảng xếp hạng các agent. Kết luận trả lời một câu hỏi khác, về chính dự án: một người mới, dưới dạng một AI agent, có thể làm cho phần mềm này chạy hôm nay không?

Việc test mang tính thích ứng, vì bằng chứng chỉ có giá trị một chiều. Một lần đạt chứng minh dự án chạy được; một lần thất bại tự nó không chứng minh gì, vì lỗi có thể thuộc về agent chứ không phải dự án.

  1. Đầu tiên, agent chuẩn chạy một lần. Bất kỳ lần đạt nào cũng kết thúc quá
  2. trình: đạt trọn vẹn cho kết luận "chạy được", đạt với dịch vụ giả lập cho kết luận "chạy được với dịch vụ giả lập". Không có lý do gì để tiếp tục test thứ đã được chứng minh là chạy được.

  3. Nếu thất bại, một lần thử lại trên cùng agent loại trừ một sự cố ngẫu nhiên.
  4. Nếu vẫn thất bại, kết luận là "không xác minh được", không bao giờ là "hỏng":
  5. Argusic báo cáo những gì agent làm được, và nói đúng như vậy (từ v1.3: hai lần thử hoàn chỉnh trên agent chuẩn là đủ để kết luận). Một agent mạnh hơn có thể được chạy khi có yêu cầu; khi đó, nếu nó đạt thì dự án là "chạy được" (hồ sơ ghi rõ agent nào đã xác minh), và nếu nó thất bại thì kết luận cũng là "không xác minh được".

Một lần thử hoàn chỉnh là lần mà bản ghi cho thấy agent làm việc đến điểm kết thúc của chính nó hoặc đến giới hạn thời gian. Một lần thử bị chính công cụ của Argusic cắt ngang (một harness không đọc được báo cáo của agent, một lỗi công cụ không liên quan đến dự án) bị đánh dấu không hợp lệ kèm lý do được lưu trên lần chạy, vẫn được công bố cùng bằng chứng, và không được tính.

Kết luận là kết quả tốt nhất mà bất kỳ lần thử nào đạt được:

Mọi lần thử đều được công bố cùng đầy đủ bằng chứng, dù kết luận là gì, với một ngoại lệ: một bản ghi không chứng minh được là sạch thông tin xác thực đang dùng sẽ bị giữ lại và lần chạy đó được chạy lại (mục 17, "Che thông tin bảo mật").

12. Những gì Argusic không đo

Để tránh hiểu sai, chúng tôi nói thẳng điều này. Argusic không đo chất lượng dài hạn của mã mà một agent viết, độ an toàn của các bản sửa lỗi của nó, hay trải nghiệm sản phẩm chuyên sâu ở mức tính năng. Argusic đo một thứ: khả năng tự chủ làm cho phần mềm thật chạy được.

13. Độc lập và không chọn lọc kết quả

14. Công khai harness

Harness (phần khung, công cụ, hướng dẫn và giới hạn bao quanh model) được công khai và giống hệt nhau cho mọi agent trong một chu kỳ. Mọi khác biệt về điểm số phải quy được cho agent, không phải cho phần hạ tầng. Thay đổi harness chỉ được đưa vào giữa các chu kỳ và được ghi vào nhật ký thay đổi.

15. Kiểm soát chất lượng môi trường

Khi một dự án thất bại với mọi agent, nó tự động bị gắn cờ đang xem xét và bị loại khỏi việc chấm điểm cho đến khi có người kiểm tra: lỗi có thể thuộc về môi trường hoặc dự án chứ không phải các agent. Một vấn đề thiết lập chung không bao giờ được tính là thất bại của một agent.

16. Xác minh nghĩa là giải mã, không phải thăm dò

Một file tồn tại không phải là một kết quả, và đọc phần header của nó không phải là một phép kiểm tra. ffprobe -show_streams, file và một con số đếm byte đều báo về một container và không giải mã gì: một video mà mọi khung hình đều màu xanh lá vượt qua cả ba y hệt một video tốt. Quy tắc, có hiệu lực từ v1.4, là agent báo cáo những gì nó đã giải mã, không bao giờ báo cáo những gì nó mong đợi.

17. Tính toàn vẹn của bằng chứng

Hai lớp, không bao giờ lẫn lộn.

Lớp bằng chứng là dữ liệu thô và vĩnh viễn: mỗi lần chạy tạo ra một bản ghi terminal đầy đủ của phiên làm việc thật, và với ứng dụng đồ họa thì có thêm một video thô của phiên, cùng với log đầy đủ. Mỗi file được lấy dấu vân tay khi đến và lưu vĩnh viễn. Bất kỳ ai cũng có thể phát lại toàn bộ phiên chưa qua chỉnh sửa.

Lớp trình bày là dữ liệu dẫn xuất: mọi video hay hình ảnh trên mạng xã hội đều là bản dựng từ bằng chứng. Các chỉnh sửa được phép là tăng tốc, cắt bớt cho vừa độ dài, chú thích lấy từ dòng thời gian lỗi và sửa lỗi đã ghi lại, và lồng tiếng. Các chỉnh sửa bị cấm là sắp xếp lại thứ tự sự kiện, ghép các phiên riêng biệt lại với nhau, che giấu thất bại, hoặc thay đổi nội dung thực chất của những gì agent đã làm. Mọi video được công bố đều liên kết ngược về bằng chứng của nó.

Ba phép biến đổi dẫn xuất được áp dụng cho bản ghi trước khi phục vụ, và không phép nào thay đổi nội dung thực chất công việc của agent:

Một phép biến đổi hiển thị áp dụng cho văn bản được trích dẫn (quyết định của Owner ngày 2026-09-04): khi một trang hiển thị câu kết của chính agent ("What the test found") hoặc phần mô tả GitHub của một repo, dấu gạch ngang mà tác giả gõ được hiển thị thành dấu phẩy hoặc dấu chấm để trang theo đúng quy tắc chấm câu của chúng tôi. Báo cáo đã lưu, hồ sơ repo, log, bản ghi và các hình ảnh dựng từ bản ghi đều không bị đụng tới; các từ và thứ tự của chúng không bao giờ thay đổi.

Quy tắc cố định: mọi con số đều truy về một log, và mọi khung hình đều truy về một bản ghi của phiên làm việc thật.

18. Cách tái lập một kết quả

Phía dự án của mọi kết quả đều hoàn toàn công khai: đúng commit đã được test, môi trường đã công bố, bộ hướng dẫn chuẩn, cùng log và bản ghi đầy đủ. Trang của mỗi lần chạy có tất cả những thứ này. Agent là một cấu hình Argusic cố định, được ghim, dưới một danh tính trung lập; Argusic giữ các phiên bản chính xác của nó và có thể chạy lại một kết quả để tái lập. Danh sách dự án công khai và phần công bố nhóm bí mật được công bố cùng bảng xếp hạng đầu tiên.

19. Khiếu nại một kết quả

Nếu một người duy trì dự án hoặc một phòng lab cho rằng một kết quả sai, họ có thể khiếu nại. Hãy viết tới [email protected] kèm liên kết lần chạy. Chúng tôi xem lại toàn bộ log và bản ghi đối chiếu với khiếu nại và trả lời. Nếu kết quả bị ảnh hưởng bởi một vấn đề môi trường hoặc thiết lập từ phía chúng tôi, chúng tôi chạy lại và sửa hồ sơ kèm một ghi chú; nếu bằng chứng ủng hộ kết quả ban đầu, chúng tôi giải thích bản ghi cho thấy điều gì. Bằng chứng gốc không bao giờ bị sửa hay bị gỡ.

20. Nhật ký thay đổi

Mỗi phiên bản có hai ngày và chúng trả lời hai câu hỏi khác nhau. Ngày ghi là ngày quy tắc được ghi vào tài liệu này. Có hiệu lực từ là ngày lần chạy đầu tiên thực sự được đo theo quy tắc đó, đọc từ hồ sơ các lần chạy, không phải từ file này. Hai ngày thường trùng nhau. Khi không trùng, hồ sơ các lần chạy được ưu tiên và được ghi ở đây, vì một phiên bản đến được máy trước khi đến được trang này chính là điều mà một nhật ký thay đổi tồn tại để công khai. Không phiên bản nào được áp dụng ngược về trước: một lần chạy giữ các quy tắc có hiệu lực vào ngày nó chạy.

Các phiên bản từ v0.2 đến v1.0 đều được ghi vào ngày 2026-08-31, trong commit tạo ra phiên bản công khai đầu tiên; các ngày bên dưới của chúng là những ngày chính các quy tắc đó được quyết định, trước phép đo đầu tiên.

Phụ lục: ước tính phần cứng, model nào vừa và chạy nhanh đến đâu

Các ước tính bên dưới được in bên cạnh các laptop và máy để bàn cho lập trình, AI và khoa học dữ liệu mà Argusic liệt kê.

Phụ lục này không thuộc các quy tắc benchmark ở trên và không thay đổi phiên bản nào: nó giải thích các ước tính mà Argusic in bên cạnh các laptop và máy để bàn được liệt kê để bán, vốn là phép tính số học trên số liệu do nhà sản xuất công bố, không bao giờ là phép đo. Các con số ở đây được tính bởi một file dùng chung (lib/hardware-estimates.ts), và không con số nào được thay đổi nếu file đó và test của nó không thay đổi trong cùng một commit.

Danh sách phần cứng của Argusic hiển thị, cho mỗi laptop và máy để bàn, kích thước model lớn nhất mà máy có thể chứa và một giới hạn trên cho tốc độ sinh văn bản. Cả hai đều là Ước tính: chúng được tính từ thông số kỹ thuật do nhà sản xuất công bố bằng các công thức bên dưới. Argusic chưa chạy model nào trên các máy này. Khi Argusic thực sự đo một máy, con số đó mang nhãn Đã đo, liên kết tới log của lần chạy, và không bao giờ bị trộn lẫn với một ước tính.

Một ước tính chỉ được hiển thị khi mọi đầu vào đều đã biết. Nếu thiếu dung lượng bộ nhớ, loại bộ nhớ hoặc băng thông của chip, trang ghi "Không rõ" thay vì đoán.

Đầu vào và nguồn gốc

Bộ nhớ: model kích thước nào vừa

Một model cần chỗ cho ba thứ.

  1. Trọng số. Argusic giả định lượng tử hóa Q4_K_M của llama.cpp, ở mức 4.8944 bit mỗi trọng số (README quantize của llama.cpp):
  2. số byte trọng số = số tham số x 4.8944 / 8. Ví dụ, được tính chứ không phải đo: một model 70B cần 42.8 GB trọng số.

  3. Ngữ cảnh (KV cache). Theo công thức của NVIDIA (Mastering LLM Techniques: Inference Optimization, NVIDIA Technical Blog, 2023-11-17):
  4. số byte KV cache mỗi token = 2 x số lớp x (số head x kích thước head) x số byte mỗi giá trị. Các model hiện đại dùng chung head key/value giữa các attention head (grouped-query attention), nên "số head" ở đây là số head key/value mà model thực sự lưu cache. Argusic cho phép 8192 token ngữ cảnh ở độ chính xác 16-bit (2 byte, kiểu cache mặc định của llama.cpp), dùng cấu hình đã công bố của một model dense mở cho mỗi hạng: Qwen3-8B, Qwen3-14B, Qwen3-32B, Qwen2.5-72B-Instruct và Mistral-Large-Instruct-2411.

  5. Chi phí phụ của runtime. Argusic dành 1 GB cho bộ đệm riêng của runtime suy luận.

Ngữ cảnh 8192 token và chi phí phụ 1 GB là mức Argusic dành ra, một lựa chọn chính sách chứ không phải một phép đo. Ngữ cảnh dài hơn cần nhiều bộ nhớ hơn; một model vừa ở đây có thể không vừa với một cuộc hội thoại dài hơn nhiều.

Bao nhiêu bộ nhớ của máy được tính. Toàn bộ VRAM của GPU rời được tính. Với bộ nhớ hợp nhất hoặc bộ nhớ hệ thống, Argusic tính 75% và chừa 25% cho hệ điều hành và các chương trình khác. Điều này khớp với những gì AMD nêu cho các chip bộ nhớ hợp nhất của chính họ: tối đa 96GB trong 128GB có thể chuyển thành VRAM (AMD), và 64GB cho phép tối đa 48GB (AMD).

Dung lượng bộ nhớ được đọc theo 10^9 byte mỗi GB, cùng đơn vị mà các hãng dùng cho băng thông. Bộ nhớ thực tế được tính theo đơn vị nhị phân, nên cách này ghi thấp dung lượng khoảng 7% và khiến mọi phép tính vừa hay không đều hơi thận trọng.

Yêu cầu tương ứng cho mỗi hạng, tính từ các quy tắc ở trên:

HạngTrọng số (Q4_K_M)Phần dành cho ngữ cảnhChi phí phụCầnVRAM từBộ nhớ hợp nhất từ
7-8B4.89 GB1.21 GB1 GB7.10 GB7.10 GB9.47 GB
14B8.57 GB1.34 GB1 GB10.91 GB10.91 GB14.54 GB
27-32B19.58 GB2.15 GB1 GB22.73 GB22.73 GB30.30 GB
70B42.83 GB2.68 GB1 GB46.51 GB46.51 GB62.01 GB
120B trở lên73.42 GB2.95 GB1 GB77.37 GB77.37 GB103.16 GB

Ví dụ, một GPU 8GB chứa được hạng 7-8B, một GPU 24GB chứa được hạng 27-32B, và 64GB bộ nhớ hợp nhất chứa được hạng 70B. Một máy dưới dòng đầu tiên được hiển thị là không vừa hạng nào.

Tốc độ: một giới hạn trên, không phải một dự đoán

Sinh mỗi token đòi hỏi đọc mọi trọng số của model từ bộ nhớ một lần, nên việc sinh văn bản bị giới hạn bởi băng thông bộ nhớ (NVIDIA: "Model execution is frequently memory-bandwidth bound"). Điều đó cho ra một mức trần:

số token mỗi giây, tối đa = băng thông bộ nhớ / số byte trọng số.

Ví dụ, được tính chứ không phải đo: một chip có 546 GB/s chạy một model 8B ở Q4_K_M (4.89 GB trọng số) không thể vượt quá khoảng 111 token mỗi giây.

Tốc độ thực tế luôn thấp hơn. Giới hạn này bỏ qua thời gian đọc ngữ cảnh, tính toán và chi phí phụ của phần mềm. Các phép đo được tổng hợp trong thảo luận #4167 của llama.cpp cho thấy tốc độ tăng theo băng thông nhưng thấp hơn mức tuyến tính. Với Llama 2 7B ở Q4_0 trên Apple silicon: M3 Max (400 GB/s) 66.31 token mỗi giây, M4 Max (546 GB/s) 83.06, M2 Ultra (800 GB/s) 94.27. Đi từ 400 lên 546 GB/s (1.37 lần băng thông) cho 1.25 lần tốc độ; tăng gấp đôi lên 800 GB/s cho 1.42 lần. Hãy đọc giới hạn này là "máy này không thể nhanh hơn mức này", không bao giờ là "máy này chạy ở tốc độ này".

Giới hạn này giả định một model dense, trong đó mọi trọng số được đọc cho mỗi token. Các model mixture-of-experts chỉ đọc các expert đang hoạt động cho mỗi token, nên chúng có thể chạy nhanh hơn mức giới hạn tính theo tổng kích thước của chúng.

Bộ nhớ cho model trên mỗi đô la

Một cách sắp xếp của danh sách đó là bộ nhớ cho model trên mỗi đô la: số gigabyte bộ nhớ cho model (VRAM, hoặc bộ nhớ hợp nhất) chia cho giá Amazon hiện tại, kèm ngày của mức giá. Nó trả lời câu hỏi "máy nào chứa được model lớn nhất với số tiền này". Nó không phải xếp hạng chất lượng hay tốc độ, và hoa hồng không bao giờ thay đổi nó.

Những gì các ước tính này không phải