Bài viết

Khi nói về năng lực reasoning của LLM, nhiều người vẫn nhìn vào một câu hỏi quen thuộc: model nào mạnh hơn? Câu hỏi này còn thiếu một nửa quan trọng. Cùng một model, nếu cho nó nhiều tài nguyên suy nghĩ hơn tại thời điểm chạy, kết quả có thể khác hẳn.
Đó là ý tưởng cốt lõi của test-time compute: thay vì chỉ dựa vào năng lực đã được nén vào weights khi training, hệ thống cấp thêm compute lúc inference để model tìm lời giải, tự kiểm tra, thử nhiều hướng, hoặc gọi công cụ bên ngoài. Nói đời thường: không bắt một người trả lời ngay sau vài giây; cho họ giấy nháp, thời gian và quyền tra cứu khi cần.
Nghe rất hấp dẫn. Nhưng tôi nghĩ nhiều đội ngũ đang đọc khái niệm này theo hướng quá lạc quan: cứ tăng reasoning effort là AI sẽ thông minh hơn. Không hẳn. Test-time compute có thể giúp ở các bài toán cần tìm kiếm có cấu trúc, kiểm tra ràng buộc, phân rã vấn đề hoặc so sánh nhiều phương án. Nó cũng có thể chỉ làm hệ thống chậm, đắt, sinh ra một bài giải dài hơn nhưng sai theo cách rất tự tin.
Điểm đáng chú ý của các technical benchmark về test-time compute reasoning không nằm ở việc chọn ra một model vô địch. Giá trị thật là nó buộc chúng ta tách ba thứ vốn hay bị trộn vào nhau: năng lực nền của model, chiến lược suy luận lúc chạy, và cách benchmark chấm câu trả lời.
Nếu bạn đang xây AI Agent cho doanh nghiệp, đây là một thay đổi tư duy rất thực dụng. Đừng hỏi AI của mình có “reasoning” hay không. Hãy hỏi: bài toán nào đáng chi thêm compute, hệ thống được phép chậm bao lâu, sai ở đâu thì nguy hiểm, và bằng chứng nào cho thấy thêm compute thực sự giúp?
Test-time compute không biến model yếu thành chuyên gia. Nó cho một hệ thống có cơ hội dùng năng lực sẵn có theo cách có kỷ luật hơn.
Tôi sẽ đi thẳng vào phần thực chiến: test-time compute hoạt động ra sao, benchmark reasoning đang đo gì, vì sao kết quả đẹp trên benchmark chưa đủ để bạn bật chế độ “think longer” trong production, và cách thiết kế một policy hợp lý cho sản phẩm thật.
Muốn nói rõ test-time compute, cần bỏ qua cách diễn đạt mơ hồ kiểu “AI suy nghĩ”. Model không có trải nghiệm nội tâm để ta suy ra từ câu trả lời dài hay ngắn. Thứ ta quan sát được là quá trình hệ thống tiêu thụ token, chạy các bước suy luận, tạo candidate, đánh giá candidate, gọi tool và trả về một output cuối cùng.
Training compute là tài nguyên đã dùng trước khi model được phát hành hoặc fine-tune. Nó tạo ra năng lực tổng quát: hiểu ngôn ngữ, nhận dạng pattern, viết code, xử lý kiến thức và theo instruction ở một mức nào đó. Compute này là khoản đầu tư trả trước.
Test-time compute là tài nguyên hệ thống chi ra cho từng request sau khi model đã được triển khai. Khoản này có thể xuất hiện dưới nhiều hình thức:
Điểm chung là hệ thống dùng thêm thời gian và tài nguyên tại thời điểm request đến. Compute không tự sinh ra chất lượng. Nó mở thêm một không gian tìm kiếm. Không gian đó có ích hay vô ích phụ thuộc bài toán và policy điều phối.
Ví dụ, một câu hỏi yêu cầu cộng các khoản chi, đối chiếu với hạn mức, phát hiện điều kiện loại trừ và trả lời theo một mẫu cố định. Một model trả lời ngay có thể bỏ sót ràng buộc. Nếu hệ thống buộc nó trích xuất các điều kiện, dùng calculator, kiểm tra tổng và xác thực format trước khi gửi, xác suất lỗi có thể giảm. Nhưng nếu câu hỏi là viết lại một email nội bộ ngắn, bắt model chạy chuỗi reasoning dài thường là chi phí vô nghĩa.
Đây là chỗ nhiều team mắc sai lầm: áp cùng một reasoning policy cho mọi request. Họ biến cả chatbot thành bài thi toán khó. Người dùng không quan tâm hệ thống đã “nghĩ” bao nhiêu bước. Họ quan tâm câu trả lời có đúng việc, đúng lúc, đủ rõ và không gây hậu quả xấu hay không.
Benchmark reasoning thường cho model một tập bài toán có đáp án hoặc tiêu chí chấm tương đối rõ. Bài toán có thể đòi hỏi suy luận toán học, lập kế hoạch, logic ký hiệu, code, câu hỏi đa bước, hoặc nhiệm vụ cần tuân thủ nhiều ràng buộc. Hệ thống được chấm dựa trên output cuối, đôi khi kèm cách dùng tool hay chi phí inference.
Benchmark tốt giúp ta nhìn thấy một điều quan trọng: chất lượng reasoning không chỉ đi cùng kích thước model. Chiến lược dành compute ở lúc chạy cũng tạo khác biệt. Model có thể được yêu cầu thử thêm hướng giải, kiểm tra kết quả trước khi trả lời, hoặc quay lui khi gặp mâu thuẫn. Đây là lý do test-time compute được nhắc nhiều trong các thảo luận về năng lực reasoning.
Nhưng benchmark không phải cửa sổ trong suốt nhìn thẳng vào production. Nó là một môi trường có luật chơi. Có input, output và điều kiện chấm xác định trước. Khi một kỹ thuật tối ưu tốt cho benchmark, ta mới có một tín hiệu rằng kỹ thuật ấy đáng khảo sát thêm. Ta chưa có bằng chứng rằng nó phù hợp với workflow của người dùng thật.
Tôi đặc biệt dè chừng với ba kiểu suy diễn sau.
Một benchmark có thể chấm đúng hoặc sai. Sản phẩm thật hiếm khi đơn giản như vậy. Một AI Agent xử lý ticket hỗ trợ có thể trả lời đúng ý chính nhưng lộ dữ liệu nhạy cảm, gửi nhầm người, tự ý hoàn tiền, hoặc viện dẫn chính sách cũ. Nếu evaluation chỉ đo semantic similarity hay tỷ lệ hoàn thành, bạn sẽ bỏ qua những lỗi đắt nhất.
Reasoning dài không xử lý tự động các lỗi này. Thậm chí reasoning chain dài hơn mở thêm điểm có thể trôi khỏi policy. Càng nhiều bước tool calling, càng cần kiểm soát quyền, xác thực dữ liệu đầu vào, giới hạn hành động và ghi log đủ chi tiết.
Model có thể sinh một lời giải dài, có vẻ mạch lạc, nhưng khởi đầu từ giả định sai. Nó có thể kiểm tra lại chính lập luận sai đó và tự khen câu trả lời của mình. Đây là vấn đề quen thuộc của self-consistency: nhiều candidate chỉ hữu ích khi chúng có mức độc lập đủ lớn. Nếu tất cả đều mắc chung một lỗi đọc đề, vote nhiều lần chỉ làm lỗi ấy có vẻ hợp pháp hơn.
Do đó, hãy đánh giá chất lượng bằng outcome và constraint, không bằng số token reasoning. Một câu trả lời ngắn với phép kiểm độc lập đôi khi đáng tin hơn một chuỗi giải thích dài.
Nhiều bài benchmark có một đáp án chuẩn hoặc tập đáp án hẹp. Nghiệp vụ doanh nghiệp lại hay có dữ liệu thiếu, policy mâu thuẫn, quy định thay đổi và yêu cầu ngầm từ người dùng. Model cần biết lúc nào phải hỏi lại, lúc nào cần chuyển người thật, lúc nào không được hành động. Đây là năng lực judgment của hệ thống, không thể đo hết bằng một bài toán có đáp án sẵn.
Bài viết về evaluation và observability cho LLMOps đi sâu vào hai lớp này. Tôi xem chúng là điều kiện bắt buộc trước khi đội ngũ mở rộng test-time compute. Nếu không quan sát được từng bước Agent đã làm gì và không có evaluation sát nghiệp vụ, bạn chỉ đang chi thêm tiền để hệ thống khó giải thích hơn.
Không có một nút kỹ thuật mang tên test-time compute. Đây là một họ chiến lược. Mỗi chiến lược đánh đổi khác nhau giữa latency, token, độ phức tạp triển khai và khả năng audit.
Đây là cách dễ hình dung nhất: cho model một ngân sách suy luận lớn hơn trước khi phải chốt câu trả lời. Ưu điểm là đơn giản. Nhược điểm là lãng phí với request dễ và làm latency khó đoán hơn.
Trong sản phẩm có traffic thật, budget cố định thường là policy thô. Nó phù hợp cho một nhóm tác vụ đã biết là khó, hoặc cho back-office workflow nơi người dùng chấp nhận chờ. Nó kém phù hợp với chat tương tác, tìm kiếm nhanh và các luồng có SLA chặt.
Hệ thống tạo nhiều candidate, sau đó dùng rule, model chấm điểm hoặc verifier để chọn. Cách này hợp với bài toán có tiêu chí kiểm tra rõ: đúng format, không vượt hạn mức, code pass test, kết quả phép tính khớp, hoặc output chứa đủ trường bắt buộc.
Điểm yếu nằm ở verifier. Nếu verifier chỉ là một model cùng họ, cùng prompt style và cùng thiên kiến với generator, bạn có nguy cơ tạo một vòng tròn tự xác nhận. Tôi thích verifier dựa trên quy tắc xác định được hơn ở những phần có thể xác định: schema validation, test case, policy engine, quyền truy cập, checksum hay đối chiếu record từ hệ thống nguồn.
Đây là dạng test-time compute có giá trị nhất trong nhiều hệ thống doanh nghiệp. Thay vì buộc model “nhớ” chính sách, giá sản phẩm hay trạng thái đơn hàng, hãy để nó truy vấn nguồn dữ liệu có kiểm soát. Công việc của model là chọn query, diễn giải kết quả, phát hiện thiếu dữ kiện và trình bày câu trả lời.
Dù vậy, gọi tool nhiều không đồng nghĩa reasoning tốt. Agent có thể tìm sai index, dùng API với tham số sai, đọc nhầm bản ghi, hoặc gọi tool vòng lặp. Bạn cần giới hạn số bước, validate tham số, thiết kế fallback và phân quyền theo từng tool. Nếu Agent được quyền ghi dữ liệu, lớp phê duyệt càng không thể để sau.
Một pattern phổ biến là chia nhiệm vụ thành planner lập kế hoạch, executor thực hiện từng bước, rồi verifier kiểm tra. Về mặt tư duy hệ thống, pattern này có ích vì tách những lỗi khác loại. Planner có thể sai hướng; executor có thể gọi tool sai; verifier có thể bỏ sót policy. Khi tách ra, ta biết phải sửa ở đâu.
Nhưng đừng biến mọi tác vụ thành một hệ multi-agent. Ba thành phần không bảo đảm chất lượng gấp ba. Nó nhân số lần gọi model, điểm failure và lượng state cần quản lý. Với tác vụ nhỏ, một prompt rõ, một tool call có validate, và một rule-based check thường đáng tin hơn cả dàn Agent nói chuyện với nhau.
Nếu bạn đang cân nhắc kiến trúc này, bài khi nào cần Multi-Agent và cách điều phối đúng là phần đọc tiếp hợp lý. Điểm tôi đồng ý mạnh là orchestration chỉ có ý nghĩa khi nhiệm vụ thực sự cần tách trách nhiệm và có cơ chế kiểm soát giữa các bước.
Một hệ thống tốt không bật reasoning mức cao cho mọi request. Nó phân loại request và cấp compute theo giá trị quyết định. Cách làm này nghe hiển nhiên, nhưng triển khai cần kỷ luật vì nó buộc team định nghĩa “khó”, “rủi ro” và “đủ tốt”.
Tôi thường chia tác vụ thành bốn nhóm vận hành, không phải bốn cấp độ thông minh.
Phân nhóm này giúp thiết kế routing policy. Request nào đủ tín hiệu rõ thì chạy fast path. Request nào mơ hồ, có nhiều ràng buộc hoặc chạm ngưỡng rủi ro thì chuyển sang slow path với thêm compute. Request nào nằm ngoài thẩm quyền của AI thì dừng và chuyển người xử lý.
Điều quan trọng là router cũng có thể sai. Đừng để một classifier đơn lẻ quyết định rằng yêu cầu hoàn tiền hay thay đổi quyền truy cập là “rủi ro thấp”. Những hành động quan trọng cần rule cứng dựa trên loại thao tác, không chỉ dựa trên model confidence.
Test-time compute luôn có hóa đơn. Hóa đơn đó có thể là token, số lần gọi model, thời gian chờ tool, hạ tầng queue, chi phí observability hoặc công sức vận hành. Nếu sản phẩm có người dùng tương tác trực tiếp, latency còn là một phần của UX. Người dùng thường chấp nhận chờ cho một báo cáo phức tạp; họ ít kiên nhẫn khi chỉ hỏi một thông tin ngắn.
Vì vậy, đừng đo chất lượng theo một trục. Một dashboard tối thiểu cho từng lớp task nên trả lời được các câu hỏi sau:
Tôi không thích các báo cáo chỉ khoe average latency. Average có thể che một hàng dài request bị kẹt ở slow path. Hãy nhìn phân phối thời gian theo từng loại tác vụ, nhìn tail latency và xem những request đắt nhất đã tạo giá trị gì. Một Agent chạy rất tốt ở phần lớn case nhưng thỉnh thoảng lặp tool vô hạn là một hệ thống có rủi ro vận hành, không phải một hệ thống “trung bình ổn”.
Cũng cần phân biệt cost per request với cost per successful outcome. Một fast path rẻ nhưng thường gửi người dùng sang vòng hỗ trợ tiếp theo có thể đắt hơn một slow path biết hỏi đúng một câu làm rõ. Ngược lại, một pipeline reasoning phức tạp cho việc đổi cách viết email là chi phí vô ích dù kết quả có đẹp đến đâu.
Nhiều đội ngũ thấy model trả lời sai dữ kiện và phản xạ đầu tiên là thêm RAG. RAG hữu ích khi vấn đề là thiếu hoặc cũ dữ liệu. Nó không tự giải quyết bài toán suy luận trên dữ liệu đó.
Ví dụ, hệ thống có thể retrieval đúng tài liệu chính sách nhưng vẫn không suy ra được trường hợp của khách hàng thuộc điều khoản nào. Nó có thể tìm đúng ba hóa đơn nhưng tính tổng sai. Nó có thể có đủ thông tin trong context nhưng không nhận ra hai quy định mâu thuẫn. Những case này cần thiết kế reasoning Workflow: trích xuất facts, biểu diễn điều kiện, kiểm tra nguồn, xử lý conflict và xác thực kết quả.
Ngược lại, đừng dùng reasoning để che retrieval kém. Nếu Agent không lấy được tài liệu gốc, cho nó nghĩ thêm thường chỉ giúp nó bịa ra một lời giải tinh vi hơn. Thứ cần sửa là index, metadata, phân quyền tài liệu, query rewriting, ranking hoặc chất lượng dữ liệu nguồn.
Một nguyên tắc tôi dùng khá cứng: mỗi bước trong Workflow phải có lý do tồn tại có thể kiểm tra. “Cho model suy nghĩ thêm vì có vẻ thông minh hơn” không phải lý do. “Chạy policy checker để xác minh yêu cầu có thuộc nhóm cần phê duyệt không” là lý do rõ ràng. Khi có lỗi, bạn biết kiểm tra policy checker thay vì ngồi đọc một đoạn reasoning dài.
Đừng bắt đầu bằng prompt benchmark công khai rồi suy ra ROI. Hãy bắt đầu bằng một evaluation set rút từ công việc thật, đã được làm sạch dữ liệu nhạy cảm và gắn tiêu chí chấm cụ thể. Nếu đội ngũ chưa có evaluation set, đó là việc đầu tiên cần làm.
Evaluation set nên có case dễ, case biên, case mơ hồ, case thiếu dữ kiện, case có dữ liệu mâu thuẫn và case cần từ chối. Đừng chỉ chọn các ví dụ mà con người đã biết Agent sẽ trả lời tốt. Một benchmark nội bộ có ích phải làm hệ thống lộ điểm yếu.
Hãy chạy cùng tập case với nhiều policy: trả lời trực tiếp, retrieval rồi trả lời, planner có tool use, generate nhiều candidate kèm verifier, và handoff người xử lý. Sau đó so outcome, latency, chi phí và loại lỗi.
Cách so sánh này giúp bạn thấy vấn đề nằm ở model hay ở Workflow. Nếu retrieval-first đã xử lý phần lớn lỗi, bạn không cần dựng một Agent nhiều tầng. Nếu case khó vẫn sai sau khi reasoning sâu hơn, có thể dữ liệu nguồn chưa đủ, rule chưa được formalize, hoặc task đó cần người có chuyên môn quyết định.
AI Agent tốt không phải Agent luôn trả lời. Với dữ liệu thiếu hoặc quyền không đủ, câu trả lời đúng có thể là một câu hỏi làm rõ, một lời từ chối hoặc một handoff. Nếu rubric chỉ thưởng cho “completion”, bạn đang huấn luyện policy theo hướng nguy hiểm.
Hãy ghi rõ hành vi mong muốn: khi nào Agent phải nêu nguồn, khi nào không được suy diễn, khi nào phải yêu cầu xác nhận, khi nào chỉ được tạo bản nháp thay vì thực thi hành động. Những tiêu chí ấy quan trọng hơn việc response nghe có vẻ thông minh.
Một lần chạy đẹp chưa nói lên nhiều. Các Workflow có sampling, retrieval và tool use có thể cho kết quả khác nhau giữa các lần chạy. Bạn cần xem hệ thống có giữ hành vi ổn định khi cách hỏi thay đổi nhẹ, tài liệu có nhiễu, tool timeout hoặc context bị thiếu một phần hay không.
Tôi không cho rằng cần ép mọi hệ thống đạt tính tất định tuyệt đối. Nhưng với những hành động có hậu quả, hệ thống phải có đường kiểm soát tất định ở các điểm quan trọng: quyền truy cập, hạn mức, schema, phê duyệt và log.
Tôi thấy thị trường thích gắn nhãn “reasoning model” vì nó dễ bán hơn việc mô tả một hệ thống gồm data contract, tool permissions, retry policy, verifier và human approval. Nhưng khi bạn vận hành AI trong doanh nghiệp, phần nhàm chán mới quyết định hệ thống có đáng tin hay không.
Một model có thể rất giỏi giải bài benchmark, nhưng AI App của bạn vẫn thất bại nếu context sai, API lỗi, quyền cấp quá rộng hoặc không ai biết Agent đã dựa vào tài liệu nào. Ngược lại, một model không phải lựa chọn mạnh nhất trên bảng xếp hạng vẫn có thể tạo ra sản phẩm hữu ích nếu Workflow hẹp, dữ liệu sạch và guardrail rõ.
Test-time compute là đòn bẩy tốt khi dùng đúng chỗ. Tôi sẽ ưu tiên nó cho các task có giá trị cao, có cấu trúc kiểm chứng được và có lý do rõ để đầu tư thêm thời gian suy luận. Tôi sẽ không dùng nó làm lớp sơn che một sản phẩm chưa định nghĩa được correctness.
Đừng tối ưu để Agent nói ra một lời giải dài. Hãy tối ưu để nó tạo ra outcome đúng, biết dừng khi không chắc và để lại dấu vết đủ cho người khác kiểm tra. Đó mới là reasoning đáng trả tiền.
Sinh nhiều token là một cách dùng thêm compute, nhưng không phải cách duy nhất và cũng không phải lúc nào tốt. Test-time compute có thể gồm tạo nhiều candidate, gọi tool, kiểm tra bằng rule, chia task thành bước nhỏ hoặc dùng verifier. Giá trị đến từ chiến lược phân bổ compute, không đến từ độ dài response.
Nên dùng khi request có nhiều ràng buộc, cần dữ liệu từ tool, có ambiguity đáng kể hoặc có giá trị đủ cao để đổi lấy latency lớn hơn. Với thao tác rủi ro, slow path cần đi kèm kiểm soát quyền và cơ chế phê duyệt. Với tác vụ đơn giản, fast path thường hợp lý hơn.
Không đủ. Nhiều candidate có thể lặp lại cùng một giả định sai. Self-consistency hữu ích như một tín hiệu, nhất là khi bài toán có đáp án kiểm chứng được, nhưng không thay thế verifier độc lập, dữ liệu nguồn đáng tin và rule nghiệp vụ rõ ràng.
Tôi không xem reasoning text là audit trail đáng tin duy nhất. Một log hữu ích cần lưu input đã được phép lưu, nguồn retrieval, tool call, tham số quan trọng, kết quả tool, policy quyết định route nào và hành động cuối. Những artifact này kiểm tra được hơn một đoạn giải thích do model sinh ra.
Có. Benchmark cho ta tín hiệu về hướng phát triển kỹ thuật và giúp phát hiện những chiến lược inference đáng thử. Sai lầm nằm ở chỗ biến benchmark thành tiêu chí mua sắm duy nhất. Quyết định triển khai phải dựa trên evaluation của task thật, giới hạn latency, chi phí và mức rủi ro mà sản phẩm phải chịu.
Nguồn tham khảo: Góc nhìn AI mới nhất
Bài viết là góc nhìn cá nhân của tác giả, mang tính tham khảo — không phải tin tức báo chí.
Đừng bỏ lỡ bài viết tiếp theo. Đăng ký để nhận trong inbox.

Tác giả
Tôi là Cường Nguyễn - Founder của AI Ops Solutions.
Tôi từng là Logistics Operations Manager và đồng sáng lập thương hiệu CATCA - #1 Shopee ngành Pet Care.