Bỏ qua đến nội dung chính

Extended thinking

📖 Nội dung bài học

Tóm tắt

Extended thinking là tính năng suy luận nâng cao của Claude, cho phép model có thời gian suy nghĩ về các vấn đề phức tạp trước khi tạo phản hồi. Khi được bật, Claude tạo ra một quá trình tư duy hiển thị mà người dùng có thể xem xét để hiểu cách model tiếp cận truy vấn của họ.

Tính năng này cải thiện đáng kể khả năng xử lý các tác vụ phức tạp với độ chính xác cao hơn của Claude, nhưng nó đi kèm với những đánh đổi quan trọng. Bạn sẽ bị tính phí cho tất cả các token được tạo trong giai đoạn suy nghĩ và thời gian xử lý bổ sung sẽ làm tăng độ trễ phản hồi. Điều quan trọng là bạn cần biết khi nào trí thông minh được cải thiện sẽ biện minh cho chi phí và thời gian chờ đợi thêm.

Khi nào nên dùng Extended Thinking

Quyết định bật extended thinking nên dựa trên việc eval prompt của bạn. Đây là cách tiếp cận được khuyến nghị:

  • Viết và kiểm tra prompt của bạn trước tiên mà không cần extended thinking
  • Chạy eval để đo độ chính xác
  • Nếu kết quả không đáp ứng tiêu chuẩn của bạn sau khi đã tối ưu hóa prompt
  • Sau đó, hãy cân nhắc việc bật extended thinking như một giải pháp

Extended Thinking thay đổi phản hồi như thế nào

Không có extended thinking, luồng phản hồi của Claude rất đơn giản - bạn gửi một user message với một khối văn bản và nhận được một assistant message với một khối văn bản trả về.

Khi extended thinking được bật, cấu trúc phản hồi thay đổi đáng kể. Bạn sẽ nhận được một assistant message chứa hai khối riêng biệt:

  • Một khối thinking chứa quá trình suy luận của Claude
  • Một khối text với phản hồi cuối cùng

Hệ thống chữ ký

Mỗi khối thinking bao gồm một chữ ký mật mã, có mục đích bảo mật quan trọng. Chữ ký này đảm bảo rằng văn bản suy nghĩ không bị sửa đổi khi bạn đưa tin nhắn vào các lượt hội thoại trong tương lai.

Claude dựa nhiều vào nội dung suy nghĩ để tạo phản hồi, vì vậy việc ngăn chặn việc giả mạo là rất quan trọng để duy trì hành vi an toàn và nhất quán. Nếu bạn sửa đổi văn bản suy nghĩ, việc xác thực chữ ký sẽ không thành công.

Redacted Thinking

Đôi khi, quá trình suy nghĩ của Claude bị gắn cờ bởi các hệ thống an toàn nội bộ. Khi điều này xảy ra, bạn sẽ nhận được một khối redacted thinking thay vì văn bản suy nghĩ thô.

Nội dung bị redacted chứa văn bản suy nghĩ thực tế ở dạng được mã hóa. Mặc dù bạn không thể đọc nó, bạn vẫn có thể đưa khối này vào các lượt hội thoại trong tương lai để Claude không bị mất ngữ cảnh từ suy luận trước đó của nó.

Triển khai

Để bật extended thinking trong code của bạn, bạn sẽ cần sửa đổi hàm chat của bạn với hai tham số mới:

def chat(
    messages,
    system=None,
    temperature=1.0,
    stop_sequences=[],
    tools=None,
    thinking=False,
    thinking_budget=1024
):

thinking budget thể hiện số token tối đa mà Claude có thể sử dụng để suy luận. Giá trị tối thiểu được phép là 1024 token. Quan trọng là, tham số max_tokens của bạn phải vượt quá thinking budget - nếu bạn đặt thinking budget là 1024, max_tokens phải ít nhất là 1025.

Trong thực tế, bạn sẽ muốn một bộ đệm lớn hơn nhiều. Ví dụ: với thinking budget là 1024 và max_tokens là 4000, Claude có thể sử dụng tối đa 1024 token để suy nghĩ và tối đa 2976 token cho phản hồi thực tế.

Thêm cấu hình thinking vào các tham số API của bạn khi tính năng được bật:

if thinking:
    params["thinking"] = {
        "type": "enabled",
        "budget": thinking_budget
    }

Kiểm tra Redacted Responses

Trong quá trình phát triển, bạn có thể muốn kiểm tra cách ứng dụng của bạn xử lý các khối redacted thinking. Bạn có thể buộc Claude trả về phản hồi bị redacted bằng cách đưa chuỗi kích hoạt đặc biệt này vào tin nhắn của bạn:

TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CCCE4C1253D5E2D82641AC0E52CC2876CB

Điều này đảm bảo việc xử lý lỗi của bạn hoạt động chính xác khi gặp nội dung bị redacted trong môi trường production.

Downloads

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?