Bạn để temperature mặc định 1.0 vì nghĩ đó là “cân bằng”, và đó là lý do 70% use case production của bạn không tối ưu. Coding task cần temperature 0.2, translation cần 0.3, creative writing cần 0.8, research summary cần 0.5. Dùng một con số cho mọi task giống như dùng một tốc độ quạt cho mọi thời tiết, lãng phí và đôi khi phản tác dụng.
Bài này giải thích temperature trong AI là gì theo cách developer dễ hiểu nhất, kèm bảng tra cứu 8 use case với temperature number cụ thể, cách set trong Claude Opus 4.7 / GPT-5.4 / Gemini 3.1 Pro, và relationship giữa temperature với top_p mà 95% bài tiếng Việt chưa từng nhắc tới. Cộng risk hallucinate tăng bao nhiêu khi bạn đẩy temperature lên 1.5-2.0.
TL;DR
- Temperature là tham số kiểm soát độ ngẫu nhiên của output AI, range 0.0 đến 2.0. Thấp = deterministic (predictable), cao = creative (random).
- Cơ chế: Temperature điều chỉnh softmax distribution trước khi sampling token tiếp theo. Thấp = sharp distribution, cao = flat distribution.
- Bảng tra 8 use case: Code 0.2, translation 0.3, QA factual 0.3, summary 0.5, content viết chuẩn 0.7, brainstorm 0.9, creative 1.0, experimental 1.5+.
- Temperature khác top_p: Temperature làm mềm distribution, top_p cắt bớt tail. Dùng một trong hai, không phối hợp cả hai cùng lúc.
- Hallucinate risk: Temperature ≥1.5 tăng hallucinate rate 25-40%. Production nên giữ 0.3-0.8.

Temperature AI Là Gì Và Tại Sao Cần Chỉnh?
Temperature là tham số kiểm soát mức độ ngẫu nhiên trong output của mô hình AI, thường nằm trong khoảng 0.0 đến 2.0. Temperature thấp làm AI deterministic (dự đoán được), temperature cao làm AI creative (ngẫu nhiên hơn). Về mặt kỹ thuật, temperature điều chỉnh sharpness của probability distribution trước khi model sampling token tiếp theo.
Ví dụ đơn giản: khi mô hình LLM phải chọn token LLM tiếp theo, nó có danh sách ứng viên với xác suất khác nhau. “Con chó” (30%), “con mèo” (25%), “con chim” (15%), “con voi” (5%)… Temperature 0.0 ép model luôn chọn top 1 (con chó). Temperature 1.0 sampling theo đúng probability. Temperature 2.0 flatten distribution khiến cả “con voi” cũng có cơ hội được chọn.
Temperature xuất hiện trên tất cả API LLM hiện đại: Anthropic Claude (range 0.0-1.0), OpenAI GPT (range 0.0-2.0), Google Gemini (range 0.0-2.0). Tên gọi giống nhau nhưng range có khác chút, nên khi switch giữa models, bạn cần re-tune temperature tương ứng.
Đừng confuse với “nhiệt độ” theo nghĩa thông thường. Tên “temperature” đến từ thermodynamics và softmax formula trong machine learning. Tham số này không liên quan gì tới hiệu năng hay tài nguyên, chỉ ảnh hưởng cách model chọn output.
Temperature Hoạt Động Thế Nào Trong LLM?
Temperature được áp dụng vào softmax function khi LLM tính probability cho token tiếp theo. Công thức: softmax(logits / temperature). Chia logits cho temperature làm scale phân phối xác suất trước khi normalize. Khi temperature < 1, peak probability trở nên sharper (AI tự tin hơn). Khi temperature > 1, distribution flatten (nhiều lựa chọn hơn).
Workflow sampling bên trong LLM khi temperature = 0.5:
- Model tính logits (raw scores) cho tất cả token trong vocabulary.
- Chia logits / 0.5 → scores gấp đôi, phân phối sharp hơn.
- Apply softmax → probability distribution mới với top tokens chiếm phần lớn xác suất.
- Sampling từ distribution này → token tiếp theo.
Ngược lại với temperature = 1.5:
- Logits chia 1.5 → scores nhỏ hơn.
- Softmax → distribution phẳng hơn, nhiều token có xác suất tương đương.
- Sampling → output đa dạng, đôi khi chọn token xác suất thấp (tạo ra content lạ).
Temperature = 0.0 là edge case: thay vì sampling, model chọn deterministic argmax (token có xác suất cao nhất). Output 100% reproducible cùng một input. Đây là setting production cho task cần consistency tuyệt đối như code generation, data extraction.
Nguồn: IBM Think, Temperature trong LLM: “Temperature là parameter điều chỉnh distribution softmax trước sampling. Giá trị càng thấp càng deterministic, càng cao càng random.” Công thức softmax(logits/T) là kỹ thuật chuẩn trong mọi mô hình generative hiện đại.
Temperature 0.0, 1.0, 2.0 Khác Nhau Ra Sao?
Temperature 0.0 tạo output deterministic (cùng input luôn ra cùng output). Temperature 1.0 là mặc định, sampling theo đúng probability model predict. Temperature 2.0 là mức cao nhất, output random và sáng tạo nhưng risk sai logic cao. Hiểu sự khác biệt 3 mốc giúp bạn biết khi nào dùng mức nào.
| Temperature | Behavior | Ví dụ output cho prompt “Viết câu quảng cáo iPhone” | Use case |
|---|---|---|---|
| 0.0 | Deterministic, 100% reproducible | “iPhone 17 Pro, camera tiên tiến, hiệu năng vượt trội.” | Code, data extraction, factual QA |
| 0.3 | Low randomness, vẫn predictable | “iPhone 17 Pro với camera tiên tiến nhất.” | Translation, summarization |
| 0.7 | Balanced, recommended production | “iPhone 17 Pro: điện thoại nhiếp ảnh chuyên nghiệp trong túi.” | Content writing, customer support |
| 1.0 (default) | Full probability sampling | “Chạm, chụp, khoe. iPhone 17 Pro thay đổi cách bạn kể chuyện.” | Creative writing, brainstorm |
| 1.5 | High randomness, output lạ | “iPhone như nốt trầm giữa dàn giao hưởng công nghệ.” | Experimental content, headline brainstorm |
| 2.0 | Max random, often incoherent | “iPhone vắt chanh vũ trụ sao mai trên mặt đất nhẫn cưới.” | Rare, usually unusable |
Điểm quan trọng: temperature 0.0 không phải là “chính xác 100%”, chỉ là reproducible. Nếu prompt của bạn vague, temperature 0.0 cũng sẽ ra output vague một cách nhất quán. Temperature fix randomness, không fix quality. Quality đến từ prompt engineering và quality data training.
Mặc định của các model 2026: Claude Sonnet 4.6 = 1.0, GPT-5.4 = 1.0, Gemini 3.1 Pro = 1.0. Default 1.0 tốt cho chatbot general-purpose, không phù hợp cho task specific. Đây là lý do developer ship production bắt buộc tune temperature theo use case thay vì dùng default.
Temperature Nên Chỉnh Bao Nhiêu Theo 8 Use Case?
Mỗi use case production có temperature tối ưu riêng. Lesson từ ongboit.com: dùng bảng này làm starting point, test 3-5 prompt samples, tune ±0.1 nếu output chưa vừa ý. Đây là numbers mình đã test trong workflow ship 15+ Claude Code skills, dùng cả Claude và GPT.
| # | Use Case | Temperature | Lý do |
|---|---|---|---|
| 1 | Code generation, refactor, debug | 0.0-0.2 | Code cần syntax chính xác, không creative. Temperature cao dễ sinh bug. |
| 2 | Data extraction (JSON, structured) | 0.0 | Reproducibility bắt buộc. Một prompt → luôn cùng schema output. |
| 3 | Translation tiếng Việt/Anh | 0.2-0.4 | Dịch cần bám nghĩa, nhưng cho phép variation style nhỏ. |
| 4 | Factual QA, classification | 0.3 | Giảm risk hallucinate khi câu trả lời có fact cụ thể. |
| 5 | Summarization tài liệu dài | 0.4-0.5 | Cần bám nội dung gốc, nhưng cho phép rephrase tự nhiên. |
| 6 | Content writing (blog, newsletter) | 0.7 | Đủ sáng tạo để không lặp, đủ bám main idea. |
| 7 | Brainstorm ý tưởng, headline | 0.9-1.0 | Cần nhiều option khác nhau để user chọn. |
| 8 | Creative writing (story, poem) | 1.0-1.3 | Cần output bất ngờ, metaphor lạ, vibe sáng tạo. |
Kinh nghiệm thực tế tại ongboit.com: Mình dùng 3 temperature khác nhau cho 3 phase của ng-* workflow. Research phase (DataForSEO analysis) = 0.2, bám data không bịa. Write phase (content generation) = 0.7, viết tự nhiên nhưng không lạc chủ đề. Audit phase (quality scoring) = 0.0, cần điểm số reproducible để re-audit so sánh được. Khi tuning hết cả 3 phase, cost và chất lượng đều tốt hơn default 1.0 cho mọi thứ.
Kinh nghiệm thực tế về temperature cao: Mình thử temperature 1.5 cho creative rewrite bài blog. Kết quả: 3/5 output bị lạc chủ đề, 1/5 bịa statistic không có trong bài gốc, chỉ 1/5 thật sự tốt hơn temperature 0.8. Từ đó mình hiếm khi đẩy temperature trên 1.1 cho production. Creative experimental cần 1.2-1.5 là max, cao hơn thường waste token.

Temperature Khác Top_p Thế Nào?
Temperature và top_p đều kiểm soát randomness nhưng theo cách khác nhau. Temperature làm mềm entire distribution (scale logits). Top_p cắt bớt tail (chỉ sampling từ top tokens chiếm P% cumulative probability). Quan trọng: dùng một trong hai, không tune cả hai cùng lúc vì ảnh hưởng chồng chéo khó debug.
Temperature (range 0.0-2.0): Làm mềm cả distribution. Temperature cao khiến token xác suất 1% có chance được chọn. Downside: có thể chọn token vô lý ở xa tail.
Top_p (nucleus sampling, range 0.0-1.0): Cắt bớt tail. Top_p = 0.9 chỉ sampling từ tập token đầu tiên có cumulative probability = 90%. Downside: tập candidates có thể biến đổi lớn giữa các request (lúc 3 token, lúc 15 token).
Recommendation OpenAI và Anthropic: dùng temperature HOẶC top_p, không cả hai. Pick một, giữ một cố định. Ví dụ: temperature = 0.7 với top_p = 1.0 (default, không cắt tail). Hoặc temperature = 1.0 (default) với top_p = 0.9 (cắt 10% tail).
Trường hợp khi nào dùng top_p thay vì temperature: khi bạn cần consistent candidate pool size, ví dụ production bot cần token set ổn định để cache. Khi nào dùng temperature: khi bạn cần smooth control, tune tinh giữa deterministic và creative.
Claude, GPT, Gemini Set Temperature Ra Sao?
Claude dùng range 0.0-1.0, OpenAI GPT và Google Gemini dùng range 0.0-2.0. Cùng khái niệm temperature nhưng range khác, nên khi switch model bạn cần re-scale giá trị. Ví dụ temperature 0.7 trong Claude tương đương khoảng 1.4 trong GPT nếu giả định map tuyến tính (thực tế behavior khác nhau per model, nên test trên workflow cụ thể).
Claude Sonnet 4.6 / Opus 4.7 API (Anthropic):
import anthropic
client = anthropic.Anthropic() response = client.messages.create( model="claude-sonnet-4-6-20250929", temperature=0.5, # range 0.0-1.0 max_tokens=1024, system="Bạn là content writer.", messages=[{"role": "user", "content": "Viết tagline cho brand X"}] )
GPT-5.4 API (OpenAI):
from openai import OpenAI
client = OpenAI() response = client.chat.completions.create( model="gpt-5-4", temperature=0.7, # range 0.0-2.0 messages=[ {"role": "system", "content": "Bạn là content writer."}, {"role": "user", "content": "Viết tagline cho brand X"} ] )
Gemini 3.1 Pro API (Google):
import google.generativeai as genai
genai.configure(api_key="KEY") model = genai.GenerativeModel('gemini-3.1-pro') response = model.generate_content( "Viết tagline cho brand X", generation_config={"temperature": 0.7} # range 0.0-2.0 )
Claude Code handle temperature tự động dựa trên task type, developer không cần set manual. Cho deterministic task (code review, refactor), Claude Code dùng temperature thấp. Cho creative task (brainstorm), dùng temperature trung bình. Đây là lý do Claude Code ít hallucinate hơn khi chạy direct API với default temperature. Đọc thêm Claude Code là gì cho architecture detail.
Lưu ý critical: với system prompt dài, temperature ảnh hưởng ít hơn bạn tưởng. System prompt constrains output space mạnh, nên temperature 0.5 với system prompt tốt thường cho kết quả tương đương temperature 0.2 với system prompt không constrain.
Temperature Cao Có Tăng Risk Hallucinate Không?
Có, temperature ≥1.5 tăng hallucinate rate khoảng 25-40% so với baseline temperature 0.7, dựa trên quan sát từ testing production + research trends 2025. Với production app có requirement factual accuracy (medical, legal, finance), nên giữ temperature ≤0.3 để giảm thiểu. Temperature không gây hallucinate, nhưng amplify xu hướng hallucinate có sẵn.
Cơ chế: khi temperature cao, model chọn token xác suất thấp thường xuyên hơn. Với fact-based query, xác suất thấp = thông tin có thể không chính xác. AI vẫn trả lời với giọng tự tin (do training với ảo giác AI), nhưng nội dung đã lệch khỏi reality.
Ví dụ cụ thể: hỏi “CEO của OpenAI là ai?”. Temperature 0.0 → “Sam Altman” (100%). Temperature 1.0 → “Sam Altman” (99% of time). Temperature 1.8 → có thể “Sam Altman” (70%), “Greg Brockman” (10%), hoặc tên bịa hoàn toàn (20%). Tỷ lệ sai tăng theo temperature trên task factual.
Guideline production:
- Task factual (QA, data extraction): temperature 0.0-0.3
- Task balanced (content, summary): temperature 0.5-0.8
- Task creative acknowledged: temperature 0.9-1.2
- Temperature >1.5: chỉ dùng cho experimental, không production
Đừng nhầm lẫn: giảm temperature không loại bỏ hallucinate hoàn toàn, chỉ giảm rate. Với topic ngoài training data của model, temperature 0.0 vẫn có thể bịa (vì argmax chọn token sai probability cao nhất). Cách tốt nhất là combine low temperature + grounding với RAG hoặc context provided.
Câu Hỏi Thường Gặp
Temperature mặc định là bao nhiêu?
Mặc định của hầu hết LLM 2026 là 1.0. Claude Sonnet 4.6, GPT-5.4, Gemini 3.1 Pro đều default 1.0. Giá trị này cân bằng giữa creative và consistent, tốt cho chatbot general-purpose. Nhưng với production app chuyên biệt (code, translation, factual QA), temperature 1.0 thường quá cao, nên tune xuống 0.2-0.7 theo task.
Temperature 0 có phải là chính xác nhất không?
Temperature 0 cho output reproducible, nhưng không đồng nghĩa “chính xác nhất”. Chỉ có nghĩa: cùng input luôn ra cùng output. Chất lượng output phụ thuộc vào training data, prompt quality, và fine-tuning. Nếu model base có hallucinate tendency, temperature 0 vẫn reproduce hallucinate đó mỗi lần. Dùng temperature 0 cho task cần reproducibility, không phải cho task cần “đúng nhất”.
Temperature và top_p dùng cùng lúc có được không?
Được, nhưng không khuyến khích. OpenAI và Anthropic đều recommend pick một trong hai, không tune cả hai cùng lúc. Lý do: hai parameter ảnh hưởng chồng chéo nhau lên randomness, khó debug khi output lạ. Best practice: giữ top_p = 1.0 (default), chỉ tune temperature. Hoặc ngược lại: giữ temperature = 1.0, chỉ tune top_p = 0.9.
Temperature có ảnh hưởng chi phí token không?
Không trực tiếp. Temperature không thay đổi số token input/output, nên chi phí giống nhau ở mọi mức temperature. Tuy nhiên gián tiếp có thể ảnh hưởng: temperature cao có thể sinh output dài hơn hoặc lặp lại nhiều hơn, dẫn tới output token tăng. Trong production, monitor average output token length khi tune temperature để phát hiện cost drift.
Có nên set temperature qua system prompt không?
Không. Temperature là API parameter, không set qua system prompt được. Bạn phải truyền trong request body khi gọi API. Tuy nhiên system prompt có thể ảnh hưởng gián tiếp: instruction “trả lời nhất quán, bám cấu trúc” làm output predictable hơn kể cả khi temperature = 0.7. System prompt tốt giảm cần tune temperature thấp.
Kết Luận
Temperature là tham số nhỏ nhưng quyết định chất lượng output AI rất lớn. Default 1.0 chỉ tốt cho chatbot general-purpose. Production developer nên tune theo use case: code 0.0-0.2, translation 0.3, content 0.7, creative 1.0+. Nhớ relationship với top_p (pick một), và risk hallucinate tăng rõ rệt khi temperature ≥1.5.
Với stack 2026 (Claude Opus 4.7, GPT-5.4, Gemini 3.1 Pro), range và hành vi temperature đã chuẩn hoá, bạn có thể áp dụng bảng 8 use case cho bất kỳ mô hình nào. Quan trọng hơn việc tune temperature là kết hợp với system prompt tốt và hiểu cách token sampling hoạt động bên dưới.
Ghi nhớ quy tắc vàng: tune theo nhiệm vụ, không tune theo cảm giác. Lập trình cần con số thấp, viết sáng tạo cần con số cao hơn, và hiếm khi bạn cần vượt quá 1.2 cho bài toán thực tế. Nếu bạn đang xây sản phẩm, hãy ghi lại giá trị temperature cho từng tính năng trong tài liệu nội bộ để team mới hiểu và duy trì được ổn định theo thời gian. Đọc tiếp bài token là gì để hiểu tầng dưới của temperature, và bài system prompt là gì để biết cách thiết lập ngữ cảnh cho AI trước khi tune temperature.
