Tab 1 · Token và phần nhúng vector ở tab 3, 4 chạy hoàn toàn trong máy bạn, không cần key.
Chỉ những chỗ gọi LLM mới cần.
⚠ Hai điều cần biết. Một: key nằm trong localStorage của trình duyệt này và đi
thẳng từ máy bạn tới máy chủ trên — đừng dán key vào máy công cộng, và hãy dùng key có giới hạn chi tiêu.
Hai:api.openai.com không mở CORS nên không gọi thẳng được từ trang web;
chế độ này chỉ chạy với máy chủ có mở CORS như LiteLLM. Với OpenAI gốc, hãy dùng chế độ dùng chung.
Bài 3.1 — Token & Context
Model không đọc chữ. Nó đọc token.
Trước khi vào phòng thí nghiệm, hiểu đã. Ba phút đọc ở đây sẽ làm phần bấm nút
có nghĩa hơn nhiều.
Model nhìn thấy gì khi bạn gõ một câu?
Không phải chữ cái. Không phải từ. Nó thấy token — những mẩu chữ do một bộ
tokenizer băm ra trước khi đưa vào. Một LLM chỉ làm đúng một việc: nhìn dãy token đã có
rồi đoán token tiếp theo.
Ví như: bạn đưa model tờ 500.000đ, nhưng nó chỉ tiêu được tiền lẻ.
Token là những đồng tiền lẻ đó — và bộ tách token là cái máy đổi tiền.
Bấm nút để đổi thứ tiếng. Cùng một ý, tiếng Việt tốn gần gấp đôi token.
Vì sao chuyện này đáng quan tâm?
Vì mọi thứ đều tính bằng token: số tiền bạn trả, tốc độ trả lời, và giới hạn độ dài.
Cái giới hạn đó gọi là cửa sổ ngữ cảnh — sức chứa của model cho một lượt gọi.
Điều nhiều người không ngờ: cửa sổ ngữ cảnh không chỉ chứa câu hỏi của bạn. Nó chứa
cả lời dặn hệ thống, cả lịch sử trò chuyện, cả tài liệu RAG kéo về, và cả chỗ dành
cho câu trả lời model sắp viết.
Kéo thanh trượt để trò chuyện dài thêm, rồi xem chuyện gì xảy ra khi đầy.
Và cái bạn gõ chỉ là một phần rất nhỏ của prompt
Giao diện ChatGPT giấu đi phần lớn những gì thật sự được gửi lên. Tab 4 và tab 5 của
phòng thí nghiệm này sẽ cho bạn xem tận mắt cái prompt cuối cùng đó.
Vào phòng thí nghiệm để làm gì: gõ câu tiếng Việt của chính bạn, đếm token thật,
so với tiếng Anh, và kéo thanh cửa sổ ngữ cảnh để thấy 128.000 token thật ra là bao nhiêu chữ.
Gõ vào ô dưới. Mỗi ô màu là một token — đây là bộ tách token thật (o200k_base) mà GPT-4o dùng, chạy ngay trong trình duyệt bạn.
Từng token một
Rê chuột lên một ô để xem số ID của token đó. Dấu · là khoảng trắng dính vào đầu token.
🇻🇳 Tiếng Việt tốn hơn tiếng Anh bao nhiêu?
Cùng một ý, hai thứ tiếng. Bấm để so.
📏 Cửa sổ ngữ cảnh
Model chỉ "nhìn" được ngần này token cho cả câu hỏi lẫn câu trả lời.
Rút ra: mọi thứ bạn nhét vào prompt — hướng dẫn, ví dụ, tài liệu RAG, lịch sử hội thoại — đều ăn vào cùng một cửa sổ này, và đều tính tiền theo token.
Bài 3.3 — Tham số sinh
Temperature làm gì với model?
Đây là tham số bị hiểu sai nhiều nhất trong cả khoá. Hiểu đúng nó ở đây rồi
vào phòng thí nghiệm bấm, bạn sẽ thấy đúng như dự đoán.
Model không "chọn" từ tiếp theo
Nó chấm điểm cho toàn bộ hơn 200.000 token trong từ vựng. Những điểm thô đó gọi
là logits. Rồi một phép tính tên softmax quy chúng về phần trăm cộng lại
đúng 100.
Và temperature chen vào đúng giữa hai bước đó: nó chia điểm thô cho một số T
trước khi softmax.
Kéo T và nhìn cột bên phải. T nhỏ thì cột đầu nuốt hết; T lớn thì các cột san bằng nhau.
Bước cuối: bốc thăm
Có bảng phần trăm rồi, model quay số — gọi là sampling. Ô to hơn thì cửa
cao hơn, nhưng không chắc thắng. Đó là toàn bộ lý do vì sao hỏi cùng một câu hai lần lại
ra hai câu trả lời khác nhau.
Kéo T về 0 để thấy một ô nuốt gần hết vòng quay — lúc đó model gần như luôn trả lời y hệt.
Điều quan trọng nhất, và cũng hay bị hiểu sai nhất
Temperature không phải núm "làm cho thông minh hơn" hay "sáng tạo hơn". Nó là
núm khó đoán hơn. Và nó chỉ chia lại cửa cho những phương án model vốn đã
cân nhắc — nó không tạo ra phương án mới.
Nên khi model chỉ có đúng một đáp án, kéo temperature lên 2 cũng vô ích. Bấm sang tình
huống thứ hai trong hình để thấy.
Hai tình huống, cùng một thanh trượt. Đây chính là điều bạn sẽ nhìn thấy bằng số thật ở phòng thí nghiệm.
Hai cái van còn lại: Top-K và Top-P
Top-K giữ K phương án dẫn đầu rồi gạch hết phần còn lại. Đơn giản, nhưng K cố
định trong khi tình huống thì không.
Top-P (còn gọi nucleus sampling) giữ vừa đủ phương án để cộng dồn đạt P phần trăm.
Nên số phương án tự co giãn theo việc model đang chắc chắn hay đang phân vân.
Đừng đổi tình huống mà giữ nguyên P — rồi xem số phương án được giữ tự thay đổi.
Lời khuyên thực dụng: chỉnh một trong hai, temperature hoặc top-p.
Vặn cả hai cùng lúc thì không biết cái nào gây ra kết quả.
Làm sao nhìn được bảng phần trăm đó?
Bật logprobs. Toàn bộ biểu đồ cột trong phòng thí nghiệm vẽ từ dữ liệu này —
số thật của model, không mô phỏng.
Lưu ý: model có suy nghĩ (dòng GPT-5.6, Claude) không trả logprobs.
Phải chọn model có dấu ★ trong hộp cấu hình.
Vào phòng thí nghiệm để làm gì: bấm lần lượt ba câu mẫu. Câu mở cho năm cột lô nhô;
câu "Thủ đô của nước Việt Nam là" chỉ cho một cột 100%. Kéo Temperature lên 2 cũng
không đổi được gì. Đó là khoảnh khắc đáng nhớ nhất của tab này.
Model tính ra xác suất cho mọi token có thể, rồi bốc thăm. Ba thanh trượt dưới đây can thiệp vào lần bốc thăm đó.
Phần A — Nhìn thấy lần bốc thăm
Nhập một câu còn dở. Model sẽ cho biết nó định viết tiếp bằng những từ nào, và mỗi từ bao nhiêu phần trăm.
Bấm thử ba câu này theo thứ tự — chúng cho ba hình rất khác nhau:
Model nghĩ gì (phân phối gốc)
Lấy thật từ model, trường logprobs. Không mô phỏng.
Sau khi áp tham số của bạn
Tính lại ngay trong trình duyệt: softmax(logit / T) rồi cắt theo Top-K / Top-P. Ô xám là ứng viên đã bị loại.
Phần B — Cùng một prompt, ba nhiệt độ
Chạy cùng một yêu cầu ba lần ở mỗi mức nhiệt. Nhìn xem cột nào lặp lại gần y hệt, cột nào mỗi lần một khác.
Rút ra: temperature thấp cho việc cần đúng và ổn định (trích xuất dữ liệu, phân loại, trả lời theo tài liệu). Temperature cao cho việc cần nhiều phương án khác nhau (đặt tên, viết quảng cáo, brainstorm). Không có mức nào "tốt hơn" — chỉ có hợp việc hay không.
Bài 3.4 — Embeddings & Vector Database
Biến câu chữ thành toạ độ
Đây là nền của RAG, của tìm kiếm ngữ nghĩa, và của gần như mọi thứ có chữ
"vector" trong tên. Nhưng lõi của nó đơn giản hơn cái tên nhiều.
Máy không so được hai câu văn. Nhưng nó so được hai dãy số.
Embedding là phép biến một câu thành một vector — tức là một dãy vài trăm
con số — sao cho hai câu gần nghĩa thì hai dãy số gần nhau.
Ví như: gán toạ độ GPS cho ý nghĩa. Hai quán cà phê cùng một
con phố thì toạ độ gần nhau, dù tên chúng chẳng liên quan gì tới nhau.
Đừng để chữ "vector" doạ
Trong bối cảnh AI, vector chỉ có nghĩa là một danh sách số. Với 2 số ta vẽ được
lên tờ giấy. Với 384 số thì không ai hình dung nổi — nhưng phép tính khoảng cách vẫn chạy
y hệt. Máy không cần hình dung.
Đo "gần nhau" bằng gì: cosine similarity
Một con số từ −1 đến 1. Càng gần 1 thì hai câu càng gần nghĩa. Điểm hay của nó là
nó đo góc, không đo độ dài — nên câu dài hay câu ngắn không ảnh hưởng.
Kéo thanh thứ hai: mũi tên ngắn đi mà cosine không nhúc nhích. Đó chính là chỗ hay.
Đừng học thuộc ngưỡng. Mỗi model nhúng có thang riêng —
MiniLM cho "mèo ~ chó" = −0,03 trong khi e5-small cho 0,85. Cùng một cặp câu, hai con số
hoàn toàn khác. Ngưỡng cắt phải đo lại mỗi khi đổi model.
Nhìn thấy cái không nhìn thấy được: PCA
Bản đồ 2D ở phòng thí nghiệm là kết quả của PCA — ép vài trăm chiều xuống 2 chiều.
Rất hữu ích để hiểu, nhưng có một cái bẫy phải biết trước.
Hai điểm trông sát nhau trong bóng chưa chắc sát nhau thật. Hình để hiểu, bảng cosine để quyết.
Còn "vector database" thì sao?
Nghe to tát, nhưng lõi chính là bảng số + phép cosine bạn vừa xem. Pinecone, Qdrant,
pgvector chỉ giải bài toán làm việc đó thật nhanh trên hàng triệu dòng.
Vào phòng thí nghiệm để làm gì: bấm nút "câu KHÓ". MiniLM sẽ xếp "Con chó chạy
ngoài sân" trên "Chú mèo nằm cuộn tròn" — sai. Đổi sang e5-small, nó đúng.
Đó là lúc bạn thấy chất lượng RAG bắt đầu từ chỗ chọn model nhúng, chứ không phải từ chỗ
viết prompt.
Mỗi dòng dưới đây sẽ thành một điểm trong không gian nhiều chiều. Sửa thoải mái rồi bấm chạy.
Mỗi dòng là một câu.
💡 Bước nhúng này không gọi API. Model nhúng được tải về và chạy
ngay trong trình duyệt bạn (Transformers.js — đúng bài 5.5 và 5.6 của khoá học). Lần đầu tải hơn 100MB
nên hơi lâu, những lần sau lấy từ bộ nhớ đệm nên gần như tức thì. Không tốn đồng nào.
1 · Câu đã thành số
2 · Câu nào gần câu nào
Cosine similarity: 1,00 là trùng khít, 0 là không liên quan. Ô càng đậm càng gần nghĩa.
3 · Ép nhiều chiều xuống mặt phẳng
Chiếu bằng PCA để mắt người nhìn được. Chỉ là hình bóng của không gian thật, nhưng đủ thấy các câu tự gom cụm.
4 · Tìm bằng ý nghĩa, không phải bằng từ khoá
Thử gõ một câu không dùng chung từ nào với các câu trên — ví dụ "thú cưng bốn chân kêu meo meo".
Thử:
💡 Câu thứ ba là bài học đắt nhất của tab này. Đo thật: với MiniLM nó xếp
"Con chó chạy ngoài sân" (0,354) trên"Chú mèo nằm cuộn tròn" (0,336) — sai.
Đổi sang e5-small ở ô chọn model phía trên rồi chạy lại, nó sẽ đúng.
Chất lượng model nhúng quyết định chất lượng RAG, mà đây là chỗ người mới hay bỏ qua nhất.
Rút ra: "vector database" nghe to tát, nhưng lõi của nó chính là bảng số + phép tính cosine bạn vừa thấy. Pinecone/Qdrant/pgvector chỉ giải bài toán làm việc đó thật nhanh trên hàng triệu dòng.
Bài 3.4 — RAG
Mổ xẻ một pipeline RAG
RAG là thứ hay bị nói như phép màu. Mổ ra thì chỉ có ba việc rất cụ thể.
Vấn đề RAG sinh ra để giải
Model không biết tài liệu nội bộ công ty bạn. Nhưng nếu bị hỏi, nó sẽ không nói
"tôi không biết" — nó sẽ bịa ra một câu trả lời nghe rất hợp lý. Đó là
hallucination, rủi ro số một khi đưa AI vào sản phẩm thật.
Cột phải nghe rất thuyết phục. Và sai. Đây chính là hai cột bạn sẽ chạy thật ở phòng thí nghiệm.
Cách RAG giải: cho model mang tài liệu vào phòng thi
Không dạy lại model, không huấn luyện gì cả. Chỉ là: tìm đoạn văn liên quan → dán
vào prompt → hỏi model.
Bước quan trọng nhất mà ít ai để ý: cắt chunk
Không ai nhét cả cuốn cẩm nang vào prompt. Phải cắt thành từng chunk, mỗi chunk
nhúng riêng. Cắt ở đâu là quyết định quan trọng nhất của cả pipeline.
Chunk đọc lên vô nghĩa thì nhúng ra vector cũng vô nghĩa, và truy hồi sẽ trật — dù bạn
có viết prompt khéo đến đâu.
Bấm sang "theo số ký tự" rồi kéo thanh trượt vài nấc. Vạch đỏ là nhát cắt rơi vào giữa từ.
Và cái vá cho nhát cắt: overlap
Nếu câu trả lời nằm đúng chỗ nhát cắt thì sao? Nửa đầu ở chunk 3, nửa sau ở chunk 4,
kéo về chunk nào cũng thiếu. Overlap cho mỗi chunk lấn sang chunk kế bên một chút.
Kéo từ 0 lên. Như lợp ngói — mỗi viên chồng lên viên dưới để nước không lọt khe.
Bước đi tìm: truy hồi
Nhúng câu hỏi thành vector, rồi lấy vài chunk gần nghĩa nhất. Số chunk lấy về gọi là
top-k, thường 3–5. Lấy ít quá thì thiếu; lấy nhiều quá thì kéo rác vào.
Hai điều đã đo thật ở phòng thí nghiệm và rất đáng nhớ:
một — câu hỏi càng cụt thì truy hồi càng trật (câu "chế độ nghỉ phép" chỉ ba chữ
kéo trúng đoạn "Liên hệ nội bộ" lên trên cả đoạn đúng);
hai — điểm thấp là tín hiệu, câu có trong tài liệu cho 0,79 còn câu ngoài tài liệu
chỉ 0,41.
Một bài học đã trả giá thật khi dựng tab này
System prompt của nhánh có RAG phải cho phép suy luận. Lúc đầu dặn quá chặt kiểu
"chỉ được trả lời y nguyên tài liệu", model trả lời "Tài liệu không có thông tin này"
cho câu hỏi "nhân viên mới được nghỉ mấy ngày" — dù đoạn văn nói rõ "nhân viên
chính thức được 14 ngày" và đoạn đó đã nằm sẵn trong prompt.
Chặt quá thì model hoá ngốc. Lỏng quá thì nó bịa. Chỗ này phải chỉnh và đo, không có
công thức sẵn. Xem thêm grounding.
Vào phòng thí nghiệm để làm gì: chạy câu ① rồi nhìn hai cột cạnh nhau. Cột có RAG
trả "14 ngày, dựa vào đoạn 1". Cột không RAG trả "12 ngày theo quy định tại Việt Nam" —
nghe rất hợp lý, có căn cứ, và sai. Không có gì dạy về hallucination tốt hơn cảnh đó.
Năm bước dưới đây làm đúng những việc một hệ RAG thật làm, và cho bạn xem tận mắt cái prompt cuối cùng.
1Nạp tài liệu
2Cắt chunk
3Nhúng vector
4Truy hồi
5Sinh câu trả lời
Bước 1 — Tài liệu riêng của bạn
Tài liệu mẫu bên dưới nói về một công ty không có thật. Model chắc chắn chưa từng đọc nó — đó là điểm mấu chốt để bạn phân biệt được lúc nào model biết và lúc nào model bịa.
Bước 2 — Cắt nhỏ tài liệu
Cắt ở đâu là quyết định quan trọng nhất của cả pipeline — hãy thử đổi cách cắt rồi chạy lại bước 4 để thấy.
Bước 3 — Mỗi chunk thành một vector
Đây chính là lúc "nạp dữ liệu vào vector database". Ở đây database là một mảng trong bộ nhớ trình duyệt — để bạn nhìn thấy số.
Bước 4 — Hỏi, rồi đi tìm
Bốn câu này cho bốn kết cục khác nhau, thử đủ cả bốn:
💡 Câu ④ chỉ có ba chữ. Đo thật cho thấy nó kéo trúng đoạn "Liên hệ nội bộ"
lên trên cả đoạn "Chế độ nghỉ phép". Câu hỏi càng cụt, vector càng nhạt nghĩa —
đó là lý do hệ RAG thật thường viết lại câu hỏi cho đầy đủ trước khi đem đi tìm.
Bước 5 — Prompt cuối cùng, và hai câu trả lời
Đây là toàn bộ "phép màu" của RAG — chỉ là mấy đoạn văn được dán thêm vào prompt.
Rút ra: cột trái model chỉ được đưa đúng vài đoạn văn và bám vào đó. Cột phải model phải tự xoay xở — nó sẽ hoặc nói không biết, hoặc bịa ra một con số nghe rất hợp lý. Đó là hallucination, và RAG sinh ra để chặn nó. Hãy thử lại với câu hỏi không có trong tài liệu để xem cột trái xử sự ra sao.
Chương 4 — Prompt Engineering
Bốn cách hỏi cùng một việc
Bốn kiểu prompt, không kiểu nào "thông minh hơn" kiểu nào. Chúng chỉ dài hơn
và cụ thể hơn — và bạn trả tiền cho phần dài thêm đó.
Trước hết: một prompt gồm hai phần
Khi bạn gõ vào ChatGPT, thứ thật sự được gửi đi luôn có hai vai. Biết hai chữ này
thì phần sau đọc mới trôi:
system — lời dặn
Đặt trước cuộc trò chuyện, nói cho model biết nó là ai và phải cư xử thế nào.
Người dùng cuối thường không nhìn thấy dòng này. Ví dụ: "Bạn là trợ lý chăm sóc
khách hàng, luôn trả lời lịch sự trong 3 câu."
user — câu bạn gõ
Chính là ô chat. Ví dụ: "Đơn của tôi bao giờ tới?"
Trong phòng thí nghiệm, mỗi thẻ đều in ra cả hai phần — đó là
thứ giao diện ChatGPT luôn giấu đi.
Bốn cách hỏi, đặt cạnh nhau cho dễ thấy
Cùng một bài toán nhỏ: "Khách mua 4 bánh mì 15.000đ, được giảm 10%.
Trả bao nhiêu?" Dưới đây là prompt thật của bốn kiểu. Chỉ cần đọc lướt, chưa cần hiểu
hết — cái đáng nhìn là chúng dài dần ra.
① Zero-shot ngắn nhất
Hỏi thẳng, không kèm gì cả. Như nhờ việc một người quen.
system Bạn là trợ lý hữu ích.
user Khách mua 4 bánh mì 15.000đ,
được giảm 10%. Trả bao nhiêu?
≈ 30 token · Luôn thử kiểu này trước. Rất nhiều việc chỉ cần tới đây là xong.
② Few-shot thêm ví dụ mẫu
Đưa trước vài bài đã có lời giải, rồi mới hỏi bài thật. Như đưa nhân viên
mới xem 2 hồ sơ mẫu rồi bảo "làm giống vậy".
system Bạn là trợ lý hữu ích. Hãy trả lời
theo đúng khuôn của các ví dụ.
user Ví dụ 1:
Hỏi: 3 quyển vở 12.000đ, giảm 5%?
Đáp: 34.200đ
Ví dụ 2:
Hỏi: 5 hộp sữa 32.000đ, giảm 20%?
Đáp: 128.000đ
Bây giờ tới lượt bạn:
Hỏi: Khách mua 4 bánh mì 15.000đ,
được giảm 10%. Trả bao nhiêu?
Đáp:
≈ 110 token · Mạnh khi cần đúng định dạng. Nhưng để ý hai chữ
Đáp: — chúng đang dạy model trả lời cụt một dòng. Nhớ chỗ này.
③ Chain-of-Thought bảo nó trình bày
Y như zero-shot, chỉ thêm một câu ở cuối. Như bắt học sinh trình bày
bài giải thay vì chỉ ghi đáp số.
system Bạn là trợ lý hữu ích.
user Khách mua 4 bánh mì 15.000đ,
được giảm 10%. Trả bao nhiêu?
Hãy suy nghĩ từng bước một. Viết rõ
từng bước tính, rồi mới đưa đáp án
cuối ở dòng riêng bắt đầu bằng
"ĐÁP ÁN:".
≈ 60 token vào, nhưng ra dài gấp mấy lần vì model viết hết các bước.
Đắt hơn, và thường đúng hơn ở bài nhiều bước.
④ ReAct cho nó dùng công cụ
Dạy model một vòng lặp: nghĩ → làm → nhìn kết quả → nghĩ tiếp.
Như thợ sửa xe, không đoán hết từ đầu.
system Bạn làm việc theo vòng lặp ReAct.
Mỗi vòng viết đúng ba dòng:
Suy nghĩ: (đang cân nhắc gì)
Hành động: TINH[biểu thức]
Quan sát: (kết quả tính được)
Lặp tới khi đủ, rồi kết thúc bằng
"Trả lời cuối: ...".
user Khách mua 4 bánh mì 15.000đ,
được giảm 10%. Trả bao nhiêu?
≈ 100 token · Ở đây model chỉ giả vờ có máy tính. Hệ thật sẽ chặn
dòng Hành động: lại, chạy phép tính thật, rồi trả kết quả vào. Đó là AI Agent.
Đọc lại bốn khung trên một lượt nữa: nội dung bài toán y hệt nhau
ở cả bốn. Cái khác duy nhất là bạn dặn thêm bao nhiêu. Đó chính là toàn bộ nghề
"prompt engineering" — không có câu thần chú nào cả.
Zero-shot — hỏi thẳng
Không ví dụ, không hướng dẫn thêm. Ngắn nhất, rẻ nhất, và thường đã đủ dùng.
Luôn bắt đầu từ đây. Rất nhiều người nhảy ngay vào few-shot cho một việc mà zero-shot làm
tốt rồi — tốn token vô ích.
Few-shot — cho xem vài ví dụ mẫu
Rất mạnh khi bạn cần đúng định dạng: trả JSON theo khuôn, phân loại vào đúng bộ
nhãn, giữ giọng văn thương hiệu. Nhưng có một cái bẫy lớn, và phòng thí nghiệm này bắt
được nó bằng số đo thật.
Kéo từ 0 lên 1. Cùng model, cùng bài, cùng temperature — chỉ thêm ví dụ mẫu mà đáp án hoá sai.
Vì sao? Hai ví dụ mẫu dạy model trả lời cụt một dòng. Tới bài thật model
cũng đáp cụt, không còn chỗ nào để tính ra giữa chừng. Ví dụ mẫu dạy cả nội dung
lẫn hình thức — và hình thức mới là chỗ giết chết câu trả lời.
Chain-of-Thought — cho model chỗ để nghĩ
Đây là chỗ dễ hiểu sai nhất, nên nói cho rõ: không phải viết dài thì thông minh hơn.
Mà là — model không có chỗ nào để tính nhẩm. Nó chỉ có một cách "nghĩ": sinh token. Mỗi
token viết ra lại trở thành đầu vào cho token kế tiếp.
Câu chốt của cả chương 4: model tính toán bằng chính những chữ nó
viết ra — cắt chỗ viết là cắt chỗ nghĩ.
ReAct — nghĩ một bước, LÀM một bước
Khác Chain-of-Thought ở chỗ: CoT chỉ nghĩ trong đầu, mọi dữ kiện phải có sẵn trong
prompt. ReAct được ra ngoài lấy thêm — tra web, gọi API, chạy phép tính.
Đây chính là nền của AI Agent. Bóc một agent ra, phần lớn là
vòng lặp này cộng với một bộ công cụ và một điều kiện dừng.
Cái giá bạn trả cho mỗi kiểu
Mọi kiểu prompt dài hơn đều tốn token hơn. Và vì API không nhớ gì cả, mỗi lượt phải
gửi lại toàn bộ lịch sử — chi phí một cuộc trò chuyện dài tăng theo bình phương,
không phải theo đường thẳng.
Bấm sang English để thấy cùng nội dung tốn khoảng một nửa. Tiếng Việt đắt gấp đôi.
Vào phòng thí nghiệm để làm gì: chạy bài toán mặc định và đọc cột "Prompt thật đã
gửi" của từng kiểu. Đo thật, lặp lại nhiều lần đều thế: Zero-shot 261.000đ ✅ · Few-shot
283.500đ ❌ · CoT 261.000đ ✅ · ReAct 261.000đ ✅. Trang tự phát hiện chuyện đó và nói ra,
không cần biết trước đáp án đúng.
Cùng một bài toán, cùng một model, cùng một temperature. Chỉ khác cách viết prompt.
Đổi bài:
💡 Ba bài này chọn có chủ ý, mỗi bài lộ ra một chuyện khác nhau:
· Bài toán nhiều bước — cần model tính. Đây là chỗ Chain-of-Thought thắng,
và là chỗ Few-shot ngã đau nhất.
· Phân loại phản hồi khách — câu vừa khen vừa chê. Cần model chọn đúng một nhãn
trong bộ nhãn bạn cho. Đây là chỗ Few-shot mạnh nhất, còn CoT chỉ tốn tiền vô ích.
· Trích xuất ra JSON — cần đúng khuôn, không cần suy luận. Chạy thử rồi xem
kiểu nào trả JSON sạch, kiểu nào lải nhải thêm chữ thừa quanh nó.
Bốn kiểu sẽ chạy:Zero-shot Few-shot Chain-of-Thought ReAct
Rút ra: nhìn cột "Prompt thật đã gửi" của mỗi kiểu. Few-shot và CoT không hề thông minh hơn — chúng chỉ dài hơn và cụ thể hơn, và bạn trả tiền cho phần dài thêm đó. Prompt engineering là bài toán đánh đổi giữa độ chính xác và số token.
AI Lab · khóa AI02 — AI Engineer Nền Tảng · SmartITSoft
Mọi con số trên trang này đều lấy từ model thật, không mô phỏng. Chỗ nào tính lại tại trình duyệt đều được ghi rõ.
Gặp chữ lạ? Mở 📖 Từ điển thuật ngữ — có hình động cho từng khái niệm.