Skip to main content
Điểm cốt lõi của bài này
Một LLM (Large Language Model) chỉ làm một việc: dự đoán token tiếp theo dựa trên ngữ cảnh. Chấm hết. Mọi thứ bạn thấy — trò chuyện, viết code, lập luận — đều là kỹ thuật xây trên nguyên lý đơn giản này.

Ẩn dụ: Người thư ký thông minh nhất thế giới, nhưng trí nhớ ngắn hạn

Hãy tưởng tượng bạn thuê một trợ lý cực kỳ thông minh. Anh ấy đã đọc gần như mọi thứ từng được viết ra — sách, wiki, tài liệu kỹ thuật, email công khai, mọi thứ. Nhưng có hai giới hạn:
  1. Anh ấy không nhớ gì về bạn trước khi bạn ngồi xuống nói chuyện. Mỗi lần gặp, anh bắt đầu từ số 0.
  2. Chiếc bàn làm việc chỉ có chỗ cho một số lượng giấy tờ nhất định. Nếu bạn đưa quá nhiều tài liệu, anh sẽ phải bỏ bớt đi.
Đó là LLM. Không phép màu, không ý thức — chỉ là một cỗ máy dự đoán, cực kỳ thành thạo trong việc đoán xem “chữ tiếp theo” là gì, dựa trên mọi chữ đã có trên bàn.

Vòng đời của một prompt

Khi bạn gõ “Viết email xin lỗi khách hàng”, chuyện gì xảy ra?
  1. Token hóa (tokenization): Câu của bạn được chia thành các mảnh nhỏ gọi là token (token). “Viết” là 1 token, “email” là 1 token, “xin” là 1 token. Một token trung bình là 3/4 một từ tiếng Anh, hoặc khoảng 1 ký tự tiếng Việt.
  2. Nạp vào model: Toàn bộ token được đưa cho model cùng lúc. Model không “đọc từ trái qua phải” như con người — nó nhìn toàn bộ ngữ cảnh một lần.
  3. Dự đoán: Model tính xác suất cho từng token có thể là “tiếp theo”. Có thể “Kính” có xác suất 42%, “Chào” có 38%, “Gửi” có 20%.
  4. Chọn: Model chọn một token (thường là token xác suất cao nhất, đôi khi có yếu tố ngẫu nhiên).
  5. Lặp lại: Token vừa chọn được cộng vào ngữ cảnh, rồi dự đoán tiếp token tiếp theo. Cứ thế cho đến khi model quyết định “đã xong”.
Điểm quan trọng: model không “hiểu” theo nghĩa con người hiểu. Nó thống kê.

Cửa sổ ngữ cảnh — Chiếc bàn làm việc

Cửa sổ ngữ cảnh (context window) là lượng token tối đa model có thể “nhìn thấy” cùng một lúc. Với Claude Opus 4.6, con số này là khoảng 1 triệu token — tương đương khoảng 700.000 từ tiếng Anh, hoặc toàn bộ bộ Harry Potter.Nghe thì nhiều. Thực tế thì rất dễ lấp đầy nếu bạn cho Claude đọc cả một codebase lớn.
Cửa sổ ngữ cảnh chứa: Khi bàn hết chỗ, Claude Code sẽ nén tự động (auto-compact): cắt bớt kết quả tool cũ, tóm tắt hội thoại, giữ lại yêu cầu gần nhất. Một số thông tin ban đầu có thể bị “quên” — đó là vì sao quy tắc bền vững nên đặt trong file CLAUDE.md (đọc mỗi phiên) thay vì trong trò chuyện.

Vì sao LLM ảo giác

Đây là hiểu lầm lớn nhất về LLM. Nhiều người nghĩ: “AI nói sai vì nó ngu”. Không phải. LLM luôn luôn dự đoán. Nó không có khái niệm “biết” vs “không biết” — chỉ có xác suất cao vs xác suất thấp. Khi bạn hỏi “CEO của công ty ABC tên gì?” và model không có dữ liệu, nó vẫn dự đoán token tiếp theo. Vì mẫu câu “CEO của ABC tên X” là hợp lý về mặt ngữ pháp, model sẽ chọn một cái tên nghe có lý — dù hoàn toàn bịa ra. Đây gọi là ảo giác (hallucination).
Không bao giờ tin kết quả LLM một cách mù quáng — đặc biệt là:
  • Con số cụ thể (giá, ngày, phần trăm)
  • URL và đường link
  • Tên người, tên công ty, tên API function
  • Lời khuyên pháp lý, y tế, tài chính cụ thể
Hãy xem LLM là một bản nháp rất thông minh, không phải nguồn sự thật.

Garbage in, Garbage out — Luật sắt

Chất lượng đầu ra tỉ lệ với chất lượng đầu vào. Không có ngoại lệ. Hai prompt dưới đây cho cùng một model:
Viết email gửi khách.
Kết quả: Một email chung chung, nhạt nhẽo, không phù hợp với ngữ cảnh cụ thể nào. Model phải đoán mọi thứ: khách là ai, mục đích gì, giọng điệu ra sao.
Công thức dễ nhớ: Vai trò + Ngữ cảnh + Nhiệm vụ + Ràng buộc + Định dạng mong muốn.

Tự kiểm tra

Không. LLM dự đoán dựa trên pattern, không phải ghi nhớ. Nếu một thông tin xuất hiện nhiều lần trong dữ liệu huấn luyện, model có xác suất đoán đúng cao. Nếu ít xuất hiện, model sẽ bịa — tức ảo giác (hallucinate). Đó là vì sao LLM mạnh với kiến thức phổ thông nhưng yếu với chi tiết cụ thể, số liệu cập nhật.
Vì có một yếu tố ngẫu nhiên trong bước chọn token (gọi là “temperature”). Với temperature = 0, model luôn chọn token xác suất cao nhất → kết quả giống nhau. Với temperature > 0, model đôi khi chọn token xác suất thấp hơn → kết quả đa dạng, “sáng tạo” hơn. Claude Code mặc định có temperature nhỏ để đầu ra ổn định.
Claude Code tự động nén (auto-compact): cắt bớt kết quả tool cũ, tóm tắt hội thoại. Quy tắc nền tảng: đặt thông tin bền vững vào file CLAUDE.md (đọc mỗi phiên), không vào trò chuyện. File luôn có thể đọc lại; hội thoại thì không.

Bài tập

1

Mở Claude.ai trong trình duyệt

Chưa đăng nhập cũng được.
2

Thử prompt không có ngữ cảnh

Gõ: “Viết email xin lỗi khách hàng.”Quan sát: email có chung chung không? Có phù hợp với ngữ cảnh thực tế của bạn không?
3

Thử prompt có ngữ cảnh đầy đủ

Gõ: “Viết email xin lỗi khách hàng ABC vì đơn hàng bị giao chậm 3 ngày do bão lũ. Giọng điệu: chân thành, không đổ lỗi. Đề xuất: tặng voucher giảm 10% cho đơn sau. Ký tên: CEO Nguyễn Văn B.”Quan sát: khác nhau như thế nào?
4

Rút ra bài học của chính bạn

Viết xuống một câu: “Prompt tốt là prompt có …”

Tiếp theo?