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

Temperature

📖 Nội dung bài học

Tóm tắt

Temperature là một tham số quan trọng. Nó kiểm soát mức độ sáng tạo hoặc tính quyết định trong câu trả lời của Claude. Hiểu rõ cách dùng temperature hiệu quả sẽ cải thiện đáng kể ứng dụng AI của bạn.

Claude tạo ra văn bản như thế nào

Trước khi đi sâu vào temperature, bạn nên hiểu quy trình Claude tạo ra văn bản. Khi bạn gửi cho Claude một prompt như "Bạn nghĩ gì?", nó sẽ trải qua ba giai đoạn:

  • Tokenization: Chia nhỏ đầu vào của bạn thành các phần nhỏ hơn
  • Prediction: Tính toán xác suất cho các token tiếp theo có thể có
  • Sampling: Chọn một token dựa trên các xác suất đó

Trong sơ đồ trên, bạn thấy Claude có thể gán các xác suất khác nhau cho các token tiếp theo tiềm năng. Từ "about" có 30% cơ hội, "would" có 20%, v.v. Quá trình này lặp lại cho mỗi token cho đến khi câu trả lời hoàn tất.

Temperature làm gì

Temperature là một giá trị thập phân từ 0 đến 1, ảnh hưởng trực tiếp đến xác suất chọn token. Hãy coi nó như một núm điều chỉnh độ sáng tạo:

  • Temperature thấp (gần 0): Khiến token có xác suất cao nhất có nhiều khả năng được chọn hơn
  • Temperature cao (gần 1): Phân phối xác suất đều hơn trên tất cả các token có thể

temperature 0, Claude trở nên quyết định - nó sẽ luôn chọn token có khả năng nhất. Ở temperature 1, các token có xác suất thấp hơn có cơ hội được chọn cao hơn, dẫn đến các kết quả đa dạng và sáng tạo hơn.

Khoảng temperature và các trường hợp sử dụng

Các tác vụ khác nhau yêu cầu các cài đặt temperature khác nhau:

Temperature thấp (0.0 - 0.3)

  • Câu trả lời dựa trên sự kiện
  • Hỗ trợ viết code
  • Trích xuất dữ liệu
  • Kiểm duyệt nội dung

Temperature trung bình (0.4 - 0.7)

  • Tóm tắt
  • Nội dung giáo dục
  • Giải quyết vấn đề
  • Viết sáng tạo có ràng buộc

Temperature cao (0.8 - 1.0)

  • Động não
  • Viết sáng tạo
  • Nội dung marketing
  • Tạo ra trò đùa

Thiết lập Temperature trong code

Theo mặc định, temperature của Claude được đặt thành 1.0, có nghĩa là độ sáng tạo tối đa. Bạn có thể ghi đè giá trị này bằng cách thêm temperature vào cấu hình suy luận của bạn:

def chat(messages, system=None, temperature=1.0):
    params = {
        "modelId": model_id,
        "messages": messages,
        "inferenceConfig": {"temperature": temperature}
    }
    
    if system:
        params["system"] = [{"text": system}]
    
    response = client.converse(**params)
    return response["output"]["message"]["content"][0]["text"]

Temperature trong thực tế

Đây là một ví dụ thực tế về việc sử dụng để tạo ý tưởng phim. Với temperature được đặt thành mặc định (1.0), bạn có thể nhận được các phản hồi sáng tạo như:

"Một bậc thầy origami ẩn dật phát hiện ra những sáng tạo bằng giấy phức tạp của cô trở nên sống động vào ban đêm, dẫn cô vào một cuộc hành trình kỳ diệu để cứu thế giới thu nhỏ của họ khỏi một sinh vật bóng tối bí ẩn đang đe dọa làm tan rã sự tồn tại của chúng."

Nhưng khi bạn đặt temperature thành 0.0 cho cùng một prompt, bạn sẽ luôn nhận được các phản hồi dễ đoán hơn:

"Một nhà khảo cổ học du hành thời gian phải ngăn chặn các hiện vật cổ bị đánh cắp bởi một tỷ phú công nghệ, người đang sử dụng chúng để chế tạo một thiết bị ngày tận thế khai thác sức mạnh bị lãng quên của chúng."

Chạy phiên bản temperature thấp nhiều lần sẽ tạo ra các phản hồi rất giống nhau, thường có các chủ đề lặp lại như "nhà sử học du hành thời gian" hoặc "nhà khảo cổ học du hành thời gian".

Những điểm chính

Temperature cho phép bạn kiểm soát trực tiếp mức độ sáng tạo của Claude. Dùng temperature thấp hơn khi bạn cần các phản hồi nhất quán, dựa trên sự kiện và temperature cao hơn khi bạn muốn các kết quả sáng tạo, đa dạng. Temperature mặc định là 1.0 sẽ tối đa hóa độ sáng tạo, vì vậy hãy cân nhắc giảm nó cho các tác vụ yêu cầu độ chính xác và nhất quán.

🔁 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?