Các mức độ suy luận của MiniMax M3.1 Flash: Vì sao để mặc định tốn gấp 7 lần cho cùng một bản sửa lỗi

AIHubMixĐọc 7 phút
Các mức độ suy luận của MiniMax M3.1 Flash: Vì sao để mặc định tốn gấp 7 lần cho cùng một bản sửa lỗi

MiniMax M3.1 Flash có năm mức độ suy luận và không có công tắc tắt. Nếu bạn không chọn mức, mô hình sẽ tự chọn mức sâu nhất. Hướng dẫn tạo văn bản của MiniMax cho biết mức độ suy luận “mặc định là max nếu không được chỉ định”.

Mặc định đó tốn kém theo cách bạn dễ bỏ qua. AIHubMix đã chạy cùng một bản sửa hai lỗi ở mọi mức. Mức mặc định dùng số token suy luận nhiều hơn khoảng 10 lần so với low và mất thời gian lâu hơn khoảng 6 lần, trong khi mọi lần chạy ở mọi mức đều vượt qua cả 215 bài kiểm thử. Chi phí suy luận của mô hình tăng theo mức cài đặt, còn độ khó của tác vụ vẫn giữ nguyên.

Câu trả lời ngắn gọn: bắt đầu với low, chỉ tăng mức khi tác vụ thất bại hoặc phải thử lại, và đừng bao giờ để trống trường này.

Năm mức, không có công tắc tắt

Giao thức Trường Giá trị Mặc định
OpenAI Chat Completions reasoning_effort low, medium, high, xhigh, max max
Anthropic Messages output_config.effort low, medium, high, xhigh, max max
OpenAI Responses reasoning.effort low, medium, high, xhigh, max max

Không thể tắt suy luận. Theo tài liệu tham khảo Messages API của MiniMax, API trả về HTTP 400 với thinking: {"type": "disabled"} và với mức độ suy luận none, kèm thông báo model "MiniMax-M3.1-Flash" requires adaptive thinking. Các mô hình MiniMax đời cũ hoàn toàn bỏ qua trường mức độ suy luận. Cho đến nay, M3.1 Flash là mô hình MiniMax duy nhất mà trường này có tác dụng.

Cả ba giao thức đều có sẵn cho minimax-m3.1-flash trên AIHubMix. Có một điểm khác với API của MiniMax: AIHubMix chấp nhận reasoning_effort: "none" và "minimal" với HTTP 200, nhưng mô hình vẫn suy luận. Hãy xem những giá trị đó là không có tác dụng, chứ không phải cách tắt suy luận.

Mỗi mức tốn bao nhiêu cho một tác vụ

Bài kiểm thử: một hàm tính phí có hai lỗi. Trường hợp tạm dừng kéo dài quá cuối kỳ sẽ tính lặp một ngày, còn các khoảng tạm dừng chồng lấn bị trừ hai lần. Mô hình trả về hàm đã sửa, rồi một bộ kiểm thử cục bộ đối chiếu hàm đó với 215 trường hợp ẩn. Mỗi mức được chạy ba lần qua endpoint Chat Completions của AIHubMix vào ngày 19 tháng 10 năm 2026, với max_tokens đặt ở mức 32,768. Tất cả số liệu do AIHubMix đo; chưa có bên nào khác kiểm chứng lại.

Mức suy luận Số token suy luận trung bình Khoảng (3 lần chạy) Thời gian trung bình Chi phí trung bình cho mỗi lần sửa Bài kiểm thử
low 591 344–812 9.5 s $0.0006 215/215 ×3
medium 1,522 970–2,488 21.7 s $0.0013 215/215 ×3
high 2,863 2,194–3,673 27.1 s $0.0022 215/215 ×3
xhigh 1,949 1,019–2,562 19.2 s $0.0015 215/215 ×3
max 4,699 2,612–6,246 40.4 s $0.0034 215/215 ×3
không chỉ định 6,364 4,284–9,376 56.3 s $0.0045 215/215 ×3

Chi phí được tính theo mức giá của AIHubMix cho minimax-m3.1-flash: $0.165 cho mỗi triệu token đầu vào, $0.66 cho mỗi triệu token đầu ra và $0.0165 cho mỗi triệu token đầu vào được lưu trong bộ nhớ đệm. Token suy luận được tính phí như token đầu ra. Ví dụ, hàng “không chỉ định” có trung bình 464 token lời nhắc (trong đó khoảng 192 token được lưu đệm) và 6,673 token đầu ra, tương đương khoảng $0.0045 cho mỗi lần sửa.

Số liệu cho thấy điều gì

low là đủ cho tác vụ này. Mọi mức đều tạo ra bản sửa đúng trong cả ba lần chạy. Với một lỗi giới hạn trong một hàm đơn lẻ, suy luận thêm ở các mức cao hơn không đem lại lợi ích nào có thể đo lường.

Từ low lên medium là một bước nhảy rõ rệt. Mức medium dùng trung bình số token suy luận nhiều gấp khoảng 2.6 lần mức low và mất thời gian lâu hơn gấp đôi.

Các mức trên medium khó phân biệt. Các lần chạy ở mức xhigh dùng ít token hơn mức high, còn mức max có số liệu chồng lấn với cả hai. Ba lần chạy cho mỗi mức là chưa đủ để phân biệt chúng. Với tác vụ này, cả “high”, “xhigh” lẫn “max” đều đồng nghĩa với “suy luận nhiều hơn, đôi khi nhiều hơn đáng kể”.

Không chỉ định mức hoạt động như max. Điều này khớp với tài liệu của MiniMax. Mức trung bình ở lần chạy “không chỉ định” của chúng tôi cao hơn “max”, nhưng các khoảng số liệu chồng lấn và chênh lệch nằm trong mức dao động giữa các lần chạy.

Ở mọi mức, độ biến thiên đều lớn. Với cùng một lời nhắc, thời gian chạy ở mức mặc định dao động từ 39 đến 82 giây. Trên endpoint Anthropic Messages, ba lần chạy với low lần lượt dùng 511, 1,861 và 6,060 token suy luận. Lần cuối mất 56 giây, bằng thời lượng của một lần chạy max điển hình. Mức suy luận quyết định độ sâu suy luận trung bình, chứ không đặt ra giới hạn cứng.

Tốc độ xử lý ổn định, khoảng 112 token đầu ra mỗi giây trong cả 24 lần chạy Flash, nên thời gian tăng gần như tuyến tính theo số token suy luận. Ở tốc độ này, suy luận 6,000 token đồng nghĩa với thời gian chờ gần một phút.

MiniMax chưa công bố số liệu token hoặc độ trễ riêng cho từng mức. Chúng tôi chưa thể kết luận dựa trên một bài kiểm thử này về việc liệu các mức cao hơn có cần thiết khi gặp tác vụ khó hơn hay không. Những con số trên chỉ cho thấy mỗi mức tốn bao nhiêu khi tác vụ không cần đến mức đó.

Lời nhắc ngắn hầu như không cần suy luận

“Luôn suy luận” không có nghĩa là “lúc nào cũng suy luận nhiều”. Suy luận có tính thích ứng, nên độ sâu tùy thuộc vào mức độ khó của lời nhắc:

  • Phân loại năm phiếu hỗ trợ vào một trong bốn nhãn: 0 token suy luận ở mức low và trung bình 6 token ở mức mặc định. Tất cả nhãn đều chính xác.
  • “17 × 23 bằng bao nhiêu?” ở mức low: hoàn toàn không suy luận, chỉ có 2 token đầu ra.

Vì vậy, thiếu công tắc tắt gần như không tốn kém gì với các lệnh gọi ngắn để phân loại, trích xuất và định tuyến. Chi phí xuất hiện ở những tác vụ mở như viết mã, nơi mô hình càng được phép suy luận sâu thì càng tìm thấy nhiều điều cần suy nghĩ.

Nên bắt đầu từ mức nào

Đây là các mức khởi điểm. Chỉ hai hàng đầu tiên được đo trực tiếp; các mức còn lại là đề xuất của chúng tôi, bạn nên đối chiếu với số lần thử lại của chính mình:

Khối lượng công việc Bắt đầu ở mức Tăng mức khi
Phân loại, trích xuất, định tuyến low Nhãn bị sai ở các trường hợp khó
Sửa một hàm đơn lẻ, rà soát nhỏ low Một bản sửa thất bại hai lần trong kiểm thử
Thay đổi nhiều tệp, tái cấu trúc medium Tác tử bỏ sót một tệp phụ thuộc
Tác tử lặp vòng với nhiều lần gọi công cụ low hoặc medium Các bước lặp lại hoặc bị đình trệ
Gỡ lỗi khó, câu hỏi về thiết kế high Câu trả lời vẫn hời hợt
Trò chuyện tương tác khi có người đang chờ low Ở đây, tuyệt đối không mặc định là max

Chỉ dùng max khi bạn đã thấy high thất bại với loại tác vụ đó.

Điều gì bị ảnh hưởng hoặc tốn kém hơn khi thay đổi mức suy luận

  • Câu trả lời bị cắt cụt. Token suy luận được tính vào max_tokens. Một lần chạy mặc định dùng 9,376 token suy luận cho một hàm đơn lẻ, nên giới hạn 4K hoặc 8K vốn được đặt cho câu trả lời của M2.x có thể khiến phản hồi bị cắt với finish_reason: "length". MiniMax khuyến nghị 131,072 và cho phép tối đa 524,288.
  • Hết thời gian chờ. Ở mức high trở lên, một lần gọi có thể mất một phút. Cần tăng thời gian chờ của ứng dụng khách và proxy vốn được thiết lập cho mô hình phản hồi nhanh lên 120 giây trở lên.
  • Các giá trị được chấp nhận nhưng âm thầm không có tác dụng. Qua AIHubMix, none, minimal và giá trị không xác định như auto đều được chấp nhận, nhưng mô hình vẫn suy luận. Theo các bài kiểm thử của một dự án cổng API, endpoint riêng của MiniMax từ chối các giá trị không xác định (vấn đề #8025 của sub2api). Hãy dùng một trong năm giá trị được tài liệu nêu.
  • Công cụ không cung cấp các mức này. Hiện tại, OpenCode không chọn biến thể mức suy luận nào cho mô hình này; một số framework gửi “thinking disabled”, khiến API trả về lỗi 400. Hãy kiểm tra chính xác công cụ của bạn đang gửi gì.
  • Kết hợp nhiều mô hình trong một quy trình. M3 và M2.x bỏ qua trường mức độ suy luận. Nếu bạn định tuyến giữa các mô hình, mức suy luận giúp tiết kiệm chi phí trên Flash sẽ không có tác dụng với các mô hình còn lại.

Thiết lập trên từng giao thức

Cả ba giao thức đều dùng được với một khóa thông qua AIHubMix. Hướng dẫn bắt đầu nhanh hướng dẫn cách lấy khóa, còn trang thông số suy luận thống nhất giải thích cách AIHubMix xử lý các trường suy luận giữa những nhà cung cấp.

Chat Completions:

curl https://aihubmix.com/v1/chat/completions \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "minimax-m3.1-flash",
       "reasoning_effort": "low",
       "max_tokens": 32768,
       "messages": [{"role": "user", "content": "Write a function that merges overlapping date ranges."}]}'

Anthropic Messages (SDK Python; nếu phiên bản SDK của bạn chưa hỗ trợ trường output_config, hãy truyền trường này trong extra_body):

import os
import anthropic

client = anthropic.Anthropic(base_url="https://aihubmix.com", api_key=os.environ["AIHUBMIX_API_KEY"])

msg = client.messages.create(
    model="minimax-m3.1-flash",
    max_tokens=32768,
    messages=[{"role": "user", "content": "Write a function that merges overlapping date ranges."}],
    extra_body={"output_config": {"effort": "medium"}},
)
print(msg.usage)

Responses:

import os
from openai import OpenAI

client = OpenAI(base_url="https://aihubmix.com/v1", api_key=os.environ["AIHUBMIX_API_KEY"])

resp = client.responses.create(
    model="minimax-m3.1-flash",
    reasoning={"effort": "low"},
    max_output_tokens=32768,
    input="Write a function that merges overlapping date ranges.",
)
print(resp.usage)

Kiểm tra usage trong vài lần gọi đầu tiên. Chat Completions báo cáo suy luận trong completion_tokens_details.reasoning_tokens, Messages trong output_tokens_details.thinking_tokens, còn Responses trong output_tokens_details.reasoning_tokens. Nếu các con số đó không thay đổi khi bạn đổi mức, thì cài đặt chưa được truyền đến mô hình.

Câu hỏi thường gặp

Mức suy luận mặc định của MiniMax M3.1 Flash là gì?
Max. Nếu yêu cầu không có trường mức độ suy luận, mô hình sẽ suy luận ở mức sâu nhất.

Tôi có thể tắt hoàn toàn suy luận không?
Không. Tắt suy luận sẽ khiến API của MiniMax trả về HTTP 400. Mức thấp nhất là low, và với các lời nhắc ngắn, low thường không dùng token suy luận nào.

Nên dùng mức suy luận nào để viết mã?
Bắt đầu ở mức low với các bản sửa một hàm đơn lẻ và những lượt rà soát nhỏ, dùng medium cho các thay đổi nhiều tệp, và chỉ tăng mức khi tác vụ thất bại. Trong bài kiểm thử của chúng tôi, low sửa đúng một hàm có hai lỗi trong cả ba lần chạy.

Mức suy luận max có chính xác hơn không?
Không phải trong tác vụ kiểm thử của chúng tôi: mọi mức đều vượt qua cả 215 bài kiểm thử. Max dùng nhiều token và thời gian hơn hẳn. Các mức cao hơn có thể hữu ích với tác vụ khó hơn, nhưng chưa ai công bố dữ liệu cho biết khi nào thì chúng hữu ích.

Vì sao cùng một yêu cầu có lần mất 10 giây, có lần lại mất 56 giây?
Độ sâu suy luận thay đổi giữa các lần chạy, ngay cả khi giữ nguyên mức. Một lần chạy mức low trên endpoint Messages dùng số token suy luận nhiều gấp khoảng mười lần một lần chạy khác.

reasoning_effort none có hoạt động qua AIHubMix không?
Giá trị này được chấp nhận mà không báo lỗi, nhưng mô hình vẫn suy luận. Thay vào đó, hãy dùng low.

Làm cách nào để biết một lần gọi đã dùng bao nhiêu token suy luận?
Xem đối tượng usage: trường reasoning_tokens trong Chat Completions và Responses, còn trong Messages API là thinking_tokens.

Đọc tiếp: loạt bài về MiniMax M3.1 Flash

Nguồn