Một ngày trong đời của một Prompt: Điều gì xảy ra khi bạn hỏi ChatGPT?
Khi bạn gõ một câu hỏi như:
trông có vẻ đơn giản. Nhưng phía sau là cả một pipeline tính toán rất nặng. 1. Prompt → Tokenize
Máy không hiểu chữ như con người.
Câu hỏi của bạn trước tiên phải được chia nhỏ thành token.
Ví dụ:
Token không hẳn là từ. Có thể là một phần của từ, dấu câu, hoặc ký tự đặc biệt.
Ví dụ:
Artificial → Art + ificial
Networking → Network + ing
LLM chỉ làm việc với token, không trực tiếp với ngôn ngữ tự nhiên.
2. Prefill — Giai đoạn đắt đỏ nhất lúc ban đầu
Sau khi token hóa, toàn bộ prompt được đưa vào model.
Đây gọi là Prefill.
Model sẽ:
Hãy hình dung giống như:
Bạn đưa cho AI một email dài 10 trang.
AI phải đọc hết trước khi trả lời.
Đây chính là lý do:
prompt càng dài → phản hồi đầu tiên càng chậm
Trong slide có dòng:
TTFT = Time To First Token
Tức là thời gian từ lúc bạn bấm Enter đến khi thấy ký tự đầu tiên xuất hiện.
3. Model Weights — Bộ não cố định
Phần "Model Weights" là tri thức đã học.
Ví dụ:
Weights không đổi trong lúc inference.
Inference KHÔNG phải training.
Training = cập nhật weights
Inference = chỉ dùng weights để suy luận
4. KV Cache — Bí quyết tăng tốc
Đây là phần cực kỳ quan trọng khi tối ưu hạ tầng AI.
KV Cache = Key/Value Cache
Nó lưu attention state của các token trước đó.
Nếu không có cache:
Model phải đọc lại toàn bộ hội thoại mỗi lần sinh 1 token mới.
Điều đó cực kỳ tốn GPU.
Ví dụ:
Nếu response dài 500 token:
Không cache:
Có cache:
=> tốc độ tăng mạnh.
5. Decoding Loop — AI bắt đầu "nói"
Sau prefill xong, model bắt đầu sinh token từng cái một.
Đây là autoregressive generation.
Chu trình:
Ví dụ:
"The"
"The answer"
"The answer is"
"The answer is 42"
Model không sinh cả câu cùng lúc.
Nó sinh từng bước.
Giống như predictive text nhưng ở quy mô khổng lồ.
6. De-tokenize
Token được chuyển ngược thành văn bản con người đọc được.
Ví dụ:
[1543][892][11]
thành:
42
Tại sao inference lại tốn GPU?
Có người nghĩ:
Không hẳn.
Inference production-scale cực kỳ đắt.
Vì: Prompt dài
Mỗi user gửi context lớn.
Ví dụ:
10K–100K tokens không hiếm.
KV Cache ngốn VRAM
Model 70B:
KV cache có thể chiếm hàng chục GB.
Nếu nhiều concurrent users:
VRAM pressure tăng rất mạnh.
Decoding là tuần tự
Training có thể parallel hóa.
Decoding thì:
Token sau phụ thuộc token trước. Không thể sinh toàn bộ các trả lời (response) một lần. Đây là nút thắt cổ chai bottleneck lớn.
Góc nhìn AI Infrastructure
Nếu bạn làm AI infra, đây là lý do các kỹ thuật sau rất quan trọng:
Framework phổ biến:
Insight thực tế
Mỗi user request thực chất tạo ra:
Tức là mỗi người dùng giống như "chiếm" một phần GPU. Đây là lý do serving LLM ở quy mô lớn khó hơn nhiều người tưởng. Một prompt tưởng đơn giản thực ra đi qua pipeline:
Prompt → Tokenize → Prefill → KV Cache → Decoding → De-tokenize
Mục tiêu của AI infrastructure team luôn là giảm memory, tăng throughput, giảm latency, tối ưu cost
Khi bạn gõ một câu hỏi như:
“What is the answer to the ultimate question of life, the universe and everything?”
trông có vẻ đơn giản. Nhưng phía sau là cả một pipeline tính toán rất nặng. 1. Prompt → Tokenize
Máy không hiểu chữ như con người.
Câu hỏi của bạn trước tiên phải được chia nhỏ thành token.
Ví dụ:
- "What"
- " is"
- " the"
- " answer"
- ...
Token không hẳn là từ. Có thể là một phần của từ, dấu câu, hoặc ký tự đặc biệt.
Ví dụ:
Artificial → Art + ificial
Networking → Network + ing
LLM chỉ làm việc với token, không trực tiếp với ngôn ngữ tự nhiên.
2. Prefill — Giai đoạn đắt đỏ nhất lúc ban đầu
Sau khi token hóa, toàn bộ prompt được đưa vào model.
Đây gọi là Prefill.
Model sẽ:
- đọc toàn bộ prompt
- tính attention giữa các token
- xây dựng context understanding
- tạo ra KV Cache
Hãy hình dung giống như:
Bạn đưa cho AI một email dài 10 trang.
AI phải đọc hết trước khi trả lời.
Đây chính là lý do:
prompt càng dài → phản hồi đầu tiên càng chậm
Trong slide có dòng:
Longer prompts = longer prefill = larger KV Cache = longer TTFT
TTFT = Time To First Token
Tức là thời gian từ lúc bạn bấm Enter đến khi thấy ký tự đầu tiên xuất hiện.
3. Model Weights — Bộ não cố định
Phần "Model Weights" là tri thức đã học.
Ví dụ:
- GPT learned internet text
- coding patterns
- reasoning structures
- language grammar
Weights không đổi trong lúc inference.
Inference KHÔNG phải training.
Training = cập nhật weights
Inference = chỉ dùng weights để suy luận
4. KV Cache — Bí quyết tăng tốc
Đây là phần cực kỳ quan trọng khi tối ưu hạ tầng AI.
KV Cache = Key/Value Cache
Nó lưu attention state của các token trước đó.
Nếu không có cache:
Model phải đọc lại toàn bộ hội thoại mỗi lần sinh 1 token mới.
Điều đó cực kỳ tốn GPU.
Ví dụ:
Nếu response dài 500 token:
Không cache:
- đọc lại prompt 500 lần
Có cache:
- chỉ tính phần mới
=> tốc độ tăng mạnh.
5. Decoding Loop — AI bắt đầu "nói"
Sau prefill xong, model bắt đầu sinh token từng cái một.
Đây là autoregressive generation.
Chu trình:
- dự đoán token tiếp theo
- append vào context
- update KV cache
- dự đoán token kế tiếp
Ví dụ:
"The"
"The answer"
"The answer is"
"The answer is 42"
Model không sinh cả câu cùng lúc.
Nó sinh từng bước.
Giống như predictive text nhưng ở quy mô khổng lồ.
6. De-tokenize
Token được chuyển ngược thành văn bản con người đọc được.
Ví dụ:
[1543][892][11]
thành:
42
Tại sao inference lại tốn GPU?
Có người nghĩ:
“Training mới tốn tiền, inference chắc nhẹ?”
Không hẳn.
Inference production-scale cực kỳ đắt.
Vì: Prompt dài
Mỗi user gửi context lớn.
Ví dụ:
- RAG
- system prompt
- chat history
- tool outputs
10K–100K tokens không hiếm.
KV Cache ngốn VRAM
Model 70B:
KV cache có thể chiếm hàng chục GB.
Nếu nhiều concurrent users:
VRAM pressure tăng rất mạnh.
Decoding là tuần tự
Training có thể parallel hóa.
Decoding thì:
Token sau phụ thuộc token trước. Không thể sinh toàn bộ các trả lời (response) một lần. Đây là nút thắt cổ chai bottleneck lớn.
Góc nhìn AI Infrastructure
Nếu bạn làm AI infra, đây là lý do các kỹ thuật sau rất quan trọng:
- KV cache optimization
- prefix caching
- speculative decoding
- tensor parallelism
- pipeline parallelism
- quantization
- batching
- paged attention
Framework phổ biến:
- vLLM
- TensorRT-LLM
- SGLang
- TGI
- LMDeploy
Insight thực tế
Mỗi user request thực chất tạo ra:
- prefill riêng
- KV cache riêng
- decoding loop riêng
Tức là mỗi người dùng giống như "chiếm" một phần GPU. Đây là lý do serving LLM ở quy mô lớn khó hơn nhiều người tưởng. Một prompt tưởng đơn giản thực ra đi qua pipeline:
Prompt → Tokenize → Prefill → KV Cache → Decoding → De-tokenize
Mục tiêu của AI infrastructure team luôn là giảm memory, tăng throughput, giảm latency, tối ưu cost