Temperature & Sampling — Nút điều chỉnh creativity vs safety
Temperature không chỉ là 'thêm random' — nó là công tắc điều khiển entropy, quyết định AI sáng tạo hay an toàn. Hiểu đúng để không rơi vào bẫy lặp vô tận hoặc hallucination.
Mỗi lần bạn kéo thanh Temperature từ 0.7 xuống 0.2 để code chính xác hơn, hoặc tăng lên 1.0 để viết văn sáng tạo hơn, bạn đang can thiệp vào bản chất xác suất của mô hình. Đây không chỉ là "thêm chút hỗn loạn" — đây là việc định nghĩa lại toàn bộ phân phối đầu ra, quyết định AI sẽ chọn lời giải an toàn nhất hay dám mạo hiểm với những ý tưởng lạ. Trong kiến trúc như Mixtral, việc điều chỉnh temperature còn ảnh hưởng đến cả phân phối expert activation, tạo nên một lớp điều khiển tinh vi trên cả routing và sampling.
Vấn đề
Giải mã bằng phương pháp greedy — luôn chọn token có xác suất cao nhất — tạo ra "bẫy thoái hóa" (text degeneration). Bạn sẽ thấy những vòng lặp vô tận kiểu "the the the" hoặc văn bản tẻ nhạt, máy móc. Ngược lại, nếu để ngẫu nhiên quá mức, mô hình sẽ phun ra những câu vô nghĩa, ngữ pháp tan nát.
Vấn đề là: các tác vụ khác nhau đòi hỏi mức độ "mạo hiểm" khác nhau. Viết code Python cần độ chính xác cao, trong khi sáng tác thơ cần sự bất ngờ. Cần một cơ chế điều chỉnh entropy (độ hỗn loạn thông tin) của đầu ra một cách liên tục — đó chính là temperature sampling.
Ý tưởng cốt lõi
Temperature là thao tác chia logits (điểm số thô từ mô hình) cho một hằng số T trước khi đưa vào softmax.
Khi T→0: Phân phối trở nên cực kỳ nhọn, gần như one-hot vector — mô hình luôn chọn token tốt nhất (greedy).
Khi T=1: Phân phối giữ nguyên như mô hình học được từ dữ liệu.
Khi T>1: Phân phối được "làm phẳng", xác suất lan tỏa sang cả những token hiếm gặp, tạo ra sự đa dạng.
Insight cốt lõi: Temperature không thêm nhiễu từ bên ngoài — nó tái cân bằng nội tại phân phối xác suất. Hãy tưởng tượng bạn có một ngọn núi biểu diễn xác suất của các token: đỉnh cao nhất là token tốt nhất. T thấp làm đỉnh núi nhọn hơn (dễ trượt xuống điểm thấp nhất), T cao làm ngọn núi bằng phẳng hơn (có thể dừng ở nhiều điểm khác nhau).
Nhiều người nghĩ temperature "thêm randomness" — thực ra nó định hình lại cả cảnh quan xác suất. Đó là lý do tại sao T=0.3 lại tốt hơn T=0 cho toán học: nó không phải để "tìm may", mà để tránh các điểm cân bằng cục bộ gây lặp.
Tại sao nó hoạt động
Softmax về bản chất là "argmax mềm" (soft argmax). Khi bạn chia logits cho T→0, hàm mũ trở nên dốc đứng vô hạn, hiệu ứng là chỉ token có logit cao nhất sống sót — đây là greedy decoding.
Tại sao T=0 lại nguy hiểm?
Khi bạn luôn chọn token có xác suất cao nhất, bạn tạo ra "bẫy hấp dẫn" (attractor). Nếu chọn "the" với xác suất cao nhất, context mới lại kích thích "the" tiếp theo, tạo vòng lặp vĩnh cửu. Bạn cần T>0 để inject một lượng entropy nhỏ, đủ để phá vỡ các điểm cân bằng cục bộ này mà không làm rối loạn cấu trúc câu.
Công thức toán học:
Trong đó là logit của token . Khi , hàm mũ được "khuếch đại" — các khoảng cách giữa logits trở nên lớn hơn, tập trung vào mode của phân phối (an toàn, chính xác, nhưng có thể robotic). Khi , các khoảng cách bị nén lại, phân phối trở nên flat hơn — khám phá tail của phân phối (sáng tạo, bất ngờ, nhưng rủi ro nonsense).
Analogy từ vật lý thống kê: Đây chính là phân phối Boltzmann, nơi đóng vai trò nhiệt độ. Hệ ở nhiệt độ thấp (T→0) đóng băng vào trạng thái cơ bản (ground state). Hệ ở nhiệt độ cao có đủ năng lượng để thăm các trạng thái kích thích cao hơn (các token ít gặp).
Ý nghĩa thực tế
Lựa chọn thực tế:
- T = 0.2–0.5: Optimal cho reasoning, math, coding. Đủ sắc nét để chọn token đúng, đủ entropy để tránh vòng lặp. Research 2024 chỉ ra T=0.3 thường beat T=0 (greedy) trên MATH-500 vì tránh local maxima.
- T = 0.7–1.0: Mặc định cho chatbot, cân bằng giữa độ chính xác và tự nhiên.
- T = 1.2–1.5: Creative writing, storytelling, brainstorming. Nguy cơ: ngữ pháp sai, ý nghĩa lạc đề.
So sánh nhanh:
| Temperature | Hành vi | Ứng dụng | Rủi ro |
|---|---|---|---|
| 0.0 | Greedy, deterministic | Không nên dùng (gây lặp) | Vòng lặp vô tận |
| 0.2–0.5 | Sharp, focused | Code generation, trả lời câu hỏi kỹ thuật | Có thể quá khô khan |
| 0.7–1.0 | Balanced | Chatbot đa năng | Hallucination vẫn xảy ra |
| >1.2 | Flat, random | Sáng tạo, poetry | Văn bản vô nghĩa |
Limitations quan trọng:
- Temperature không ngăn được hallucination — nó chỉ thay đổi tần suất bằng cách làm phẳng phân phối. Factual errors vẫn nằm trong tail của distribution.
- T=0 gây ra "degeneration" do deterministic feedback loop.
- T quá cao (>1.5) thường phá hỏng ngữ pháp vì xác suất "leak" sang token ngẫu nhiên quá nhiều.
- Không tự động điều chỉnh theo ngữ cảnh — cần dynamic temperature (như EDT) để tự động hạ T khi model bối rối.
Ai đang dùng: OpenAI (GPT-4 default T=1.0), Anthropic (Claude), Meta (Llama), Google (Gemini). Production APIs thường expose T=0.7-1.0 cho chat, T=0 cho deterministic tasks (nhưng thực chất vẫn dùng greedy hoặc very low T).
Đào sâu hơn
Paper gốc:
- The Effect of Sampling Temperature on Problem Solving in Large Language Models (2024) — Phân tích empirical về T=0.2-0.5 optimal cho reasoning.
- On the Role of Temperature Sampling in Test-Time Scaling (2025) — Tại sao high temperature có thể làm giảm hiệu quả của test-time scaling dù tăng số lượng sample.
Bài liên quan TroiSinh:
Cùng cụm (Architecture & MoE):
- mixture-of-experts — Cách kiến trúc MoE kết hợp với sampling strategy để cân bằng capacity và tốc độ.
- moe-routing — Hiểu sâu hơn về gating mechanism, nơi temperature cũng có thể áp dụng để điều chỉnh exploration trong routing.
- decoder-only — Nền tảng kiến trúc nơi temperature sampling được áp dụng.
Đọc tiếp:
- sequence-modeling — Hiểu cơ chế sinh chuỗi tự hồi quy (autoregressive) nơi temperature đóng vai trò then chốt.
- training-efficiency — Các kỹ thuật tối ưu khác bên cạnh sampling như gradient accumulation, quantization.
- new-architectures — Các kiến trúc thay thế như Diffusion LM không dùng temperature sampling mà dùng noise scheduling.
Decoder-Only — Bỏ encoder, đơn giản hơn, scale tốt hơn
Tại sao GPT, LLaMA, Claude đều dùng kiến trúc Decoder-Only? Bỏ encoder giúp giảm bottleneck, tăng tốc inference và scale lên hàng trăm tỷ tham số.
PEFT — Fine-tune LLM khổng lồ chỉ với 0.01% parameters: LoRA, Adapters, Prefix Tuning
Không cần 1TB VRAM để fine-tune LLM 100B parameters. PEFT cho phép bạn điều chỉnh mô hình khổng lồ chỉ bằng cách cập nhật 0.01% trọng số qua LoRA, Adapters hay Prefix Tuning — giảm memory từ terabyte xuống gigabyte mà vẫn giữ 99.9% hiệu suất.